Underland – My LD 21 Entry
Hi again everyone.
My entry into the competition is called “Underland”. You begin the game in an underground cavern system. You can move from chamber to chamber orthogonally, and the goal is to get from one end of the cavern (or ‘board’) to the other. You do however have to avoid the monsters which inhabit certain caverns – bumping into them means a game over. In the easy version of the game, the monsters will be visible on the map, which will allow the player to avoid them more easily. Scattered throughout the cavern, in a few chambers there are treasure items you can pick up along the way, but you’ve got to spend an extra turn picking them up, and this may not be wise with monsters hovering around. The treasure chambers are shown on the map in easy and medium difficulty modes. The monsters navigate through smell – the closer they are to the player, the higher the chance that they’ll attempt to move towards the player. Randomly determining whether or not a monster catches the scent of the player, with higher chances for being close to them adds an element of tension to the game. To avoid spamming the site with new posts, I’m going to add updates to this thread, either via post edit or through comments.
EDIT: 6 hours in and I have my design fully finalized, GUI setup, tokens built and so on. I’m only just beginning to code, and I’m starting with player movement as you might imagine.
The top left portion shows the game board. You might notice the grid is not scaled to the gameplay tokens – this is because I didn’t measure the grid correctly when creating the mockup. The final art will of course correct this. The top right ‘screen’ will hopefully give some visual feedback of what’s going on in the game world. I presume I’ll have a first person view with the player holding a torch or something similar. This is one of the ‘extra’ features that is not integral to the gameplay (more on them shortly). The arrow buttons move the player of course, the middle one allowing you to either pick up treasure or scan for enemies momentarily (either costs one turn, which further endangers you). The explanation underneath is pretty lazy, but hey, I’m on a time budget! If I can get around to it I’ll contain that help text in a rollover popup, probably. EDIT: Approaching the 8th hour, I hoped I may stay up until the 9th, but I’d rather not go to bed too tired and sleep in. Player movement is done, and I’ve dropped in good end/bad end screens. Instructions now has its very own popup. I’m moving on to collision detection. After that it’ll probably be monster AI. Simple though significant, it will likely use the Manhattan method of judging distance, but no fancy advanced A* pathfinding here. The monsters will therefore be about as intelligent as the enemies in Lode Runner, albeit without the ability to pick up treasure (I always thought that was a trollish move). There isn’t exactly a forest of block tiles in the level, so they won’t get stuck too often. EDIT: Large glut of short log entries due to downtime…
15 hours in: I’ve had some sleep now, I’m raring to get stuck in! 18 hours in: schoolboy errors are kicking my butt! Didn’t realise how rusty I was with AS2. Array is setup, did extra work on the buttons etc. Collision detection setup for all types of tile.
20 hours in: Having a break for a bit. Reworked the interface, as hiding a symbol in my swf file BROKE MY FLA FILE! Lost some work, but I’ll recover!
22 hours in: Good grief, I’m using “x” instead of “*” for multiplication! This can’t be good! Frontend and backend are being synchronised one tile type at a time. Soon it’ll be time to make the monsters move.
24 hours in: Eek! I haven’t even started working on the monster movement and that’s half my time away! I’m currently working on level design, i.e. positioning the tiles in each difficulty mode (more challenging layouts for higher difficulties). I still have to hook their positions up to the main array. Flash froze up for some reason. Lost some busywork, but nothing more. Feels like I’m working dumb because I’m on a time limit – not using fancy fundamentals like for loops for instance. Taking the long cuts because they’re more of a ‘sure thing’ for whatever reason. That’s how it feels anyway.
25 hours in: Wow, after hooking most of it up, I almost have a game here! It’s an amazing sense of accomplishment.
26 hours in: Finished the level design, and hooked everything up to the array etc.
27.5 hours in: I tried a sort of visual occlusion method where tiles that are too far away from the player are made invisible, but that didn’t work well. Instead I’m going to create a kind of masked vignette which represents darkness and the player’s torchlight. This will move with the player, so I don’t need to do any extra programming work. It’ll be underneath the interface, so it’ll hopefully just segue inbetween the background/tokens and the GUI. It has the added bonus of being more atmospheric and pretty, I think. I should have a break.
29 hours in: Another huge setback. I mapped gameplay keys to del and pg dn. As I tapped del several times, I deleted stuff in the IDE that I couldn’t bring back in the undo history. Will have to write out all of my pathfinding code again. Also lost some misc. monster code I can’t even remember what did. Navigate function is getting shelved.
30 hours in: Monsters are moving in one direction! They aren’t checking for collision yet though, or for going out of bounds. Maybe I should make them ghosts… I’m running out of time after all.
31 hours in: All monsters are mapped to all directions! The game is virtually complete! I really want to add in a score so that people have a reason to replay it.
31.1 hours in: Had another crash. Hopefully I saved it.
31.5 hours in: I think… yeah, I think the gameplay and programming are done! I’ve barely a shred of art done yet, and no sound to speak (or hear) of. Still, I feel so accomplished! For the first time in this whole competition I’m sure I’ll have something to hand in at the end.
32 hours in: I had a break, now I’m going to start the art.
33.5 hours in: Making pixel art takes longer than I imagined. It’s not particularly good either, but I’m hand crafting it pixel by pixel. It’s very therapeutic, this intricate work. The ground tile looks the best, but I think I just got lucky on trying out a shading method with it.
34 hours in: I’m going to bed now. Hopefully not for long!
40.5 hours in: Most of the art is done. If I can squeeze it in, I’ll do the first person view. It’s only three different states (getting to the exit or getting eaten by a monster goes straight to an end screen after all). Find myself really breaking things down in terms of priority thanks to the deadline.
44 hours in: All art’s done. All that’ll get done anyway. I’ve made a first person view, think it’s a nice touch.
45 hours in: Processed sounds in SFXR and imported them into Flash, hooking them up to the correct events. Always felt like something was missing until the game started making noises!
46 hours in: I’ve made a music track and applied it. It’s continuous and looping, and it doesn’t change. Just a bit of icing on the cake, ’cause I’m virtually out of time. I want to cut development here so I can be sure I’ve got everything uploaded and my entry sorted.
46.25 hours in: Having trouble accessing ludumdare.com. Hopefully I can get my game filed by the end of the time limit. The twitter account says it’s okay for extensions due to this downtime. I can at least get my game hosted. I could be reading it wrong, but it looks like the login page is redirecting to itself. Either that or my browser’s playing a game.
46.75 hours in: Got my game and source etc. uploaded. Soon as I can create my entry I’ll be done!