Today’s post we’ll go over the implementation of the InputManager class!
Bindings and Bindings Config The bindings have a pretty simple JSON schema. The root object is an array. Each binding in the array takes this format:
{ // This is the name of the alias the binding corresponds to. "Alias": "name_of_alias", // Binding is either a single input code, or an array of input codes. // If Binding is an array, all of the input codes must be pressed or active to trigger the binding.
New year, and a new resolve to blog more! So let’s get in to it!
Scripting Over the Christmas break I spent a huge chunk of time working on Shibboleth. Majority of that time was spent take a passing interest in a LISP-like programming language called Janet. I integrated it into the engine to the point where it was 99% of the way done, but ended up abandoning it. The main reason being is that the language was clearly not designed to be embedded in an environment that wasn’t purely statically linked.
I will keep this one short, as I’m currently writing some more in-depth updates about the engine. I’ve been working really hard to get some basic rendering and camera controls into the engine in a non-hacky way. The list of things that I have gotten done so far:
Basic Graphics Module that can render using ECS. Input binding system. State Machine system that is data driven. Basic camera state machine. State Machine system updating with ECS.
I don’t post enough about the work I’ve been doing on Shibboleth. I don’t have a lot of visual progress to show, but I am making a lot of very good progress. And I should get into the habit of writing down the work I’m doing.
Reflection Unification In the past, enum reflection had it’s own global data structure that was different from everything else. Everything else has a Reflection <T> structure, whereas enums had a EnumReflection<T> structure.
There’s not much to say in this update, other than I’m still alive and working on stuff. Albeit, very slowly. I basically stopped working on Arbalest altogether, favoring to work on Shibboleth instead. The main reason behind this is I changed jobs recently, and have been pretty happy with where I was and opted to do what I found most enjoyable. I eventually came to the conclusion that unless I never want to finish a project, I should put some effort to things other than Shibboleth.