The game I am currently working on is called Explorer. That’s the working title, not the final one. I originally started to work on it as an entry to a Retro Coding Competition, but I got busy and couldn’t make the deadline.
Story and Gameplay
Explorer is a puzzle game. Not the kind of puzzle game where you stack blocks, but the kind where you navigate a labyrinth. The basic storyline is this:
You are a guy who has been one-upped all your life by a clever, handsome, ambitious man who is now a world-famous archaeologist. You decide that the only way you can make up for a lifetime of failure and humiliation is to finally get a one-up on him. You must beat him at his own game. To do that, you follow this archaeologist around the world, sneaking into his excavation sites and stealing the ancient treasures hidden within before he can discover them.
The game will be a series of top-down labyrinths, similar to the dungeons in Zelda or the overland map in The Guardian Legend. Each room will take up a full screen and have exits on four sides to other rooms. There will be multiple floors, pitfalls, buttons/switches, locked doors, puzzles, traps, changing terrain, special items, etc. For each excavation site you will have to navigate your way through the labyrinth, find the ancient treasure, and get out without getting caught.
Specs
I’m programming the game using the UNROM mapper. This gives me:
- 128k of PRG-ROM
- CHR-RAM
128k of PRG-ROM is probably more than I’ll need. If I end up having a lot of free space, I’d like to include support for user-made labyrinths. I’m thinking I’ll include a map editor and a utility that will stick a user-made map right into the ROM file.
My assembler of choice is ca65, part of the cc65 package. You can find that here.
And much thanks to SecretServiceDude for posting his UNROM linker config on the nesdev forums. The one I use is based off of his.
Progress
As of today, I’ve written:
- UNROM support
- a basic music engine
- the beginnings of a map engine
The map engine deals with a few types of data:
- dungeon
- floor
- room
Each dungeon has one or more floors. Each floor has one or more rooms. A room is a represented by a single screen. Right now the map engine is capable of loading any room in a dungeon and displaying it on the screen. The biggest success for me here is that I am able to read and decompress the room data format I came up with. So far all of my test data is showing up correctly on screen.
See you next time where I’ll get into attribute data (coloring background tiles)!
