Jump to content

Recommended Posts

First, Many thanks to James and Tanya for playing Realm of Riesig on the ZPH show tonight!

 

The Realm of Riesig is a large 256k adventure game inspired by the original Atari Adventure.  It consists of 30 unique game levels, each with it’s own 64 room overworld map, a 10-15 room dungeon, and unique enemies and obstacles.  There are 2,259 defined rooms in the game!

 

Playing the Game

 

I encourage everyone to download the instruction manual for all of the details, but here’s a quick start guide with a summary of the objectives. 

 

Each of the 30 levels shares the same objectives:

 

  • Find the Sword to defend yourself against the enemies in the realm.
  • Find and gather 3 gems.
  • Find the hidden entrance to the dungeon and explore the dungeon to find the golden chalice.  You must also search for the dungeon’s exit to return to the main realm.
  • Avoid the obstacles in the dungeon, which will take a block of health and return you to the dungeon entrance if you hit one.
  • Find the key to the castle.
  • With the key, the 3 gems, and the chalice in hand the castle gate will open revealing the exit to the next level.
  • Finish these objectives on all 30 levels and you will win the game.

 

Other important things to note:

 

  • On the Hero, Adventurer, and Explorer difficulty levels the dungeon entrance is hidden.  You must walk through every area of every room in the realm order to find the trigger mechanism that reveals it.
  • Find the magic staff to temporarily ward off enemies.
  • Avoid the bat, who will steal your key if it touches you.
  • Avoid traps and obstacles in rooms, which will steal your health.
  • You have 8 health blocks, and you will lose one if an enemy touches you. 
  • Killing an enemy replenishes one health block.
  • Entering a dungeon replenishes all of your health.
  • There is no permanent death in this game, if you lose all of your health you will lose the key (if you had it in your inventory) and return to the starting room for the current realm.
  • There are four skill levels in the game, details are in the instruction manual.

 

Continuing a game

 

Note that this game does not feature save games, however I did include a built-in method to continue your game near where you left off.  The game is large enough that it’s unlikely anyone will beat it in one play session.

 

I went back and forth on this issue, as I could potentially add game saves to the atarivox/savekey if I removed one of the 30 levels to free up a bank to do that, but I’d rather not.  From the skill selection screen, you may push down on the joystick instead of pressing fire, which will take you to a realm and dungeon selection screen that allows you start from any level.  I of course recommend against playing the levels out of sequence, but the option is available all for the cheaters out there. 😊

 

Technical Info

 

I used the batariBasic 256k multikernel framework, which in a nutshell allows programmers to build up a large game out of smaller individual 4k projects.  This game makes use of all 64 4k banks, and each one is pretty much full.  

 

I came across the multikernel framework thread earlier this summer and I thought it would be cool to create a project that used it.  My mind immediately went to an expansive adventure game with dozens of worlds, each similar but with different maps, enemies and obstacles.  Because each of the main game levels only use 8k (4k of which is shared between every level for duplicated code), I was somewhat limited in what I could add despite the fact that this is a 256k game.   I tried to squeeze as much in as I could given the limitations, and I tried to make something fun out of my original concept.

 

Here is the bank configuration for the game:

 

 

Bank 1 – Realm and Dungeon Selection, Titlescreen Music Loop

Level 1

Bank 2 – Realm 1

Bank 32 – Dungeon 1

Bank 62 – Shared Code (banks 2-31)

Level 2

Bank 3 – Realm 2

Bank 33 – Dungeon 2

Bank 62 – Shared Code (banks 2-31)

Level 3

Bank 4 – Realm 3

Bank 34 – Dungeon 2

Bank 62 – Shared Code (banks 2-31)

Level 4

Bank 5 – Realm 4

Bank 35 – Dungeon 2

Bank 62 – Shared Code (banks 2-31)

Level 5

Bank 6 – Realm 5

Bank 36 – Dungeon 2

Bank 62 – Shared Code (banks 2-31)

 ..and so on…

 

 

 

Level 30

Bank 31 – Realm 30

Bank 61 – Dungeon 30

Bank 62 – Shared Code (banks 2-31)

 

Bank 63 – Maximus Games Logo, End-game code & music

 

Bank 64 – Realm of Riesig Title Screen, Skill Selection Screens

 

Because each of the main realm/overworld levels each use a shared second bank, each of the 30 game levels could be independent games that would use about 12k of ROM each.  One game level has a dedicated 4k main bank, a dedicated 4k bank for the dungeon, and a shared secondary 4k bank that is used by all main game banks.

 

Mapping the game

 

I spent an extraordinary amount of time playtesting and mapping the game and making sure each of those 2000+ rooms connected properly.  Since I needed to visit every room in the game for testing, I went ahead and took screenshots of every room and created maps for every realm and every dungeon during my testing.  Mapping the game is definitely part of the fun, and I’d recommend pulling out the graph paper if you still have some in that old box of Dungeons and Dragons books in your basement. 😊

 

