Closed RCramiro closed 10 years ago
I went ahead and added player-ID tracking to every bullet. Now the game knows which bullet belongs to which player, and it knows which player(s) is/are responsible for each kill (so that it knows who to assign points to). The game is completely ignoring this extra information for now (all points go straight to player 1's score regardless of who earned them), but it will be very useful when we get around to fully implementing multiplayer mode.
It seems like the rest of the team prefers giving players separate scores, so we'll do that.
Should each player have their own score, or should everyone share a combined score? Moreover, what effect will this have on the game's mechanics and multiplayer mode?
The game would probably be more enjoyable if each player had their own score (since this would foster competition), but that would require some additional overhead, as the game would have to keep track of which ship each bullet was shot from. Either each bullet would have to record a player ID (which would take up more memory per bullet), or each player would have to store a separate list of bullets (which would make bullet-collision far more messy and potentially slower).
A shared score is far easier to implement (all player bullets would be tracked as a single list, and any enemy deaths would increment a single, shared score). However, many players will likely find this boring; SHMUPs are score-based games, which make the competitive by nature. We would have to carefully design the game with cooperative play in mind (then, having a shared score would make perfect sense).
In order to get the best of both worlds, I suggest we base the game around co-op play and use a shared score, but store a player ID in each bullet (only 3 bits are needed to differentiate between 4 players, so the player ID could easily be stored in the top 3 bits of one of
Bullet
's existing variables, thereby avoiding the need for extra memory). Doing this would allow us to create rich and meaningful player interactions by implementing things such as charged shots and baiting. Imagine a big, complex enemy that homes in on the last player that shot it, and can only be damaged with charged shots. In order to take out this kind of enemy, players would be forced to work together (a practice which would be further encouraged by the use of a shared score): one player would "bait" the enemy by pelting it with weak bullets (causing it to give chase) and would keep it busy while another player is charging his shot. The game would quickly get confusing with too much of this co-op chaos, so only bosses and minibosses would exhibit such complex behavior. The rest of the game could still be a free-for-all consisting of dumb, predictable enemy types, but these complex teamwork-based bosses would make players feel like the game was a unified cooperative experience.What do you guys think?