This is a remake of the classic '80s puzzle video game (and its hardcore sequel's too)! The original was developed by Douglas E. Smith in 1983 for the Apple 2 computer. This version is based on the NES port.
Before playing check out the manual of the original version. I could not find the manual for the NES port of Championship Lode Runner but here you can check out the Apple II's manual.
In this ReadMe you can find info about general aspects of the project and about the desktop (Windows/Linux/browser) version. For the details of the Android port please click here!
The game can be played in browser here!
- Controller input is supported but the mappings differ from the original
- The whole level layout can be seen, no scrolling needed
- Original Apple II levelset is used
- Collision detection is not the same as in the original one I implemented a new one
- Guards' moving are calculated at every frame while in the original one they only moved at every nth (varying) frame
- If the runner falls through a trapdoor it will be marked
- Enemies "wear" different suits when they carry gold
- Level-timer at top of the screen
The levels are ripped from the original Apple II version. The NES port has only 50 levels and this remake includes the missing 100 levels too. Note: The levels ported to the NES are not 100% identical to the original ones, as some rows or columns are missing in the ported levels. If you have the proper NES levelset I will happily include it.
A conspicious difference about the collision detection: in the original when there are 3 guards circling around a ladder, they do not stop, while in this version they do, but this does not effect the gameplay much, I think...
- Continuing at last played level after startup (ie. auto-saving progress)
- Taking screenshot
- Recording gameplay video
- In the NES version after collecting every lode a bonus fruit pickup appears randomly but I could not find the ripped textures so I could not include them
- Demo in main menu is not implented :(
- The textures (I found them on the web they were ripped from the NES cartridge)
- The soundeffects/music (some of them are form online sources but the rest were recorded by me with the help of an emulator)
- Guard AI (the AI is the same as the original it was published in a book which I couldn't get but I found it in an other remake and I translated it back to C++)
- Level design - same as original but copied from the aforementioned remake
- The game logic (obviously...)
Every other feature was developed by me (using existing libraries).
Clone the project with its submodules:
git clone --recurse-submodules -j8 https://github.com/Ma-Pe-Ma/Lode-Runner-2020.git
A CMake project is added to the repository which should configure and then build without problems.
The game requires the following dependencies (which do not need further configuring):
- GLFW - utility used to create OpenGL contexts
- RTAUDIO - used to play sound effects
- libogg / libvorbis / libvorbisfile - used to decode vorbis sound files
- STBI Image + Write - header files used to read textures and write screnshots
- GLAD - an OpenGL Loading Library is a library that loads pointers to OpenGL functions at runtime, this is required to access functions from OpenGL, the source and headers were generated here
- this handy shader class from Learn OpenGl by Joey De Vries - simple header which handles shaders easily
To use video recording capabilites FFMPEG (avformat, avutil, avcodec, swscale, swresample) has to be linked. The process is explained in the CMakeLists (only dowloading and unpacking to the right place are required).
The game should compile without problems to WebAssemby build with Emscripten.
The game uses XInput API for controller handling.
Keyboard Controller Effect
arrows left stick moving/change game mode at main menu
q LB/LT dig to the left
w RB/RT dig to the right
esc/enter start pause, skip intro/outro
space back change level during gameplay (just like in the original)
p - take screenshot
r - start/end recording gameplay video
c - show configurer dialog
alt + enter - change window mode (full or windowed)
Check out the release section you can find simple and video recording versions. Choose the one that you want!
Just simply unpack the 7z archive and launch the "Lode Runner.exe".
You can also find the latest builds here which are delivered by Actions.
For the Android notes please check the aforementioned ReadMe.
In the root folder there is a simple txt configuration file in which you can change features of the game. Every entry has a description for it.
On the desktop and browser ports a simple imgui configurer dialog is available (which can be shown by pressing the 'C' button). Here you can specify the same parameters as in the config file but they cannot be saved.
To play with this version you just have to set the proper option in the imgui configurer or edit the proper line in the config file.
The WASM port should run without problems in modern browsers.
For the desktop version your graphics card has to support OpenGL 4.6 to run it. You also need to install Visual Studio x64 redistributables (vc_redist.x64) from Microsoft's site.
This was my first complex project since I started programming. My earlier efforts were limited to calculating/solving math problems.
This was a good starting project as I learned a lot about programming and designing code while making it.
The project has been restructured numerous times since then and there are only a few parts left which could have been implemented better but cleaning them up may not worth the effort now.
But altogether I'm satisfied with the result.
Lode Runner | Championship Lode Runner |
---|---|
- Finetune collision detection between enemies
- Restructure gameplay logic
- Finetune browser/wasm mobile touch input
- Improve and polish video recording
- Fix broken Android version (remake this port by using the default cmake project instead of defining a custom one for it)
Backlog:
- Adding some useful extras, eg. score counter, leaderboard, completion time etc.
- Add demo scene + bonus fruits
Have fun playing with it!