Hi!
I've noticed that every time I try to prototype a game idea of mine, I end up very confused as to the general, basic, structure of the game in terms of program design.
If you have a set of basic classes, say some abstract "GameObject" interface, and subsequently classes implementing that, a "World" handling the state of your game, etc - What do you allow them to access, and how?
Say I have some class that handles Input for me. Do I want the "objects" of my game to be able to access that input? If so, do I pass an instance of my "main"-class to every object? Do I declare global, static, variables?
I am aware that this is a very bad and very very broad and general question, but I was just wondering how you guys usually define and implement the relationships between your basic classes, no matter what type of game you are writing.
On one hand, I'm trying to keep things as simple as possible so I can actually get a prototype done, but on the other hand there needs to be at least a bare minimum of well thought-out design in order to not let everything get messy way too soon.
(Oh, and just about the two "ways" of doing things which I mentioned above - I personally dislike both. But I also feel like coming up with something else requires a more well thought out design that just isn't fit for fast prototyping. I don't know.)
Any opinions, suggestions? Thanks!