2013-12-19



DISCLAIMER: I strongly suggest you to play the game before reading this. This is going to get spoiler-heavy at some point and also I heard the game is pretty cool and you should play it?

yeeeeeah. Here it is.

DISCLAIMER II: When I go rambling about ideas and design, it’s all my mind pre-implementation and it talks about what I wanted and what I thought at the moment, not directly correlated to what actually ended up being the game. Aspiring thoughts of a young artist?

TL;DR: Here’s an earlier blog about the game.

Come forth fellow developers and players! Come closer to the light, and let me tell you the tale of when I joined this joyful crusade named Ludum Dare!

This right here is going to be a long and detailed post about many a things.

For one, you’ll read about my thought process regarding getting the idea and the whole game design.

You’ll also read about its implementation and what went right and wrong during that time.

And, at the end, you’ll get the resume of things I will we working on for now.

This all you’ll read, unless you prefer to skip certain parts, which no prideful adventure is said to do.

Index:

“Where It All Begun” or “Getting The Idea”

“That’s The Theory, Anyways” or “Designing The Game”

“Down The Rabbit’s Hole” or “Developing The Game”

“Side Effects” or “And Then What Happened?”

“What Now?” or “A Blink To The Future”

 

1. “Where It All Began” or “Getting The Idea”

It was one hour before the theme  got  chosen.  At the time, I thought I wasn’t going to participate. A few weeks earlier, I had a team with which we were going to Jam, but for one reason or the other, they couldn’t take part this time around. Mind you, it was going to be our first time joining a Ludum Dare and  their first time attempting  to make a game.

So when the theme was revealed, I decided that If  I couldn’t think of a good  idea before midnight (the theme was revealed at 11pm my time), I’d go to sleep and forget about it.

“You Only Get One.”

Okay! Let’s see… You Only Get One Life? Hm… A roguelike of sorts? A hardcore game?

You Only Get One Bullet!  Hm… or perhaps, You Only Get One Dollar!

No, no. All those are really obvious, everybody is going to do that.
(point proven, I played at least 7 games where you only had one bullet/cannonball/arrow/rocket. Not that there’s anything bad with that, in fact, one of the best games I’ve played so far this LD was based around that concept: Titan Souls)

Alright.

I quickly Google’d for a random noun generator and went ham on it.

You Only Get One Profit.

You Only Get One Bucket.

You Only Get One Partner.

You Only Get One Venezuela.

You Only Get One Potato.

Dang it!

“Alright, let’s try a different approach”, I said as I started to try to analyze what  this LD ‘s Theme really meant.

“So, when someone tells you that you will only get one of X, what does that person usually mean or imply with that?”

“Well, I guess it means that whatever they’re giving to you it’s important. Or, at the very least, that you should take care of it, because there’s not going to be any more of it.“

“So like, when your mother bought you a new toy, that’s what she usually said.”

Alright, I had a clear idea of what I wanted to do:

I wanted to give the player something they need to protect. Because once it’s gone, it’s gone: You Only Get One.

Right, but how do I do that? And more importantly, What do I do for the player to not want to lose it. I know! if you don’t protect it, game over!

No. That’s boring and meaningless.

I want the player to realize they failed to protect something. I want them to continue playing without having that X when they lose it and see how it changes the game.

2. “That’s The Theory, Anyways” or “Designing The Game”

Yes! I really like the idea! Okay, but what do I give the player to protect?

Some kind of item? Like an amulet of sorts? No, How would that affect the game, anyways?

A weapon perhaps? Yeah, that’d be cool, if you lose your weapon, now you can’t defend yourself. That’s a mechanic change that’d show you that you Only Really Had One and You Lost It.

I like it, but it’s lacking something.

And so, I looked back at the noun generator:

You Only Get One Profit.

You Only Get One Bucket.

You Only Get One  Partner.

You Only Get One Venezuela.

You Only Get One Potato.

 

Touché.

It all clicked in my mind: You get a AI partner that you must protect. It can do something you can’t. If you lose it, it’s like losing an ability. But you don’t simply become weaker you lose “someone” and not “something”.

I believe it’s easier for a player to feel when something is gone if that something was a representation of a human rather than a object.

 Going good so far!

Although it presented a clear challenged. The AI would have to be good. Or at the very least, not suck. If it sucks, the player would feel thankful when it’s gone and it’d ruin the whole point.

