Server development Roadmap

Content and general development discussion, including quest scripts and server code. TMW Classic is a project comprising the Legacy tmwAthena server & the designated improved engine server based on evolHercules.


Forum rules

This forum houses many years of development, tracing back to some of the earliest posts that exist on the board.

Its current use is for the continued development of the server and game it has always served: TMW Classic.

Post Reply
User avatar
o11c
Grand Knight
Grand Knight
Posts: 2262
Joined: 20 Feb 2011, 21:09
Location: ^ ^

Server development Roadmap

Post by o11c »

This topic lays out just where I'm going with TMWA code.

Requirements
  1. Maintain compatibility with existing and planned content (coordinate changes with devs where necessary)
  2. Maintain compatibility with manaplus clients; maintain basic compatibility with manasource.
  3. Where appropriate, implement new features in a manner compatible with Evol. Coordinate new feature support with 4144.
  4. Solve the problems with the existing flat data files
  5. Identify and remove duplicate or unused code; fix buggy code. (mostly done)
  6. 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)
Note that "maintain features currently NOT used by content" is not on that list. The content team should talk to me before using any new features. Just because it's documented somewhere doesn't mean it's supported. If it's not documented, it almost certainly isn't supported, and you'll probably end up using it wrong (I'm looking at you, Illia quest ...).

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)
Short Term Goals
  • 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
Intermediate goals
  • 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
Long term goals
  • map instancing
  • shared storage
  • socket passing
  • (pretty much anything else people request, unless it's absolutely trivial)
See also http://wiki.themanaworld.org/index.php/User:O11c#Tasks
Last edited by WildX on 07 Nov 2016, 13:47, edited 4 times in total.
Reason: update
Former programmer for the TMWA server.
User avatar
Bertram
Manasource
Manasource
Posts: 1026
Joined: 07 Sep 2004, 14:55
Location: France

Re: Server development Roadmap

Post by Bertram »

Cool!

Good luck with all that. Would the short-term goals be done at least, that already people would appreciate less bugs and probably less lag in general.

Regards,
User avatar
Hello=)
TMW Classic
TMW Classic
Posts: 657
Joined: 11 Jun 2009, 12:46

Re: Server development Roadmap

Post by Hello=) »

shared storage
Don't you mind something like "proper guild support"? Where server could actually know which player is in which guild, etc? So long-term relations could be done via guilds, not parties like it happens now. Parties are meant to be task-oriented, short-living groups and this should add some convenience. Guilds are meant for long-term interactions and some extra features like GvG wars/events/etc, gathering groups of players who like each other in same place, etc. Right now guild support is weird - its some awkward bot which only could relay chats. But in RPGs guilds are not really about chats but rather about doing some events in groups, etc. When server cant have any idea about player's guild this warranted to shoot off any chance of nearly any guild-wide events in game.

And btw, guild-wide storage where all guild members have access could be a really nice idea (shamelessly borrowed this idea from some other game :mrgreen:).
User avatar
o11c
Grand Knight
Grand Knight
Posts: 2262
Joined: 20 Feb 2011, 21:09
Location: ^ ^

Re: Server development Roadmap

Post by o11c »

The previous guild system was horribly implemented, resource-unfriendly, and not properly supported by the client OR the content.

Additionally, with the old system, it was impossible for one player to be part of more than one guild. By soft-coding membership of shared storage and shared chat, these limitations are removed.
Former programmer for the TMWA server.
User avatar
Hello=)
TMW Classic
TMW Classic
Posts: 657
Joined: 11 Jun 2009, 12:46

Re: Server development Roadmap

Post by Hello=) »

