1
0
Fork 0
mirror of https://github.com/doukutsu-rs/doukutsu-rs synced 2024-11-25 23:12:56 +00:00
Go to file
2020-08-29 02:32:32 +02:00
src minimalist bmfont loader 2020-08-29 02:32:32 +02:00
.gitignore initial commit 2020-08-18 18:46:07 +02:00
Cargo.toml complete the TSC VM 2020-08-27 04:43:21 +02:00
LICENSE initial commit 2020-08-18 18:46:07 +02:00
README.md add data files guide to readme 2020-08-28 22:16:27 +02:00

doukutsu-rs

A re-implementation of Cave Story (Doukutsu Monogatari) engine written in Rust, aiming for behavior accuracy and cleaner code. Later plans might involve turning it into a fully-featured modding tool with live debugging and stuff.

The project is still in a very early state and nowhere near being playable. Expect lots of breaking changes and bugs

Join the Discord server

Data files

doukutsu-rs project does not re-distribute any copyrighted files.

The engine should work fine with CSE2-Enhanced or NXEngine(-evo) modified freeware data files and Cave Story+ (Nicalis commercial release, loading is supported but note we're not going to reverse engineer it or support it's features) data files.

Vanilla Cave Story does not work yet because some important data files are embedded inside executable and we don't have an extractor yet.

Where to get them?

Freeware

Cave Story+

  • PC release - Copy data folder from installation directory (guide for Steam) to the runtime directory.
  • Switch release - tbd

Roadmap

  • Rendering
    • Backdrops
    • Tilemap
    • Player and it's animations
    • Carets
    • Bullets
    • NPCs
    • Text
    • HUD
  • Text scripts (TSC)
    • Initial implementation
    • Execution of basic subset of opcodes and game conversations
    • Shift-JIS encoding
    • Full implementation
  • NPCs/entities
  • Weapons
  • Modding enhancements and built-in tools
    • Debugger
    • Level editor
    • Texture auto-reload mode for spriters
  • Optional enhanced graphics effects

(tbd)

Mandatory screenshots

Freeware data files:

freeware

Cave Story+ data files:

cs+

why rust, it's a hipster language lol

The project is a result of me wanting to build something in a new programming language for memes.

I had an idea of writing my own CS engine long time before and I would've very likely picked C++17/20 and SDL2, but after all I've picked Rust instead because it seemed quite interesting for me.

Would 90% of end-users running this thing care about the programming language software was written in? After all who tf cares if the performance is the same (and maybe a slightly better), but you also get a lot of various benefits?

Credits

  • Studio Pixel for Cave Story
  • Cave Story Tribute Site - for LOTS of useful resources related to the game.
  • Clownacy for CSE2 - a great and very accurate reference for game's logic used in this project
  • CSMC - a helpful Cave Story modding community
  • NXEngine - an another OSS rewrite of Cave Story engine I took some inspiration from.