Astral Fantasy: Post-Mortem

pic01.png

Astral Fantasy is a cross between space shooter action and turn-based RPG mechanics, created for the compo.

This post will outline the general process of my entry's development and discuss what I've learned, for those interested. Hopefully my struggles and successes will be as valuable to you as they have been to me. View the timelapse for a quick visual overview of the development:

https://www.youtube.com/watch?v=jf-sCL38luk

BUILDING THE GAME

Unity, Blender, and GIMP were my tools.

I settled on the idea to combine realistic physics and RPG styles after some thought; I'm currently taking a physics course so I've always thought it would be fun to work with some kind of orbital concepts. Also I'm a fan of 90s Final Fantasy games. The idea of combining these "genres" seemed so ridiculous I had to do it.

NOTE: You'll see a pixel aesthetic already implemented below. I tend to like the palette customization that the shader provides, so I went for such a retro look very early.

1 - Orbital Physics Stuff

Modeling planet gravity wasn't hard; F = G*M*m / r^2 is the relationship I know best, so I started with that. After writing some planet classes, gravity worked fine and ships could orbit in the way I envisioned. Next I needed a way to draw the trajectory of moving ships. The trajectory prediction feature was adapted from this script, obviously modified with custom planet gravity in mind. It basically calculates a series of positions and writes them to a Line Renderer.

gifProg01.gif

This orbital trajectory prediction was probably the largest stump in the weekend, hitting me right in the first 6 hours, when I couldn't find a satisfying way to calculate trajectory quickly and accurately. I reached a reliable algorithm after dropping mass from calculations and only drawing new paths between player turns, seen above. Simplifying the factors allowed me to move on.

2 - UI and RPG Systems

Taking heavy inspiration from Final Fantasy, I started to work on the UI and turn-based elements of the game. This is also when I began testing playing with two ships at once, seen below.

gifProg02.gif

I am happy with how the UI turned out, although it probably took longer than it needed, cutting into other areas of polishing. Most time was spent putting the menu together and getting input working with it nicely. Despite this being far into the weekend already, I hadn't even gotten around to modeling ships, making unique weapons, or anything that should logically come before the UI. That might have been my biggest mistake.

3 - Design and Compromises

Time was running out, and I had an effective RPG system going, but little content. The last few hours were a rush to make ship models and enemy types; I had to cut features I hoped to have in the final game such as music, items and shops, limit breaks, and even a stat point system. It was very discouraging to drop all these RPG aspects that I initially wanted, since I knew it would negatively impact the gameplay. Thankfully, I didn't give up and I simplified healing and leveling to negate the missing features.

gifProg07.gif

When I finally submitted, the game world consisted of scattered planets with their own sets of enemies to spawn, as well as two ships to rescue and add to your party. When the player feels ready they can take on the boss ship to win. Each player ship had three weapons that would unlock as they leveled up, but stronger enemies would spawn to counter progression, making the space battles more intense and difficult.

CONCLUSION

In developing Astral Fantasy, I've learned ways to implement RPG elements as well as space-like gravity. I could use some improvement in a realistic scope, however, as I worked to the last minute unfinished despite hoping to finish early (which always happens). Most of my first few hours were wasted trying to get orbital trajectory prediction working perfectly, and in the future I will probably try to find a quicker solution to my problems so I could move on rapidly. I also know now that complicated mechanics such as orbital physics are probably better off as the only focus for a jam game, since I could have made that unique aspect possess greater depth.

I'd like to note that there is plenty of work that could have been done to Astral Fantasy post-jam to enhance the game, but following submission, I was too busy with school to work on the game at all, so I decided to leave it as it is.

Despite the errors along the way, I am glad I participated, sacrificing some school work time, because the new challenges I faced with the theme and chosen genres have given me valuable experience. There's still time to rate it:

PLAY (WebGL)

Thanks for taking the time to read, until next time!