Legend ======= [ ] -> Addition { } -> Bug fix ( ) -> Pushed to next version < > -> Ensure this works * -> Completed ? -> Needs testing - -> Partially complete Roadmap Version 0.2 (Alpha) =-=-=-=-=-=-=-=-=-=-=-=-=-=-= GAME =---= [*] Ground image [*] Loading ground data [*] Drawing ground image [*] Map tile collisions [*] Map objects [*] Object loading [*] Conversion of object Index/X/Y into Sprite object [*] Player->Object collisions [*] Unique collision for trees [*] TGameServer class (HawkNL wrapper) [*] HawkNL init / server opening/listening [*] Accepting clients into client list [*] Putting client sockets in a group and polling input [*] Functions for send/recv-ing data from/to a client [*] TGameClient class (HawkNL wrapper) [*] HawkNL init / client opening/connecting [*] Recv callback function, and Send function {*} Ground scrolling bug [*] Switch server/client over to WSockets library (sorry HawkNL!) [*] Player joining [*] Server detecting client connection (+client ACK) {*} Evil Delphi-strings bugfix (packet builder issue) [*] Server creating player, and sending add-player packet to all players [*] Clients creating remote player upon recv'ing add-player packet [*] Server sending a list of all connected players to new player [*] Player names appearing beneath sprite [*] Per-pixel collision type for non-tree objects [*] Player movement (online) [*] Client sends movement information to server every 500ms (variable) [*] Server receives and stores player location, and activate DoUpdate flag [*] Server runs proc every 500ms and sends a packet with all updated players to everyone [*] Client updates all recv'd player updates {*} Clients only getting Host's keydown-data {*} Clients skipping data, thus corrupting packet [*] Movement smoothening/correction (to avoid sudden jumps) {*} Rotation wrap-around (0-359) {*} Left/Right keys not affecting?\ [?] If new target coords are > 80, warp player to target [*] Player leaving [*] Server dropping client and sending remove-player packet if: [*] No packets for > 3000ms [*] Quit notification packet [*] Server bouncing notification to all clients [*] Clients removing a remote player [*] If recv'd remove-player packet [*] If no packets about client for > 5000ms {*} Object collision fix MAP EDITOR =---------= [*] Ground image tiling [*] Setting ground image [*] Drawing ground image [*] Saving/loading ground [*] Map objects [*] List of objects with X/Y coordinates [*] Object placing (non-tile-based AND tile-based) [*] Object erasing (via blank tile) [*] Object saving/loading [*] Dynamic map viewing resolution (cur. defaulting to 800x600) [*] Rectangle-drawing with right mouse button [*] Error-check bitmap filenames/existance [*] CTRL+Click acts as eraser [*] Attempt to optimize graphics drawing (got about 25% less drawing)