I did not expect to end up on hackernews that early. While I've been working on this project on and off for 3 years it is still in its infancy. I have so many things I want to rewrite, so many features missing even for the most basic game loop. So many 3D models I have to make.
And so little time! Working on this as a side project with a full time job has been hard at times. I do not recommend making city builders :D
I wish I anticipated the attention so I would have given the README bit more love.
Anyway, I will try to answer any questions in the comments.
Hey there! I'm just here to say... Keep up the great work! I love city building games and am quite excited to see yours once you've had more time to put into it. Don't let it be the death of you though! I'm patient and appreciative for you putting some coolness out into the world. :)
Nice !! Please check out Spectra City if you are not alread aware they are a fully CC0 project built for WebGL (WebXR), although I think for now they started on a platform called Spatial.io & my impression is they are closely tied to the real built environment or proposed so as in a way for the local community to active participate on a new city block restoration project as an example.
I have to say I'm confused by this. After looking through their website I do not really understand what Spectra City is about or how I can get involved.
It would be cool to have more bike/pedestrian/train/mass transit transportation options available, instead of cars and trucks being the default option. Also tooltips would be really helpful.
I feel like there's almost enough here that you could do steam/itchio.
Public transportation is definitely planned, although it's a lot of work. Cars + trucks + trains are the minimal set of transport methods to allow anything to go anywhere.
I love tooltips! Thank you for the suggestion, I have opened an issue.
>I feel like there's almost enough here that you could do steam/itchio.
I think it's way too early for this. As people say the last 20% takes 80% of the time. There's a lot of systems I've neglected for an actual release. It probably needs a few years more work before any kind of "real" release for players instead of developers.
I think Rust for games has come really far. I will cite https://arewegameyet.rs/ "Almost. We have the blocks, bring your own glue.".
All the blocks are there and the language is really well suited to games.
On top of my head:
The pros:
- The crate ecosystem and the package manager makes it really easy to integrate any useful component such as pathfinding, spatial partitioning, graphics backend, audio system.. Most crates take a lot of effort to be cross-platform so I can develop on linux and not spend too much time debugging windows releases.
- The strong typing and algebraic data types makes expressing the game state very pleasant. I also found I was able to develop a very big game without too many bugs even though I don't write many tests.
- Ahead of time compilation + LLVM guarantees you won't have to optimise for weird things around a virtual machine. Rust gives you more control to optimise hot loops as you can go low-level.
- I find wgpu to be the perfect balance between ergonomics and power compared to Vulkan. OpenGL support through wgpu is also a nice addition for lower end devices.
- The Rust community is very helpful, you can often talk directly to crate maintainers
The cons:
- Compilation times, when compared to JITed languages such as C# can be very painful. It can be alleviated by buying a 3950X but I still often get 10-30s iteration times.
- The static nature of Rust means you often need a dynamism layer above to tweak stuff that can be awkward to manage. I made inline_tweak for this purpose but it's really far from how easy Unity makes it. https://github.com/Uriopass/inline_tweak
- Since Rust feels very ergonomic, you are tempted to write almost all game logic within it, so mod support feels very backwards to implement as you cannot really tweak "everything" like in Unity games. Thankfully "Systems" game like Factorio or Egregoria can be theoretically split into the "simulation" and the "entities" so mod can still have a great impact. Factorio is built in C++ so has the same problematic. Their Lua API surface is quite insane to be able to hook into everything. https://lua-api.factorio.com/latest/
Now, I have to talk about Bevy: https://bevyengine.org/. It did not exist when I started but it is a revolution in the Rust gamedev space. It is a very powerful 100% Rust game engine that makes you write game code in Rust too. It has incredible energy behind it and I feel like if I'd used Bevy from the start I wouldn't have had to develop many core engine systems. Its modular design is also incredibly pleasant as you can just replace any part you don't like with your own.
I thought your comment meant this was somehow based on Rust the game. I was wondering if it had such a flexible modding system to enable things like this!
I spend a lot of time in public transportation looking out the window, thinking about the mechanics of society.
I have always liked simulations so I thought: Why not try to simulate what I see?
Watching the simulation from above of people going to supermarkets, going to work, trains delivering goods and such. Creating your own city and watching patterns emerge would certainly feels great.
A lot like watching little ants going around doing their business. This idea is also explored in one of the books of the Ants trilogy from Bernard Werber (I think?) where a society simulation is used to try out advertising campaigns.
I wish the dev could work on this full time! What he has accomplished so far is amazing. (Hi Uriopass, if you see this!)
Im working on a game in the same vein: Metropolis 1998, a city builder with real time traffic and interior building views, which you can design yourself if you want. Aesthetically, it's a beautiful throwback to the games I grew up playing as a kid.
I wish I could work on it full-time. However, after reading a lot about indie game developers, and judging from my situation, it seems like keeping it as a side project is a better decision for me from a financial and mental health standpoint.
Keep up the good work on Metropolis 1998! I have followed your work and the dev community you built around it and it is very inspiring.
Out of curiosity, are there any simcity 4 refresh out there?
That game was way ahead of its time. I just want a 2023 version, but just couldn't seem to find it. Every successor game and other games seem to either focus on details/individuals or 3D effects with far less scale.
We have far more capable hardware to run large cities and more growable lots and better traffic pattern. But a better Simcity 4 is never made beyond the 20 years old base game code and addons... Or am I oblivious?
These new games have made leaps and bounds in running a better simulation and getting away from being grid-based.
However I do think that Simcity 4 being grid-based, and the pre-rendered graphics it allows add to how beautiful the game still is, 20 years later.
Cities: Skylines looks good, but I suspect it will age much faster.
The base engine is from 2003, and likely haven't been updated since.
There's nothing wrong with that, since software does last far longer than hardware does. But the limitation shows (i.e. limited to 1080p, limited calculation logic to support hardware spec of the time).
I wonder if there's any scale first city building games that picks up that niche since.
A city builder really designed around zoning and free-form lane plots would be interesting - especially if you only could control the general zoning and not how they would subdivide the land and use it.
You may like Workers & Resources: Soviet Republic. [1] Fair warning: it has a rather brutal learning curve. It's somewhere between Factorio, Simcity and OpenTTD.
To build an apartment building, you need prefab panels. To get panels, you need to build a panel factory, which needs gravel. To get gravel, you need a quarry. And then you need vehicles to haul the gravel to the panel factory. And then the panels to the construction site. And buses to bring workers from another housing block to the construction site. And you need to import or produce fuel, and electricity, to run all of it. (Or you can just spend some currency you've earned from exports to build it or import it instantly. Necessary at the start to get your nucleus of industry going.)
It's almost ready for official 1.0 release later this year, and has excellent mod support for custom buildings/industries.
I adore this 'game'; you can actually engage with it like a simulation in many aspects. I didn't fully get it until I found myself spending hours optimizing forklift paths between factories and warehouses, and thinking about pedestrian thoroughfares as I expanded my industrial center. Unlike most city builders it's not on a grid, so you have a lot of freedom to just be creative!
Yeah. Cities: Skylines just feels so soulless to me. It's like me looking at a model railway - it might look cute but it's just dead. The game is effectively a traffic simulator, with citizens not really having agency (beyond the Chirper which most people are annoyed by), and next to zero economic management. No mixed zoning or organic growth, you effectively run a completely planned economy. There's not much external trade or a real economy which needs all sorts of skills to function. It feels really eery and creepy to me.
You perfectly describe my sentiment every time I try playing CS. No matter how gorgeous it looks at some point it just strikes as hollow and disengaging.
The train simulators that have city building as an afterthought often feel much more like a game than the city builders; probably because you have external forces acting on you and driving your decisions
The sequel, from what it seems like, is focused on zoning and growth via land values, and does feature some kind of trading mechanic, though I guess the real proof is when it comes out.
The question that is hard to balance in sims like this is how do you make something like this a fun game. it's a pretty tricky balance.
Upcoming Citities Skylines 2 seems to have improved a lot on the simulation parts. Removing "pocket cars", giving more agency to agents, more types of zoning, hopefully more challenging economy, trading of resources with external cities, etc. So at least I'm hyped about it!
The simulation is probably not as accurate as modern city-builders, but this is one of the reasons SimCity 4000 Rush Hour is still my favourite game in the genre.
Roads and cars still form a core part of the game, it doesn't support pedestrian-only streets or bikes, but density is so much easier to achieve. That + the grid means cities don't end up looking "suburban" and "car-centric".
It is definitely my ambition to implement public transportation but it is much harder to implement than cars. I live in Paris so I know what a non-car-centric city looks like and all the complexities around it (not to say I don't like it!).
With cars, anyone can go anywhere without thinking much, although it is a bit of an overstatement considering the time I have spent fighting gridlocks.
Truly impressive endeavour! I would definitely love to contribute, thanks HN for showing this up this morning! Rust + architectural models + wgpu is a great combo!
I am still in the mid-early learning phase of Rust, but it's where I'm putting my learning juices in... and at this point I can consider myself a professional architectural 3D modeller (https://www.myminifactory.com/users/TheLazyForger).
Would be happy to contribute (in fact I opened a couple of issues right now), is there a Discord or equivalent? I couldn't seem to find it on the github readme.
I did not expect to end up on hackernews that early. While I've been working on this project on and off for 3 years it is still in its infancy. I have so many things I want to rewrite, so many features missing even for the most basic game loop. So many 3D models I have to make.
And so little time! Working on this as a side project with a full time job has been hard at times. I do not recommend making city builders :D
I wish I anticipated the attention so I would have given the README bit more love.
Anyway, I will try to answer any questions in the comments.
https://www.spectracities.com/
Seems it's built mainly for spatial.io which has WebXR support but also native apps for iOS, Android and Quest.
(I say this because the performance is probably better on the native apps)
It would be cool to have more bike/pedestrian/train/mass transit transportation options available, instead of cars and trucks being the default option. Also tooltips would be really helpful.
I feel like there's almost enough here that you could do steam/itchio.
I love tooltips! Thank you for the suggestion, I have opened an issue.
>I feel like there's almost enough here that you could do steam/itchio.
I think it's way too early for this. As people say the last 20% takes 80% of the time. There's a lot of systems I've neglected for an actual release. It probably needs a few years more work before any kind of "real" release for players instead of developers.
All the blocks are there and the language is really well suited to games.
On top of my head:
The pros:
- The crate ecosystem and the package manager makes it really easy to integrate any useful component such as pathfinding, spatial partitioning, graphics backend, audio system.. Most crates take a lot of effort to be cross-platform so I can develop on linux and not spend too much time debugging windows releases.
- The strong typing and algebraic data types makes expressing the game state very pleasant. I also found I was able to develop a very big game without too many bugs even though I don't write many tests.
- Ahead of time compilation + LLVM guarantees you won't have to optimise for weird things around a virtual machine. Rust gives you more control to optimise hot loops as you can go low-level.
- I find wgpu to be the perfect balance between ergonomics and power compared to Vulkan. OpenGL support through wgpu is also a nice addition for lower end devices.
- The Rust community is very helpful, you can often talk directly to crate maintainers
The cons:
- Compilation times, when compared to JITed languages such as C# can be very painful. It can be alleviated by buying a 3950X but I still often get 10-30s iteration times.
- The static nature of Rust means you often need a dynamism layer above to tweak stuff that can be awkward to manage. I made inline_tweak for this purpose but it's really far from how easy Unity makes it. https://github.com/Uriopass/inline_tweak
- Since Rust feels very ergonomic, you are tempted to write almost all game logic within it, so mod support feels very backwards to implement as you cannot really tweak "everything" like in Unity games. Thankfully "Systems" game like Factorio or Egregoria can be theoretically split into the "simulation" and the "entities" so mod can still have a great impact. Factorio is built in C++ so has the same problematic. Their Lua API surface is quite insane to be able to hook into everything. https://lua-api.factorio.com/latest/
Now, I have to talk about Bevy: https://bevyengine.org/. It did not exist when I started but it is a revolution in the Rust gamedev space. It is a very powerful 100% Rust game engine that makes you write game code in Rust too. It has incredible energy behind it and I feel like if I'd used Bevy from the start I wouldn't have had to develop many core engine systems. Its modular design is also incredibly pleasant as you can just replace any part you don't like with your own.
A lot like watching little ants going around doing their business. This idea is also explored in one of the books of the Ants trilogy from Bernard Werber (I think?) where a society simulation is used to try out advertising campaigns.
- 3D assets
- Audio assets
- UI/UX design
- Low-level graphics shenanigans (platform support, debugging tools, dos-and-donts, optimizations)
- Simulation depth (logistic chain, economics, city services..)
- Mod support
Any help with these would be greatly appreciated
Dead Comment
Im working on a game in the same vein: Metropolis 1998, a city builder with real time traffic and interior building views, which you can design yourself if you want. Aesthetically, it's a beautiful throwback to the games I grew up playing as a kid.
https://store.steampowered.com/app/2287430/Metropolis_1998/
Keep up the good work on Metropolis 1998! I have followed your work and the dev community you built around it and it is very inspiring.
However yes the pressure is different than full time job
That game was way ahead of its time. I just want a 2023 version, but just couldn't seem to find it. Every successor game and other games seem to either focus on details/individuals or 3D effects with far less scale.
We have far more capable hardware to run large cities and more growable lots and better traffic pattern. But a better Simcity 4 is never made beyond the 20 years old base game code and addons... Or am I oblivious?
However I do think that Simcity 4 being grid-based, and the pre-rendered graphics it allows add to how beautiful the game still is, 20 years later. Cities: Skylines looks good, but I suspect it will age much faster.
There's nothing wrong with that, since software does last far longer than hardware does. But the limitation shows (i.e. limited to 1080p, limited calculation logic to support hardware spec of the time).
I wonder if there's any scale first city building games that picks up that niche since.
To build an apartment building, you need prefab panels. To get panels, you need to build a panel factory, which needs gravel. To get gravel, you need a quarry. And then you need vehicles to haul the gravel to the panel factory. And then the panels to the construction site. And buses to bring workers from another housing block to the construction site. And you need to import or produce fuel, and electricity, to run all of it. (Or you can just spend some currency you've earned from exports to build it or import it instantly. Necessary at the start to get your nucleus of industry going.)
It's almost ready for official 1.0 release later this year, and has excellent mod support for custom buildings/industries.
[1] https://store.steampowered.com/app/784150/Workers__Resources...
The question that is hard to balance in sims like this is how do you make something like this a fun game. it's a pretty tricky balance.
Roads and cars still form a core part of the game, it doesn't support pedestrian-only streets or bikes, but density is so much easier to achieve. That + the grid means cities don't end up looking "suburban" and "car-centric".
With cars, anyone can go anywhere without thinking much, although it is a bit of an overstatement considering the time I have spent fighting gridlocks.
It's like 10 years old, but kind of scratches that simple old lifestyle itch without any war or fighting elements
I am still in the mid-early learning phase of Rust, but it's where I'm putting my learning juices in... and at this point I can consider myself a professional architectural 3D modeller (https://www.myminifactory.com/users/TheLazyForger).
Would be happy to contribute (in fact I opened a couple of issues right now), is there a Discord or equivalent? I couldn't seem to find it on the github readme.
The discord badge in the readme is not very big, here's the discord link:
https://discord.gg/CAaZhUJ
EDIT: very impressive portfolio!
Joined the discord.