Tom McFarlin Consulting

"Update 1: Collision detection, motions, and weapons."

22 Mar 2023 - Tom McFarlin

Always get the latest posts RSS Feed View Tom McFarlin on Twitter

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