Career Development

Project Tutorial: How to create a City Builder Game


If you are looking for a guy who is inspired by “Ants,” then you finally have the chance to do so. Meet Foamy125, a self-taught engineer who likes the Ant’s world and Lisp. He loves the neural network, genetic algorithms and loves talking to Janitor. Currently, he has 54 followers and has streamed 178 hours in total. He loves to build games and has four years of experience.

The project that he will work on is“How to create a city builder game.” This project is in TEACHING mode. It is a live and real-world project. This means that you can interact with the streamer and communicate with them directly using chat. Got stuck? Just go ahead and ask him questions.

  • Starting Date: Tuesday, April 11, 2017
  • Schedule: Weekly starting at 6 pm EST Eastern New York time or 5 pm Central Chicago time Tuesday and Thursday.

What is the project about?

The project is about creating a city builder game using web technologies such as WebGL and JavaScript. Developing a complex game such as a city building game can give you a good learning experience in game development. To make it simple, the streamer will start with basic game concepts such as rendering a dot, making a random walk around the screen and so on.

After the basics are covered, the streamer will go forward and discuss complex ideas such as meta-heuristic algorithms for finding the traffic behavior, wealth distribution among citizens and so on.

Programming code will be covered in the tutorial. However, don’t expect every single line of code to be covered. Learners can easily download the source code for offline practice.

Along with pure JavaScript, Sibilant will also be used for developing the game.

For who is the project aimed at?

The project is aimed at learners who are eager to improve or expand their web development skills. To completely enjoy and learn at the same time, the viewer should have a basic understanding of JavaScript, HTML, and CSS in general. If you are a complete beginner, the course is not for you. You need to meet the basic requirement before you can start with the tutorial. Also, if you know any programming language at intermediate or complete understanding, you are good to go for the course.

Other things that you should know are as below:

  • Intermediate and Advanced understanding of Object Oriented Programming.
  • Fundamentals of Functional Programming
  • You know what a “method” is and how it works in different context.
  • You know how to map from one type to another
  • Have a basic knowledge of Linear Algebra.
  • Basic understanding of Matrix

The desire and willingness to learn is also needed.

The target audience for the course is as below:

  • You like simulation games like SimCity, or Cities: Skylines.
  • You have an interest in concepts typically associated with the field of AI, such as Neural Networks, or Biologically Inspired Algorithms.
  • You like to think of applications separately from the code written to make them run.

What will you be able to do after you finish the course?

Learning the course is a great way to improve your game development skills. If you are into to game development but has a good programming base, you can also leverage the knowledge shared in the course. In the end, you will understand how city building games work.

The Curriculum

(in the words of the streamer himself)

Session 1: Setting up, introduction to concepts

I will discuss what it is we will be doing, what exactly we will be creating together, and let you know a little about myself.

Then go over setting up the electron/node js environment, and make it work with a sibilant REPL (or any other compile to js dialect). This should be the same across all platforms; please let me know if it doesn’t work for you.

Session 2: Entities, Components, and Systems thereof.

In this session, I will describe the basics of an Entity component system (a common software architecture used in making games), and implement an entity that moves in a straight line.

Session 3: Collision, Fields, and entity detection.

I will describe what a field (from physics) is, and how it relates to many problems commonly encountered in game worlds, then we will implement an entity collision field.

Session 4: Random walks

I will describe what a random walk is, and how they relate to creating a city builder game, then we’re going to make an entity type which performs a random walk, and creates a basic environment which will pose a problem, which the entity will use a random walk to solve.

Enrolling for the course will give you the chance to learn complex game development methodologies. Anyone who wants to learn game development should enroll in the course. So, what you are waiting for? Enroll in the course now!

To watch and learn, you need a LiveEdu Pro subscription. With just the subscription, you will not only be able to learn from this tutorial but also get access to other Premium Project Tutorials.

About author

About Author Dr. Michael Jurgen Garbade is the founder of LiveEdu.TV, Kyuda, Education Ecosystem. He is future Venture Capitalist, Future Politician and always on the lookout for the Next Big Challenge. Obtained Masters in business administration and physics, and a Ph.D. in finance with professional work experience in high-paced environments at Fortune 500 companies like Amazon and General Electric. Expertize: Python, PHP, Sencha Touch & C++, SEO, Finance, Strategy & E-commerce. He speaks English and German and has worked in the US, Europe, and Asia. At Education Ecosystem he is the CEO and runs business operations.
Related posts
Career DevelopmentCoding Community

An Interview with Luca Marchal - a UI designer and Web Developer!


Coronavirus Stimulus Payment Calculator by Education Ecosystem

Career Development

5 Reasons to Create Projects on Education Ecosystem during the Coronavirus Pandemic

Content Creators

Exclusive Interview with Ricardo Neves, A Backend Developer