Thwimbly - Kepler's Platformer Dev Thread

KeplerElectronics

Well-known member
Joined
Sep 18, 2023
Messages
82
Reaction score
283
Location
the north™
Website
keplerelectronics.com
Gold
300
serverBACKUP - Style 3
Starfall
Lounge Access
Grunglr Name
Dreamscape Purple
ThwimblyCover.webp



Howdy everyone!

I've seen some gamedev threads here on the forum and really enjoyed reading through them as a hobbyist game dev myself. I've been toying with making one myself, and figured that, now that the demo is out, I should just go for it.

Thwimbly has been in development off and on since summer 2021 based on what's been going on with school and stuff. It's made in TIC-80, a fantasy console (similar to PICO-8), which aims to limit the developer on various metrics (number of colors on screen, number of sprites, music, map size), and I've been using every trick in the book to break past those limitations. I've really been trying to design the game so it doesn't feel like a tech demo or normal fantasy console game.

JUICE-export.webp

The game itself is a pretty standard 2D platformer, but I've tried to optimize it for the kind of game I like to play: Fast paced, colorful, and fluid. I've had a lot of fun trying to optimize routes through each level to beat them as fast as possible. It's particularly inspired by Kaizo Mario World and Celeste, but with a simpler moveset on the player side.

Hopefully it lives up to that goal, but a lot of the reason for the demo release is to try and get an idea of what might need to be changed for a full release. This is only about 1/7th of the content in the full game, but I think it's enough to get the vibe across.

If you want to give it a try for yourself, you can play it in the browser, either at my website: https://keplerelectronics.com/Wiki/Thwimbly

or at Itch.io: https://kepler-softworks.itch.io/thwimbly

If you want to see some of what my development process has looked like, I have a bit of a devlog on my site as well (I need to update it soon -_-): https://keplerelectronics.com/Wiki/Thwimbly_Dev

Please let me know what you think, or if you run into any bugs! I'm open to constructive feedback, I want to make sure that all the time I've poured into this game is worth it.
 
i got a similar slow down after dying a few times. the same thing corrected it, but it was still a little strange to have happened
 
Just made a new version after doing some tests, but I think the web export is just having some problems. Even before starting gameplay it was just super sluggish. It runs fine when downloaded, but when attempting to run it in firefox on my laptop it's just super slow, even with the new low spec option I added. If you're on desktop it seems to run perfectly fine, probably just a significant performance penalty that my desktop has enough power to handle.

There are new downloadable versions that can be accessed through itch (https://kepler-softworks.itch.io/thwimbly) that seem to run significantly better on lower spec hardware, but I can only test on one laptop right now. It's running with a super stable framerate on my 2015 macbook pro (running KDE Neon linux) so it should be able to be played on pretty much anything from the last decade when downloaded, but I'm willing to be proven wrong.

I have a hunch that the slowdown @kevin supermarket was experiencing was from the particles building up upon dying to the munchers, so the new version reduces the life of those particles so they don't stick around as long.

This brings the official version number to 0.1.1, full changelog can be seen at https://keplerelectronics.com/Wiki/Thwimbly_Changelog.html

Please let me know if you have any more feedback :)
 
I've been doing a lot of thinking about Thwimbly over the last couple days, and have come to the realization that I definitely need to pivot in some direction.

The game is closing in on being "feature complete" in the sense that most of the underlying mechanics are done, it's just pixelart, level design, and music that need to be completed. Realistically, I can probably get the rest of the game done in 100-200 hours of solid work, but with working full-time and trying to balance my other creative outlets and responsibilities, that could still be a year off.

This game is closing in on being in development for four years (sometime in June 2021 was when I started working on it). While I haven't been working consistently on it over that whole time, it's really been a part of me. it feels wrong to put it out in a subpar state after how much of my time and energy I've spent on it.