I only have two days, though.

 Okay, let’s try to make it not suck.

I came back to the idea of the gun and thought: What if you can’t shoot? Your partner can, though. And when it’s gone, you only really get to avoid enemies, making the game harder.

At this point I had been discussing all of this with my friend. He had told me about making a platformer many times before, and I was always reluctant: I don’t really like platformers (Because I suck at them, but don’t tell anyone).

One thing I like, though, is procedural generation. I believe it adds replayability and since I’m really lazy and don’t believe in my ability to design proper levels yet, that’s kinda helpful.

So to this point, we were debating how the game should play. I thought programming a random level generator for a platformer would be fun and I really liked the idea.

But then I realized, programming a good AI that would be able to go through this randomly generated level was going to be hard.

“Maybe it shouldn’t be a platformer.”

That was a close one. Good thing I figured out another solution!

I don’t know what I was doing that remind me of a game I played long ago: One of the enemies was a tank that you could blow up the upper part of. Doing this removed the cannon and disallowed it to shoot. It could still run you down, though!

“Yes!”

You control the legs and the AI does the shooting. Since it’s a platformer, and a randomly generated one, just being able to run and jump should be enough “fun” for this genre, I thought.

Okay, but how do I separate this? I can make you a human where you can lose your arms? That’d be a bit weird …and strangely funny.

What if…

You’re carrying the AI.

Yeah that makes sense: You can’t shoot because you’re using your hands to carry the AI, so it must shoot for you instead.

The movie Monsters Inc. came to mind, and I took inspiration from there to design the two characters: A big fluffy teddy-bear carrying a little girl. (Sullivan and Boo, anyone?)

Right, the shooting. Forgot about the shooting.

The only logical way to do the shooting was to give the girl a slingshot, right? Yes. Okay. Cool.

But what’s the shooting for?

Well of course there’s going to be monsters in here! I quickly drew a little dark-purple ghost with red eyes. Perfect!

…Wait, what do they do?

They shoot, of course. They shoot you things. Big, slow and cool-looking Things.
(As you can see, the thought process of the enemy design was pretty vague)

Alright, so, how do you protect the girl?

Well, you protect her from the enemy projectiles. Since she can’t move, you’re responsible for her not getting hurt. Of course she will try to protect you too by throwing rocks at the ghosts and eventually hitting one of their projectiles in the way.

And since the girl is on top of you, you can have different hitboxes.

Oh, and since you’re big dude you have more hitpoints than her. Yeah that makes sense.

Oh, oh! and since you get more hitpoints than her, that opens the chance for you to intentionally take hits in order to protect her! That is, hits that you couldn’t avoid and were going to hit her otherwise.

Nice!

I can give the girl Only One hitpoint for good measure, too!

Okay, now there’s something I really value quite high in everything I make, play, read or watch and that is the ending. I’m from the belief that the ending to something is paramount and can make or break any story.

“But urs is just a gaem what story r u talken bout????”

Oh, my friend! Well, there’s something else I do love and that is something only games can do: To tell a story without explicitly telling it to you.

So I thought about an ending and come with what I deemed a really good idea (maybe it wasn’t, you tell me!)

And it was… HOLD ON A SECOND. Now this is one heavy spoiler. Okay, you’ve been warned now. Ready? Let’s continue:

The girl was in a coma the whole time and the game was actually a dreamy fantasy of hers. And if you reach the end with her, she wakes up from the coma. Consequently, If you reach it without her, she really just dies.

Holy mother of cliques!

And so, that’s why the end of the level is passing through some rays of light. You know, light at the end of the tunnel and that sort of things.

Agh, this is getting pretty corny!

Okay, we’re pretty much done with the design:

You’re a bear carrying a girl through a randomly generated platformer to wake the girl from the coma because…

Oh, dang it. I forgot: There’s no purpose! Not for the player unaware of the actual ending, at least. Why is there a bear? Why is he carrying the girl? Why are they running from those little monster than can be killed on collision anyways! Why! This make no sense!

These questions would haunt me until the last couple of hours of the second day, when I added that Intro cutscene where everything sort of makes sense. Sort of.

Oh also, before we’re done with this part, let me clear something up: I intentionally left every bit of the story as vague as I could. At first, it was because I like it when people have to find out the story themselves, I don’t want to read them the whole deal upfront. Movies and books and even comics are better at that than games, in my honest opinion.

