Treasure4k

EDIT:
Barring a few possible balance changes, the game is done. The new version is attached, please enjoy.

Some screenshots:

A dire bat lurks around the corner, waiting to strike our hapless hero. But, knowing that it’s coming, he can lead it in a circle around the nearby wall, baffling the vile beast and making his way to the exit in relative safety. Meanwhile, a pair of deadly cave slimes are oblivious to anything that happens.

http://squashmonster.googlepages.com/Treasure4kC.png

Once you’ve ventured far enough into the caverns, the game gives you the option of starting from the farthest level you’ve cleared. This means you can slowly pick at the levels and eventually reach the scariest and most dangerous parts of the game without entirely superhuman levels of skill. However, because it only lets you go to the last level you cleared, not the last one you reached, you’ll need to clear at least two levels to move your starting point ahead.

These giant centipedes are thankfully only found in the deepest regions of the cave, for they are incredibly deadly. While our intrepid hero might try to lure them around a wall like a dire bat, the centipede is much less likely to lose interest in the chase.


Original post:

I’m almost done with a 4k version of Treasure, a game I’ve been making in various platforms since I first started programming.

Treasure is a pretty simple game: you find the treasure, then run down a hole to get to the next level. Everything that moves wants to kill you, but there’s a unique way to avoid each of them. There are new features to discover down to level 10. I say this because the game is monstrously hard, so many people won’t see all of it.

I have a little under a hundred bytes left to use, so I thought I’d post it on the forum so I could get a few more eyes on it before I submit. Can anyone find any bugs or obvious missing features?

(The screenshot is a little broken: this is because of the screenshot program I used, not the game. I recommend looking at the game for yourself.)

I like it - the scale and graphics are good, but the movement’s jerky, the players seems to jitter a bit as they move… Also needs a pause or something from when you die to the restart screen.
Good - feels much bigger than 4K!

Nice game!

[quote]…monstrously hard
[/quote]
You weren’t kidding… [I hate those fake chests…] ;D

As a suggestion, maybe you could animate the player with your excess bytes?

Thank you both.

SimonH - I managed to fit in a simple death animation, but I can’t do anything about the jitter.

Hsaka - Because (much to my chagrin) I had to break perspective when drawing the sprites, I couldn’t think of a way to animate the player that would actually make sense visually. But now he’s a little animated when he dies, so maybe that counts ;D.

New version attached. I also made it slightly easier at later levels.

EDIT: If anybody downloaded this before the edit mark, delete that and download this one. There was a rather silly bug in that.

I’ve updated the game quite a bit, and would like some final feedback before I submit.

A handful of features since last update:

  • Slightly better bat AI
  • A new wardrobe for the player character
  • Smooth scrolling
  • Start from the last level you cleared

See the (edited) first post for details and the most recent jar.

Man this is a fun game.

It’s fast paced.
It’s always different (Randomly generated levels are like that.)
It’s simple and effective.

The key detection on the title screen is awful. In the game, though, it works fine. I don’t understand.

ETG - thank you.

ptj33 - I’ve been trying to figure out what could cause this, because it simply does not happen for me. I think I finally figured it out though: it’s detecting the key fine, there’s just a big delay between your keypress and the game starting as it generates the level and graphics. I’ll see if I can find room for a loading message, but right now I have only 3 bytes left.

Slightly updated version attached.

EDIT - I looked into adding a loading message, and I need 22 bytes more room to do it. I have no idea where I’ll find that space at this point, so probably not happening.

Could you hide the message? That’s just one if-test, so might fit into 3 bytes.

I tried what you suggested, and it put me just 2 bytes over. Looking for those two bytes, I actually ended up with enough room to print “Loading” too, so here’s a version with a loading screen.

Is the source code for this game available? The scroll is very smooth. My implementation of the scroll is very jerky… I’d like to learn from it.

I’m considering releasing the source, but at the very least I’d like to wait until after the competition.

But the scrolling code is quite simple. It’s just a weighted average between the current location and the location where it belongs. This is run once per frame:
screenX = (screenX * 3 + xs[OBJECT_PLAYER] - SCREEN_HALF) / 4;
screenY = (screenY * 3 + ys[OBJECT_PLAYER] - SCREEN_HALF) / 4;

I really like the new additions you’ve made [especially the “Start from the last level you cleared” one… ;D]

Fun game, nice job.

Treasure4k was definitely inspired by Indiana Jones. The player graphic and bat graphic is well done. It would be nice if the player’s legs moved. The mazes are blocky, though the edges have been bent to hide that to some extent. The seams (edges) of the repeating sand texture is visible. How was the maze generated? Even though the maze is blocky, the overall map itself has a very organic, fractal like property. The green blobby creatures don’t seem to do much at all; unlike the bats, they seem to stay within a confined region. The bat doesn’t hunt the player out; perhaps that a feature of the enemy. It seems pretty easy to pass each level. The enemies don’t put up that big of fight. There are no weapons; it’s just a dodge game. How was the scrolling accomplished? Is it just a visible region of a large image or is the maze stored as a grid? Each level is too similar. I don’t feel motivated to progress through all the levels.

Actually, Indiana Jones had nothing to do with the game’s inspiration. The Indy-like sprite was added pretty late into the game’s development, as I needed a way to give the character a lot of personality in a little bit of space. Making the player’s legs move would call attention to the fact that the graphics break perspective, so I chose not to.

Generating the texture seamlessly would be prohibitively expensive on a lot of computers: some of my friends had loading screens a few minutes long with the seamless version.

The maze is generated using cellular automata: personally, I think fractal terrain is ugly

The bats don’t go around corners because otherwise the game would be impossible. Each of the four enemy types in the game is designed with specific flaws in its AI that can be exploited to get past them. This is the only way to make it through harder levels.

If you think this game is easy, you probably only played the first few levels. Try to get to six or so.