Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Scream Jam 2023 | Post-Mortem: Esoterica

I. Oh Where to Begin...

I honestly was not expecting to even be doing this sort of thing. A few weeks ago, when I first caught wind of Scream Jam, I was on the cusp about whether I would be doing it at all. I had never done a game jam, had zero experience working on games, didn't know anybody, but I had one goal: being able to finally take the leap and get some audio and music implementation under my belt. I decided to make a post in the community page of the jam to see if anybody was looking for someone to do audio... crickets. I did the same in the discord... crickets. Definitely seemed like there was a surplus of audio people in comparison to actual devs which is not actually something I expected. 

After a couple days of combing through LFG posts in the discord I began to lose hope. The deadline approached and I didn't have a single prospect for being able to join the jam as I had initially intended -- purely doing audio. I sat upon this as the start drew closer, trying to think if there was any option I hadn't already exhausted. Finally, the day the jam started, I came upon a solution. I'll just do it myself!

At that point, I knew I had to come up with a plan... and fast! Booted up Trello, broke out my iPad for sketching, opened Godot, and got to work.


II. Origins of Esoterica & A Noob's Process to Game Dev

Pre-production

Initially, the plan for Esoterica was pretty vague. I knew I wanted to do something first-person, something to do with audio, and I had to somehow incorporate a sense of uneasiness rather than pure horror or cheap jump-scares (doesn't mean I won't do it in the future). I didn't really have any clue where to begin, so I just started with the Kenney First-Person shooter starter kit and took a look under the hood to see what was happening. I already had a bit of experience writing GDScript from tutorials, and I am sure experience writing python tools plus years of some random languages here and there, so I was off to an okay start just tinkering away.

I got to work messing around, trying to create an environment for my player when I hatched an idea:

What if the player is trapped in some sort of small space (like iron lung) told to do some sort of menial task like scanning radio frequencies for anomalies (similar to Voices of the Void). As the game progresses, the anomalies start to cause events in the play space, creating a sort of constant tension in the back of the players mind -- combination of claustrophobia from the small playspace, eerie sounds from the radio waves, spooky events that threaten to ruin the players progression

This was the first clear idea I'd had up to this point but the first day was pretty much over. Pre-production done I guess?

Production

With idea in hand, I got to work planning out how the next few days were going to go. This is where good ol' ChatGPT really came in handy. I told it what I was doing (making a game), I had now six days to do it, and I needed a project outline broken up into days of what needed to be accomplished in order to achieve the goal of this game. I had given it specifics about the project -- what the setting was, what the idea was, the games that were inspiration to it, the style I wanted, etc -- and it spat out the most boring project schedule I had ever seen but it worked!

I got to work and tried to follow the schedule as best I could. I set up the room the player would inhabit (literally a box made using the godot plugin Cyclops). Got to work removing unnecessary features and assets from the FPS template I was using. On and on and on just trying to stick with the schedule as best I could... Buuuuuut I didn't. There were two days where I got REALLY sidetracked. The first was on day 2 after setting up the cell environment. I spent the entirety of that day hacking away at a screenspace shader trying to give my game the PS1 look. A whole day wasted on something that probably could have been put off to the end and would have been a breeze to understand by that point. Nope... instead, I pushed back audio thinking how much of a breeze it would be to implement since I do come from an audio background (big mistake dummy).

After figuring that out, my next setback was the event system. How in the heck was I supposed to make a dynamic system of events that would add tension to the gameplay loop? I came up with the idea that the events should be some sort of shadow monster that slowly creeps in and begins to effect the electricity (one of the main things powering both your radio and console) and the player's sanity. The system should also scale with how well the player is doing, ensuring that there is always a level of tension. THIS WAS WAY TOO AMBITIOUS! I have no idea why I thought this was a good idea, rather than creating a set of scripted events. 

The first issue was figuring out how to get the events to be dynamic. I settled on a set of random timers that would dynamically update the further along the player got, but MAN godot timers took a while to figure out properly. I thought it would be so simple, but I ran into a ton of issues: timers overlapping and resetting each other, timers breaking upon trying to free them from the queue, removing child nodes, adding child nodes, hard crashes... there were so many issues. A full day was wasted attempting to get these working but I think I finally figured it out. Really great learning moment, but a whole day wasted in the pursuit of completing an overscoped idea.

I am sure there were more setbacks but these two really screwed up the pace of development and bled into creating an imperfect player experience. Instead of focusing on polishing things within my strengths -- audio and UI -- I chose to spend a massive amount of time learning unnecessary methods and subsequently rewriting walls of spaghetti code just to make marginal improvements on systems. 

Post-Production

All of this to say, I worked up to the wire and was implementing features right up until the deadline. HUGE MISTAKE DUMMY! I didn't have enough time to playtest through every possible interaction the player could have. The game was completely broken upon initial release and would crash once the first event was completed (due to those pesky timers I mentioned earlier). As a result released an initially broken build which had to be remedied the following day with another full 8 hour coding cleanup session just to get things working.

