Simple game designs
Archer game example.
You are an archer who shoots an arrow at enemy archer in a turn based fashion. Hitting powerups in the air will change the arrow and cause it to have bonus effects on hit.
My approach:
Sprites
No sprite sheets. Separate sprites for archer, bow, arrow and clothes. This allows you to change components look without having to redraw the whole sprite sheet, as well as allow combinations of different attire. Scripts will make sure they maintain relative transforms, unless your using Unity. Then children objects.(Although scripts needed for non-relative parent movements).
Player
Player will call a generic parent class or interface called Bow. Which has "Bow.Fire()". If you wanted melee weapons, then have more generic "Weapon.Use()". The child IvoryBow,BasicBow,CandyBow,BowOfStackOverflow will be in charge of implementing the virtual method. Which creates an arrow of a given type, ethier the string it is holding, or that the quiver is holding. On fire, set arrow type to basic arrow.
Quiver and Bow
If you want the user to have multiple arrows, a quiver which stores the amount of each in a dictionary, that returns zero if requesting a non-valid key. Which the player would pass to the bow
Non Quiver: Player could have the arrow reference, and pass it to bow when it calls Fire(string arrowType). However, alternative ways could be to have the parent Bow have the functionality to store an arrow, separating it from the Player completely.
PowerUps
Floating boxes which spawn at random locations, weighted random between the players. On hit, the current arrow creates an arrow from the Arrow Factory, replacing its current position.
Arrow Factory:
Given a value, creates the arrow. Can be given an existing arrow to transfer momentum. Given in as a reference because can be destroyed by the Arrow Factory. Or, to be safer, the arrow will call it on itself.
Gravity, Animations and Environment
Although I learnt alot from making my custom gravity and environment loading (Weighted random spawning of models, or eco systems)
"engines" before in University. Switching languages often caused me to re-write them more often than enjoyable. If you are looking to complete the game in half the time, I'd suggest Unity.
Gameplay change suggestions:
The mechanic on hitting the balloon powerup in the air is not always reliable, as it always has to be in the very few selection of options. (Mostly only one path to the target, sometimes more). Changing this so that arrow has the effect, and then your next arrow shot has the same effect would be a good balance of reducing the random and allowing the user to chose whether the shot is worth it or not.
Added Change: Powerups : Upon getting hit, a powerup knows which players turn it is, so it will pass him a string for the arrow type.
You are an archer who shoots an arrow at enemy archer in a turn based fashion. Hitting powerups in the air will change the arrow and cause it to have bonus effects on hit.
My approach:
Sprites
No sprite sheets. Separate sprites for archer, bow, arrow and clothes. This allows you to change components look without having to redraw the whole sprite sheet, as well as allow combinations of different attire. Scripts will make sure they maintain relative transforms, unless your using Unity. Then children objects.(Although scripts needed for non-relative parent movements).
Player
Player will call a generic parent class or interface called Bow. Which has "Bow.Fire()". If you wanted melee weapons, then have more generic "Weapon.Use()". The child IvoryBow,BasicBow,CandyBow,BowOfStackOverflow will be in charge of implementing the virtual method. Which creates an arrow of a given type, ethier the string it is holding, or that the quiver is holding. On fire, set arrow type to basic arrow.
Quiver and Bow
If you want the user to have multiple arrows, a quiver which stores the amount of each in a dictionary, that returns zero if requesting a non-valid key. Which the player would pass to the bow
Non Quiver: Player could have the arrow reference, and pass it to bow when it calls Fire(string arrowType). However, alternative ways could be to have the parent Bow have the functionality to store an arrow, separating it from the Player completely.
PowerUps
Floating boxes which spawn at random locations, weighted random between the players. On hit, the current arrow creates an arrow from the Arrow Factory, replacing its current position.
Arrow Factory:
Given a value, creates the arrow. Can be given an existing arrow to transfer momentum. Given in as a reference because can be destroyed by the Arrow Factory. Or, to be safer, the arrow will call it on itself.
Gravity, Animations and Environment
Although I learnt alot from making my custom gravity and environment loading (Weighted random spawning of models, or eco systems)
"engines" before in University. Switching languages often caused me to re-write them more often than enjoyable. If you are looking to complete the game in half the time, I'd suggest Unity.
Gameplay change suggestions:
The mechanic on hitting the balloon powerup in the air is not always reliable, as it always has to be in the very few selection of options. (Mostly only one path to the target, sometimes more). Changing this so that arrow has the effect, and then your next arrow shot has the same effect would be a good balance of reducing the random and allowing the user to chose whether the shot is worth it or not.
Added Change: Powerups : Upon getting hit, a powerup knows which players turn it is, so it will pass him a string for the arrow type.