Okay, so I worked on this and have a solid template in progress for 2D vertical shmup games.
The template has the following implemented:
* Made with AppGameKit logo splash screen fades in, holds a bit, fades out
* Title screen image fades in
* Title screen implemented with options to Start Game, display the Info Screen and exit the game
* Info Screen Fade in, wait for exit key press, fade out back to Title
* AssetManager to load sprite images from atlases into object specific arrays (playerimages, enemyimages, bulletimages, collectibleimages, etc) as well as create a color image for particles and all purpose color image for HUD usage.
* PlayerManager Init(), Update() including state management for Spawning and normal play. Movement and shooting is implemented.
* BulletManager Init(), Spawn(), Update() with state management and an Impact() function that is called by the CollisionManager when a bullet hits something
* EnemyManager Init(), Spawn(), Update() with state management and an ApplyDamage() function that is called by the CollisionManager when an enemy is damaged
* CollisionManager that checks for player bullets hitting an enemy and calls the BulletsImpact() and EnemiesApplyDamage() functions for these objects
* ExplosionManager with Init(), Spawn(), Update with state management for managing AppGameKit Particle System based explosions with ability to specify the size of the particles
Now in practice it is not much of a game at all but that is not the point. My goal here is to just create a template to jumpstart development of a 2D Vertical Shootemup in AGK. So immediately having all of this available is actually quite a time saver. And again since there is very little game specific logic implemented and instead it is mainly all of the boiler plate code we need to write just to get the structure in place to manage all of the images, sprites, states, collisions, and so forth.
The template project comes with the AppGameKit logo screen, the Title Screen, the Info Screen, the sprites atlas image and the sprites subimages text file.
So I can just edit the Title Screen and Info Screen images as I see fit for making an actual game.
I can edit the sprites atlas image to create the player images, enemy images, bullet images, collectible images and so forth.
I can build on to the code implementing the specific game logic.
And when I say "I" can do the above I mean you, whoever can do that. I have put some time into things to simply customizing what is already implemented such as the fades for example if a person wants to change the colors of the fade on the Made With AppGameKit logo, Title, Info and Gameplay it's as easy as editing this to use the colors you want to use...
function DefineFadeColors()
// orangish gold 255,160,0 change these values as you wish
FadeLogoColor.r = 255
FadeLogoColor.g = 160
FadeLogoColor.b = 0
// white 255,255,255 change these values as you wish
FadeTitleColor.r = 255
FadeTitleColor.g = 255
FadeTitleColor.b = 255
// blue 0,0,255 change these values as you wish
FadeInfoColor.r = 0
FadeInfoColor.g = 0
FadeInfoColor.b = 255
// black 0,0,0 change these values as you wish
FadeGameplayColor.r = 0
FadeGameplayColor.g = 0
FadeGameplayColor.b = 0
endfunction
So at this point when the Template project is run the AppGameKit logo fades in and out, the title appears and...
So hopefully this will help to clarify what I am building here. Just a base project that already has all of the boilerplate code implemented. So a person can immediately start at this point and work on their actual game. Start on the fun bits. The important parts that make one game different from another game.
TI/994a (BASIC) -> C64 (BASIC/PASCAL/ASM/Others) -> Amiga (AMOS/BLITZ/ASM/C/Gamesmith) -> DOS (C/C++/Allegro) -> Windows (C++/C#/Monkey X/GL Basic/Unity/Others)