Filling in Features
Focus this week has been on developing the official company website, and filling in the blanks for client<->server functionality. The website won't be done until it's done, but it's coming along nicely! Regarding the game, here's progress for the week:
Server / Client Features
You can play with multiple characters at a time now! For the time being, you can switch between players manually using the 'character' command. I have some sketches at home for a new UI component that shows all your characters so you can click through them, or select them by left-clicking on the map.
The server now sends over ALL the entity/object data to the client, which includes Max HP/MP, current condition, terrain costs, and a million other things. The irrelevant stuff has yet to be filtered out (we don't need Max MP for items), but it's still relatively cheap on bandwidth. Now that the client has this info, it can show us loads of useful information, which means another round of UI improvements should be coming up.
Now that key bindings work, we need a proper key configuration window. Until that's ready, keys are stored in a "keys.txt" file which looks like this:
f fly ` character space use_map enter attack 1 skill_1 2 skill_2 3 skill_3 4 skill_4 ...etc
Creating the key configuration window implies a big change to the way options are stored, so this will be a ways off ;) There's plenty of more exciting work to do right now.
More User-Interface Tools
This game won't be only keyboard-driven. Now that the client can send every command to the server, it's time to make a few windows and tools to make those commands more intuitive and mouse-driven.
For example, to attack a target, right now you have to enter the command 'attack <target_hotkey>' manually. Eventually, you'll have these options available:
- Right-click and hold on a target and release over the 'attack' icon. This is a standard 'move to our target and attack' command.
- Hit 'a' and left-click the target. This will also move to the target and attack.
- Right-click and hold on a map location, release over the 'attack' icon, then left-click your target. This will make your character hold position at the location and attack the target whenever possible.
The other big UI project will be for a fancy inventory screen to handle the 'use', 'give', 'equip', 'drop', 'remove', and 'put' commands. And then... well, everything else :( That will take a while.