2.8 KiB
2.8 KiB
Changelog
This log contains all the notable changes to the codebase as they are done. This is done for historical and reference purposes.
Update
The Update has not been merged into master
yet, but it will be. In the meantime, old
will remain an untouched archive of DK as it was left by Jamin. These are the documented changes to DK for "The Update"!
Added
- New database wrapper! Allows easy access to the database, which itself has been changed (see changed notes). Can CRUD with a simple interface.
- New render method! Uses an output buffer and
extract()
to safely render templates and allows us to use pure PHP for templating... which we were doing before, but now it's even better! - New background image; this one is small, but the old garrish yellow background has been replaced with a smooth white/gray background. The plan is to add a theme toggle later to use the retro look on demand.
- Status points; to give the player more build agency, status points will be given per level-up. The number of points can be changed in the overall game settings.
Changed
- The directory structure has been updated; public-facing assets and pages are now in
public/
. Pages, like install, fight, help, etc, now use a form of file-based routing. CSS and images are also in this folder. All server code has been moved toserver/
where it is safe and unviewable on a properly configured web server. - We're no longer using MySQL as the database! This was done for ease of install and operation; SQLite is plenty performant for Dragon Knight and makes it trivial to spin up new instances. The database is contained in
server/database/
as the filedragon.db
. WAL mode is enabled, so you may see a couple extra files but this is expected. lib.php
renamed toserver/library.php
- The installer has been totally rewritten using the new database wrapper and a handful of new library functions.
- Classes have been totally reworked! Prior, they were hard-coded into the game's overall settings. This made them highly inflexible and allowed only three classes which all needed their own level rows to define. This sucked! Now, classes are their own rows in the
classes
table, with starting stats and stat growth per-level. They also now have a special syntax in thespells
field to detail at what level what spells the player gets. - The help pages have been moved to the new structure and have been renamed to "Guide".
- Items now use a new special syntax similar to class spells to have multiple attributes; no more limits!
Removed
- Difficulty levels; as this is an always-online game with other players, differences in difficulty at a base game level didn't make sense. While a cool feature, I don't think it's truly necessary and would be better used in an instance-by-instance basis.