Good management tutorials or basic simulation help

Hello all,
I have been using Unity for about four years now and have made everything from platformers to adventure games to a visual novel. I have finished a longer paid tutorial recently on creating an advanced RPG and gone through a lot of the official Unity tutorials as well, hoping to accumulate the knowledge to start working on a management sim game. However- I am not an innately brilliant programmer(literally, not being sarcastic), and I think I need help to put things into perspective.
I’ve read threads in the Unity forums about people looking for advice in doing a management sim, but a lot of those threads turned into some really unfriendly advice in what sounded like a genuine question to me. Thus I posted here in this Getting Started section, because I really want to ask for your suggestions. Has anyone found a tutorial or blog that really helped them? Even a paid course through an online class. I want something teaching proper procedure, not patchwork code that barely keeps it together. I’m not looking for a script, but a learning resource.
I am an experienced enough programmer within the framework of Unity to move onto this phase. I have published to mobile and once to PC (almost twice to PC), entirely my own writing. I wanted to remake a game I used to love for the PC called Trade Empires, if anyone has ever played it. It’s NOT a simple game logically, though nothing like The Sims, it will be a challenge. That will be my end result, my goal. To get there, I thought something like a basic village management would be reasonable. I can almost imagine in my mind how the whole thing would interact with itself, but I still want to try and find some guidance.

Thanks!

It’s a reasonable question, but I don’t know of any tutorial that’s going to be particularly helpful for this sort of game.

However, probably the central component in such a game is an event pump, also called an event queue or message queue. Here’s a design pattern article about it, though there is a lot of not-so-great advice there that really wouldn’t apply in modern C# environments. But it does give the basic idea: you schedule events to be handled at some point in the future by inserting them into a queue; and on each update, you pull and execute 0 or more events off the front of this queue, until the next event is not due (i.e. its time has not yet come).

Get this basic structure working, and you’ll have the core of any simulation game: stuff happens, which causes more stuff to happen in the future. You’ll also need ways to cancel events, e.g., if the building/agent/whatever it was scheduled for is destroyed. You can do this in Unity by having each game object keep its own event queue, or you can do it by having your little event objects (that you insert into the queue) have a reference to some “owner” object, and when an object is destroyed, you go through and destroy any events it owns.

Anyway, play with this; search for more articles on it, and write several different implementations of it in Unity, making simple little 3-agent simulations until you find a code structure that you really like. Then build on that for your real game, and you should be off to a good start.

@JoeStrout Wow, thank you. I didn’t expect such a helpful reply tbh. You gave me a lot to work with. I actually just watched your TedTalk because I wanted to hear some more of your good advice, and because I saw you are making a detailed simulation about economically connected cities. I will check it out as well!

1 Like