"Update 1: Collision detection, motions, and weapons."
22 Mar 2023 - Tom McFarlin
Always get the latest posts
Sept’ 22 - Mar ‘23 progress summary
Video of the gameplay with current features.
10 months ago on May 23, ‘22 I began development on this project (Github commit link). 6 months ago, I wrote about my first phase of developing a game engine + game. Since
then, I’ve continued to work on this project, and am getting close to an MVP game engine. Soon
I will finish implementing the rest of my MVP game.
Since last update, primary features have been:
- Implement GJK algorithm in C++ + extensive testing.
- Define and read in motions with svg.
- Motions define arbitrary vectors (ex. hand, foot) as a function of time and relative to a base vector (the player’s location)
- Define and read in weapons with svg.
- Define collision points as function of time, relative to an equip_location (ex. hand, foot)
- Read in png data from SVG as a view over the collision points
- Use config files to add new motions and weapons
- Initiate attack, update motion and weapon positions with time. Stop and start attack.
- Use GJK to detect player weapon collisions with monster, inflict damage, trigger death events
- Determine attack direction according to user input.
- Remove monster from level upon death completing
Skills learned / refined since last update:
- GJK collision detection theory and implementation. This took a few months to learn and implement.
It was a dense topic to digest as a sleep-deprived second-time dad.
- Vector math. Dot, cross, all that good stuff.
- In general, these last months were mainly a grind in software design and iteration. Practicing my
profession.
If you have questions or comments, please send a reply on Twitter