I used Google Gemini to create some cool AI artwork to go along with the game, which is included in the instruction manual and the map guide. 

 

A Guide to Spoilers

 

The instruction manual includes a full map of the first realm and the first dungeon to get you started on your quest, but I’d recommend referencing it only if you’re stuck.  It shows all of the item locations as well.

 

The Riesig level and dungeon guide is a huge spoiler, as it includes a full realm and dungeon map for each of the 30 levels and dungeons, as well as all of the object locations.

 

The easiest difficulty level (Scout Difficulty) is also a spoiler of sorts, as that skill level will always reveal the location of the dungeon entrance, and the location is the same across all skill levels.  I would not recommend the scout difficulty level unless you are truly looking for a casual game experience.

 

This game is also not random, object locations in the game are static and never change.

 

What’s in a name?

 

Why did I chose “Realm of Riesig” for the title of the game?  Well, my great-grandparents were born in Germany and I thought it’d be fun to find a German word to use in the title of the game, and all of the good adventure game names in English are already taken. 😊 As far as I know, Riesig translates to “Huge” or “Gigantic” in English, which seemed like an appropriate title.  I also just liked how “Realm of Riesig” rolls off the tongue.

 

Is it done?

 

Well, the game is finished, but there is still a possibility that I might make a few more changes in the future.  The game is packed pretty tight as it is now so adding new features would be difficult, but I'm happy to listen to anyone's feedback for potential changes to make it better.

 

Credits

 

I’m so thankful for the great community here at AA and all the support I’ve received over the years.  I wanted to mention a few people here who helped out during the development of the game.   I apologize if I missed anyone here, I will edit this later if I forgot anyone.

 

Thank you to Random Terrain for his slippery movement code.

Thank you to Karl G for helping me with brainstorming, playtesting, feedback, and bug fixes.

Thank you to James at ZPH for playtesting and providing feedback, and for having me on his show.

Thank you to SeaGtGruff, who in 2006 shared a move around rooms demo that inspired Cave In and ultimately led to this game.

Thank you to bjbest60, who shared a procedural music demo in 2018 that was the basis for the title screen music. 

Thank you to RevEng, who created this multikernel framework and regularly gives me feedback when I have questions.

Thank you to sramirez2008 for playtesting.

Thank you to David Exton for all the great artwork he's created for my games over the years, and for some feedback on this game.

Thank you to Al for, well, everything, and for some feedback on this game.

 

 

Riesig Instruction Manual v0.2.pdf Riesig Level and Dungeon Guide v0.4.pdf The_Realm_Of_Riesig_v0.84.bin

 

Here is a PlusCart/UnoCart (2.3.17 firmware) compatible version, shared by MarcoJ:

 

The_Realm_Of_Riesig_v0.84.ACE

 

  • Like 24
  • Thanks 4

I like how the wall collision isn't sticky/bouncy. Nice and smooth.

 

Never heard of Google Gemini, so I looked it up. Seems friendly. :D

  • Like 1
8 hours ago, Random Terrain said:

I like how the wall collision isn't sticky/bouncy. Nice and smooth.

That's because you wrote the code for that. :)  I'm so sorry that I completely forgot to give you credit for that during the ZPH show last night, I really appreciate your help with that RT!  Being able to smoothly slide across the walls was a huge improvement in the early development of the game.

 

Thanks to everyone for the kind words!

  • Like 3

I wish Atari had this complexity of programming for its Swordquest series - they would’ve been epic. Truly world-sized. Having large mazes, hidden treasures and a variety of monsters and levels would’ve been more suitable than the object combination drudgery. Of course Riesig is 50 years of collective programming advancements and learning. It looks like you put an intense amount of work into this. Can a physical 256k cart be manufactured? 

  • Like 3
8 minutes ago, Lafe Fredbjornson said:

I wish Atari had this complexity of programming for its Swordquest series - they would’ve been epic. Truly world-sized. Having large mazes, hidden treasures and a variety of monsters and levels would’ve been more suitable than the object combination drudgery. Of course Riesig is 50 years of collective programming advancements and learning. It looks like you put an intense amount of work into this. Can a physical 256k cart be manufactured? 

I agree about the Swordquest series.  I picked out Swordquest Earthworld as a kid when it was first released, my parents took me up to Toys'R'Us and I was thrilled to be getting a new game.  I was incredibly disappointed, and it turned out to be the only 2600 game I ever returned to the store.  The store allowed me to exchange it and I got a copy of Keystone Kapers instead. :)

 

I am not an expert on the hardware side, but as far as I know there is a homebrew board that supports 256k and cartridges could be made.  The game is compatible with the Harmony Encore.

 

  • Like 5