That brings me to the current problems, most of which are caused by the engine. It's a fantasy console, so it's trying to lock you into a set of limitations that mimic retro consoles (16 colors, limited code size, 256 tiles, 256 sprites, limited map memory, etc). This can be good, and helped a lot in the early days: having code/sprite/map editors built in was excellent for prototyping. The problem now is that the game can't be all that I want it to be because of the limitations.

Problem 1:
The audio engine in TIC-80 is too limiting. I'm limited to four channels, each monophonic. It's slightly less limiting than the original gameboy, as each channel can be any waveform including noise, but you're still effectively limited to gameboy sound. While there are a lot of phenomenal albums and tracks made on the gameboy (Spectra by Chipzel is an incredible achievement), those don't have to contend with sound effects.

If you've played the demo and picked up a bunch of coins in quick succession, you might have noticed that it sounded glitchy, that's because the sfx for coin collection is overwriting the sound on channel 3. I tried to mask it by making channel 3 the drum channel, but I think it's still noticeable.

Besides just chopping the music down to three channels and leaving one for SFX, I can't see an easy path forwards living within the engine. Music is one of my favorite parts of games, and I would like Thwimbly to have some bangers without getting overwritten by the .


Problem 2:
The map limitations are pretty rough. I'm currently limited to 28 levels of exactly the same length as those in the demo. I can make them shorter, but they can't be any longer because that's where the map size ends. I actually don't think that the levels are too short, I like how long they are, but it would be nice to have more of them. I really wanted to have a sort of "Master Quest" "Kaizo" mode that was super ultra difficult after the main game was complete, but I just won't have room for that without making a fully new executable or trying to encode level data in text and pull it in at runtime.

I'd like the game to be longer than 1.5 hours, but even if I make the levels pretty difficult, I don't think it'll take an average player much longer than that for a first playthrough.


Problem 3:
TIC-80 does not support Steamworks. I would like achievements for one, as I really enjoy hunting for them. This basically requires modifying the engine to overcome.

Big Solution 1:
Port the game to Löve2D. TIC-80 is Lua based, Löve2D is as well. Graphics calls and map data would be more complex, as primitives like lines, circles, triangles etc would need to be recreated, but this would effectively solve all of my problems in one swoop.

Löve2D also already has a library to integrate Steamworks, and is running LuaJIT, which is a much faster version of Lua that would help me squeeze more performance out of the current code without rewriting much of anything.

I won't be able to have a web app anymore, but the current web app is way too resource intensive anyways.

Big Solution 2:
Fork TIC-80 and compile a custom version that breaks some of the restrictions. If it's simple to just add on a couple more channels that I can route SFX to, even if I can't use or edit them for music, that would be great. Similarly, if I can't already just paste extra banks of sprites/maps at the end of the .lua file, breaking that restriction so I can would be great. Even if I can't edit those sprites in the engine, being able to copy them from a different project would be fine. Steamworks will have to manually be grafted on later.

Big Solution 3:
Just deal with it and stay true to the fantasy console limitations. I'm confident in saying that Thwimbly is one of the frontrunners in terms of high-effort games made with TIC-80. Emuurom is the other high effort game I'm aware of, and it would be cool to push the engine to the limits. Emuurom does have a Steam page, but does not take advantage of Steamworks or any of that stuff.

If I take this road, I'll have to trim back my musical compositions to allow an extra channel for the SFX, which could leave things feeling a bit empty (even fewer chords than I can do with 4 channels). I'll also have to lock in to 28 levels and just accept that.


The Road Ahead:
If any of y'all have any input, I'd love to hear it. Solutions 1 and 2 are probably going to require me commissioning or hiring someone to help with that process, so if you or anyone you know is interested in helping or can maybe even just give me an estimate of how long / expensive that might be, I'm all ears.

I'm reaching the desperation stage of this project. I need it to be done so I can clear out all of the brain RAM it's taking up. But I also don't want to release something I'm not proud of. The current web export performance problems and general audio problems are not something I'm proud of.

I also really should refactor my collision code, but the engine decision should really be made first.
 
Back
Top