The mis-prioritization of time definitely had a negative effect on the initial vision for the game. What should have been a very simple, claustrophobic experience became bloated with unnecessary features in place of features that were absolutely necessary for the player experience -- tutorial, interaction hints, polished UI/UX, polished audio. 


III. Let's Condense This A Bit

What went right:

  • The game was released! Honestly that's an achievement unto itself that I did not expect to achieve
  • The basic gameplay loop, no matter how crude currently, exists. The player boots up the radio, searches for signals, records and then reports the signal, repeat, manage events and not lose yourself to insanity
  • Visual style is pretty great honestly. Everything is cohesive and works well with the PSX look. There could and will absolutely be improvements but it is a great starting point.
  • The correct audio that exists is pretty well polished (will come back to this in what went wrong)
  • The timers for events are working! Took way too long to get them working but now that they work the system is pretty cool. Absolutely will need to be expanded and made more complex.
  • The radio system is pretty interesting. It's rather simple in terms of how it works, but it is pretty close to how I want it to work in the final game (ignoring the fact that the player has no idea what an anomaly is or where they are on the frequency spectrum)
  • My reworked FPS controller based off Kenney's template is a bit more robust and is much less prone to strange bugs

What went wrong:

  • The game is really not in the state I was hoping it would be in by the end of the Jam. 
  • The interactable  items system is super boring. At the moment, the player can just spam all the items within an event area and quickly reset the timer.
  • The sanity system, which was working just prior to upload, magically broke. Not totally torn about this though because I would like to completely rework this mechanic.
  • THERE ARE NO HINTS, TUTORIALS OR TIPS FOR THE PLAYER. This drives me absolutely insane honestly. I had everything planned and ready to implement. Due to poor time management I wasn't able to fit any of this in before the Jam ended. Really unfortunate because this was the number one complaint from players. Had I dedicated just a little bit more time to this I could have increased the average enjoyment of the game dramatically.
  • The audio, to me, someone who listens to a ton of audio, is absolutely atrocious. The temp sound for interactable items is so distracting, some of the sounds that exist aren't polished, the effects within Godot are passable but they really aren't anything to write home about. (The whole audio engine will be swapped to Wwise now that the Jam is over)
  • Overscoped, bad time management, unnecessary code, lots of time wasted learning systems.

IV. A Lot to Learn...

It's honestly rather amazing the feedback I received all things considered. The main point of criticism regarding the game was THE THING that I myself found to be the largest failure of this project -- lack of UI/UX feedback for the player. Players who made their way past these issues actually had a fairly good time and were rather intrigued by the setting, stress, and claustrophobia that the game produced. In addition, I need to make sure that the sound is polished to the standard that I would come to expect, given that I come from an audio background. The repeated temp sound from the metal door really brought people out of the experience.

Despite this, the project actually managed to do pretty well! Much better than anticipated:

Coming out in the Top 20 for the sound design category was really a shock! I am very pleased but know I can do way better and will definitely make it a goal to show off my chops in future projects. Additionally, coming out in the Top 20% for every other category is truly amazing. I know I can do better though. The issues and bugs that plagued this demo truly detracted from the experience of what could have likely been at least in the Top 50 of every category, including Best Game.

With all of that said, I have to remind myself that this is my FIRST project ever. I have wanted to make games for a while, dabbled with various engines, taken tutorials and courses, but I had never actually sat down and just made something from start to end. It was a wonderful experience and I am excited to continue working on Esoterica and to join other jams in the future to expand my skillset.


V. Let's Wrap This Up, Shall We?

For a first game ever, this is truly an incredible result. I am very thrilled that I made the leap to charge guns-a-blazin' into the world of game development solo. I know there is a lot to improve and a metric crap ton more to learn, but with time and dedication the finesse will come. It took me about 10 years to really GET music/audio and I still learn new things every day -- experimenting and trying to do something new with each subsequent project. Mastery takes time, but I am committed for the long haul.


If you would like to follow along on this grand new journey...

Please feel free to join the new Small Hours Discord. This is a place where game development, music, art and a whole ton of other things will be discussed -- you can also just come hang out and say hi :) I am always open to chatting!

Small Hours Discord: https://discord.gg/xTH5W4Wmbe


I have also opened up the development Trello to the public so you can follow along and give suggestions of what you would like to see in the game as it progresses! I have a whole ton of ideas and will be gradually adding things as the game progresses.

Esoterica Trello: https://trello.com/b/QeVKrGXe/esoterica-dev-tracker


You can also follow along on any of my socials or buy me a coffee :) gonna be posting a lot more regular content about music and games!

Buy Me A Coffee: https://www.buymeacoffee.com/engon

TikTok: https://www.tiktok.com/@jacobsirvin

Instagram: https://www.instagram.com/jacobsirvin/

Threads: https://www.threads.net/@jacobsirvin

Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.