o11c wrote:The previous guild system was horribly implemented, resource-unfriendly,
I've seen some ancient code of eA and do know it was horrible in many places. However, from player's standpoint if someone heals headache by using guillotine, it does looks not very promising...
and not properly supported by the client OR the content.
What client? ManaPlus seems to support guilds and in fact, current TMW so called "guild support" requires player to activate some custom setting to support some weird bot. Looks like ManaPlus haves at least some "native" guilds support and some people even reported they were able to use it some time ago. Sure, I can imagine this code could be bugged or troublesome (I've seen old eAthena code and I know it's not the best to say the least). However completely ditching feature without any reasonable replacement not looks like very good idea either, as it kills any chance it would be anyhow decent RPG with feature set expected by anyone who played online RPGs.
and not properly supported by the client OR the content.
ManaPlus does supports guilds to the best of my knowledge. And in fact supporting TMW's "guild" bot is just a weird and hackish workaround which allows to address at least small part of players wishes as some awkward hack which is not a real guild support.
Additionally, with the old system, it was impossible for one player to be part of more than one guild.
This is common practice and also basis for GvG events, etc. I dont see how its wrong. Player can be only in one guild and guids and their intrigues could be part of fun as well. If someone want to gather some friends in place regardless of guild membership - they could have some more local things like parties (if its about taking some part in action together, etc) or just chat channels (if its about chatting). That how it happens in properly implemented MMORPG software usually and how players ususlly prefer to deal with it.
By soft-coding membership of shared storage and shared chat, these limitations are removed.
Hmm? Are there plans to have some other guild system which would allow server to have some knowledge of who is in which guild and apply this knowledge to game mechanics? For example to make decision on who can attack whom, etc? Shared storage is nice but large-scale guild vs guild actions and intrigues could be what adds up to MMORPG gameplay, after all. Those who really wanted shared storages already using some mule chars with credentials known to all players group to transfer things, etc. So players already found some solution. Which allows complerely flexible choice of members regardless of guilds or whatever: should someone know credentials of storage char, they can exchange items via such character. As for chat I think it's enough to have some "IRC style" named channels. And IIRC, overall Ragnarok should have this and eAthena who is Ragnarok emulator at least attempted to support this if I got it right (I can remember some code leftovers and comments about channels somehow).

Also, am I correct that you've ditched ability of GMs to impersonate monsters? Monsters on their own are fairly dumb and on decent MMORPG server, there is often so called "animators team" who dedicated to making events more fun than they could be otherwise. They take control of strong boss-like monsters or NPC-like chars to orchestrate events (sometimes nicely bound to storyline, etc) and play event with all players. Needless to say, alive animators play far better than moron AI could ever dream. Monster controlled by animator can play smart and get rid of most sensitive part of boss teams. etc. This what makes it a real challenge. On TMW there is no such events. The most closest "emulation" is a "kill GM events". But to my taste, its sad and dumb to slay GMs and not a right way to thank them for their job. I would prefer to slay some horrible bosses animated by animators team. This does not looks like evil deed, could be embedded with events or storyline context, gives animator a lot of chances to be challenging and have some revenge on "boss team", etc and overall could be 80% of MMORPG fun with a good animators team who makes gameplay far less boring and monotonous. However it does not happens in TMW and if I got it right from changelog, you also killed any slightest chance it could be technically possible to conduct in TMW, ever? Am I wrong here? Or what were those impersonations removed? Usually it used to allow GM or animator to impersonate some monster, no? :? Alive human controlling some boss creature could be real fun.

Some abstract example: for example, some new update launches new map like crypt and there is, say, reaper to be introduced as boss monster (just abstract example, not sure about actual storyline). Then if would be fun if some reaper appears near Hurns, roams around, scares players and causes some chaos, so players have to assemble "boss team" and should go slay the bastard and minions to keep their butts safe. It could be nice introduction to some new part of storyline and maps, etc. But looks like it would not be possible in TMW, ever, especially after all these changes? Am I got it right? And yes, I seen things like this on other RPG servers and I do like such features. They're making games better.
User avatar
o11c
Grand Knight
Grand Knight
Posts: 2262
Joined: 20 Feb 2011, 21:09
Location: ^ ^

Re: Server development Roadmap

Post by o11c »

You have lots of good ideas (and some bad ones), but none of them are precluded by my code changes.

The reason I am making these changes is to put TMWA into a position where it is *possible* to implement such features without breaking all sorts of unpredictable things. TMWA is complete and utter crap, and it is absolutely necessary to cut off limbs to save the body - *especially* if that allows you to graft on replacement limbs later.

Now *please* stop distracting in a technical thread. This thread is for people working on TMWA to coordinate their actions, not for players to complain about things they only barely understand. I am very conscious of what it means to remove any individual feature from a codebase, and having looked at *all* the facts, I did it anyway.
Former programmer for the TMWA server.
User avatar
Hello=)
TMW Classic
TMW Classic
Posts: 657
Joined: 11 Jun 2009, 12:46

Re: Server development Roadmap

Post by Hello=) »

Oh, okay, I see: your plan seems to be not as bad as it looked on first sight. So I would respect your wish and would not bother you here anymore. Nice to see you still could understand what players could want as features from MMORPG servers.
User avatar
o11c
Grand Knight
Grand Knight
Posts: 2262
Joined: 20 Feb 2011, 21:09
Location: ^ ^

Re: Server development Roadmap

Post by o11c »

bump for edit visibility
Former programmer for the TMWA server.
User avatar
wushin
TMW Adviser
TMW Adviser
Posts: 1759
Joined: 18 Dec 2012, 05:56
Location: RiverBest, Brew City, Merica
Contact:

Re: Server development Roadmap

Post by wushin »

Bumping for edits.
The secret to getting all the important stuff done is doing nothing.
Post Reply