1 minute ago, Gemintronic said:

@Atarius Maximus

 

How did you manage compiling and testing?  I've always had challenges with batch files and VisualbB making multi kernel framework games.

Compiling and testing did present some challenges.  I use a microsoft windows PC for my development, so I created some batch files to help out.  

 

For opening all 64 files at once I created a batch file to open them all up in VBCode.  I use Visual Studio Code for pretty much everything I do as having the code highlighting and tabbed management made things a lot easier.  I had each bank's code in an individual subfolder, and also an individual copy of bB in each subfolder as some banks had bB modified in different ways.

 

This is what I did to easily open all the files:

 

call code "c:\dev\256\bank1\bb\bank1.bas"
call code "c:\dev\256\bank2\bb\bank2.bas"
call code "c:\dev\256\bank3\bb\bank3.bas"
call code "c:\dev\256\bank4\bb\bank4.bas"
call code "c:\dev\256\bank5\bb\bank5.bas"
...and so on for all 64 banks

 

For Compiling the code in each individual bank, I did something very similar.  Any time I made a change to one bank and needed to test it, most of the time I'd simply re-compile the entire project with a batch file.  I also piped the output into a log file so I could quickly see how many bytes were remaining in each bank as well as any compilation errors that occurred.  Testing individual banks was easier with this game as I had a built in method to jump to any bank with my menu based level select option.  That was one of the first things I worked on in bank 1.

 

@ECHO OFF
c:
cd\dev
del c:\dev\256\compile_log.txt

cd\dev\256\bank1\bb
call set bb=c:\dev\256\bank1\bb
echo "Riesig Compile Log" > c:\dev\256\compile_log.txt
echo -------------------------------------------------------------------- >> c:\dev\256\compile_log.txt
echo Bank 1 >> c:\dev\256\compile_log.txt
echo -------------------------------------------------------------------- >> c:\dev\256\compile_log.txt
call 2600bas bank1.bas >> c:\dev\256\compile_log.txt

echo -------------------------------------------------------------------- >> c:\dev\256\compile_log.txt
echo Bank 2 >> c:\dev\256\compile_log.txt
echo -------------------------------------------------------------------- >> c:\dev\256\compile_log.txt
cd\dev\256\bank2\bb
call set bb=c:\dev\256\bank2\bb
call 2600bas bank2.bas >> c:\dev\256\compile_log.txt

...and so on for all 64 banks

 

For pasting all of the files together and creating the final binary, I also used a windows batch file:

 

copy /b bank1\bb\bank1.bas.bin + bank2\bb\bank2.bas.bin + bank3\bb\bank3.bas.bin + bank4\bb\bank4.bas.bin + bank5\bb\bank5.bas.bin + bank6\bb\bank6.bas.bin + bank7\bb\bank7.bas.bin + bank8\bb\bank8.bas.bin + bank9\bb\bank9.bas.bin + bank10\bb\bank10.bas.bin + bank11\bb\bank11.bas.bin + bank12\bb\bank12.bas.bin + bank13\bb\bank13.bas.bin + bank14\bb\bank14.bas.bin + bank15\bb\bank15.bas.bin + bank16\bb\bank16.bas.bin + bank17\bb\bank17.bas.bin + bank18\bb\bank18.bas.bin + bank19\bb\bank19.bas.bin + bank20\bb\bank20.bas.bin + bank21\bb\bank21.bas.bin + bank22\bb\bank22.bas.bin + bank23\bb\bank23.bas.bin + bank24\bb\bank24.bas.bin + bank25\bb\bank25.bas.bin + bank26\bb\bank26.bas.bin + bank27\bb\bank27.bas.bin + bank28\bb\bank28.bas.bin + bank29\bb\bank29.bas.bin + bank30\bb\bank30.bas.bin + bank31\bb\bank31.bas.bin + bank32\bb\bank32.bas.bin + bank33\bb\bank33.bas.bin + bank34\bb\bank34.bas.bin + bank35\bb\bank35.bas.bin + bank36\bb\bank36.bas.bin + bank37\bb\bank37.bas.bin + bank38\bb\bank38.bas.bin + bank39\bb\bank39.bas.bin + bank40\bb\bank40.bas.bin + bank41\bb\bank41.bas.bin + bank42\bb\bank42.bas.bin + bank43\bb\bank43.bas.bin + bank44\bb\bank44.bas.bin + bank45\bb\bank45.bas.bin + bank46\bb\bank46.bas.bin + bank47\bb\bank47.bas.bin + bank48\bb\bank48.bas.bin + bank49\bb\bank49.bas.bin + bank50\bb\bank50.bas.bin + bank51\bb\bank51.bas.bin + bank52\bb\bank52.bas.bin + bank53\bb\bank53.bas.bin + bank54\bb\bank54.bas.bin + bank55\bb\bank55.bas.bin + bank56\bb\bank56.bas.bin + bank57\bb\bank57.bas.bin + bank58\bb\bank58.bas.bin + bank59\bb\bank59.bas.bin + bank60\bb\bank60.bas.bin + bank61\bb\bank61.bas.bin + bank62\bb\bank62.bas.bin + bank63\bb\bank63.bas.bin + bank64\bb\bank64.bas.bin The Realm_of_Riesig.bin

 

  • Like 1
  • Thanks 1

