Days 42 and 43 of making my own indie MMO without engine or team

Yesterday I reached performance parity with souffle's datalog compiler on my tests, I was holding out this post in hopes that I would be able to beat it, and I managed to do so. My implementation may be faster overall since I only handle EAV form, but I won't claim it is when I haven't tested all different possible workloads (which can be a lot) in which souffle's compiler will beat it but these benchs were representative of the loads I expect.

So far I can only think of a couple more improvements I could do to get better performance:
  • Introduce some sort of sort of pgo. Right now I decide the order in which coditions are solved based on the size of the first query, but it may be better to profile it since that way I could avoid building some additional indices and save bandwidth there.
  • Shrink the size of the different entities and values encoding down from 25 bits to 18 (this would be a really nice speed boost but I don't know if I can do this yet).
  • I have this idea to make resizing of hashtables faster at the cost of making probing slightly slower, but since it would change significantly the hashes It'd be hard to empirically measure if there have been any measurable, reliable gains or not.
Either way I'm mentioning this as a way to log them in case I want to check them out in the future. Since this is the fourth or fifth day working on this, and it's currently a little over 9100 times faster than my original implementation. Beating souffle's compiled one with my interpreter (on my single-threaded benchmarks) is good enough for me, so I'll call it a day and go back to integrating this with my half-baked parser, then with my ir/jit, then into the engine to have aot scripting.

I also started reading the #gamewriting #kaleidoscope, It's a very interesting book, and I'm sure somewhere inside I can get an actual tip to execute on what I have in mind. I already talked in the past about how I want quests to work, I also mentioned I have a vague idea of how I will workaround my limitations to implement proper chat and instead go with canned phrases. But I have no idea how to execute the writing I'm thinking of, the closest reference I know of would be something like Magicka, or Bastion. I've been sharing my thoughts of the different chapters I've read elsewhere, because I'd like to focus here on my daily progress, but I'll eventually mention if I find what I'm looking for and whether I can recommend the book to non-writers or not.


#woao #programming #coding #gamedev #indiedev #langdev