Spelunky remake for the NintendoDS
Switch branches/tags
Clone or download

README.md

Spelunky® remake for the NintendoDS.

(a.k.a SpelunkyDS)

Works on real NDS! Works on real N3DSXL!

To-do list as for now

  • ✔ Implement shopkeeper logics and randomly spawned shops
  • ✔ Implement damsel
  • ✔ Implement caveman
  • ✔ Implement skeleton
  • ✔ Implement arrow trap
  • ✔ Fix rope logics - if thrown, when it touches bottom of some tile above it or it reaches its maximum travel distance of 8 tiles up, then it should expand to the bottom. Now it's the opposite - it expands as it travels upwards.
  • ✔ Implement cape and jetpack
  • 🗙 Putting project on Travis
  • ✔ Implement 4 layers system - top one for the console and HUD, bottom one for tilemap and the rest for other sprites
  • 🗙 Tune-up the level generator; make it more random; add random events like snake well
  • 🗙 Implement music using streaming from filesystem - I elaborated a bit on this on my blog: https://dbeef.wordpress.com/2018/05/24/some-words-on-developing-spelunkyds/
  • 🗙 Pausing
  • 🗙 Jars dropping loot
  • 🗙 Ghost when spending too much time on level
  • 🗙 Shake screen when dropping a bomb
  • 🗙 Add github link to the main menu's copyrights sprite - so people would find the current version even if it was downloaded from some other source
  • 🗙 Attempt to make levels a bit bigger (current size is 512x512, what I can probably make is 1024x512 or 512x1024, though not sure of that)

Obviously I omit things like implement Olmec or implement lava city - let's finish cave level first.

Development thread:

https://gbatemp.net/threads/spelunkyds.507192/#post-8044792

Known bugs

  • 🗙 Though overall randomness of the generator is improved it sometimes makes some ugly structures, to be fixed later
  • 🗙 I messed up a bit with collision detection
  • 🗙 Arrow trap is triggered even if there's a tile (or tiles) between some moving object and the trap
  • 🗙 Once thrown chest can't be opened
  • ✔ Sometimes there's a level where there are spikes just hanging in air
  • 🗙 Sometimes you can loose your items (shotgun, pistol) when changing levels
  • 🗙 UI bugs - you can throw rope / drop bomb in scores screen
  • 🗙 Damage system appears to be broken in terms of shopkeeper (you can't throw arrows, rocks, jars, etc on him)
  • ✔ There's a bug when carrying damsel while sprinting through spikes
  • 🗙 There's a bug when jumping on more than one NPC (snake, bat, etc) at the same time
  • 🗙 Displaying loot in level-transition screen
  • 🗙 Shopkeeper is quite dumb, easy to steal
  • 🗙 Bullets can collide with jetpack, so it can work as a bulletproof vest
  • 🗙 Blood drops / bullets can trigger arrow trap
  • 🗙 Game tends to crash after some time of playing (at least on my vanilla DS)

Building

1) Download devkitPro for your platform from their official website: https://devkitpro.org/wiki/Getting_Started

2) Set up a few environment variables, as shown in their tutorial

3) cd to the spelunky-ds directory and type 'make'

Running

For running on a PC I preffer an emulator called Desmume. type 'desmume spelunky.nds' for running.

For running on an NDS I use 'R4i-3DS-RTS-WiFi' (oh boy) card, but it's probably going to work on any other card. Just make sure, you have NDS program called 'DSiMenu++', which helps running homebrew. Installation instructions: https://gbatemp.net/threads/ds-i-3ds-dsimenu-ds-i-menu-replacement.472200/

Tools I use

License

Full license text can be accessed under this link:

https://github.com/dbeef/spelunky-ds/blob/master/LICENSE

Briefly, as for my code, I distribute it under GNU General Public License, as for Spelunky game assets, I use them under Spelunky® User License v1.1b, also, libnds and tools for building .nds files are provided by devkitARM; devkitARM is constructed from and contains components licensed under GPL, BSD, zlib, LGPL & MPL licenses. libnds is zlib licensed.

NintendoDS is a trademark of Nintendo and is used purely for descriptive purposes. This game is not affiliated with Nintendo.

Contributing

I will accept every help with running this project, feel free to catch one or more of the todo's.

Links

I found following materials very helpful: