Merge branch 'accurate' into portable

This commit is contained in:
Clownacy 2020-09-03 17:29:01 +01:00
commit 72eec8227c
2 changed files with 4 additions and 75 deletions

20
.gitignore vendored
View file

@ -46,6 +46,10 @@
/game_japanese/save
/game_japanese/s_reverse
# Exclude error logs
/game_english/error.log
/game_japanese/error.log
###################
# Accurate branch #
###################
@ -75,19 +79,3 @@
# Exclude converted resource files
/src/Resource
########################
# Enhanced-lite branch #
########################
# Exclude CSE2EL configuration file
/game_english/ConfigCSE2EL.dat
/game_japanese/ConfigCSE2EL.dat
###################
# Enhanced branch #
###################
# Exclude CSE2E configuration file
/game_english/ConfigCSE2E.dat
/game_japanese/ConfigCSE2E.dat

View file

@ -61,62 +61,3 @@ the subset of C99 that C++98 allows.
I prefer compiler-specific code to be avoided, since more-portable code benefits
all compilers, and keeps the codebase free of clutter.
# `enhanced-lite` branch
This branch deviates the most from the `accurate` branch, focussing less on
authenticity, and more on improving the base engine.
## Goal
This branch is intended to benefit modders, by providing a feature-rich base for
mods, while still keeping the original game's 'feel' (think of the Boom project
rather than Chocolate Doom or GZDoom).
That said, I want to avoid the codebase becoming an over-engineered mess of
seldom-used and niche features - only features with a strong reason to be
included should be added.
Priority features include ones that already exist in the modding community as
"EXE hacks", such as...
* Common custom TSC commands ('<MIM', '<PHY')
* Custom weapons
* A money system
* The "Cave Story Mod Loader" (widescreen, support for Ogg Vorbis music)
Note that such features should only be added if they see widespread use.
## Target audience
While this branch is meant as a base for mods, it is not intended for modders
unfamiliar with programming. This means features that only exist to benefit
non-programmers will not be accepted, as they will likely clutter the codebase,
making it harder for programmers to make modifications.
## Accuracy to the original source code
Despite this branch being less accuracy-focussed, I still want modifications to
the vanilla code to be minimal - that means no rewriting code to "look nicer" or
add micro-optimisations.
Keeping the vanilla code intact guarantees CSE2E will accurately-reproduce
Cave Story's gameplay, avoiding an NXEngine-scenario where the game is riddled
with inaccuracies, both small and large. This also has the benefit of making it
easier to merge changes from the other branches.
## Enhancements unrelated to modding
Some features have made their way into this branch, despite not actually being
of any direct use to modders - one example of this is the option to disable the
pixel-alignment effect.
The reason for allowing these features is that, while they are of no direct
benefit to modders, they are of benefit _to players._ Thus, a mod with these
features is better than a mod without them. Likewise, the input-rebinding menu
falls under a similar use.
The line is drawn when a feature comes at a _detriment_ to modders - for
example, having an option to select an alternative soundtrack (such as the
Nicalis ones) is nice for the player, but will complicate modding, as, if a mod
includes custom music, the modder will either have to disable the soundtracks
they don't support, or they'll have to create multiple versions of each song.
# `enhanced` branch
This branch is built upon the `enhanced-lite` branch, and follows similar ideals
to said branch. However, this branch targets players rather than modders,
allowing a greater range of features to be added.