I’m in! I usually make cute but unfinished unfun games. Let’s see if I can do better this time!
photoshop cs5, construct 2
Illustrator and gamedev. Hardcore gamer since 1984
https://twitter.com/castpixel
reach me @ christina.neofotistou@gmail.com
Ludum Dare 34 | Ludum Dare 33 | Ludum Dare 32 | Ludum Dare 31 |
Ludum Dare 29 | Ludum Dare 28 | Ludum Dare 27 | Ludum Dare 25 |
Ludum Dare 24 | Ludum Dare 23 |
![]() Featured in GeekyJuegos.com Awarded by GeekyJuegos on January 9, 2016 | ![]() All hail the queen! Awarded by bitserum on August 29, 2013 | ![]() The Construct 2 User Award Awarded by 7Soul on December 19, 2012 |
I’m in! I usually make cute but unfinished unfun games. Let’s see if I can do better this time!
photoshop cs5, construct 2
Hi all!
Here’s a post-mortem for Lands of TSR Lore , my tiny dungeon crawler made from scratch!
This was my 10th Ludum Dare and I thought I’d treat myself.
Early on I realized I will have no fun if I follow the theme, my ideas weren’t exceptional. What I thought was a fun idea about growth was, in fact, just an idea about leveling up in an rpg. Nothing better was coming, and since my internet connection chose that time to abandon me for 6 hours (yes, thank you internet gods), I felt less and less inspired.
Instead of despairing and spoiling all the fun for myself, like I usually do, I decided I’d just make a tiny rpg thingy. An old-school 2D (2.5D?) dungeon crawler, like Eye of the Beholder, Lands of Lore, Wizardry, Etrian Odyssey, the sort of games that felt magical to me, because the potential was there for a 3D world made of carefully pixeled pixelart. The closest pixelart can get to being immersive, without actual 3D transformations like wolfenstein (which kind of spoils it for me).
So, what went well?
First of all, a TON of code. I spent a ton more time coding than any other LD. I also spent a ton more time coding than I did content creation, which is refreshing because I’m always self-conscious that my art is better than my code is. Here’s all my “event groups” (it’s how Construct 2 allows you to organize code).
Each of those groups contains 3-4 dozen events. And not just if/then statements and quick solutions, I had to think hard about the algorithm that renders this:
into *this*:
Here’s the code by the way:
After a lot of headscratching, trigonometry saved the day: I made code that can read a bunch of 2d tile positions in the 4 cardinal directions at once, instead of having to input each separately. This code reduction is important, because tiles, monsters and objects (and later on, decorations) are going to be using the same function. Making changes is certainly easier the less code I have.
The basic idea was: the sine and cosine of 0,90,180 and 270 degrees have this useful property of having values of -1,0,1. So why not incorporate the code for checking for North/South and East/West in the same line, but multiply each half with either sin() or cos(), half the line is multiplied by 0, and the other half remains.
The inventory: I started this on a whim near the end, so you could pick up those shields.
Naturally I fumbled with the visualization code for the inventory and didn’t want to waste more time on it. Therefore all the shields you pick up just crumble to dust. I’m sorry ^-^’ The crumbly ancient shield graphic is from Eye of the Beholder by the way, I thought it was funny, since it’s a 24 year old game. I certainly feel old for having played it when it came out 😀
I made a wall set by using a 1-point perspective set of lines, and decided I wanted some extra bits sticking out in corners, for the thing to look more 3-dimensional (ergo the pillars in the front row)
I also thought how cool it would be to have the dungeon sort of smoothly transition from one tile to another, like Land of Lore first did. I probably used the same trick as they did, I used r0j0hound’s html5 canvas plugin for Construct, which allows me to take a screenshot and then manipulate it (scale it up) over the course of 3 frames, while also repositioning it to keep the horizon line level. This, along with mirroring the floor and wall graphics with each step (still a little buggy) gives a very solid illusion of moving forward, comparable to even recent AAA titles (Etrian Odyssey).
The whole game window is 192×108 pixels, smaller than SNES resolution, the height is smaller than even gameboy resolution. It’s the only way to get away with pixelart that looks good and polished.
Tiny screen size means it’s not overkill to have 11 frames of attack animation. It’s basically a 50×50 sprite, quite reasonable for platformers and such, and absolutely screen-filling at this size 😀
I like the dungeon music I wrote, inspired by Wizardry and Westwood studios’ brilliant Adlib music, using a Yamaha chip emulator called JuceOPLVSTi
More things that went right:
What went wrong:
I know people make genius experiences for LD that last hours or have that wow factor and innovation. I admire and respect them, and hope I’ll have that spark of creativity myself some day. Until then, I’m happy to just chip away at little problems, learning to think like a coder, making game spaces I can explore. Thanks for being here for the ride and reading about it.
I love LD!
Doesn’t seem like much, but I managed a field of vision that works independent of direction, instead of writing tedious statements like
IF FACING NORTH
-> X-1, Y-1 -> render tile
…
Trigonometry is great
Smooth navigation, courtesy of Canvas. Now to tackle turning
I had no internet for half a day :S
It doesn’t matter, because this is too ambitious to do anything with. But I won’t give up! Here’s my unnamed dungeon crawler:
I’m in!
This time severely limited by time and mental reserves, but, it’s my 10th Ludum Dare! Maybe I can make it count!
Photoshop CS5 for the graphics, Fruity Loops for sound and Construct 2 for code.
As per usual, I expect to make a pretty pixelart game that is very little fun.
Here’s some stuff I pixeled earlier
Good luck everyone <3
Christina
Sometimes, LD is just a space for me to experiment and learn.
This is what I made this time. The results for this entry are going to be
FUN: zero
GRAPHICS: meh
THEME: 100%
I’m in! This will be my 9th LD.
Photoshop CS5, Flstudio and Construct 2 as usual
I don’t always finish or make fun games, in fact I mostly make half-formed engines. But I always have fun and learn tons of news things.
This was my latest LD game:
If I go by the voting results, I’m apparently getting worse at gamemaking. Slight improvement on Fun and audio.
This makes no sense to me, as Ice Story is my most fun game yet. Getting the same results even though I’ve improved a ton is very counter-intuitive and disappointing. I was quite proud and thought about developing further. Now I’m not so sure (but still proud of it!)
I made a post compo version based on the feedback and uploaded on Newgrounds. People hated it even more.
Anyway, good show everyone, hope you had fun
Coolness 87% #34
Graphics(Jam) 4.54 #42
Audio(Jam) 4.02 #123
Mood(Jam) 3.70 #124
Overall(Jam) 3.77 #187
Fun(Jam) 3.55 #397
Humor(Jam) 3.12 #511
Innovation(Jam) 3.10 #640
Theme(Jam) 3.18
Out of curiosity, has anyone made a game with PICO-8 for this LD? I’d love to play it
I tried my hand at PICO-8, and its wonderful limitations caused this to happen:
Thanks to the enormous feedback, I managed to squash a lot of bugs and I rearranged the level difficulty for my game Ice story. The main new feature is new controls for non-querty keyboards. The spell button is now mapped to [Z], [W] and [Y] instead of just [Z]. I also changed the throw key from [Z]+[X] to just [C]
Thank you for the help everyone!
Play the compo version HERE . Remember to rate the pre-compo version/
So you know how sometimes a game feels like it already exists, and you are just discovering it, instead of inventing it? This is one of those.
GAMEPLAY AND THEME
Ice story (氷物語 – Koori Monogatari) is my loving take on Bubble Bobble and Snow Bros, and specifically the arcade versions I played as a kid, with a mix of Rocket Slime.
My main thinking was to have ice as a weapon, but the freeze spell is not the weapon, that’s just middle-ware. No, the actual weapon is the sequence of events you need to perform, sort of a ritual, a routine, in order to get rid of the dinos. Freezing enemies to perfection, then flicking them in the air by performing the Dash special move, then successfully catching them on the rebound.
I tried to make the routine interesting and satisfying, so you’d get into it fast and it would hopefully become habitual and pleasurable. I know it has for me. Controls are kind of tough at first, they might need tweaking to appeal to first-time players. On the other hand, I may make the judgement call that players should just deal with these controls, because they reward you with considerable power and versatility once you’ve mastered them. We’ll see.
GRAPHICS
Here’s all the Technical Stuff ™: I used Photoshop CS5 for graphics and animation. As usual I start with a messy mockup that contains every sprite and work my way up to more refined sprites and tiles in a new file if necessary. Here’s some process on the main character, an ice mage called Nya. Her favorite food is narutomaki. I based her loosely on my friend and pixelartist @vagaaabond (go check her out).There was some worldbuildinggoing on in the background, even if it didn’t explicitly make it in the game. It’s still there somehow.
Nya is a peace-loving nerd who likes nothing better than to study her ice magic alone. In quiet. She is interrupted by an infestation of, um, dinosaurs falling from the sky. This is clearly the doing of her friend Kya. Why can’t she be content with being an ice mage too? Why does she have to dabble in chaos and prehistoric monsters?
I thought some blend of japanese culture and western fantasy would be cute. I also stumbled upon an article that said job recruiters in the US strongly dislike “black” names in application forms and don’t call back 27% more often than “white” names. This is obvious to anyone who’s ever encountered racism and I also don’t mind making white people uncomfortable, so I chose “Nya” from that list, although I might make it Shaquandra in my post combo version.
Then came level building. I really had to stop myself from making these, they were so fun. I made 10 and decided to stick with that, so I could playtest and refine them sufficiently, at the same time as I was checking the engine for (tons of) bugs.
Another interesting thing happened during level design that convinced me this game was on the right track. See, I had already made a “hurry up” mayhem mode to incentivize the player to solve the level faster. It looks like rocks randomly spawning from above and then falling until they meet a platform with some camera shake, like so:
So I had an idea for a level that called for destructible terrain. I thought of scrapping it at first, because I didn’t have time to make an exploding terrain animation. But then it hit me, I already have one. I made an invisible “bomb” object over the terrain I wanted destroyed and wrote a function to the effect that “when terrain is destroyed, make the terrain tiles disappear and create a rock there”. The illusion is perfect, and it comes from thinking “inside the box”, re-using vocabulary that my game already had. That was a first for me, and it’s a very powerful feeling.
MUSIC
I used a free YM2151 emulator VOPM for the sounds, and let me tell you, it made a whole lot of difference. The YM chip was hardware by Yamaha famously used in the Sega Genesis, and some awesome person has made a collection of instrument presets from actual Sega games. Just the thing for a dev in a hurry. I was never proficient with FM synthesis, but comfortable enough to tweak the already pretty stellar presets into something more usable for my sounds.
I managed a pretty self-contained and cute soundtrack consisting of an intro tune, 2 in-game themes and a gameover jingle. I’ll upload those shortly too.
INTRO
the main gist of my intro idea stayed intact despite the time constraints of the jam, all because of Construct 2′ awesome visual editor. It’s basically “type this on screen” then wait 1 second, then do something else. It goes on for a while 😀
And another thing that saved me tons of time was making the tutorial “action replay” pre-animated. I’ll explain: I captured a short segment of me playing the game, and because it’s pixelart, it came out crystal clear and tiny at 125kBytes. Compare that to the hassle of making code for actually recording your position and button presses at every dt. Since Construct 2 imports GIF files as sprites (very reliably too!) it was easy to go back and annotate the controls.
CONCLUSION
LDjam is super fun and awesome!
Also here’s the spritesheet with all my graphics for the game.
Thanks for reading this far, play the game, rate it, hate it, have fun with it and in general 😀
Christina out!
I’m in!
Photoshop CS5, Construct 2 and FLstudio are my weapons as usual.
This is my 8th LD! Here’s some of my past, un-fun but pretty to look at games 😀 I regret nothing!
Hopefully more women and girls will participate this year.
Have fun everyone!
<3 Christina
my beat-em-up experiment for Ludum Dare
Why not give my beat-em-up experiment a try?
I didn’t mean to complete this. Just to have fun with graphics and mechanics. And it worked!
What I learnt on this project:
Enemy AI, beatem-up Z-movement, Finite State Machines, hitboxes and attack boxes.
You rock, LD.
Gameplay gif of my beatemup engine “Super Snow Girl”