Game Dev Engine #7. Mouse Pointer.
2023-07-19. Showcasing mouse control via pointing and multi-button clicking. The mouse has many methods of providing input, so I will be making a few small games to showcase the various methods. The windowing system is already showcasing click & drag, but I figure showing it within a game actually shows its use in a game development / usability setting. The windows are part of the engine, where as a sample game should have easily consumable mouse input relative to the game itself (in this case, the game lives inside of a window, and doesn't care about the higher level OS-style functionality).
My game of choice is a clone of Missile Command, which I have never played, so this doesn't capture all of the example enemy types -- particularly the enemy that drops bombs, and the smart targeting missile that avoids explosions. But I did add the following features:
- cities and silos are procedurally generated
- cities act as missile generators at level end
- you obtain one new city and one new silo at level end, or bonus points if none needed
- silos have no 10 missile limit, so don't waste early
- missiles can split into 3, and can do so multiple times
- difficulty ramp up includes: more missiles, more splits, faster missiles
- middle silo fires faster missiles
- explosions cause chain reactions, which can help efficiency
- terrain is procedurally generated, but I don't change it, as I want to keep the sense that you're in the same country / county of cities each level
- end of level: cities and silos produce more missiles
The lines are draw by the GPU as a "sprite", thus some floating point inaccuracies cause flickering. I had considered rendering this as a single (not double) buffered bitmap screen, like the original arcades (e.g. Missile Command, Defender, Robotron: 2084), which this engine allows. But there is no natural palette indexing, and I didn't want to complicate things with pixel shaders to replicate the palette cycling. I may try this for a Defender clone though.
Finally, this game offers an interesting challenge for Gamepad based input. Some great ideas to follow. If you can make this fun with a game controller -- then I think that's a huge win. It would open the floor to couch co-op multi-player.
Hope you enjoy!
Playlists:
--------------
- Xona System 8: https://youtube.com/watch?v=PqFQv60p-0E&list=PLjnbT4UISq0YwheLThIhm3LDxIkwpmKeb
- Voxel: https://youtube.com/watch?v=uadGU-stF-w&list=PLjnbT4UISq0bQF1g85tE9jTrKfEtdRYlY
- Ray Cast: https://youtube.com/watch?v=SkaPYZOKPQg&list=PLjnbT4UISq0YcFtRFjFQqK0g6ONNCtrvY
- Graph-All: https://youtube.com/watch?v=kLSc7bZW2Bs&list=PLjnbT4UISq0YLgynFSpLzml4BMC6TDZL2
- Scroll Shmup: https://youtube.com/watch?v=l9bIYkZepPo&list=PLjnbT4UISq0Y_7IAN_zUzxgZnfhXxo_0Q
- Road: https://youtube.com/watch?v=rA4g4VX7ys8&list=PLjnbT4UISq0bnfd1RC3M4PgTgkmhlkikV
- Arena Shmup: https://youtube.com/watch?v=VKjiuq437t0&list=PLjnbT4UISq0adw__Y9B2eXA0LL35TyORU
- Wave Function: https://youtube.com/watch?v=ngctVd9VK8I&list=PLjnbT4UISq0Y8vYnrSauHkBKgOBHXFFdf
- 3D Polygon: https://youtube.com/watch?v=0Qq_euAMP48&list=PLjnbT4UISq0YyjqBGG8Q34Kng5gqDmYrT
- GW-BASIC: https://youtube.com/watch?v=QMQJ7o8e-GI&list=PLjnbT4UISq0bMjb81xFBIWOLhBKFCVkuB
Websites:
---------------
- GitHub: https://github.com/JDoucette
- Blog: http://thefirstpixel.com
- Studio: http://xona.com