Thursday, February 28, 2008

ToDo List

Well, I had to get started somewhere. I've talked earlier about having to take out the http server engine from the PerlMUD code and reformat a lot of the code for stylistic and syntactic consistency. This is my first fell swoop of 'making it mine'. Now, I shall list a rather sizable list of bullet points that represent things that I am going to be doing on Purl to develop it.

  1. Rebuild the flags table - Right now, flags are defined as individual variables. I want to be able to have a flag name, value, abbreviation in one hash table.
  2. Change all db objects to true Object-Oriented code objects - Right now it's an array of hashes. I want an array of objects, indexed by dbref. If that's greek to you, no worries. I'll likely write a more eloquent and explanatory post in the near future about the objects and what they do and why I want to use them.
  3. XML db format. I want to dump out the db when it's saved into XML format. This will allow for portability, and a few other things. Plus, XML's cool. Again, proof of concept.
  4. Update the % substitutions - Lots of work here. %r and %t (carriage return and tab) aren't supported, ansi's not supported, and the way it's currently programmed is...inefficient, imnsho.
  5. think command - Unbelievably useful for testing things. Not currently supported and easy to implement.
  6. @chown needs to work better, for changing ownership.
  7. Encrypt passwords - Dear gods! Passwords are stored in plain text in the db. Have to encrypt those.
  8. Logging - Various levels of logging need to be done, including connection logging, system event logging (db dumps, @reloads, etc), and eventual support for the SUSPECT flag for command logging of suspect players.
  9. Ability to use 'create' on the login screen - Players need to be able to create themselves at the login screen.
  10. Break out config options in a .cnf file for the MU* to load.
  11. @doing should have a string length limit
  12. Autosay sucks. I hate it. Right now if you type something in that doesn't match a command, it will just say it. Now, some people might like this, so I will retain the feature, but as a flag. Not as a default hardcoded behaviour.
  13. ; (semicolon) needs to be changed so that it does an emote with no space between the character's name and the text. Right now, it's for something else. I want the behaviour of this codebase to be very similar to established "standards" for MU*ing.
  14. All code projects have to have a README and a Changelog. I will have to write these. Bleh.
  15. PerlMUD comes with a built-in 'topics' feature. I will redesign this to implement channels. Should channels log? Hmmm.
  16. Gender is currently part of @set, like a flag. I don't like that. We need a standardized @sex command.
  17. We need to be able to do non-standard attributes, so that we can move towards custom locks and things like that. &blah #123=Blah.
  18. @mail is needed - Have to harvest some ideas on best way to do this.
  19. I am going to hardcode the BBS. Myrrdin's +bb system is so universal. Every game has a BBS. So, this one will too, but it will be a better system, hardcoded.
  20. @moniker from MUX. I love having ansified names. I will do this. Yes, I will.
  21. An idea from Ti'Anna - @paste. This is a command from MOO where you type @paste , hit enter. THen you paste in a whole whack of text that you want to show them, and type a . on a line to signify that you're done. Then, they get it spammed on their screen. I like this, I will do this.
  22. The commands table will need to be rebuilt at some point. I know how I did it before and I don't think I want to do that again. I will have to come up with something new for that.
  23. IP/Site stored as attributes on a player. Currently the game doesn't record what IP you connected from. I may build in a +alts-style command, at some point.
  24. Standard error message of Huh? (Type "help" for help.)
  25. Guests - Guests on a MU* are limited in what they can do. They're like a player...with FAS. If that sounds mean, too bad.
  26. WHO - Oh gods...WHO. I hate the current WHO. I have to get it to behave like a regular WHO. And that means building an admin WHO as well.
  27. Look shows d/c'ed or dark players. Cannot have this.
  28. examine - See WHO. Oy.
  29. Recycle Bin - This was something I had done before. When you @recycle an object, it goes into the recycle bin, and can be @restore'd. One time only. Once something else is @recycled, your object is lost.
  30. inventory - See examine, see WHO. Oy x 2.
  31. Help files need to be reformatted, rewritten, and constantly, constantly, constantly updated. Ow. Programmers hatelovehatelovehate documentation.
  32. news file functionality - It's gotta be there. Why? Cause it's a standard.
  33. Ansi in the connect splash. Gotta be done. Just gotta be. :)
  34. Rebuild setting the various standard attr's (fail, ofail, succ, osucc, etc). Each one has its own subroutine, which is just dumb.
  35. Book objects need to be revisited. Not sure on these.
  36. Substitutions/evaluations need to be done on ALL messages, whether it's a page, an osucc, a whisper, whatever.
  37. Names need to be able to have spaces.
  38. @teleport needs to have arrive, depart, oarrive, odepart messages.
  39. I seem to remember that @find/@search stunk. I may have to revisit this.
  40. xyzzy will be added, as an homage. :) If you don't know what that is, Wikipedia is your friend.
  41. Aliases need to be enabled through @alias.
  42. @aconnect - Things to do when you connect.
  43. @dolist - Make a list of things to do and do them.
  44. Time and Date format - Again, needs to be standardized. Currently does it as a single value (1d, 32s, 14h). Needs to be in 00:00 format.
Okay, that's a good start. More will come, and these things will be done.

No comments: