Jump to content
mksmith

Tower of Rubble [ON HOLD]

Recommended Posts

[ON HOLD]
So DionoiD has now released his WIP of Tower of Rubble and his take is amazing to say the least! Great visuals, music and game play really makes it a fantastic Atari 2600 conversion.  So for now I'm going to leave this to one side - I might pick up the game to maybe do something different down the track.  I'm also making the source code available if anyone wants to make use of anything.
 
Tower of Rubble
How long can you survive on the lethal TOWER OF RUBBLE as it crumbles and rebuilds itself around you?
 
This is my first Atari 2600 game written batari Basic and DPC+ as a way of learning to code the Atari which I have recently returned to after a very long hiatus.  I started coding just before Christmas so about 4 weeks worth of work so far.
 
How to play
Control the player with the joystick only (no fire button) moving left and right to run across the tiles and pushing up and down to climb. Learning to jump is key to surviving the tower and is essentially automatic:
  • you jump off the edge and depending on whats in front of you, you will jump across and hang or drop and hang
  • you can climb down backwards into a hanging position then move left/right to jump across (again depending on whats in front of you).
  • there is a short jump (between 1 tile gap) and a long jump (between 2 tile gap).
State of the game
Currently a basic mechanics of the game is complete and the following is essentially complete:
  • the player can run, jump, climb and hang around
  • the main beam drops tiles randomly
  • another beam destroys tiles and sends them crumbling into the water (moving from the outside-in)
  • some basic sounds (walk, jump, death)
  • pause game with Color/B&W button (press fire to continue)
  • game currently ends and pauses for a period of time before returning to title screen (you can restart directly after a short pause here by pressing fire)
I've had to work around a few things to keep the frames from jumping (hopefully!)  
 
