Dev Log Week #2


Like the end of last weeks log, the start of this week's involved lots of under the covers work, that isnt too visual but heres a short list of the changes from my git commits.

Client:

  • Added Tiny Creatures https://clintbellanger.itch.io/tiny-creatures sprites.
  • Added Tab to toggle combat mode, changing cursor type.
  • Added an exporter to export the tilemaps to JSON for the server to read walkable/collisions.
  • Fixed handling other npc/players movement.
  • Started work on handling double click/single click on items/mobiles
  • Synced playername to UI elements
  • Fixed the chat box text size.
  • Started work on the player paper doll ( character window ), this will display stats etc.


Server Side:

  • Added some defines to handle local dev using a standard websocket, and then published builds using secure web sockets to keep itch happy.
  • Laid the groundwork for mobile's AI, added wandering if no target, and if a Player comes within 5 tiles they pursue. Collisions are read in from the exported JSON.
  • Combat mode Toggle support
  • Work on Serializing/Deserializing the world aka Saving and Loading all thruout the week, Working as of thursday, A player, Account, and a few mobiles/items saved and loaded successfully. This is a real tricky area as the solution needs to handle some complex relationships including circular references( a player has a target, and then the target has a target thats the player etc ). I've gone thru multiple iterations here.
  • Added Eagle and Wolf animals, Eagle is non aggressive unless attacked, and Wolf is a standard monster
  • Lots of behind the scenes work on syncing Stats correctly, ie a Player needs to know about His Str or Mana changing, but he shouldn't know about another player or monsters, only current HP, position, spritename, and display name for others currently.
  • Cleaned up text messages as well, and added world save broadcasts.
  • Spent a lot of time being too smart for my own good, Used a Rosyln source generator to auto generate Property changed logs to track stat updates. Also used the same Source Generator idea to auto generate matching Deserialize methods for my Serialise methods, this all went out the window as I've settle on a Serialisation Library called Ceras at the moment.


Here is a short clip showing off world items ( the ladder's are items server side sent to the client to display, and the teleport action is triggered server side ), and also shows off an enemy pursuing the player.

This is all server side logic, all the client is receiving throughout this is position updates with all logic server side.

Leave a comment

Log in with itch.io to leave a comment.