Jump to content

Recommended Posts

I blew the dust off an old project I started back in 2009 and finally finished up. I started it using the platformer source code that batari posted in May 2009 (http://www.atariage....tformer-source/). I started the game with no theme in mind, I just knew I wanted to write a platform game. In the end decided to stick with the CaveIn theme and call it "Cave Run". It uses the standard kernel, 32k, and the superchip option.

 

The object is to run through thirty horizontally placed screens (or "caves") and grab the treasures on each level. Some backtracking and creative jumping is required to reach some of them. Once you have collected all the treasures the final screen unlocks. If you successfully navigate the last screen you win the game. You start the game with three lives. I've done a few hours of playtesting and I was able to reach all of the treasures and beat the game, but it's possible there's a bug in the code somewhere that I haven't found yet.

 

Here's the an outline of the basics:

 

Obstacles:

 

Any of these obstacles will cause you to lose a life. When you die you "explode" like a bomb, I threw that in there from the beginning mostly because I thought it was kind of funny. I have no specific explanation as to why you explode when dying in this game. :)

 

:arrow: The Bat. There is a bat that flies around each screen, if it touches you you will lose a life. The bat will disappear after a hit just for the screen you are on, it will reappear when you change screens.

:arrow: The Pits. If you fall off the bottom of the screen you will lose a life.

:arrow: Barriers. Some screens have a barrier that moves back and forth. If you hit it, it will push you to the right and could cause you to fall into a pit. Be careful to time your jumps and avoid them.

 

Treasures:

 

There are 2 treasures in each of the 31 rooms. Some move in patterns that require precise jumps, others are positioned so that you may have to fall into them to collect them, and some are static. All 62 need to be collected to win the game. You score 10,000 points for each treasure, but it's more of a way to keep track of how many you've collected. You'll end up with the same score every time if you beat the game. I used batari's 5+1 score minikernel, so the right side represents your remaining lives.

 

Options:

 

I've included an options screen at the beginning of the game that lets you choose the speed of the bat, god mode (which disables collisions with the bat and barriers), gravity and jump velocity. To choose an option, move the joystick up and down to select which option you want to change, and then push the joystick left or right to select the setting for that option. Pressing the fire button will start the game. Please note that the default options for gravity and jump velocity are what I designed the with, some platforms are placed in a very specific places that match up with the defaults. Choosing different options is fun to play around with in the game, but certain combinations of them could make the game unwinnable.

 

:arrow: Bat Speed: High or Low. Low is the default. High simply makes the bat fly around faster.

:arrow: Player Speed: High or Low. Low is the default. High makes the player run faster.

:arrow: God: On or Off. Off is the default. Turning God mode on disables collision detection with the bat and barriers, and also allows you to fall into a pit and survive.

:arrow: Gravity: High or Low. High Gravity is the default. Switching to Low gravity will allow you to jump farther.

:arrow: Random Start: On or Off. Off is the default, you'll always start in the first room at the beginning of the map. Turning random on will cause you to start in a random location.

:arrow: Velocity: High or Low. Low velocity is the default. Switching to High velocity will allow you to jump higher. High velocity jumping may make it impossible to get to certain treasures.

 

The Map Screen:

 

Press the color/BW switch (F4/F3 in Stella) to go to the Map screen. The map screen shows all 31 rooms in order from the top left down to the bottom right. It also shows your current position on the map and which rooms still have treasures in them that need to be picked up. The remaining treasures will only be shown on the current row you're in on the map screen.

 

-------------------------------------

 

Updated on 8/2/12: Update2 has a few bug fixes and a few changes to the options screen & map screen. I've also attached the titlescreen folder in case anyone wants to compile the game.

 

Update 3/7/12: Just tried it for the first time on my Harmony and this game is not 100% hardware compatible. I'll work on an update eventually, but for now just enjoy it on Stella. :)

 

Steve

caverun.txt

caverun.txt.bin

post-2143-0-36646000-1343315544_thumb.jpg

post-2143-0-71562400-1343315546_thumb.jpg

post-2143-0-99020000-1343315548_thumb.jpg

post-2143-0-49613200-1343315550_thumb.jpg

caverun_update1.bin

caverun_update1.txt

post-2143-0-83328300-1343845101_thumb.jpg

post-2143-0-38375900-1343845102_thumb.jpg

caverun_update2.bin

caverun_update2.txt

post-2143-0-11299500-1343925517_thumb.jpg

post-2143-0-78252900-1343925517_thumb.jpg

titlescreen.zip

Edited by Atarius Maximus
  • Like 4

Share this post


Link to post
Share on other sites

Very cool. Almost what I imagine a Super Pitfall back-port would be.

 

I think you could change the option text to playfield pixels (check-boxes) to avoid flicker. Even with the phosphor cheat in Stella it flickers badly. You could also use both sprites and have a set of 4 off/on graphics. You know, on/on on/off off/off off/on. Zero flicker and a little wasteful graphic data.

 

Variable jump is a nice thing. Maybe make it so?

 

How are you displacing that first digit in the score? That's awesome!!! Please tell :)

Edited by theloon

Share this post


Link to post
Share on other sites

Very cool. Almost what I imagine a Super Pitfall back-port would be.

 

I think you could change the option text to playfield pixels (check-boxes) to avoid flicker. Even with the phosphor cheat in Stella it flickers badly. You could also use both sprites and have a set of 4 off/on graphics. You know, on/on on/off off/off off/on. Zero flicker and a little wasteful graphic data.

 

Variable jump is a nice thing. Maybe make it so?

 

How are you displacing that first digit in the score? That's awesome!!! Please tell :)

 

