A functionally-matching, embeddable Super Monkey Ball 2 decompilation.
- Readability. Decompile Super Monkey Ball 2's physics, camera, and controls code to a clean, well-commented source that is enlightening to anyone seeking to understand exactly how this game works.
- Accuracy. Be functionally-identical to the original game (aside from floating-point roundoff errors which are unfortunately unavoidable). Closely follow the original source code so that
libmkb
can serve as an accurate reference. - Embeddability. Work as a C++ library, allowing real gameplay with a graphical frontend. Compiling
libmkb
for the browser via WebAssembly with three.js for graphics is my goal for an initial frontend.
- Perfect Matching. An alternate approach is to decompile the code such that it may be recompiled by the original compiler to perfectly match the original game's binary. However, this takes orders of magnitude more time and effort than a "functionally-matching" decompilation, and may stifle readability and embeddability.
- Completeness. At the moment I think the most salient parts of the game to focus on are physics, camera, and controls, meanwhile graphics, menus, and character animation for example are less important initially. If you're motivated to work on these however, feel free!