Alchemic

LD 41

Postmortem: Unholy Holes

title.png

Play the game here: https://ldjam.com/events/ludum-dare/41/unholy-holes

The rating period ends in 3 days, so I figured now would be as good of a time as any to write a postmortem.

Getting Started

When the theme was announced, we got together with some friends on Discord to brainstorm ideas. At some point the idea of "golf + tower defense" came up. It was the least-hated idea, and since we were running out of time to decide on something better, we went with it.

Day 1

The majority of the first day was spent getting my teammates accustomed to the engine. Before this, they had very little experience with C++ or Lua, and had never worked in a data-oriented engine before. The learning process went a lot faster than I planned for, and we had a very ugly but functional protoype on Saturday.

saturday.png

There is a tower and some bullets and enemies in this screenshot, but at this point we were using a single sprite for everything.

Day 2

Sunday went even better. We all knew how to use the engine at this point, and we cranked right through to the finished game with few issues. We only had one level, and no audio or polish at this point, but most of the mechanical stuff was done.

sunday.png

This is when we encountered our first major bug. At low framerates, the ball would overshoot its target, and keep going forever, preventing the player from placing any more towers. It was a bit of a mystery at first, but it ended up being a simple fix.

Halfway through the day, a teammate had his laptop's charging cable get fried, so he had to switch to a spare laptop we had laying around. This laptop wasn't as powerful as his other one, so his build times took a lot longer.

Final Day

We all had work on Monday, so we only had a few hours before submission to polish the game.

Somehow, we managed to get a few more levels made, plus music and sound effects, and proper menus. All of this was committed right at the deadline, and we spent a few more minutes packaging and uploading the final build.

However, this is also when we discovered our second major bug. Sometimes, the game would crash. Hard. Usually it would bring down the whole browser tab, and sometimes the entire browser.

At this point, we didn't have the native build working, so debugging this issue was hopeless.

After going through all our code line-by-line, the issue was finally found and resolved. It was a simple case of trying to remove an item from a list that did not contain the item. The crashes were so severe because this bug was affecting the C++ runtime, and optimizations must always be enabled for the web build.

What Went Right

  • The Lua scripting layer worked very well, and we were able to write most of the game logic without touching the C++ side.
  • The data-oriented design allowed us to make rapid changes to the game logic with confidence, and we rarely had any major bugs.
  • Pyxel is a fantastic tool. We were able to use it both for animations and tilemap editing.
  • My teammates were able to learn new languages and a foreign paradigm in a single day, completely shattering my apparently low expectations.
  • Meeting in person helped a lot with the learning process, and we were able to resolve bugs very quickly.

What Went Wrong

  • The navigation paths for each level had to be written by hand. It would have been much better to have a tool to do this instead, but we didn't have time to find/make one.
  • We weren't able to give the enemies types different logic, so they all act the same despite having different sprites.
  • We didn't have the native build working during the jam, so we weren't able to use a debugger. The native build would also have given us faster build times.

Conclusion

Overall, things went extremely well. We weren't able to get all of the planned features in, so we're working on a small expansion with some additional polish and fixes. Please look forward to it!

Ludum Dare 46

Post-jam Version

heartache_postjam.png

I decided to make a post-jam version of my game because I wasn't able to get a lot of my core ideas implemented in time for submission.

This is the same gameplay at heart, but with several tweaks and additions:

  • Highscore!
  • New "mitosis" currency that is used to buy cells.
  • Much better pathfinding and AI target selection.
  • Much cleaner difficulty curve with threat level display.
  • Many other minor balance changes and bug fixes.

The post-jam version is accessible on the same page as the jam version. There is now a menu on page load to select which version you want to play.

Submission page: https://ldjam.com/events/ludum-dare/46/heart-achenascension

Game page: https://alchemical.itch.io/heartache-nascension

Ludum Dare 47

I liked the theme!

This was a tough theme to come up with a unique idea for, but I think we ended up with something really neat!

