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

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like,, Cybrary, Businessinsider,, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.