For those of you who missed the EXCLUSIVE WORLD PREMIERE of The Realm of Riesig on ZeroPage Homebrew and live interview with Atarius Maximus about his new game, below is the archived video.

 

- James

 

Games:

 

 

  • Like 8

The game play is buttery smooth. I can't believe how large a game this is. I'm happy it runs on the Harmony Encore, but would love a cart. If this ever sees a release, consider one sold!

 

*** Bats...I hate bats! ***

  • Like 3
Quote

Would it be worth converting it to .ACE format?

@alfredtdk I'm not familiar with that format and I couldn't find any information on it with a quick search of the forums.

 

Quote

One little thing: in the manual, the text under FIND THE MAGIC STAFF is cut off at the end

@Pat Brady Thanks for pointing that out.  I'll hold off on an immediate update to fix that as I'll probably share updated versions of both in the future.  

 

Quote

The game play is buttery smooth. I can't believe how large a game this is. I'm happy it runs on the Harmony Encore, but would love a cart. If this ever sees a release, consider one sold!

@sramirez2008 Thanks! I have no immediate plans for a cart release but I'm not ruling that out for the future.  Any news on that would be shared here.

  • Like 4
17 hours ago, alfredtdk said:

Great game. I'm just sorry that it's not yet functional on Unocart with firmware 2.3.17, it's in an eternal loop loading. Would it be worth converting it to .ACE format?

That's surprising. It uses BFSC bankswitching, and support for that was supposed to have been added at the same time as was the one that supports Penult (DFSC).

  • Like 1
3 hours ago, Atarius Maximus said:

 

 

@sramirez2008 Thanks! I have no immediate plans for a cart release but I'm not ruling that out for the future.  Any news on that would be shared here.

Consider 2 pieces sold!😉

  • Like 1

If I'm not mistaken, it was one of the first demo roms for Unocart using the .ace format after updating firmware v.17 to 2.xx.xx. It was one or two screens at most, a Zelda style game, the size of the rom was 256kb or 512kb. Maybe someone still remembers and can show us where this was posted here on the forum.

Edited by alfredtdk
On 11/21/2024 at 10:57 AM, alfredtdk said:

I'm just sorry that it's not yet functional on Unocart with firmware 2.3.17, it's in an eternal loop loading

Hmm, this format should be supported, BFSC is part of the firmware. I also get this result on PlusCart, even in offline mode. I suspect, the size is too big to fit in memory. @Al_Nafuur would you concur?

  • Like 1
On 11/21/2024 at 10:57 AM, alfredtdk said:

Would it be worth converting it to .ACE format?

@alfredtdk Good idea. I've written an ACE UF00 shim driver to get Realm Of Riesig working with PlusCart / Unocart (2.3.17 firmware) (at least in the short term). I have tested it on PlusCart and Gopher2600 and it seems good. Can you try on your UnoCart? 

The file attached has a 512 byte ACE header and BF driver, and the original ROM is mounted at 0x200. 

 

@Atarius Maximus great game. I am enjoying playing it. The scope for exploration in this game is immense.

 

The_Realm_Of_Riesig_v0.84.ACE

  • Like 6
  • Thanks 2
48 minutes ago, MarcoJ said:

@alfredtdk Good idea. I've written an ACE UF00 shim driver to get Realm Of Riesig working with PlusCart / Unocart (2.3.17 firmware) (at least in the short term). I have tested it on PlusCart and Gopher2600 and it seems good. Can you try on your UnoCart? 

The file attached has a 512 byte ACE header and BF driver, and the original ROM is mounted at 0x200. 

 

@Atarius Maximus great game. I am enjoying playing it. The scope for exploration in this game is immense.

 

The_Realm_Of_Riesig_v0.84.ACE 256.5 kB · 0 downloads

Thank you MarcoJ!  I appreciate the kind words, and for you taking the time to create and share a PlusCart/UnoCart compatible version.  I'm glad you're enjoying the game. :)

  • Like 1
9 hours ago, MarcoJ said:

Hmm, this format should be supported, BFSC is part of the firmware. I also get this result on PlusCart, even in offline mode. I suspect, the size is too big to fit in memory. @Al_Nafuur would you concur?

For BFSC the last 96Kb should be loaded to the first free flash sector.

I tried loading with my PlusCart, but only the first 32kb chunk for flash is requested and not flashed..

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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