19 months have passed since the last devlog. Time sure does fly. I’m here to dust off the old websites and mailing lists, and see if it all still works. So, *clears throat*, hi there. Welcome to the exciting new post about what happened (nothing really), what was I doing (a lot!), and what’s gonna happen in the near future (more of the same), and in the far future (exciting stuff).
Since the last devlog there was 0 commits between 2020/04/06 and 2020/05/16, totaling 102 commits. I have worked 40 hours during this period, bringing the total to 331 hours. Untitled no more! This has been a productive month, despite not really working on the game itself. As I mentioned in the previous devlog, I focused on marketing. I have also recruited two friends to help me out (well, technically I’ve been talking their ears off since I started last year).
Since the last devlog there were 13 commits between 2019/04/09 and 2020/04/04, totaling 102 commits. I have worked 81 hours during this period, bringing the total to 291 hours. Wow. Devlog for a year of work. Yes. So what happened? Mostly I was busy with other unrelated gamedev stuff. But it is cool stuff, that I will probably implement in this RPG too. I practically didn’t touch the RPG since June 2019 until March 2020.
Since the last devlog there were 33 commits between 2019/03/19 and 2019/04/09, totaling 89 commits. I have worked 68 hours during this period, bringing the total to 210 hours. As I started adding more things to my test map, I decided to first improve the workflow and prepare for future development. Tiled supports external tilesets – standalone data files that can be re-used between different tilemaps. Phaser currently doesn’t support them though, and in general there’s no reason to include all of tilemap data in the game.
Since the last devlog there were 5 commits between 2019/03/08 and 2019/03/13, totaling 56 commits. I have worked 20 hours during this period, bringing the total to 142 hours. Yes, this devlog is released over a year late. Playing fetch is fun, but lack of pathfinding turns minor obstacles into insurmountable ones. So I went down the rabbit hole studying how to implement one. Tiled based games (which this is) often use a simple A* algorithm to search through the tiles.
Since the last devlog there were 17 commits between 2019/02/26 and 2019/03/06, totaling 51 commits. I have worked 39 hours during this period, bringing the total to 122 hours. Shaders This time I took a bit of a rest and did something I was itching to try for weeks: shaders. They are programs that handle the actual process of putting pixels on our screens. Most 2D engines abstract them away and there’s mostly no reason to touch the actual shaders.
Since the last devlog there were 13 commits between 2019/02/16 and 2019/02/22, totaling 34 commits. I have worked 35 hours during this period, bringing the total to 83 hours. This one is entirely about messing with AI, iterating and refactoring the approach. Initial Approach It started with basic xml Behavior Tree from the last devlog. First thing I did though, was updating Haxe to version 4 Release Candidate, in preparation to using inlined markup.
Since the last devlog there were 10 commits between 2019/01/27 and 2019/02/15, totaling 21 commits. I have worked 28 hours during this period, bringing the total to 48 hours. I started out by adding new type of objects to my Tiled map. A bit more messing around and I can now have basic message interaction in the game. That included adding overlay UI system, some refactoring, support for nineslice scaled ui elements.
Few days ago I have decided to start an RPG project, as that’s what I’ve always wanted to make. I will be fairly limited with graphic assets and time, but at least the coding part will be fun. I will make do with what I have available. Right now I have depth sorting implemented: I’m using Time Fantasy art assets. Tiled for level editor. Haxe as programming language. Phaser 3 as framework.
In the third log we made the server authoritative and implemented client-side prediction. Now is the time to add other players and properly implement entity interpolation. Entity Interpolation In General The principle is pretty simple. Server sends updates containing positions of all entities (other players). Client waits a few updates before moving the entity while interpolating between the individual updates. As an example, if server sends updates every 100 ms, client can wait until it receives 3rd update (i.