We worked right up until the deadline and spend the submission hour frantically editing our jam and itch pages.

A lot of people didn't like the theme because it was too difficult/specific, but I think themes like that lead to the most interesting games.

Please check out our game and leave feedback!

barbarian.png

Ludum Dare 48

Lets goooooo

This one's gonna be super hype! We're gonna shatter the earth with this jam!!! All great themes, don't care what wins, I'm ready to let loose!

Red Stranding Post-mortem

Well this LD was certainly a ride!

Intro

Our game was a Strand-like, meaning that players can partially see each other's changes to the world. The core gameplay is simple open-world exploration, arranged in a highly linear fashion moving from north to south.

3f16d[1].png

Scoring

Check out our results here: https://ldjam.com/events/ludum-dare/48/red-stranding

We didn't very high ratings, and we think we know the reasons.

  1. We simply didn't finish everything we wanted. The game is very incomplete, and it's obvious while playing.
  2. The artwork is kinda ugly. We didn't have a lot of time to polish the graphics or sprites or anything.
  3. The new player experience is very poor. This is elaborated in the Data Analysis section below.

Data Analysis

Since our game connects players to each other via a database, we can see rough analytics about playtime and completion rate.

Note: We gave players the option to play offline, and some did choose to do so, so these numbers do not include those players.

  • 64 total players
  • 24 made it past day 10
  • 6 players (other than us) made it to the goal, Grandma's House
  • 22 players never made it past day 3

Day 10 is important to us, because that's when a player becomes maximally connected to the other players. It's a gradual process that starts with zero connectivity on day 1.

So, from these numbers, we can see that about 1/3 of all players likely never encountered another player's effects! Given that this is the core premise of our game, this is quite bad.

However, about 1/3 of all players did make it past day 10.

Special thanks to @ruruie, @cievers, @gcake, @wouter52, and @jitspoe for providing key feedback and testing the game to its full extent!

New Player Experience

Given the data above, and from watching people play our game, we can safely say that the new player experience was quite bad. We probably lost a lot of people early on, who never got to see the Strand-like features. Our ratings almost certainly suffered due to this.

So, what could we have done?

A way to showcase the game's features during the first minute of gameplay would have been nice. We have considered a few options:

  • Have an area near the starting house that always shows changes from all players, kinda like a shared sandbox area. This would give players a chance to try out the online features without breaking the game's balance.
  • Introduce an item to the game, available from the start, that boosts the player's connectivity rate to the maximum for a day. This would ensure that everyone trying the game for only a minute or two would get to experience the full effects of the online system.
  • Do a better job of explaining things in-game. Players who didn't fully understand the online system seemed to become simply confused whenever another player's structure became visible to them.

Cut Features

Time was not friendly to us this LD. We didn't meet a lot of our goals.

  • We were planning on having a much larger open world to explore. This was by far the most ambitious part of the project. This did not get finished at all. We completely ran out of time and had to implement the entire level in just a few hours.
  • We were planning on having more structures and movement abilities that would help traverse the landscape more easily.
  • Enemy AI was cut entirely, and the enemies just move straight towards you. This was primarily due to limitations in Godot's tilemap-based pathfinding support.

Future Plans!!

Yes, we're planning to continue working on this game.

In fact, we've already started working on our first post-jam version, which we plan on releasing in the near future.

Here's a sneak peak of the updated visual style:

redemstranding/empreview.png

If you are interested in playing this post-jam version, please follow the itch.io page, and join our new Discord server!

Discord Server

It's a bit empty right now, but we've made a community Discord server for the game. We intend to use this server as the primary source of feedback on the post-jam version of the game.

Join it here: https://discord.gg/wVXhx7CCQr

Grandma is waiting!

redemstranding/emgrandma.png

Ludum Dare 51

Ten Seconds to Midnight - personal best

I just hit a new personal best in our game! Can anyone beat me?

Play it here: https://ldjam.com/events/ludum-dare/51/ten-seconds-to-midnight-1

https://youtu.be/fygJaHvidLs