Trappy Tomb was conceived as a response to the poor score for ‘innovation’ I received from my previous LD entry ‘Midnight Minigun’. Mulling how I could do something innovative I decided that client-server would be a fun way to interact with the LD community, and since I’d have very limited time I’d also attempt to integrate User Generated Content. I didn’t want to overly burden the player with creating things so I figured that playing with or against the recordings of previous plays would be a fun way to generate content and promote interaction. The death messages idea was influenced by the LD28 entry Rude Bear Resurrection and the mega-replay idea was an homage to Super Meat Boy. My own interest in collective insect behaviours also came into the design though my original ideas of collective problem solving ended up on the cutting room floor.
Trappy Tomb is set in an Indiana Jones / Tomb Raider style environment viewed from a top-down perspective. The player can move and jump. Jumping results in flying kicks which kill the bats that populate the tomb. Pretty much everything in there is lethal – spikes (timed, triggered and fixed), boulders (always triggered), pits, lava pits, bats and arrow launchers. There is also optional loot to collect. The game is split into two parts – a sizeable onboarding level in which you cannot die and your replays are not recorded, and the main Trappy arena.
The onboarding area has an important additional function beyond simply teaching controls – it shows what you get if you win, which is a statue personalised with your message and score for all to see. These show the game is beatable as well as providing motivation.
Without further ado here are two composite images of the main tomb complete with the death location of the first 2000 plays (left) and the breadcrumb trails left by those players (right). Click for larger views.
You can clearly see that the vast majority of players die in the first couple of hazards – some static pits. I’ll come back to this below. It’s also perhaps apparent that the climax of the level is a bit lacking- again see below!
You have 2 minutes to complete the level (ample time). If you timeout or die a dialog pops up asking for your “message to eternity” and you can see these being quoted as ghosts die while you play – I can honestly say it has been utterly hilarious seeing what everyone has put and I’m thrilled with this feature. However it was exploited badly at one point by trolls – more below. If you win you enter an inscription for your statue and are returned to the onboarding area where you get a special ending sequence and can see your statue in all it’s glory.
What went right
* The client-server system. I chose FatFractal for the server backend and it worked really well. It doesn’t require much setup at all and there is no server side code needed. You simply log-in a user and push your objects to the server. You can then pull them back with a rich query language. The player position is sampled every 0.2s and frames are interpolated on replay. When a ‘died’ state is encountered the death message is displayed – these are usually hilarious, so thank you for those! I’ve included a few choice quotes below 😉
* Artwork. This LD I decided to leave all the art until day 2 and this decision paid off as I got less bogged down in pixelling than previously and hence have more gameplay in there. The hardest part for me was selecting a colour palette – I needed everything to be readable and to separate sprites from the background and I’m pleased with how this turned out. I borrowed a few colours from other games and built up from there. Tools were Pixen and Zwoptex
* Onboarding and level flow. In my last LD entry I had many people rage-quitting because they died within the first few seconds before they’d even mastered the controls so I was determined to pace the start out and give the player a chance to get into the game. I’m really pleased that I managed to do this in the time and I think it meant people were ready when the real challenges came. I was generally happy with the building series of peaks and troughs of intensity in the level itself though I ran out of time so it ended a little abruptly. The first obstacle was probably a bit too hard as well as it claims about 60% of all attempts 😉
What went wrong
* Controls and physics. Disappointingly I failed to iterate enough on the player controls. I partly put this down to using a new framework (phaser) for the Jam so I had to find out about how the physics system worked as I went along which was not ideal. It turned out that with some really simple tweaks the experience could be much improved but the damage was done and no doubt people’s enjoyment suffered due to the over-large hit-box and slippery movement. Essentially people feel a bit cheated when they don’t think they touched spikes etc but die anyway and I can sympathise with this! The post-compo version (with about 10 characters of code changes) is loads better 😉
* Open to abuse. I really should have seen this coming, I really should, but I figured it was unlikely that the game would make it outside the LD community and so everyone would ‘play nice’ with their comments. Alas it was not to be and on one occasion I was confronted with some extremely offensive language that caused me to take the game offline immediately. It took a few days to work out a solution and thanks go to Gary at FatFractal for his support (t: @gkc). I settled on a system whereby all comments are immediately added to the local game, but will not appear in anyone else’s game until I’ve moderated them via a holding area. This actually has the side benefit that I can read all the comments as they are added
* Ran out of time. I had to ruthlessly cut features, for example I really wanted the ghosts to be more than just eye-candy, I wanted to have collective triggers that required ghosts to coordinate in order to open secret doors or get the ‘big prize’ etc. The idea being a community that self-organises to achieve a collective goal much like a colony of ants might… Was a shame to let that one drop! Similarly I underestimated how long it would take to create the traps and layout the environment. The game stands and falls on its level design and although I’m reasonably happy with it, the ending is weak and it kind of fizzles out a bit. I wanted to have a final large room with all sorts going on and some more timing based flame and spike puzzles but there simply wasn’t time. Still – by the time the make it to the end the few who’ve got that far were probably glad there was no more 😉
This Ludum Dare was easily the most challenging and yet satisfying I’ve so far undertaken. Tapping into the creativity of the community for my content turned out great as I knew it would because YOU ROCK!. The amazing comments I’ve had have lifted me beyond words (especially around the trolling incident) and being featured in a selection of YouTube videos has been a total blast too. Here’s my favourite of those along with the truly final words – courtesy of you, from the selection of 3100 messages…
* jump. Jump. JUST JUMP, YOU FOOL!!!!
* i’m not laaavint
* the lava is not nearly as hot as my rage
* I see dead people
* i love fat eggs
* fat eggs are gross
* DO NOT TRY THIS AT HOME
* I SUICIDED FOR THIS: JUST GO LEFT
* DAMN i got nervous… must be close…
* Wonder how many of these are me?
* This particular bat is a win cheat
I could go on all day, but why not just play for yourself and see?!
This guy did and just about kept his cool: