DevBlog
Design Doc
Community
Source Code
Live Builds

Citybound - The Beginning

(
Mar
02
)

The Vision

I set out to do something crazy - creating my own city building game.

Ever since I played A-Train and SimCity 2000 as a child, this was my dream. Now I have the technology, the skills and the knowledge to implement it.

My game will be called: Citybound.

It will be very familiar to those who love the genre, but it will also do new things and set its own priorities and focus areas:

Today I'm proud to show you my first steps of what will hopefully be a great journey!

The Technology

Please note: this section is outdated. Citybound is now implemented in native code.

(Feel free to skip this section if you are not interested)

Citybound is written completely in JavaScript, it uses WebGL for 3D graphics. There are three main reasons for this choice:

Because the game needs things like file-system access (for savegames), it will be bundled with its own fullscreen browser (node-webkit) as a standalone package.

It will look and feel like a native game.

The parts of the game that don't need native features should run in any browser, though.

Imagine: you can share a 3D snapshot of your city that your friends and fellow city-builders can explore in their regular browser.

What's already there

Basic Road Laying

Simple two-lane roads can be drawn by clicking and dragging. The mouse snaps to existing road end points. A few cars are spawned randomly.

What's missing:

Basic Agent Simulation

Citybound uses microscopic agent-based simulation, but only where it helps immersion and realism. It will simulate individual cars and pedestrians. It will not simulate individual poop blobs.

A huge city full of cars, simulated all at once.

What you see:

randomly generated street grid of 65x65 blocks (5.2x5.2 km² or 3.2x3.2 mi²)

ca. 8,500 road segments, ca. 4,300 intersections

ca. 51,000 cars with individual pathfinding

running at 30FPS on my 4 year old gaming PC

currently runs in a single thread, written in JavaScript

What's missing:

Basic Lot and Building Generation

Procedural buildings will be very important in Citybound. Compared to a few pre-modeled buildings and lot sizes, they allow for much more convincing and varied cityscapes. They also grow organically and use the available space optimally - even in oddly-shaped road networks.

Animation: Road network, different variations of random buildings

A randomly generated city (35x35 blocks) with buildings, larger towards the center

What's missing:

What's next

The technical foundation of the three most important aspects of the game is there. Now I will focus on bringing them together to allow gameplay and actual city dynamics as soon as possible.

Then each area can be refined iteratively - see the "What's Missing" sections.

Planned Core Gameplay Elements:

Additional planned features:

Terrain: hills, rivers, lake, ocean

Data maps & graphs

Day/night cycle

Seasonal cycle

Citizen inspection, opinion polls, social media

Thanks for reading - I am looking forward to your feedback!

→ Discussion on /r/Citybound