-
Notifications
You must be signed in to change notification settings - Fork 150
Roadmap
-
9.60 support
- Update ProtocolGame / protocolLogin so connecting using that client and moving around does not give any errors.
- Add Market.
- Move monsters from legacy to trunk.
- Move items from legacy to trunk.
-
Add OnTimerEvent
-
Would allow to schedule actions in the future without keeping the current event thread alive (as
wait
) does. -
Proposed solution: Add a new queue to ScriptManager with <microtime, Listener_ptr>, check this at the same time as timer event and dispatch any that have run out. Register function should be
registerTimerEvent(1000, handler [, repeating])
.
-
-
Update IO code to match new database schema.
- Currently, the server is not up-to-date with the new database structure.
-
Improve NPC system so order of conversations is intuitive (right now, since it uses table keys, the priority of phrases essentially random).
-
Add a simple quest system module that allows levers, switches etc. to be configured easily.
-
Update to Lua 5.2
-
Rewrite event scheduler so new coroutines are only spawned if necessary.
This would allow using LuaJIT (which is now impossible since spawning 1000s of hardware thread per second is not viable).
This would be implemented by keeping a pool of coroutines available for event handling. Each coroutine would have a root function akin to:
function thread_root() while true handler, event = coroutine.yield('READY') handler(event) end end
Then check for the
READY
(orWAIT
) code in source and adding the coroutine to the appropriate pool.
-
Add simple HTTP server to serve JSON request for server status.
-
Improve the administration interface.
-
Better logging support using boost::log rather than std::cout. Allow redirection to an output file, color for different log levels. Implement native logging like Windows Events and Syslog.
-
Incremental saving.
-
When players log out, keep them in memory, save everything at the same time (every 30s?) and the flush out players etc.
-
Flag tiles / containers / items / players as dirty when they are changed, so we don't have to save EVERYTHING every single save.
-
-
Client Version selection server side (support everything 7.4..9.6+).