I already have an idea for a game. I also have a few years of experience with casual programming and game dev, and I know the messy while loop I had until now will not be enough for my next project.

The game I want to make is a top down tile based puzzle game. Some elements are buttons activated by boxes pushed on top of them and doors that open as a response. The player can also use a mechanic to "warp" to a different level, taking things with him to the other level and using these to solve the puzzle that's in there. It's not that simple, but I don't want to over complicate anything. I also have a lot more ideas but lets start with the core of the game.

I already implemented some of the mechanics as a prototype but it's too unorganized and I don't think it is worth coding how I did. For that reason I am thinking about game architecture. Multiple articles I read suggest that I should use a messaging / event system that connects between different systems of the game. Those could be the renderer, sound, game logic, physics, etc...

These systems are very general and I am wondering where are the game objects themselves? Do I have a separate system for the player, another one for the level elements? and one just for GUI? or are they all in one system?

Another aspect of the systems is the communication between one another. If I have a separate system for the player and for the renderer, then how does the renderer know where the player is? Having different systems seems logical at some cases but complete nonsense in others. so to summarize: Which systems are required for the type of box-pushing puzzle game I'm making?

  • \$\begingroup\$ Welcome to the site. I'm voting to close as too broad. Please search first, and ask narrower questions. I suggest to start by searching questions about the game loop. You might also find useful When should I decide what language and platforms I will use for a project?. \$\endgroup\$ – Theraot Dec 1 '19 at 20:13
  • \$\begingroup\$ As Theraot says, explaining all the principles by which game engines operate is too broad for this site, but if you edit your question to narrow it to an answerable scope, we can re-open it for answers. It sounds like your real question is all the way down at the bottom: "What systems does [my] game need?" I'd recommend forgetting about what "engines" do and focus on the needs of the specific game you're making. Describe for us how the mechanics of your game work, and we can help you find ways to express those mechanics in entities, components, systems, or other useful constructs. \$\endgroup\$ – DMGregory Dec 1 '19 at 22:43
  • \$\begingroup\$ @DMGregory thank you for pointing it out, I tried to make my question more specific about systems. \$\endgroup\$ – aradarbel10 Dec 2 '19 at 11:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.