Under the Shrine of Death. Behind the Scenes.


Under the Shrine of Death is a roguelike dungeon crawler game for the Sega Mega Drive.

It was made in four weeks for the Retro Platform Jam #6.

The PreJam days.

There was a Jam named Dungeon Crawler Jam 2023 and I wanted to make a jam for this but the restriction to make a game in one week was too short for me. So I just kept an eye on this.

Around the end of this Jam I seen that there is another Jam around the corner and for retro platforms with the theme Underground so the idea of making a roguelike dungeon crawler became an obsession to me.

I read the rules of the Jam and seemed to me open enough to start making the game one week earlier before the Jam starts.

So I pushed the button Join Jam of the Retro Platform Jam #6 and started working on it.


Early Days

I started to try to find a way to create the first person move. 

Soon enough was quite clear that I cannot use Blender for this cause every part of the wall had to at the exact boundaries of 8 pixels MD tiles.

So I started looking to the old legends to see how they did it.


The Eye of the Beholder

Well... what come in mind when you hear Dungeon Crawler RPG with first-person perspective?

What else?

The Eye of the Beholder.

I took screenshots of the game and the first thing I realized was that the wall parts were ailing to the 8 pixels boundary.


So I started laying up the walls the way they had.

Playing with Eye of the Beholder, I realized that the ceiling and the floor just flip horizontally when you turn or move to give the illusion of movement.

Walls too had to change as you move, otherwise in a long corridor.

So I need a file with the side walls as the texture is and another with the texture flipped.

In the end I wrote a script that took three textures (walls, floor, ceiling) and converted them to a single file to be used with SGDK.

And passed to this script the textures I made with Stable Diffusion.


Because I had all this on a single file, I was able to pass it through ImageMagick and break it down to 16 colours.

Setting all this up and creating the movement was pretty much the extra week I got from the Jam.

The Monsters are All Sprites of the same Palette

The Monsters were made with Stable Diffusion too. I created a base mode with MakeHuman and by using this model I came up with my first Goblin.

After that, I used this Goblin to create a Hobgoblin and so on.

But the plan was that all the enemies will use one palette.

Why?

Because one palette is for the menu.

One for the textures.

Another for the items on floor etc.

So one palette for the enemies.

Another thing about the enemies is that if they stand on some tiles, there is a possibility to be covered from a wall.

So how to do this?

The solution was to create a file and put all the enemies there, and then pass this to ImageMagick to reduce it to 15 colour for the Mega Drive.

So python came into play again.

This script took the file created the extra shades and sizes and the created single files with the size and with the sprite cut.

Every column of the above image is a different sprite.

The reason for this is to avoid allocating more tiles for the smaller sizes.

Basic Fantasy RPG (BFRPG)

Rules? Who needs rules, let's make a game.


When I started my research to make this game I found out that Rogue was loosely based on the OD&D so by searching online I found out about those Open Game Licence (OGL) games and in the end I landed on BFRPG.

This means that many of the rules of the game come directly from the BFRPG.

Check it out : https://www.basicfantasy.org/

Stats and how those stats work are BFRPG.

Items, Weapons, Armor and Monsters are from BFRPG.

Even the treasures and the random numbers to create a dungeon comes from BFRPG.

But there is a catch. I wanted the game to be a game about a solo hero, a hero that if he dies the game is over (Sudden Death).

Yes even thought I started to follow those rules the rules for a RogueLike were still applied too.

The real problem came when I realized that there are no rules for a single hero tabletop RPG. Usually those games are played with four or six players (characters).

So several changes were made to the rules to fit in a roguelike and to be a realistic goal to be done in under four weeks and less cause the research and reading was done in this time period.

As a result, the game have only the Fighter class and the Human race.

All spells had been removed and bows do not work.

Movement was converted to action points (AP). Every 10' to 1 AP.

AP are used for every action. Moving, attacking, picking up items, equipping unequiping items, drinking, dropping thrown etc.

The Heat Points (HP) of the monsters were converted to fixed numbers. The reason for this is cause roguelike players usually discover monster stats from the playthroughts and randomness do not help with that.

I also made the traps too powerful, as there is no save throw. This is probably the biggest exploit right now as you can close the traps and position them where ever you want.

Also, the main can spend all his AP to Attack. This means he can attack 4 times in a turn (or more). This was done cause I believed this will balance that game for a single hero.

Throwing items can be lost only if you roll 1.

AP not used go to your Armor Class for this turn.

Movement is changed only by the armor you are wearing.

You can carry only 24 items (even the * weight items count as one)

And a ton of things never implemented.

The process of all this and coming to changes etc was spread around all those four weeks.

But There are Too many Monsters, Items and Stats 

For the monsters, I created a csv file with Libre Office



So the python script for the enemies used the name to create the sprites and all other stats to create C files with all the stats and the info for the monsters.

The same thing done for the Items, but this time there were no sprites.


Also, I made an item that it is called item stack and this is the only graphic for all the items.

So in game, all the items that are on the floor look the same.

Compromising is what you have to do with retro dev.

Music, Sound and Final Touches.

The first two weeks there were not even collisions with the walls. I travelled in the memory of the Mega Drive for fun.

Guess what? It was almost empty.

Then I found time to write the title song with Furnace.

And until last week, I pretended that everything were cool.

The game sadly have only 3 songs that will play for the 9 levels.

In fact, to give an example of how strict the things were, the last song (the one you hear on the second level) was written two days before the end of the Jam.

Final sounds were added 3 days before the end of the Jam.

The last enemy and the potions other than the health potion were added the last day.

One of the textures two hours before the release of the game.

And those were the final touches.

Final Words

I had no time to play the game properly, and for sure needs balancing.

The trap is overpowered, and I have to change this, but later... after the Jam.

I wish to turn this to a full-blown game with all the classes and all the spells but for now that's it.

Now that I think about it, what am I doing here?

I have to play and the other games of the Jam... and mine.

Thanks... I am out.

Files

under_the_shrine_of_death.bin 640 kB
May 07, 2023

Get Under the Shrine of Death

Comments

Log in with itch.io to leave a comment.

(+1)

Hi, any chance of seeing this project on github one day or releasing code snippets of grid-based movement and dungeon tiles atlas displaying, please?

I am not proud of the code to share to tell you the truth. Too many things can be done in better and different ways. Releasing the source code I believe it is going to be a disservice to people who may want to learn from it.

(+1)

WOW! This is just a game from golden age of 486SX2 MS DOS computer... at least it looks cool! 

Thanks.

Yes it looks cool.

Gameplay wise it will need for sure some changes, but I hope to learn what from the players.