top | item 31506647

(no title)

mpettitt | 3 years ago

Everything sim. You start with, say, Sim City. You find that your rail network isn't working properly, so you switch contexts to a kind of Transport Tycoon style game, where you can optimise the train schedules and destinations. You realise that the factory you're delivering stuff to is struggling, so you switch context to a Factorio style optimisation game. You realise that the inputs to the factory aren't pure enough, so you switch context to an Opus Magnum/SpaceChem style atomic manipulation game. You zoom back out, and find that your hospitals are struggling too. Context switch to a Theme Hospital/Two Point Hospital style sim. You need medicines, so switch to a Big Pharma drug production sim. You can optimise the machines here with the same interface as you used for the factory. Zoom out a bit, and you can see a football stadium, with the option to switch to a football management game, or to jump into a game and start playing directly. You zoom out again, and are now looking at a country where your city/region is just one part. You can context switch to a country management game. Keep going out, and you realise you're on a planet, so start working on a space program. Keep going out, and you can build a Dyson swarm and get some interplanetary government vibes going, all while being able to zoom back in on any part.

Pretty sure my original concept was for this not to be a single game so much as a common interface for basically every other game, where unoptimised parts work, but aren't great, passing a kind of middle-of-the-range set of values whenever queried. By linking multiple games together, you'd be able to control everything.

discuss

order

YesBox|3 years ago

That would be quite an impressive game. Each simulation would need to be automateable in case the player does not want to manage that particular aspect of the game. Otherwise the game will fall into the trap of "trying to please everyone pleases no one".

Anyways, I'm working on Archapolis, a city builder game. The game will feature more hands on management than existing games in the genre, such as being able to design/build your own buildings. The player will see the interior of the buildings so making the exterior pretty wont need to be worried about. I'm also aiming to have a city board that will automate parts of the game for you if you choose (like having a fire marshall to handle fires)

I've got a tech demo of the path finding code up on youtube here, in case you're interested in path finding hundreds of thousands of units efficiently

https://www.youtube.com/watch?v=7q0l87hwmkI

CMay|3 years ago

Also been slowly brainstorming a city sim technical design on and off for maybe 7 years as a side project that has a few similar goals in regards to large unit counts and custom buildings so it seems we have similar interests there. It feels like it has a high risk of becoming an endless feature creep project, though, so it's been hard to prioritize as a focus until I can settle on what the soul of it should be which informs all other decisions.

Just guessing From what I see, it looks like you may have chosen a technical path that doesn't scale well even if the resource usage is reasonable at this scale (constant time != constant resource). There are certain features I want to have that I think your approach doesn't make viable, so depending on how your game evolves the algorithm may get in the way. You've probably already thought through some of that and figure with some optimizations maybe it will be enough for your needs. Might even have a little extra versatility in other ways.

Hope you find success! I'll keep an eye out on your project. One bit of feedback though, I would personally change the name. It's not fun to read and doesn't roll off the tongue very well.

mpettitt|3 years ago

Yes, I imagined that a component could provide some inputs (e.g. Grain) and outputs (e.g. Bread) with some default link between the two, and that would apply to all instances of that component within the world, unless a player took control of an instance and modified the behaviour. The nice thing there is that backing out of the instance allows for a different link between input and output to be created, without needing to simulate the full process.

jfrej|3 years ago

This sounds cool if a bit overwhelming.

I always wanted to combine the Sims and Sim City. I imagined a multiplayer mode where you could live in the same city with your friends and your choice of career would allow you to use a different game mode at the SimCity level. E.g. your sim becomes a teacher, so now you decide where to place schools, etc. You have to work as a team to make sure all sims are happy in the city.

fendy3002|3 years ago

This can be done, but not as interlocking or real time as everyone thinking. It's designed around "points". Factory (or maybe materials) points, health / hospitality points, etc.

Basically you'll be given some "special" buildings where you can place the other-genre games . Let's say that you have a "60x60 1 level hospital" that when you placed it in the city, you can interact with it via theme hospital style.

Now in theme hospital-like, it has reputation / ratings where it translate directly to "hospitality points" for your city. When you exit the mode, it stopped the simulation and the points freeze. Similar with factory points.

mpettitt|3 years ago

Kind of. I picture it as being a function of input to output, so if the input changes, the output does too, but the output change is based on what changes have been made by the player.

E.g. if you have a hospital which can handle X patients per day and has a reputation of 90 when doing so, increasing the number of patients to 2x would probably decrease the reputation. You don't need to model the full hospital to determine this though, just have a "max patients" value which, when exceeded, puts a fractional multiplier on the output.

cbuq|3 years ago

This reminds me of the Crusader Blade mod which combines Crusader Kings 3 and Banner Lord 2 to let you fight the normally simulated fights in CK3 in the battlefield of BL2, and passes results back and forth between the two interfaces.

whywhywhywhy|3 years ago

Not quite what you describe but check out Workers and Resources.

It’s like Sim City meets Transport Tycoon. Rather than just building a city it’s about setting up all the supply chains to be self sustainable

armchairhacker|3 years ago

This combined with the “fractal game” concept.

It would be a big open-source project (I mean it could be closed-source but it’s a massive effort with massive risk, it would take a billion-dollar company and I doubt any wants to invest in this).

It starts out as just a super-general world simulation, but people can flesh out the details by providing more specific simulations and also mini-games. All of the mini-games are optional, and the localized simulations aren’t run if they’re not requested because they get blurred out* into the bigger simulations (e.g. you can simulate population and income without caring about one cities’ paper production efficiency), so contributors have a lot of freedom in what they can make.

e.g. someone creates a “Fifa” style soccer mini-game. If you don’t like playing soccer, there is also a basic “soccer-management” style simulation where the soccer teams play against each other automatically and the team rankings / income / effect on news and culture will update. If you don’t even care about soccer, the soccer/management simulations won’t even load, and the effects on economy and culture will be blurred out.

How it could be implemented: there is a massive shared database of resources on everything (population resources, income resources, hospital resources, building layouts - all by location), and functions to automatically compute these resources over time when the players not explicitly interacting with them (e.g. update population and income, but also generate new cities and building layouts). Basically, everything in the game has data by some sort of location, an automatic state transition function, which may take other kinds of data and other locations, and possibly a way to manually interact via a user-controlled simulation and/or “hands-on” interaction mini game.

Along with this there is a standard-issue game engine and libraries which the smaller simulations and mini-games are built with. Each of these smaller-systems and mini-games are a module which can be loaded in when they are requested, but are “blurred out” by default. Initially only the global simulations are enabled.

The player makes up their goal: it may be to maximize the worlds income and happiness however they want (e.g. by building nice buildings, an efficient factory, train stations). Or maybe the player is evil and wants to kill off the population via bad decisions which cause the economy to crash, and unsafe research causes a deadly virus to be released. Or the player just wants to build cities and roads which are fun to race in and then drive a race car around everywhere.

Anyways, it’s obviously super ambitious but it would be a nice experiment. Like a generalized, open-source, modular reimagining of Dwarf Fortress.

* When a simulation is “blurred out”, I mean it’s affects are roughly estimated when the user doesn’t explicitly load it. Otherwise a) the game would slow to a crawl because of 10,000 simulations running at once, and b) a poorly-implemented simulation (e.g. which allows the player to generate infinite money, or just crashes a lot) won’t ruin the entire game, the player can just ignore or even specifically disable it. Simulating every minute detail of the world is a kind of hard problem, but since this is ultimately a video game we can just ignore 99+% of it, throw together some basic population and economic theory, and later on transportation theory and culture/politics sim etc., and say "close enough".