You are not logged in.

This website is a static copy. You cannot log in or post messages.

Developer Discussion

3.0.0 rewrite: Complete vs. incremental

3rd of December, 2016 21:01

[tsc-devel] 3.0.0 rewrite: Complete vs. incremental

Hi everyone, The rewrite ticket on the tracker[1] has become quite large and contains lots of information, which is why I take this here so it can be discussed independantly. A nice benefit of mailinglists over the linear tracker is that it's inexpensive to have discussion branches... As of now, I favour a start from scratch for TSC. That is, create a new repository, put a hello-world main.cpp file into it, and then start from there, doing architecture right from the beginning and leaving all the rust behind us (like secrecy principle problems, in-memory XML, and what not; look at ticket #534 for an incomplete list of problems and for the "legacy code" label on the tracker for a more complete view). The argument I have for this is simple: Cleaning TSC's architecture so that it can be called sane and it is fun to work on requires rewriting nearly everything of it, except for those parts that have been touched in the last months by us. And even those parts still have to work with the legacy code around it so that e.g. the audio API still contains the legacy concepts from SMC, albeit it was internally upgraded to SFML. I want to note that certain parts of the code can be copied over, for example enemy logic or the rewritten HUD, so that not literally all functionality needs to be recoded. The alternative is to stick with the current codebase and try to incrementally update its broken architecture to something usable. In my opinion, this approach causes more work than a rewrite from scratch as the interdependencies between TSC's code make it impossible to update all parts as completely independant modules. However, I am not inherently against the incremental approach. If the majority wants to do it, I will follow suit. Greetings Marvin [1]: https://github.com/Secretchronicles/TSC/issues/534
Blog: http://www.guelkerdev.de PGP/GPG ID: F1D8799FBCC8BC4F