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

Added syntax for maps to my language, and a handful of functions I commonly use.

There may be a couple more functions I want to add soon, but I'm happy with it for now.

Glad I've finally had some time over the past few days to get back into it :)

#LangDev

quoting https://void.lgbt/notice/B3WFS9RT5V8b6XOfdQ

I did start with that yesterday, but didn't do it far enough to meet my personal standard for committing it into Git yet.

#Kittyscript #LangDev

RE: https://void.lgbt/objects/e0625ea8-45ef-4cad-a00f-b5882e265886

https://lensplaysgames.github.io/LensorCompilerCollection/lcc.html

LCC Playground got updated again: we now have fix-it hints (try leaving out a semi-colon)! Also added functionality for more flags

#lcc #glintlang #compiler #programming #dev #langdev #lensor

Lensor Compiler Collection

Landing Page for the Lensor Compiler Collection

Made my silly little programming language public:

https://github.com/ltriant/cliq

Nothing amazing about it. It's a dynamiclaly typed, functional-ish language. It's pretty slow for now. But it's a lot of fun to hack on, and I find it fun to write.

Named for my wife and kids, because they're fun too  

#LangDev

GitHub - ltriant/cliq: The cliq programming language

The cliq programming language. Contribute to ltriant/cliq development by creating an account on GitHub.

GitHub
Have you ever wondered what it's like to create a new programming language? Were you put off by the parsing-theory focus found in most compiler-development books?

Well then, take a look at the "Crafting Interpreters" book, by Robert Nystrom (@munificent). Its online version is completely free (https://craftinginterpreters.com/contents.html), and covers everything from the basics up to bytecode generation, garbage collection and optimizations, in an easy-to-follow manner. Of course, if you find the material useful, consider supporting the author by buying a proper edition of the book (details at https://craftinginterpreters.com/).

#programming #programminglanguages #compilers #interpreters #langdev #computerprogramming #compsci #CraftingInterpreters
Table of Contents Β· Crafting Interpreters

LensorCompilerCollection/docs/glint/thebook.pdf at main Β· LensPlaysGames/LensorCompilerCollection

A compiler collection I made :&. Contribute to LensPlaysGames/LensorCompilerCollection development by creating an account on GitHub.

GitHub