There is still a number of things to finalise:
  • test on real hardware (Harmony cart on it's way)
  • balancing - game runs quite quickly ATM
  • add some variation to the tiles (currently causing a few frame issues so not sure I will be able to do it)
  • sound and music - always an issue for me but we'll see how I go!
  • horizontal beam - will need to look at drawing this with the background (I believe?) - have about 900 bytes available in the bank I'm using for the beams.
  • other beams - there are a couple of other beams which I need to investigate which drop and clear tiles slightly differently
  • game over notification - still deciding on whether to add this as it will explain your death (would love to overlay but doesn't appear possible)
  • any remaining bugs
  • would love a 2 player version - I've partially coded it so this may be possible - not sure how may frames might be left though
Feedback
Any feedback would be very much appreciated.
 
Real Hardware
17/01 - Currently it appears the game doesn't work on real hardware when launching off the title-screen (frame overrun) - will investigate.
18/01 - A build has been tested by @cimmerian which has fixed the launching issue but I still have a minor overrun with the crumbling beam to sort through
21/01 - This build should now run on hardware without any frame overruns [TBC]
 
Downloads
20190121 - all frame overruns should now be removed (Stella is showing no overruns) as I've fully split the game initialisation (start) and beam completion (ie. main beam - adding tile, crumbling beam - removing columns) over multiple frames.  This should set me up for adding the next horizontal beam (fingers crossed).
[attachment=616034:towerofrubble.20190121.bin]
Older builds
20190117 -  this release includes some sounds (Walk, Jump and Death), a number of optimisations to provide better/faster access to the ram bank, reduced cross-bank access (found 1 or 2 not required) and cleaned up a lot of no longer used code. The game runs a lot smoother and seems to have removed most/all frame overuns (finger crossed).  
[attachment=614999:towerofrubble.20190117.bin]
20190115 - Initial WIP release
[attachment=614778:towerofrubble.20190115.bin] Edited by mksmith

Share this post


Link to post
Share on other sites

@NostAlgae37 - thanks! Would love a bit of variation if I can just not sure how that could work.

 

@cimmerian - wow that would be great! I'll PM you.

Share this post


Link to post
Share on other sites

We'll be featuring Tower of Rubble on the ZeroPage Homebrew Twitch stream tomorrow (Wednesday) at 11AM PT/2PM ET! Hope everyone can tune in to watch us play!

Twitch Stream: https://www.twitch.t...ropagehomebrew/

 

Featured Games:
Tower of Rubble (mksmith) (2019 WIP) by mksmith

Marble Craze (2017 Trak-Ball Hack) by Thomas Jentzsch

Color Gotcha (2016 WIP) by LS_Dracon

Bit Quest II (2019 WIP) by metalbabble

 

EDIT: Here's the video of the livestream!

 

https://www.youtube.com/watch?v=ftZJJmU-F1Y

Edited by cimmerian

Share this post


Link to post
Share on other sites

A new release is now available in the first post.  Spent the whole day cleaning up, reviewing and optimising code which has reduced frame overruns to none (hopefully!!).

Edited by mksmith

Share this post


Link to post
Share on other sites

This may seem like a strange question, but how do  I jump?  Fire button starts the game, but then seems to do nothing.  I can run and climb, and that's all.

Edited by fluxit

Share this post


Link to post
Share on other sites

Hey guys - all controls are with the joystick only - so no fire button (I've actually yet to play with a joystick myself - just the keys). 

 

Jumping is essentially automatic:

  • you jump off the edge and depending on whats in front of you, you will jump across and hang or drop and hang
  • you can climb down backwards into a hanging position then move left/right to jump across (again depending on whats in front of you).
  • there is a short jump (between 1 tile gap) and a longer jump (between 2 tile gap).

Hopefully that helps. I'll add this to the top.

Share this post


Link to post
Share on other sites

Thanks to @cimmerian showing me the debugger I've investigated the cause of not working on release hardware (massive frame overrun when starting). I've provided him with a new build to test and will release it once he gives me the go ahead.

 

So initialising DPC+ ram, tiles, player and beams all at once appeared to be the issue. So what I've done is add an initialisation routine with runs for 100 frames (leaves a bit of room if required).  During this I set everything up a frame at a time (the DPC+ ram clear takes about 16 frames to process for example - each row of tiles on the map).  I've done a similar thing when destroying tiles after the secondary beam finishes. Anyway during this period the player now flashes identifying the game is about to start so it all fits together nicely.

Share this post


Link to post
Share on other sites

The fix provided to @cimmerian worked well but we still have a slight frame overrun when the crumbling beam is finishing. I've got some ideas about fixing that but will check that out once my harmony cart arrives next week.

In the mean time I've spent the past couple of days building a Visual Studio Code extension for batari Basic. Got the syntax highlighting done (for the most part) and just got the compile process working (not fun but actually easy enough in the end). As my code is now quite large Visual bB is becoming a real pain to edit as it constantly jumps around when pasting. I've included bB and Stella along with it (with options to provide you own paths) - will have a play and see how that works. Will release it once I've spent some time with it.

Edited by mksmith

Share this post


Link to post
Share on other sites

This is good stuff!

 

I think you should make the last two lines of the crumbling playfield graphics blue instead of black so it looks like you see the water through the the playfield block

It also maybe doesn't have to be two players and flicker, other then when the beam is on, two nusiz copies and the different nusiz spacing might do? If you put it to the right the second copy will wrap around and appear on the left, might not be worth the effort tho?

 

What do you mean by secondary beam? is there ever more then one beam? vertical or horisontal?

Share this post


Link to post
Share on other sites

@Lillapojkenpåön,
 
It's a good fun game - the original designer did any awesome job of the graphics and they do suit the Atari very well.  I was thinking about other modes of play also - collecting coins (or diamonds?) might offer another way of play. Will it be worth getting the coin?
 
Yeah I've noticed those 2 lines on the crumbling beam also - wasn't sure how to deal with those but I think you've hit it on the head! 
 
Still working through whether I have a 2 player option (which I think would be fun!) - but flickering would be an issue.
 
The secondary beam is the crumbling beam - I think I'll rename that above in the description.  There is a horizontal beam which slices though the tiles and drops them down a layer (a bit like how Tetris does it when you fill a row).  There are also 2 others which drop tiles in different ways to the main one. Working out whether I can fit (or need) those still as the size of the playfield is quite a bit smaller than the original game.

Edited by mksmith

Share this post


Link to post
Share on other sites

Whoa, another developer doing Tower of Rubble for the '2600?

 

No need for apologies, Matt; your version looks and plays nice. Really impressive for your first Atari 2600 game!

And it doesn't look like a typical batariBasic game, which is a good thing.

 

Of course using DPC+ allows you to add much more visuals to the game compared to the 'vanilla 6507' assembly port that I am working on. But in the end it's the game-play that matters, and I think you're on the right track here.

 

Looking at the movement of the little stick-man, I think you also studied the original PC game to copy over the 30 frames/second animation, right? I did exactly the same :-)

 

It looks like the Atari community will get (at least?) two good versions of Tower of Rubble to choose from this year.

Knowing that good '2600 developers are scarce, it's kind of a waste to have two developers working on their own version of the same game. But on the other hand: developing games is fun, and that's what it is all about.

 

Good to have you in the '2600 homebrew developers community, Matt :-)

Share this post


Link to post
Share on other sites

This is coming along really nicely, both versions are actually. I like how you can turn on the spot & really superb animation.

 

Might just be bad luck, but I had a couple of respawns and then was insta-killed by the beam. 

 

Nice work so far !

Edited by Muddyfunster

Share this post


Link to post
Share on other sites

@Dionoid - thanks for you kind words mate. Having the same game done in different ways can bring a kind of variation to the game too. As said so looking forward to seeing your version!! Yeah did a frame by frame analysis of the player animation and movement then used that in my little animation engine.

@KevKelly - yeah would make a great double-ender!

@Muddyfunster - Thanks! I having been thinking about making sure the first beam is not on the player to give you a chance to get into it. Well done on your work also!

Edited by mksmith

Share this post


Link to post
Share on other sites

New build up which should now run without any frame overruns as I've split all the game initialisation and beam completion processes over multiple frames.  Thanks again to @cimmerian for his testing and identification of these issues.

 

Next up is the horizontal beam which will be very interesting as it will probably involve clearing pf tiles and drawing the background colors to simulate the beam. Once the beam is complete all the tiles above drop down ah-la Tetris style so that's going to be good challenge to program!

 

My harmony cart is in my home city so delivery should be any day now (hooray) as I can't wait to test the game on the real thing.  I've also been working on the VS Code extension but a little programming with it tonight is feeling good (I do a lot in Visual Studio for work so a familiar arrangement).

Share this post


Link to post
Share on other sites

Oh, I thought the horisontal beam was allready in there, I was gonna link to this, you can change background and pfcolor on whatever lines you want

 

http://atariage.com/forums/topic/252582-randomize-virtual-player-colors-in-dpc/#entry4021031

 

Is the beam behaving differently in this build? It seems to like building high towers :)

Edited by Lillapojkenpåön

Share this post


Link to post
Share on other sites

Oh, I thought the horisontal beam was allready in there, I was gonna link to this, you can change background and pfcolor on whatever lines you want

 

http://atariage.com/forums/topic/252582-randomize-virtual-player-colors-in-dpc/#entry4021031

 

Is the beam behaving differently in this build? It seems to like building high towers :)

 

Awesome thanks will definitely need that for sure! As for the beams I don't believe so...

Share this post


Link to post
Share on other sites
So DionoiD has now released his WIP of Tower of Rubble and his take is amazing to say the least! Great visuals, music and game play really makes it a fantastic Atari 2600 conversion.  So for now I'm going to leave this to one side - I might pick up the game to maybe do something different down the track.  I'm also making the source code available if anyone wants to make use of anything. Edited by mksmith

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...

×
×
  • Create New...