-
This thread is for establishing an order of modules to be implemented, whether written from scratch or ported over from the old MUD. Here's what I have come up with so far, in order of necessity:
[list=1]
[*][b]Data structures/dynamic memory management[/b]
A header file comprising the most basic data structures we will need to establish gameplay. Seems like the most sensible place to start since in writing this we will plan out a lot of the codebase.
[*][b]Sockets & game input/output loop[/b]
Handle incoming connections, allow other people than whoever started up the program to log in. A simple loop to accept and process input, and issue output. Includes prompt.
[*][b]File I/O[/b]
Although a database may be preferable to many files written at once, this would have to be extensively debugged to ensure it's not easily corruptible. It's best to have file IO just in case.
[*][b]Logging[/b]
Essential to establish early to keep the game as bug-free as possible.
[*][b]Command interpeter.[/b]
Allow people to interact with the game world (send input).
[*][b]Player account system[/b]
Can be very simple to start with, so that the game remembers who you are.
[*][b]Coordinate system[/b]
[i]- Port: wilderness[/i]
Allows for a "tangible" world instead of floating around in limbo.
[*][b]In-game communication[/b]
Things like channels and heads-up display for immortals (wiznet but less lame).
[*][b]Online editing[/b]
[i]- Port: projects
- Port: staff
- Port: scripts
- Port: help editor[/i]
Necesarry to build our world from inside.
[*][b]Event queue/scheduling[/b]
So that the game isn't based on the dreaded "tick" system.
[*][b]Transportation[/b]
With coordinates, people will be have places to go, so they must be able to do it. This will start with very basic walking around and eventually will encompass flying, boats, etc.
[*][b]Character stats[/b]
The ideal implementation of this will include both the classic-RPG features we all grew up with and love, as well as some interesting new shit to allow things to be done after you've "maxed" your character out.
[*][b]Skill trees[/b]
Gives people something to work towards, instead of slaughtering NPCs for levels. This describes the skill-tree system itself, not any particular skills.
[*][b]Combat[/b]
An essential part of any MUD (at least, for bloodthirsty folks like meself). This encompasses fighting styles, combat skills, PVP specifics, and anything else related to kicking ass.
[*][b]Magic[/b]
A large part of any RPG. I hope to make this much more interesting than "X spell does Y and costs Z mana points".
[*][b]Crafting[/b]
Allow people to do useful stuff without having to resort to violence. Includes: herbalism, metalwork, alchemy, and so on.
[*][b]Game stats[/b]
A code module for keeping track of all sorts of things about the game. This will eat the current stats lists (Most quests, Most PKs, etc.) as well as adding many new ones - one I've always wanted to add was gold flux in/out of the game to keep track of money when it is "created" and "destroyed". Hopefully we can cut down on some of these by actually implementing a game economy - e.g. when you buy something from a shopkeeper, the money doesn't just magically vanish but goes into said shopkeeper's account.
[*][b]Questing[/b]
A much, much better and more expanded quest generation system than what we have now (the same 3 tasks randomly repeated over and over). This will be semi-random to allow for variation in quests, but also structured so that you get a reasonable quest rather than "Obtain X, sacrifice X, kill Y".
[*][b]Everything else[/b]
To be continued when I return home after 5 :) Including but not limited to: items, movement, combat, magic, skill trees, chat, groups/organizations and a plethora of other stuff. [/list]
Feel free to contribute and criticize, since I'm sure there's a heap of things I haven't considered yet. We can't start doin' stuff until we plan out what to do and who is coding what -- I'll moderate this thread and edit in changes into this original post.
-
Looks good to me so far, dude. I would suggest making topics for each, and linking to them from the list as they're made, though. That way we have something of an index in here. Also, we will need to look at a plugin/module system to allow others to add systems into the games, which should be factored into what we're doing right from the start.