Post-mortem on Magnetic Trek
The Spring Lisp Game Jam is now over, and this game, Magnetic Trek ended up being ranked 25th out of 30. As a result of this ranking, I want to go through the development of the game and the choices I made and look at why it may have ranked so low and what I should try to improve for the next jam (yes, I intend to participate next time too :-)).
Development of Magnetic Trek
Concept
The concept of Magnetic Trek only started two days before the Game Jam started only. As you can see in my notes [PDF], the first concepts of the game had it as a top-down scroller. The player's particle would collide with either good or bad particles, the good ones making it grow, and the bad making it shrink. At the end of the level, the player would encounter the disk's read head, where they'd need to be big enough to be read, or lose the stage.
Things evolved quickly in the 10 days of the challenge, and the concept switched to a side scroller instead. For expediency's sake, I opted to use coloured squares instead of textures – a decision that I came to regret.
The core game concept revolves around magnetism. Charged particles either attracting or repelling depending on their polarity. I think that makes for interesting game-play opportunities that I haven't seen used much in the wild. The first attempts at implementing magnetism involved a square of randomly charged particles surrounding the player particle as seen in the notes.
By the time the core concepts were working, I was only 2 days away from the Jam's end, and I could only spend max. 2h per day to complete the game. My original plan included shrinking particles and a level boss that the player had to be large enough to pass. But that all got cut off and instead I introduced the obstacles – aka the black bars of death – after seeing some microscopic images of the surfaces of hard drives.
Technical considerations
I made the choice of using Chicken Scheme because I hadn't yet had the opportunity to use Scheme. By far the Lisp I'm most experienced with is Elisp (in Emacs), and Common Lisp second. So that was a nice learning opportunity. My choice went with Chicken as it is compiled to machine code rather than interpreted, which is a nice change as my day job involves interpreted languages already.
Chicken has modules called eggs that can be installed easily with the chicken-install
utility, which is nice. Those modules then get compiled in the executable right away when indicating to the Chicken compiler that we want a statically-linked executable, which makes distribution simpler.
To avoid memory issues – even though chicken is garbage collected – I have avoided spawning entities excessively. To that end, the game actually has a set number of particles which it reuses whenever one goes off-screen. It also does the same thing for obstacles, of which there are only ever 3.
In the end I used a statically compiled executable and shipped it out with instructions to install SDL2
and SDL2_ttf
. This was OK, but some people still had to compile and struggled. One of them did it in a twitch video and he was unwilling to let chicken-install
write into his /usr/local
directory, which I can relate to. Distribution is definitely something to investigate for a future participation.
Ranking of the game
Magnetic Trek ranked 25th out of 30 games in the Jam, which isn't great. After analysing the data from itch.io, I can see that the game is deemed middling to begin with. But the ranking was hurt massively by having only a small number of ratings. In order to look into what to improved, I've worked out the distribution of each raw rating as below.
Item | Min | 25th pct | Median | 75th pct | Max |
---|---|---|---|---|---|
Creativity | 1.895 | 2.956 | 3.676 | 4.078 | 4.800 |
Presentation | 2.500 | 3.080 | 3.343 | 3.921 | 4.625 |
Entertainment | 1.316 | 2.822 | 3.283 | 3.545 | 4.176 |
The raw ratings for Magnetic Trek are as follows:
- Creativity: 3.625
- Presentation: 2.750
- Entertainment: 3.375
The ratings suggest below average creativity, which I find a little puzzling as I opted to go for magnetic game mechanics, which isn't something I've seen before. Because I firmly believe that my game has originality, I'll instead attribute this mediocre rating to a lack of communication that would cause players to not understanding what's happening and what's expected of them. I will concede that the obstacles are very boring black bars and not very creative.
When it comes to the presentation, I think I made an error in not using sprites from the get go. Now that I'm more familiar with the technical environment, it wouldn't have taken much longer and it would have resulted in a prettier game. This is well deserved.
The game is a little above average as it comes to entertainment, so I think fixing the looks and accessibility would have improved that rating also.
From the data of the other games, I can see a pattern were most games developed with a game engine are at the top. They are also the ones most likely to run in-browser; making them very accessible, and increasing their count of reviews. Some people did complain about not being able to install or compile my game and having graphical glitches. Even though I intervened as quickly as I could, no doubt the experience coloured their ratings.
What to improve for the next Jam
For the next jam, I think I will start preparing sooner and coming up with another cool concept. I will look into using a game engine, or building upon what I've learned to quickly bash out a game with custom logic.
As experienced, it's very important for the game to run easily. So I will be looking into making AppImage packages, and hopefully compiling the game to run in-browser.
What to improve in Magnetic Trek
I am interested in improving the game further. I want to refactor the code-base towards a more functional style of programming instead of having mutations and calls to SDL all over the place.
I plan on reworking the obstacles concept and have more interesting threat to the player, hopefully something magnetic too. And to introduce some shrinking opportunities and some abilities the player can gain and use to their advantage.
Thanks for reading this. Stay tuned for more!
Appendix
Here is the table of the raw data for all games I used to evaluate my rating. Feel free to reuse:
Game | Overall (weighted) | Creativity | Presentation | Entertainment | Ratings | Uses game engine | Finished |
---|---|---|---|---|---|---|---|
Bunny buddies | 4.05 | 4.35 | 4.35 | 3.45 | 20 | Yes | Yes |
Shelter creek | 4.05 | 3.6 | 4.55 | 4 | 20 | Yes | Yes |
Sandpipers | 3.979 | 4.188 | 4.625 | 3.125 | 16 | Yes | Yes |
Super Rogue | 3.967 | 4.25 | 3.55 | 4.1 | 20 | Yes | Yes |
Disastrous Flying Critters | 3.965 | 4.105 | 4.105 | 3.684 | 19 | Yes | Yes |
Eval-em-up | 3.905 | 3.786 | 4.571 | 3.357 | 14 | Yes | Yes |
The Maze and Lost Cat | 3.742 | 3.727 | 3.955 | 3.545 | 22 | No | Yes |
JOVIAN encounter 41 | 3.567 | 4.8 | 3.8 | 3.6 | 10 | No | Yes |
Falldown | 3.373 | 2.588 | 3.353 | 4.176 | 17 | Yes | Yes |
Thirteen letters | 3.333 | 3.333 | 3.4 | 3.267 | 15 | No | Yes |
Apple | 3.289 | 4.182 | 3 | 3.545 | 11 | No | Yes |
Bee | 3.289 | 4 | 3.133 | 2.733 | 15 | No | Yes |
Thoughtbound | 3.066 | 3.364 | 3.818 | 2.818 | 11 | No | Yes |
Fantasary | 3.005 | 4.571 | 4.571 | 3.143 | 7 | No | Yes |
Reflected Pong | 2.963 | 2.111 | 3.444 | 3.333 | 18 | No | Yes |
sparXline | 2.87 | 2.556 | 3.222 | 2.833 | 18 | No | Yes |
Interlisp fifteen puzzle | 2.836 | 4 | 3.2 | 2.5 | 10 | No | Yes |
Super Bloom | 2.83 | 4 | 4 | 3.571 | 7 | No | Yes |
Cl-powder | 2.804 | 3.556 | 3.444 | 3.111 | 9 | No | Yes |
"Spooks-Be-Gone | 2.792 | 3.125 | 3.063 | 2.188 | 16 | Yes | Yes |
Wireworld | 2.777 | 2.9 | 3.3 | 3.3 | 10 | No | Yes |
Pacman Clone #0xfff | 2.759 | 1.944 | 3.333 | 3 | 18 | No | Yes |
Bleach Drinking Simulator Color Deluxe | 2.66 | 3.9 | 2.5 | 2.7 | 10 | No | Yes |
Waller | 2.642 | 4.167 | 3.333 | 4.167 | 6 | Yes | Yes |
Magnetic Trek | 2.55 | 3.625 | 2.75 | 3.375 | 8 | No | Yes |
XCB Boomshine | 2.55 | 3.25 | 3 | 3.5 | 8 | No | Yes |
Turbo-generic-forest-adventure | 2.482 | 2.5 | 3.25 | 2 | 12 | Yes | No |
Breakfast Shock Unfinished Edition | 2.018 | 1.895 | 2.842 | 1.316 | 19 | Yes | No |
Jam-no-theme | 1.943 | 3.8 | 3 | 2.6 | 5 | No | Yes |
Little Spark | 0.981 | 2 | 2.5 | 3 | 2 | No | No |
Files
Get Magnetic Trek
Magnetic Trek
Control a charged particle and grow as big as you can
Status | Released |
Author | Gene Pasquet |
Tags | Abstract, lisp, Side Scroller |
More posts
- Retrospective on the Spring Lisp Game JamJun 06, 2023
Leave a comment
Log in with itch.io to leave a comment.