I've been plugging away at base features. The list so far is as follows:
- Re-implemented map traversal
- This had been memory-based, local to the application server. Now it's dripping in Promise-y goodness; the map management system loads requests from Redis cache instead. And it's super fast! Typical requests, on my development machine, take 3-12 ms, and up to 20 ms when loading new chunk data.
- Added world-save
- Yes, now you can save the world! Actually, it's for storing things long-term. This task runs on a 1-minute timer; everything that needs to be saved to the database is loaded from the Redis cache and stored in MySQL. I don't have much to say about its performance yet, since I am only saving the test character's data. That takes anywhere from 8-43 ms.
- Implemented window resizing
- It seems like a small thing, but being able to rotate my iPhone and see the game take its proper dimensions and sizing is a nice thing.
- Audio subsystem
- I've never worked with HTML5 audio, apart from an iTunes-alike I wrote in college. However, I've written a custom loader which accepts sound file data from the server on-load, caches sound files locally, and handles any number of sounds dynamically. And on that note...
- Character footsteps
- The main character plays a light, grassy footstep when walking around the world. Seems like a small thing, but man does sound add depth to the game.
- World Clock
- The game tracks time at a rate of 1:60 (1 second our time is 60 seconds game-time). And with that comes...
- Day/Night Cycles
- Truly a cool thing; at 8pm (game-time) the sun begins to set, until near-complete darkness descends around the player at 10pm. And at 4am, the sun begins to rise again, returning the world to full brightness by 6am.
The game is really turning out well, and I'm implementing features at a startling rate. I'm looking forward to the coming weeks.
- Returning the UI to its former glory.
- Adding proper account, character and family creation.
- Reinstating multiplayer.
- Adding chat.
Until next time!