Frostshake / TrinityCoreClassic

Frostshake/TrinityCoreClassic - vanilla_classic = 1.14.0.40618
https://github.com/Frostshake/TrinityCoreClassic/tree/vanilla_classic
GNU General Public License v2.0
10 stars 5 forks source link

Project Status Information ⚠️ #27

Open Frostshake opened 1 month ago

Frostshake commented 1 month ago

Several people have been asking about this project, either its functionality or how to get setup. I'll cover some common questions here.

About

This project is an effort to build a version of trinitycore that is compatible with modern classic wow clients. Currently only 1.14.0.40618 is supported, but I beleive more could be supported via conditional compilation, e.g a single code base for 1.14.x and 2.5.x. As reference data already exists for the expansions covered, data will be imported in from other projects rather than maintaining seperate dataset here, currently on the final 1.12 patch game play is targeted.

Why the 1.14.0 client? - This client has the least changes, so should be easiest to match 1.12 functionality.

Contributions for custom functionality or non-standard TC behaviour will not be considered.

Getting setup.

Clone the repo and checkout the vanilla_classic branch, setup should be the same as retail TC. (there can be an issue finding openssl, see https://stackoverflow.com/a/78812435) The original world database can be found here. Info on the data import process can be found at #9 , including a recent copy of the world database. (It's likely manual changes have been done to the DB structure since the starting point, if encountering issues use the DB from #9) Connect to the server using arctium launcher (ensure the seed exists in the build_info table). Support files, e.g mmaps. vmaps can be found at #28.

Generating support files e.g mmaps, vmaps will require copying all of the relevent .exe files and .dll files into the 'World of Warcraft' directory (its have a 'Data' folder). either use the extractor.bat or run manually

mapextractor.exe
vmap4extractor.exe
vmap4assembler.exe Buildings vmaps
mmaps_generator.exe --allowDebug

Alternatively, existing files can be downloaded here - https://github.com/Frostshake/TrinityCoreClassic/issues/28

Development

My current approach to development has been to compare implementations of TC(retail and 3.3.5) vs Vmangos, favouring TC as much as possibile - I'm hoping this'll make merging in TC changes in the future easier.

Where possible I've been using CURRENT_EXPANSION for expansion specific behaviour. I'd like to think that this project could handle other expansions in the future, such as TBC, and its little effort to add in while downgrading to the classic behaviour.

if constexpr (CURRENT_EXPANSION == EXPANSION_CLASSIC) {
...
}

Database content will be imported from other projects (e.g vmangos), see db_import.py. note that DB import behaviour is likely to change in the future, previously I've approached this as 'merging' into the existing TC dataset, sort term this has worked for testing code, but I feel a simple clean + overwrite style import will be more maintainable going forward.

Feature status

In a sentence, gameplay is currently a mix of 1.12, 3.3.5 and retail. Many player interactions do work, but might be 100% accurate to classic. The majority of gameplay issues stem from data, either missing or broken, this includes things such as npc's and objects.

The future

Top two priorities right now are