Server development Roadmap
Posted: 10 Jan 2013, 19:48
This topic lays out just where I'm going with TMWA code.
Requirements
It doesn't make sense that thousands of lines of code should be maintained that are only used by one quest.
Free Goals (that other people can work on easily, but still please coordinate with me)
Requirements
- Maintain compatibility with existing and planned content (coordinate changes with devs where necessary)
- Maintain compatibility with manaplus clients; maintain basic compatibility with manasource.
- Where appropriate, implement new features in a manner compatible with Evol. Coordinate new feature support with 4144.
- Solve the problems with the existing flat data files
-
Identify and remove duplicate or unused code; fix buggy code.(mostly done) - Prove (softly) that the server code is correct, by eliminate all manual resource management and using constructs that either force checking or behave as well as possible in the error case. (significant progress, but still waiting on magic and script stuff at the very least)
It doesn't make sense that thousands of lines of code should be maintained that are only used by one quest.
Free Goals (that other people can work on easily, but still please coordinate with me)
- Rewrite the ladmin command/help dispatcher.
-
Rewrite the @command/@help dispatcher, but more carefully as I am also touching this area.(done) -
Document network protocol.(still waiting for one last patch to land from Rawng, but basically done)
-
Fix save file problems.(mostly done) -
trim skills without breaking things like NPC poison, self-destruct, and summon-slave (luckily the player-sided skills are easily separated)(done. Now skills can be used for things like professions) Port remaining out of code entirely. - trim / port to script @commands (ongoing)
-
rewrite magic, to get rid of the generated C-like code. This will allow me to later hunt down the bugs in the magic system.(done) - Moving magic into script because magic is incomprehensible to most mortals.
- rewrite script system based on an assembly language, which fixes a lot of the underlying problems.
- fix network layer
- Native Guild
- Native MM
- Mobile Npcs
- chat channels
- integrate manaplus features like quest log, who's online ...
- add higher-level constructs to the script language.
- support conditional item equipping (hack available), nodrop/notrade flags, and conditional warps.
- Implement soft restart
- map instancing
- shared storage
- socket passing
- (pretty much anything else people request, unless it's absolutely trivial)