- Home /
How to approach different game modes
My game has a set of different game modes (e.g., kill x number of enemies, collect x number of items, survive for x amount of time), all taking place in a set of maps, so that each map will need to be able to handle whichever game mode is chosen.
I don't quite know how to handle this though. I'm currently using a GameController object to keep track of kills and time remaining, etc. And I could just put a bunch of if statements in there like this…
if ( gameType == "Kill" )
// Check if number of kills has been reached
else if ( gameType == "Survive" )
// Check if time limit has been reached
else if ( gameType == "Collect" )
// Check if player has collected number of items
etc...
But that seems wrong and ugly. For instance, those checks would all need to run in Update(), whereas most of those checks really only need to occur whenever an enemy is killed, or if an item has been collected, etc.
Just wondering how you guys have dealt with this kind of thing?
Answer by darthbator · May 24, 2013 at 10:22 PM
I actually use what could be viewed as a slightly more elequent version of what you're doing. Generally for stuff like this I'll setup an enum. That's not really necessary I just think it's easier to read and expand upon. The only other thing is you can switch on the "mode" as long as it's an integer or string. It's not really "better" it just looks cleaner.
IMO it depends how much functionality each of those conditional blocks have but you might want to look into checking that only once (like when it starts) and then activating another component that contains only the logic for that particular game mode. Gives better encapsulation but can also be more confusing IMO.
Thanks for the reply darthbator. I'm intrigued by the second part you mentioned, about doing a check on launch and activating a component specific to the selected game mode. I've thought about this already but I can't figure out how to make that connect. Is it possible to store a reference to a component when you don't know script type that component will be until runtime?
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Need help with a Borderlands style proficiency system. 0 Answers
In-depth Animation and Audio guide for Enemy AI? 1 Answer
Int and Javascript help 2 Answers