However, a wonderful byproduct of how vague it all was done, was something I didn’t realize until people started voting and leaving me the most awesome comments ever: They were finding their own meanings to my story, they were telling their own tales with it and identifying themselves and their loved ones in my vague story and crafting their own with it.

Dayum. I can’t stress how happy that made me, and it was a complete accident!

3. “Down The Rabbit’s Hole” or “Developing The Game”

Friday night I went to sleep a couple of hours after the theme was revealed, with most of the game ideas having been thinked through, a awfully vague design document written down, the stencyl project started and the git repository setted up.

Oh, here’s a list of the tools I used and why:

Stencyl – I made the game with this. I’ve been tinkering around with it for a couple of weeks from beforehand and It allowed to make games really fast. I’m actually a programmer, that’s my daily job too, but I quickly realize that making something Really well, with C++ and OpenGL is nice and all for a finished product, but it just wasn’t going to cut it for a Ludum Dare. (Because I produce significantly slower with it and wasn’t going to be able to get a Web Build out)

GIMP – To make the art and animate. Because I can’t afford photoshop. And also, I’m on Linux for reasons that’d be too long to explain right now (And this is getting full of words pretty quickly)

Git – Mostly because it’s a good habit, but also because You Only Get two days, and time is extremely valuable. Git saves you time a whole bunch when you have to scrap things out, or if something terrible happens.

Dropbox – Used it to share the builds I was getting out to my awesome friend who lend me a hand testing them and to the genius that is the person who made the music.

Oh, right. Let’s talk about that for a moment.

I was going to go solo on this, initially. I talked about the friend who did the moral support before, but I want to properly introduce him. He’s on the Special Thanks section of the Readme file after all!

Aytuğ Ergün is a wonderful person that totally didn’t ask me to say this.

He was the second opinion for this game, I discussed everything with him and he helped me test the games. Eventually, he’d come with crazy good ideas that’d be impossible for me to add in time (Like some of the features you will see in the map generator for the polished version).

He also got me in contact with the amazing person that did the music for the game.

I personally can do many things, but music is my weakest “skill”. I usually do music by just trial and error and have no knowledge of music theory whatsoever. I knew music was going to be important for this game and I knew it was going to take most of my time.

Thankfully, a Saviour appeared. This new friend made the music for the game and he’s a goddamn genius.

Just having someone to do it for me was good enough, but he did that and more: The music is amazing! I cannot stress enough how thankful I am for his help.

Oh yeah, that was also the reason I had to submit to Jam instead of Compo. Sadly, I had to work on Monday, so I couldn’t really use those extra hours.

On Saturday I woke up, turned on the computer, got me a coffee and went right into it.

Thanks to Stencyl pre-made stuff I had a the basics for a platformer in no time.

In less than an hour I coded the map generation. Which actually has a bug: The idea was to code the distance between the platforms to consider platform height and distance in order to make all the platforms reachable, but somehow it doubled, and since I already had the double jump working, I left it in because it created more variety (And some cool leaps of faith style jumps) and all the platforms are still reachable if you time the second jump properly. I also had to do some modifications to the default Stencyl airjump behaviour that introduced a lot of bugs that’d haunt me until the last hours of the second day.

I Added a character that’d always set itself to your character’s position, and have it not collide with you, and I got the girl that way.

Added some default “Enemy Shoots at player” that stencyl provided and coded some quick movement AI, and those were the enemies.

The I stole and modified that behavior and gave it to the girl, every couple of seconds, she’d choose the closest target and shoot at it.

And I made a bunch of art and started receiving the music samples from the Anonymous Hero.

Added lifebars and a Timer that stopped when you reached the end of the level. Initially it was created to check how long the game was in terms of time, but I left it there because I thought people that like platformers might like it to test their runs? I don’t know about platformers and I suck at them but I thought that was a good idea, heh.

On Sunday, I made the lifebars good for something and made it that the bullets damage you. I also made it so anything that is not their bullets or the tiles banishes the little ghosts that I started to call shadelings. That way you can headbutt them to death and the girls’ rocks did something.

Then I made the hardest part of the game to code (which actually wasn’t that hard): The world-changing mechanics when the girl died.

And after that I started polishing everything up. Added the two endings, added an intro screen and got the idea for the comic strip at the beginning that would give a little “fake” meaning to the game at first. I also got the ambient sounds for the “dark” world from the Masterful Music Person and also that ripples sound when the transition occurs.

