Stuck on this level? It’s not your fault. Over the course of development, the levels that introduce the concepts this level was built on were moved to later worlds. A few tips:
A broken hopper’s rubble presses a button.
Flyers will land on the worn patches closest to their last repair job.
Still stuck? Here’s the complete solution:
Step on the left buton to trap the hopper behind the right gate on the right button.
Push the crate onto the left button.
Break the hopper up against the left gate to get the flyer to land on the lower worn patch.
Break the flyer.
Break the hopper on the right button.
Push the crate into the left starting area, then push it back onto the left button.
Both gates to the spikes should be down, now break yourself.
That was a quick month. We just released the complete version of Game 1, End of Line:
We thought Super Clew Land set the bar high for what we could achieve in one month. Then Game 1 happened. End of Line has more than 60 levels spanning 5 worlds, over 20 minutes of music, 2 endings plus a secret (ssshhh) epilogue!
Download the complete version of End of Line from the Retro Game Crunch Rewards page. Let us know what you think right here (or on Twitter).
Oh, and theme submissions are now open for Game 2!
JPMartineau asks, “how do you handle a player partially hidden by raised terrain? What you call half-tile obscuring.” (Also frequently called z-sorting.)
Layered
Z-sorting is actually pretty easy in Flixel. In End of Line, we have three layers. We have objects in the mid-ground that can partially obscure other objects in the mid-ground. We also have objects on the ground, beneath other objects, and in the air, above all other objects.
The three layers are easy, we just use three FlxGroup’s (actually our own subclassed DisplayGroup, see below), that we add to our PlayState in order:
Then we add our objects to the appropriate layer. Repair pads and the bottom of elemental stations are added to the lowDisplayGroup. EOL, walls, and the other bots are added to the midDisplayGroup. The tops of elemental stations are added to the highDisplayGroup.
When a flyer needs to repair something, we move it to the highDisplayGroup during flight and then back to the midDisplayGroup when it lands.
Sorted
Sorting within the groups is a little trickier (but not much). FlxGroup provides sort() and sortHandler() functions. We create a subclass of FlxGroup called DisplayGroup and override the sortHandler() to sort on the bottom left coordinate of each sprite (the default is top left):
override protected function sortHandler(Obj1:FlxBasic,Obj2:FlxBasic):int
{
var base1:Number = Obj1['y']+Obj1['height'];
var base2:Number = Obj2['y']+Obj2['height'];
var x1:Number = Obj1['x'];
var x2:Number = Obj2['x'];
if(base1 < base2) {
return _sortOrder; // above == behind
}
else if(base1 > base2) {
return -_sortOrder; // below == in front
}
else {
if(x1 > x2) {
return _sortOrder; // right == behind
}
else if(x1 < x2) {
return -_sortOrder; // left == in front
}
else {
return 0;
}
}
}
Then at the end of our PlayState’s update() function we just call:
All the levels in End of Life are being built with Tiled. In the 72-hour jam version, we had three layers: Background, Foreground, and Entities.
Most of the objects were made on the “Entities” object layer. As the levels grew in complexity, more and more objects were added to this layer. Creating and editing lots of objects in Tiled is cumbersome and messy. It’s hard to tell the objects apart.
With dozens of levels to create for the full version, making this process faster was my first priority. Instead of using object layers, objects are now painted on using special tilemap layers. Here’s what the current “EntityGround” tileset looks like:
Each of these tiles is assigned a number. When the EntityGround is loaded in the game, objects are created by examining the number of each painted tile. Levels now look better inside of Tiled and are much simpler to create.
Fleshing out some alternate foreground/background treatments so we don’t have to rely on half-tile obscuring, tall concrete blocks to shape the levels.
Just a quick post to share an Automator workflow to quickly download maps from classic games for inspiration. With only two weeks remaining I don’t really have time to replay a bunch of Mega Man games for visual research. The Video Game Atlas to the rescue! Download the workflow, change the game name in the Filter URLs step, and hold B to run. Sizzling Circuits!
A look back at the 3 day jam for EOL and the music that came out of it.
Friday
I started writing music immediately after the idea for the game was agreed upon. I got about 80% of a song done that night. I soon realized it was not a strong enough song to be the world 1 theme. I wanted something more mechanical sounding and it needed to be catchy.
Saturday
I created a playlist of NES tunes in NoiseES. I listened to it over and over while I laid in bed and thought about what I was going to write. I looked for anything with robots in the NES library. Of course a lot of Mega Man was in that playlist; it really shows its influence in the world 2 theme.
I spent the next seven hours making the world 1 theme “Programmed to Work”. Somehow I found a second wind and late into the night (4am) I created the world 2 theme “I Won’t Byte”. These are the two main songs that made it into the jam version of the game!
Programmed to Work
I Won’t Byte
Sunday
Early Sunday morning I revisited and finished my song from the first night, “Trust Your Circuits”.
Trust Your Circuits
Next I started writing the title theme, but it kind of went in a different direction. Lucky for me it fit perfectly with the narrative idea, “passing of time”, that we had talked about. So I skipped ahead on my list of todos and finished this small song and named it “Epoch”.
Epoch
Staying with that idea, I also needed a shorter “passing of time” song, so next I wrote “System Time”.
System Time
With those tracks finished I needed to get back to my original task and write the title theme. I got stuck for awhile and threw away a few ideas. None of them felt right. I wanted a simple, short melody that was memorable and sounded like an epic journey was about to begin. After an hour or so “Does Not Compute” was born. This is the only other song that made it into the jam version.
Does Not Compute
Finally I moved on to the ending theme “Bits and Pieces”. It’s the first chiptune I’ve written in 3/4 time.
Bits and Pieces
I was finished with music around 8:20pm that night (so all the music was written within about 48 hours). I made the decision to stop writing and focus on SFX the rest of the time. It was a good decision, as you can see half of the music I wrote didn’t make it into the jam version of the game! I started on the SFX and stayed up until 1am.
Monday
I tweaked a few of the SFX from the night before and created two or three new ones. With my remaining time I designed two levels! Only one made it into the jam. I finished my second level literally four minutes before our deadline, so there’s no way it could have been added.
Recently
After living with these songs for a few weeks I think my favorite is currently “Does Not Compute”. I love that melody, I whistle it constantly. My second favorite is “Bits and Pieces”. I can’t help myself, I LOVE ending themes.
Since the jam I’ve been working on my level design chops. Rusty and Shaun always have great feedback. I’ve written one new song and have plans to write a few more. The new song, “Data Corruption”, is a glitch/dubstep style track. I think it’s very appropriate for this game, and this is my first time ever attempting to write something like dubstep. Because the music is all about EOL and the repairbots, and it’s written on the 2A03 sound chip, I like to call the genre botstep. So here it is (and only using the five standard NES sound channels too!).
Data Corruption
Maybe soon, we can explore the finer details of some of EOL’s music. I’m really happy with what I created and in such a short amount of time. It’s rare to love most everything you start working on without throwing it away or hating it a few hours later. Not that quantity has anything to do with quality, but for comparison: EOL currently has over 14 minutes of music and Super Clew Land Complete has 9. I really hit a stride. I must have had this robot music bottled up inside of me all these years.