Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OOP Game Design Theory

I've tried to develop a 2D game with C++ in the past using mere objects, however, in the design process I don't know how and what parts of the engine I should split into smaller objects, what exactly they should do and how to make them interact with each other properly. I'm looking for books, tutorials, papers, anything that explains the game engine design in detail. Thanks.

like image 649
TheMagician Avatar asked Dec 29 '09 22:12

TheMagician


People also ask

What are the 4 OOP principles?

Abstraction, encapsulation, polymorphism, and inheritance are the four main theoretical principles of object-oriented programming.

How is OOP used in games?

As stated earlier, OOP is helpful because it helps create maintainable code — code that is understandable, adaptable, and extendable. It also helps create reusable code by following the DRY (Don't Repeat Yourself) method: write the code once and then reuse it, rather than copying and pasting.

What is game design theory?

Game theory is a study of strategic decision making. Specifically, it is "the study of mathematical models of conflict and cooperation between intelligent rational decision-makers". An alternative term suggested "as a more descriptive name for the discipline" is interactive decision theory.


1 Answers

Mandatory reading: http://scientificninja.com/advice/write-games-not-engines

Why do you think you need a game engine? Write the code you need in order to implement your game. Modify it along the way as requirements change. And when you have a complete game, take a step back and look at what the result looks like.

You can't, and shouldn't, lay out a complete class diagram at the start. Sketch out a rough idea of what general components you want, and what their responsibilities should be, and then try to code it. Start out with the classes you're sure of. Sooner or later, some of them will get big and unwieldy, so you split it into multiple smaller ones. Sometimes, you may find that several classes are basically doing the same thing, so you merge them back together. Hopefully, sooner or later, you'll end up with a design that works, which is more than you'd get if you tried to design a game engine up front.

like image 167
jalf Avatar answered Sep 25 '22 06:09

jalf