Spelunk-King was a project that started with the very first con I attended as an exhibitor. My experience with Unity and game development was still pretty fresh, so I hacked the game together. The end result was a big pile of spaghetti that *technically* worked. The game didn't didn't run at all outside of the editor, and everything was one unexpected behavior away from breaking completely. After the project, I planned to do a great big refactor and I soon realized nothing short of a top-to-bottom rewrite would fix the mess. I shelved the project for about a year.
In the year after that convention, I worked on many projects, went back to school, and learned a whole bunch of new stuff about making games. When I began to ponder what I would do for the 2019 con-circuit, it became an obvious choice to rebuild and finally release Spelunk-King as a full game. In fact, before I started on the second iteration, the game had only ever been known as 'ETSU Con Demo 2018'. That's even how the git repo read.
My friends from the Tri-Cities Game Developers had put a lot of work in the assets and I was able to get away with making nothing from scratch on that front. All the assets were ported over directly, with the exception of the music. For that, a newer member of the group volunteered his sound design expertise in providing us with an excellent suite of new music.
Most of the play was built using Unity's own physics system, though I extended some of the collision functionality with raycasting to keep the players from bouncing through colliders and the like. One of my favorite systems that I implemented was the use of ladders. Our artist had made an awesome little ladder and I couldn't figure out how to use during the first development cycle. This time around, I was able to use a combo of raycasting and collision detection to allow vertical, gravity free player movement vertically.
I'm also very proud of the menu navigation. I was determined to have every part of the game navigable by controller. From navigating the start menu to the player select and level select screens. I used a vector2 and some nested switches to manage the navigation, which worked for both players in tandem.
As proud as I am of how the project turned out, I do have some things I would have liked to have done better. We started the project earlier in the year and the pace of early progress made me so optimistic, I ended up overscoping. I planned to do a short, single player campaign and a custom level editor. The latter was on the nice-to-have list, so I didn't lament its loss to any great degree, but I would have like to have gotten single-player done. I also had plans for adding a third playable character and alternate skins for the existing ones. This didn't really work out given the time required to wire animations in the editor. As close to the wire as the end of the cycle was, I felt comfortable cutting those things. However, I still have the art for the third character and the reskins and it makes me feel like we missed an opportunity.
Altogether, this game was a great experience. It's one of the more robust projects I have done to-date and I think it's probably the most fun. You can download and play the game here.