Lucas Govatos shared the details of his finished puzzle game Epitasis and its development: world-building, music management, lighting, skybox, and more.
Since I was first featured at 80 Level back in January of 2017 a lot has happened: I finished the development of Epitasis, started classes at a new college and much more. The biggest hiccups were always things outside of development like having to take time to prepare for exams, work an actual job, and so on. I’m happy the development of Epitasis is complete, but this is really just the beginning for me. I’m already prototyping new game ideas for worlds I’ve been wanting to explore for a long time.
|“After discovering an ancient portal, you suddenly find yourself among the remnants of an ancient alien civilization. Technological relics, sprawling ruins, and cryptic puzzles are all that remain. If you are to learn their secrets, you must unearth the fate of the race that called this world home.”|
Epistasis: Building the Game’s World
Sketching out level layouts was a huge part of the creation process and I did a lot of blockouts of the levels, to begin with. When I first started the production of the game, I made a general layout of the entire game’s world, then started the pre-production of each level. At that point, it was pretty much just creating, refining, and polishing each level at a time.
The game brings a sense of hiking, discovery, and exploration throughout the game’s world. The environment art here essentially revolves around a couple of concepts: large sprawling vistas, clear level layouts for the player to traverse (usually large natural sections), etc. Then, they are all “cut” by harsh angles from alien structures and geometry that breaks it all up and creates focal points for the player to travel to and explore. Aside from all of that, I try to use unique color palettes to define each of the four major worlds for the game.
The game reuses a lot of assets over and over, mostly for natural scenes and some elements to pretty up the alien architecture. However, for the majority of both the blockouts of the scenes and actual building of the base geometry for the alien structures I used the BSP tool in Unreal! After constructing them and knowing I was happy with the geometry, I transformed them into static meshes. It’s not necessarily the best technique but in terms of iteration, it made creating the worlds and playtesting them fast (for the most parts).
There is also a ton of tiny details sprinkled throughout the game’s world. I build some custom vegetation materials for things like the grass where the grass matches up with the terrain color below, and also some vegetation that changes color based on its height in the world. Rain also has some additional parameters like rain intensity that can affect how hard the vegetation gets affected by the wind. Overall, Epitasis is a game largely about subtlety and atmosphere, so there’s just a ton of small subtle details sprinkled throughout the game’s world to help immerse the player in its atmosphere.
For the music, I built a unique system to help turn the long ambient tracks into even longer flowing ambiance. We tried multiple traditional techniques at first (such as FMOD with crossfading layers) but we were running into multiple issues with both music cutting out and interrupting while transitioning into new levels. These both could have been fixed but the implementation of the plugins like FMOD is quite heavy for something relatively simple we wanted to do, so we made our own music management system.
Thus, what we ended up doing was using a “Queue Structure” for the music manager. The level designer (me) can add/script music into the queue depending on various events happening in the game world, then the entire queue gets played. When the music is added, various parameters are also used, such as how long to fade in and fade out (and crossfades between tracks). The musician would then take these 4-5 minute long tracks and break them into 60 or so “stems” – essentially partial versions of the full track with various layers enabled or disabled, ranging anywhere from 30 seconds to two minutes. The queued music can be cleared and new music added along the interrupted tracks to play new ones if something sudden happens.
Overall, it is a good system. We took time to implement it, and I hope to release it at some point either for free or a very small price on the marketplace after I do some additional fixes.
Lighting & Skybox
The lighting is fully dynamic and uses distance field shadows. Lighting throughout the game’s world also uses fully dynamic lights. All of the colors and such are implemented in the skybox blueprint I built.
The skybox is essentially one big blueprint that includes the moons, clouds, weather effects (rain, fog, etc.), sun, and all the parameters to control these throughout certain points of the day (including colors). I made a nice default setup for the colors for each main world of the game and slightly modified it where I wanted. The entire blueprint runs on a single timeline that controls the length of one day and gets split into multiple segments for each part of the day (e.g, morning, mid-day, evening, night, etc.). For each day it continually lerps through all the parameters that are set up. Many of these parameters are also thrown into a material collection to be used throughout other segments of the game (for example, rain. Knowing the rain intensity we can set how much the wind affects vegetation in the world). Weather effects like fog, rain, and overcast clouds are all randomized and happen while the game world continues its time of day cycle.
Feedback & Recommendation
The production lasted quite a while, but most of it was done in my free time. I think the biggest issue I ran into was indecisiveness. Making decisions while building games can often feel like a hard choice, especially when it’s done in your free time during which you don’t want to waste any energy. Here, I’ve found that just sitting down and trying solutions to whatever problem you’re currently in front of is better than waiting and thinking about it. Many aspects of the game development can be traced back to that issue, and while the finished product has become something I am truly happy about, I could have certainly sped the process up.
In terms of efficiency, I’d recommend building more tools for your game! Every game has unique challenges to overcome but 90% of them can probably be automated. Spend the time to automate your process and I’m sure it will help. I’ve already begun some prototypes for my next project and the first thing I started with was a few tools to help get the job done faster.