Topic: February '07 Week 3
Just finished:
* Accounts. Previously everyone was named Test; now they're stored in a Postgres database with web registration since that made it easier to get e-mail-based verification and password reset going. It's kind of neat really, the accounts aren't even stored on the same PC as my test server. This'll make it practical to use accounts over multiple servers too. Characters of course are still stored locally for now.
* Sight radii for creatures.
* Area specific chat channels with autojoining. Also tells to players with quotes around their names work.
* The client is now map aware. This is important because a client can control creatures on multiple maps at once.
* RTS-style mouse scroll as well as RPG-style locked view work. You use the comma key to switch between creatures you control. The mouse scroll isn't compatible with the SimCity 2000-like "Rotate the view 90 degrees" feature yet though. Low priority on fixing that.
Things in dire need of fixing:
* While the visibility code works, I ran into some snags. It needs to be redesigned. At present it has a tendency to crash the client. While I could patch over the crash bugs, architecturally the code is _bad_. It's the sort that will cause me great pain in the future if I don't fix it.
* Pathfinding. It breaks seemingly randomly, and needs to be rewritten. Shouldn't be too hard. Fixing visibility comes first.
* The server holds on to references it doesn't need, i.e. memory leak, and would require frequent restarts with any significant number of players.
Next up:
* Everything that needs fixing.
Long term issues:
* I'm going to need to make a 'tile block' object. Otherwise the server will need over 200MB of RAM per map, and players actively walking around will use 2-3KB/sec of bandwidth, more if running. Each tile being a unique object was a nice idea, but they're grass and water not snowflakes. This'll come in with the pathfinding rewrite, hence why I want to do it soon.