Jumping action game on Haskell with local multiplayer.
- Denis Chernikov
- Maxim Surkov
- Vladislav Kuleykin
This project was done during the Programming in Haskell course (primary instructor: Nickolay Kudasov) at Fall 2018 semester at Innopolis University (Innopolis, Russia).
Run the next command to build the project, it can take some time, as it downloads all dependencies:
> stack build
After you built it once, you can run the game:
> stack run
You'll be greeted with the number of players selection screen, choose the needed amount using W
and D
buttons, then press Enter
and play!
Current settings for players movement:
- Player 1 - W A S D
- Player 2 - ↑ ← ↓ →
- Player 3 - U H J K
But they can be changed in
src/Handle.hs
file, by changing theG.Char
orG.SpecialKey
for the needed actionP{player_num}_{direction}_BUTTON
inhandleGame
function.
To exit the game press the ESC
button.
- Animation - the animation of players, enemies and coins are working;
- Basic game mechanics - physics, enemy killing, moving inertia, moving between levels;
- Easy level creation/adding - all the maps are in
assets/maps
folder and are in convenienttxt
format, to add new layers, just add amap_{level_num}.txt
map file and update the counter insrc/App.hs
filemap show [1..{n_levels} :: Integer])
; - Local multiplayer - local multiplayer up to 3 players (fully customizable), the screen is ajusted to be in the center of their locations, and you can't leave the screen.
Everything else 😅, like:
- Invincible state during the shrinkage;
- Collision avoidance - when you stuck at the corner of the block, the game should push you out;
- Proper UI;
- Not all animations are present (dying, winning, etc.);
- Not all mechanics from the first level are implemented (sitting, turtles, stars);
- Pipes;
- Proper physics - maybe avoid floating point numbers?
Feel free to contribute to this project. We'll be glad for your help.
All the media content (including graphics & music) is created and owned by Nintendo Company Ltd.
, the original game produced by this company is called Super Mario Bros.
(1985). All rights reserved.
- Very detailed description of the original game – https://themushroomkingdom.net/smb_breakdown.shtml
- Original game maps – https://themushroomkingdom.net/maps/smb
- Original game tiles and sprites – http://www.mariomayhem.com/downloads/sprites/super_mario_bros_sprites.php
- Original game animations – https://themushroomkingdom.net/media/smb/anigifs
- Original game music – https://themushroomkingdom.net/media/smb/mid
- Original game SFX – https://themushroomkingdom.net/media/smb/wav
- Original game emulation for comparison – http://emulator.online/nes/super-mario-bros/