All Projects → convenient → mazeman

convenient / mazeman

Licence: other
MazeMan - A procedurally generated dungeon game for the Nintendo DS

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
Roff
2310 projects
Makefile
30231 projects
assembly
5116 projects
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to mazeman

NDSFactory
Unpack & Repack Nintendo DS Roms (.nds)
Stars: ✭ 47 (+123.81%)
Mutual labels:  nintendo-hacking, nintendo-ds
HuDK
ASM and C open source software development kit for the NEC PC Engine
Stars: ✭ 27 (+28.57%)
Mutual labels:  retrogaming
HTML5-Space-Invaders
A Space Invaders HTML5 porting. This work is licensed under a Creative Commons Attribution - Share Alike 3.0 - Unported license (CC BY-SA 3.0). The text of the license is available at http://creativecommons.org/licenses/by-sa/3.0/ .
Stars: ✭ 36 (+71.43%)
Mutual labels:  retrogaming
dust
A DS emulator written in Rust
Stars: ✭ 56 (+166.67%)
Mutual labels:  nintendo-ds
ShaderGlass
Overlay for running GPU shaders on top of Windows desktop
Stars: ✭ 417 (+1885.71%)
Mutual labels:  retrogaming
OpenAmiga600RamExpansion
Open Hardware 1 MB Chip RAM Expansion for the Commodore Amiga 600 Computer
Stars: ✭ 48 (+128.57%)
Mutual labels:  retrogaming
ENGAGE
Source code repository for ENGAGE: Battery-Free Game Boy
Stars: ✭ 75 (+257.14%)
Mutual labels:  nintendo-hacking
elite-a-beebasm
Fully documented and annotated source code for Angus Duggan's Elite-A on the BBC Micro
Stars: ✭ 24 (+14.29%)
Mutual labels:  retrogaming
wasm4
Build retro games using WebAssembly for a fantasy console.
Stars: ✭ 711 (+3285.71%)
Mutual labels:  retrogaming
Blood-Voxel-Pack
Additional voxel models for Blood video game. Compatible with BuildGDX, NBlood, and Fresh Supply.
Stars: ✭ 42 (+100%)
Mutual labels:  retrogaming
neo-geo-dev-book
a book on developing for the Neo Geo
Stars: ✭ 27 (+28.57%)
Mutual labels:  retrogaming
LudOS
Just enough OS for libretro using the Ludo frontend on a LibreELEC 9.2 base
Stars: ✭ 36 (+71.43%)
Mutual labels:  retrogaming
ShallowSea
ShallowSea - The AIO CFW package for the Nintendo Switch with Atmosphere
Stars: ✭ 513 (+2342.86%)
Mutual labels:  nintendo-hacking
Brahma
Brahma - Privilege elevation exploit for Nintendo 3DS
Stars: ✭ 34 (+61.9%)
Mutual labels:  nintendo-hacking
tilemap-studio
A tilemap editor for Game Boy, Color, Advance, DS, and SNES projects. Written in C++ with FLTK.
Stars: ✭ 247 (+1076.19%)
Mutual labels:  nintendo-ds
kickoff
Open Kick-Off is a fun rewriting attempt of the cult football game Kick Off 2 designed by Dino Dini and released in 1990 by Anco for the Atari ST and the Commodore Amiga. It is written in Java with the help of libGDX.
Stars: ✭ 32 (+52.38%)
Mutual labels:  retrogaming
CDNTool
CDN Nintendo's servers 3DS title downloader (as CIA)
Stars: ✭ 15 (-28.57%)
Mutual labels:  nintendo-hacking
flipnote-player
🎬 Web player and video converter for animations made with Flipnote Studio; an animation app for the Nintendo DSi and 3DS
Stars: ✭ 85 (+304.76%)
Mutual labels:  nintendo-hacking
AsciiBird
ASCII version of the addictive Flappy Bird game.
Stars: ✭ 34 (+61.9%)
Mutual labels:  retrogaming
GenDumper
An open-source Sega Genesis / Mega Drive cart dumper
Stars: ✭ 40 (+90.48%)
Mutual labels:  retrogaming

MazeMan

A procedurally generated dungeon game for the Nintendo DS

You take control of MazeMan. Escape the 5 dungeons. Open colour coded doors. Grab some gold. Kill zombies.

Playing

  1. Download the .nds file.
  2. Fire up your favourite Nintendo DS emulator, or pop it on your R4 flash cartridge and play away.

This game used to play fine on Desumume on Windows XP. However it occasionally crashes my Ubuntu 15.10 machine. Probably due to my extremely naive and CPU hungry game loop. The R4 flash cartridge on the actual hardware seems to work reliably.

For more information on this insanity see "What was I thinking?"

What was I thinking?

I started making this game at the tail end of 2010 when it was a command line game on Windows.

The original C source for this game was converted into C++ to be compatible with devkitARM and libNDS and that's when the complexities started to creep in.

This was all way before I knew what to do about the following things:

  • Version control - I pulled this code from a directory path on an old hard drive like ./devkitPro/C++/nds/new/test/new. Good times.
  • Compiler warnings - If you want to see some funny and easily fixed compilation problems look at src/make.log.
  • Memory management - "Oh yeah, let's allocate every icon I need in the entire game when loading up the ROM boot screen. I'm bound to have enough RAM available." Clever stuff past Luke, clever stuff.
  • Single Responsibility Principle - A 4520 line long src/main.cpp file? What's going on in there! Oh yeah, EVERYTHING.
  • Basically anything about software engineering, design patterns, reusability. Hell, I even derived dijkstra's algorithm for this game then felt cheated when I found out it was invented 50 odd years previously.

The only reasonable decisions I made in this project were

  • Calling him MazeMan. It's a pretty obvious homage to Jumpman, which is what Mario was originally called in Donkey Kong.
  • Reading the Pac-Man Dossier.
  • Finishing it. It's a game with 5 levels an a kind-of boss level at the end. A lot of games never get it that far.

Compiling

cd src/
rm -rf build
export DEVKITPRO="/home/luker/src/mazeman/devkitpro/"
export DEVKITARM=${DEVKITPRO}/devkitARM
make
//Ignore the compiler warnings and feel free to judge younger, past me.

Contributing

This code is primarily on GitHub as a monument to my sins.

I'd like to keep the master branch as-is, a time-capsule from Spring 2011.

However, if you feel the desire to tidy up some of the mess then feel free to make a pull request to the develop branch.

If you're working from the develop branch then the compiler warnings have been cleaned up by code archaeologist @jcolicchio.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].