And then, I submitted it. It took me four hours to submit it because I didn’t know I had to do so many things! (readme, screenshots, testing, last minute bugfixing, hosting, etc)

4. “Side Effects” or “And Then What Happened?”

And then I went to sleep because I was dead tired.

And after that, I started rating other people’s games because that’s what Mr. Ludum Dare told me to do.

And a couple of hours after that I started receiving comments.

The most beautiful comments I’ve read in my life so far.

Mostly because it was people I didn’t know, acknowledging all my hard work and telling me about their experiences with it.

And holy hell it was rewarding. The entire event was worth it alone because of what some people said to me in those comments.

I’m so happy of having being a part of this. This is the cherry at the top of my kinda lame cake of a year. I finally got to finish a game! And people liked it!

Okay, okay. Enough corniness for now. It wasn’t all fun and giggles. So let’s go with what went wrong:

I’m really fond of little details and I couldn’t fit all the things I wanted in, due to time restraints.

The animations are really rough, the comic strips feel rushed and the main screen is ugly as my dog. (my dog is really ugly looking by the way)

Mechanically, the game didn’t have the impact I wanted.

You don’t really notice Zoe that much. Probably because a lack of sound effects and hit pauses when she does things.

The map generator needs a ton of work. I have a lot of ideas to make it better gameplay and visuals-wise. And also the things my good friend suggested.

The difficulty is linear.

I got the chance to watch a couple of different people play my game and learned a lot from it.

I noticed how much can the skill of a player vary.

It took my little sister around an hour to finally be able to beat the game once. She got the full experience for it, though.

But it shouldn’t have been that hard for people with that skill level, not right away, at least. (luckily I stole the instant respawn idea from games like Hotline Miami, which made it really addicting for her, so she kept on going and going until she finally got to the ending).

Then I got to see other people way more skilled than my sister and probably even more skilled than me. They got to ending after maybe two tries, but the thing was, Zoe never died in their playthroughs. That’s kind of a problem, all things considered. And that is probably also because of how short the game is.

But its shortness is okay for it’s content, that I know: I realize my game doesn’t have enough variety to just extend the level size and not add any new enemy type or feature or mechanic alongside it.

Level design: Let’s be honest, there’s none. I hate having to tell the players the controls the way I did: in the main screen. It feels really wrong. I’d have liked to have an intro level, specifically designed to teach the controls and the mechanics before you jump in the random generation.

The controls were iffy. Or were they? I really don’t know, you tell me!

I spent so much time playing it, that I can’t tell how difficult it is or isn’t, neither can I tell whether the controls are bad or good, I’m just too used to them. That was also the reason why the difficulty is weird.

Oh yeah, remember when I mentioned level design to teach mechanics? Well, there’s a kneel mechanic in the game, that is intended for you to use it to cover the girl with your body and you lose the ability to move while doing so.

I put that in because I thought of the possibility of at some point (due to the randomness of everything) you won’t have a chance but to get the girl defeated.

This wasn’t right, you are supposed to be able to protect her.

I like my games hard but not impossible!

This mechanic wasn’t clear at all, most people either forget about it or don’t understand what is it for. Or think is just a crouch move that is never used because the level doesn’t generate any small corridor you need to duck through.

Because it’s not a duck at all, your collision remains the same, what happens is that Zoe moves down and further away from you a little, and your animation changes.

I also suck at marketing my game. I feel like I’m annoying people whenever I try to tell them to play it.

So I usually avoid doing it.

Which is a problem, because going by some people’s comment, it’s an o.k. enough game to not be a complete waste of time.

Or is it?

Maybe you should play it and tell me *wink* *wink* *nudge* *nudge*

5. “What Now?” or “A Blink To The Future”

Now I really want to polish this up. As you can see, there are many things that were left in a precarious state. And I don’t really like that, so I will work on that.

I will try to fix all the problems I listed and add even more polish to it.

And then, I will release it on Itch.Io, most likely.

It will be free!

I might add an option to donate to me and/or to the Marvelous Musician, you know, if you’re into that kinda stuff.

 

That’s pretty much it, I guess.

Oh yeah, I almost forgot.

Thank You.

Thank you for reading and if you played my game Thank you for that.

I try to thank each comment individually because they really mean a lot to me.

Hope you enjoyed the reading and/or the game.

See you in a couple of months/weeks when the polished version is released!

-Lorenzo

 

Show more