doukutsu-rs/README.md

129 lines
4.4 KiB
Markdown

# doukutsu-rs
![Release](https://github.com/doukutsu-rs/doukutsu-rs/workflows/Release/badge.svg)
[Download latest Nightly builds](https://github.com/doukutsu-rs/doukutsu-rs/actions) (Requires being logged in to GitHub)
A re-implementation of Cave Story (Doukutsu Monogatari) engine written in [Rust](https://www.rust-lang.org/).
**The project is still incomplete and might not be playable. Expect lots of breaking changes and bugs**
[Join the Discord server](https://discord.gg/fbRsNNB)
#### Data files
This repository does not contain any copyrighted files.
For better user experience, binaries are being distributed with slightly modified freeware game files.
*doukutsu-rs* should work fine with [CSE2-Enhanced](https://github.com/Clownacy/CSE2) or [NXEngine(-evo)](https://github.com/nxengine/nxengine-evo) modified freeware data files and [Cave Story+](https://www.nicalis.com/games/cavestory+) data files.
Vanilla Cave Story does not work yet because some important data files have been embedded inside the executable. and we don't have a loader/extractor implemented yet.
##### Where to get them?
**Freeware**
- https://github.com/doukutsu-rs/game-data - Freeware game data distributed with CI builds, based on those two below.
- https://github.com/Clownacy/CSE2/archive/enhanced.zip - copy `game_english/data` from archive to the runtime directory (place you run the executable from, usually project root)
- https://github.com/nxengine/nxengine-evo/releases/download/v2.6.4/NXEngine-v2.6.4-Win32.zip - copy `NXEngine-evo-2.6.4-xxx/data` from the archive to runtime directory
**Cave Story+**
- PC release - Copy `data` folder from installation directory ([guide for Steam](https://steamcommunity.com/sharedfiles/filedetails/?id=760447682)) to the runtime directory.
- Switch release - Not supported, because extracting the data files from the console is complicated and requires
device-specific decryption keys. Some of release-specific features have been implemented, so you should be able to play
it without any major issues. Google will likely help you if you really want to.
#### Roadmap
- [x] Checkmarked things = fully implemented
- [ ] Unmarked things = partially or not implemented yet.
- [x] Rendering
- [x] Backdrops
- [x] Tilemap
- [x] Player and it's animations
- [x] Carets
- [x] Bullets
- [x] NPCs
- [x] Text
- [x] HUD
- [ ] Text scripts (TSC)
- [x] Initial implementation
- [ ] Full implementation of opcodes (~80% done)
- [ ] Credits
- [x] Shift-JIS encoding support
- [ ] Audio
- [x] Organya BGM playback
- [x] Text script bindings
- [ ] CS+ style .ogg BGM playback
- [x] PixTone SFX
- [ ] NPCs/entities
- [x] Initial implementation
- [ ] Miscellaneous entities (~30% done)
- [ ] Bosses
- [x] First Cave
- [x] Mimiga Village
- [ ] Egg Corridor (~70% done)
- [ ] Grasstown (~10% done)
- [ ] Sand Zone (~10% done)
- [ ] Labirynth (~10% done)
- [ ] Outer Wall
- [ ] Plantation
- [ ] Last Cave
- [ ] Balcony
- [ ] Hell
- [ ] Cave Story+ specific NPCs
- [ ] Dashing Gaudis (361)
- [ ] ??? (362)
- [ ] Weapons
- [x] Leveling / XP system
- [x] Initial implementation
- [x] Snake
- [x] Polar Star
- [x] Fireball
- [ ] Machine Gun
- [ ] Missile Launcher
- [ ] Bubbler
- [ ] Blade
- [ ] Super Missile Launcher
- [ ] Nemesis
- [ ] Spur
- [ ] Modding enhancements and built-in tools
- [x] Debugger
- [ ] Level editor
- [ ] Texture auto-reload mode for spriters
- [x] Saving and loading game state
- [ ] Data file support
- [ ] Vanilla
- [x] Modified vanilla
- [ ] Cave Story+
- [x] Base mod
- [ ] Mod loading
- [ ] Curly Story
- [ ] Wind Fortress
- [ ] Boss Run
- [ ] Seasonal graphics
- [ ] Remastered soundtrack
- [x] Optional enhanced graphics effects
*(tbd)*
#### Mandatory screenshots
**Freeware data files:**
![Japanese Freeware](https://i.imgur.com/eZ0V5rK.png)
**Cave Story+ data files:**
![CS+ with enhanced graphics](https://i.imgur.com/YaPAs70.png)
#### Credits
- Studio Pixel for Cave Story
- [Cave Story Tribute Site](https://cavestory.org) - for LOTS of useful resources related to the game.
- [Clownacy/Cucky for CSE2](https://github.com/Clownacy/CSE2) - some game logic reference / mutual help in reverse engineering bitfields and other shit.
- [LunarLambda for organism](https://gitdab.com/LunarLambda/organism) - which is being used by us as `.org` playback engine.