Game design patterns and architecture

Hey guys, I would like to see new content about game design patterns, architecture and best practices in real AAA projects , p.e. SOLID principles, events and delegates, performance optimization…

An idea could be to refactor the existing code produced in the Unity 2D and 3D with these improvements.

I think that would be an interesting idea.

In my 6 years in this industry I’ve learnt a lot about game design and I can tell you this, game design is pretty similar to cooking; you need to understand the basics, constantly try new things, try to replicate things you loved, create your own stuff, get feedback from people.

Game design is more about practice than patterns, there are some “rules” like keeping things as simple as possible but you can bend them with enough experience. There are no rules or patterns set in stone because each game needs it’s own flavor to stand out from the crowd, that you can’t achieve if you follow a pattern or formula, what you are doing there is following someone else’s recipe to create a particular dish, but believe me, even if you follow the recipe exactly as the book says you’ll end up with something subpar from the original no matter how hard you try.

The best way to learn about game design, at least from my point of view, is by creating table top games. The best example I can give to support my claim is when you try to modify an existing game like Monopoly:

  • Remove a dice: The game becomes too slow and the last turn player will lose pretty quickly.
  • Add a dice: Everybody will have too much money from the start because getting to the start will be fairly easy, also the first part of the game becomes absurdly unpredictable, it will last waaaaay longer usual.
  • Remove a property from the board, play as if that property wouldn’t exist (jump it): I don’t want to spoil this because the end result is actually pretty hilarious I suggest you try that out but here’s the outcome: one of the players will start building hotels waaaay sooner than normal, the player will become some sort of boss, this isn’t always the case since someone else can buy the other property but the game will start to move around those particular properties which is also hilarious.
  • Remove one safe spot: The people that own the properties on that lane have a seriously increased chance to win.
  • Half the money from the start: This is just plain boring.

You get the point, each thing is perfectly design to make the game fun, if you modify something the game turns into something completely different, that’s why making board games is so hard and that’s why you’ll learn a lot from designing one.

If you want to try this I really suggest you modify a game like UNO, no matter how you modify that game the result ends up being pretty fun. A simply rule that makes the game hilarious is to skip the next player after a Reverse card is used.

1 Like

Hi Yee, I got your point.

It’s pretty clear that each game will have its own design but my idea came from watching tons of videos (p.e. Jason Weimann or Brackeys) explaining what principles and concepts could be used when you are developing your own game.

SOLID principles are the way-to-go when developing most of the AAA games, but unfortunately all the projects in the 3D course don’t really apply these concepts. Classes are huge and messy.

Therefore I submitted this idea to Ben and Tristem: they could “reuse” one or more of their projects and build it following those principles.

Anyway, thanks for your reply, appreciated!

I see what is going on here.

If you are looking for clean code check out the Unity RPG courses (both), they talk about more advance stuff and the code is really well structured thanks to Sam, he is a code wizard. He talks about patterns, how to implement them without creating circular dependencies with interfaces and other tools, he uses namespaces to structure the code and a lot more good and amazing practices like preventing racing with lazy values and more code wizardry. Really, check that course out.

In the other hand, people think that game design has something to do with coding, it doesn’t, this is a common misconception. Brackeys and Weimann are very knowledgable Unity and code wise, but that’s not game design.

If you want to learn more about game design I recommend watching the following videos and channels:

Game Maker’s Toolkit - https://www.youtube.com/channel/UCqJ-Xo29CKyLTjn6z2XwYAw - Check out his Boss Keys series, your mind will be blown.

Rick’s Youtube Channel! - https://www.youtube.com/user/RickDavidsonChannel - Yes! Rick has a youtube channel which is great. He talks about game design and other useful stuff.

GameDev extras - https://www.gamedev.tv/courses/extra/lectures/14483959 - In that particular video Rick talks about the 5 most important “principles” of game design.

2 Likes

I love the analogy of game design as cooking. I love cooking and I 100% agree with you. There’s something I’ve noticed when cooking and baking. It’s not just about following the recipes but it’s about doing everything with passion and being okay with making changes and experimenting. It’s okay to go outside the box.It’s ok to do something scary and outside your comfort zone. Take a chance with your idea and who knows maybe it will be exactly what your game needs. Your detailed response was wonderful and I wanted a lot. Also I love how you understand what true game design is and even posted links of YouTube channels to help drive what is game design. Keep up the awesome discussions.

1 Like