You're right, I was being lazy with the options screen and simply flickered one sprite four times. I could make that screen flicker-free with a bit more effort. I'm not exactly sure what you mean by variable jumping, but I don't think I'd be able to easily change how jumping works in the game now. Like I said in the first post, the jumping code is from batari (it's what was used in the Gingerbread Man game) and changing it would be difficult. As far as displacing the one digit in the score, there's an old thread (again posted by batari) that has a few different score minikernels that you can use and I used one of those minikernels in my game. Take a look here: http://www.atariage.com/forums/topic/124520-a-few-new-score-kernels/page__hl__+score%20+minikernel?do=findComment&comment=1507829.

 

Steve

Share this post


Link to post
Share on other sites

Welcome back Steve!

 

Thanks. I wish I could spend more time on the forums and working on new games. I put off a lot of other work to finish this game up in the past few weeks. :)

 

Steve

Share this post


Link to post
Share on other sites

Variable jumping is when you can jump higher or lower depending on the length of time you depress the jump button.

 

Also, did you see in this topic I got Bataris 4-way scrolling demo working in the latest build of bB?

http://www.atariage.com/forums/topic/166157-search-for-bataris-4-way-scroll-examplegame/#entry2566587

 

With the proper changes we could make a proper platformer with levels bigger than one screen at a time!

Edited by theloon

Share this post


Link to post
Share on other sites

Variable jumping is when you can jump higher or lower depending on the length of time you depress the jump button.

 

Also, did you see in this topic I got Bataris 4-way scrolling demo working in the latest build of bB?

http://www.atariage....e/#entry2566587

 

With the proper changes we could make a proper platformer with levels bigger than one screen at a time!

agree with theloon. it will make it even more better!!!

Share this post


Link to post
Share on other sites

Variable jumping is when you can jump higher or lower depending on the length of time you depress the jump button.

 

Also, did you see in this topic I got Bataris 4-way scrolling demo working in the latest build of bB?

http://www.atariage....e/#entry2566587

 

With the proper changes we could make a proper platformer with levels bigger than one screen at a time!

 

Great ideas, but I'm not going to be implementing either of those in this particular game. Variable jumping and a four way scrolling playfield would be a complete rewrite. They're very good ideas, though. I took a quick look at the 4 way scrolling demo from batari and it's greek to me. It's not really commented and doesn't look like it would be easy to figure out what he's doing in that code. Maybe in a future project I'll try to tackle those things. I really like the "fake gravity" demo that RT is working on too, that could work well incorporated into a 4 way scrolling game.

Share this post


Link to post
Share on other sites

Great to have you back crankin' out games! You're running out of "Cave" names though...

 

Hey now, cut me a little slack. It's only my 2nd game with the word "Cave" in it. :D

Share this post


Link to post
Share on other sites

Good fun - I like how you sometimes need to use platforms on the next screen to get to treasure on the current one.

 

With a bit of consolidatoin, it looks like you have enough rom space to put the menu options into one of those fancy new titlescreens everybody is talking about! :ponder:

Share this post


Link to post
Share on other sites

With a bit of consolidatoin, it looks like you have enough rom space to put the menu options into one of those fancy new titlescreens everybody is talking about! :ponder:

 

Yep, I'll probaly do that eventually. I spent most of my time on the game itself and not much time on the titlescreen and options screen. I've seen what people have done with the titlescreen kernel and it's really cool, I'll have to download it and play around with it.

  • Like 1

Share this post


Link to post
Share on other sites

Fun game! I noticed the bat does not always face the way he's flying and so it looks like he's sometimes flying backwards. Was this on purpose?

Share this post


Link to post
Share on other sites

Fun game! I noticed the bat does not always face the way he's flying and so it looks like he's sometimes flying backwards. Was this on purpose?

 

The bat is set to reflect and always face the player. I honestly didn't think of it as the bat flying backwards, but you're right, it does kind of look like that now that you say it. ;) It's a single line of code, it'd be easy to change.

Share this post


Link to post
Share on other sites

Nice game! Just played it for a while and enjoyed it! :)

 

My best score so far:

 

 

post-12950-0-70255500-1343467190_thumb.png

 

Nice! It's not easy to get to the end, most of my playtesting has been with collision detection turned off. I haven't actually beat the game yet. :) There are other bits of strategy that may help that I didn't mention in the first post. You have the ability to duck - just push down on the joystick. It can allow you to avoid some hits by the bat. Also, if you're near the edge of the screen and the bat is coming right for you, leave the screen and come right back. The bat resets to starting from the middle of the screen every time you re-enter.

 

Steve

Share this post


Link to post
Share on other sites
I really like the "fake gravity" demo that RT is working on too, that could work well incorporated into a 4 way scrolling game.

 

Speaking of that, can you make your little guy move and jump as fast as the little guy in the fake gravity test program? I like to move fast.

Share this post


Link to post
Share on other sites
I really like the "fake gravity" demo that RT is working on too, that could work well incorporated into a 4 way scrolling game.

 

Speaking of that, can you make your little guy move and jump as fast as the little guy in the fake gravity test program? I like to move fast.

 

Yep, it wouldn't be too hard to make the player move faster. I could make fast or slow player movement another option in the game. I'll probably work on a few updates in the next week or so.

  • Like 1

Share this post


Link to post
Share on other sites

Hey RT - I made a quick change to change the speed of the player. Flip the left difficulty switch to A to make the player move faster. I'll add it as an choice on the options screen when I get some more time, I want to re-do that screen (and the titlescreen) anyway.

caverun.txt.bin

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...