Welp, i've decided i'd start a new blog.
This time perhaps writing for myself moreso than others, and maybe that way i'll actually stick to doing this for more than maybe 1 month, though maybe you'll still find some helpful advice here based on what i'm learning

There will be 3-4 overall topics that show up mostly on this blog,

  1. BWEngine, the C++ game engine i'm working on as a hobby
  2. NeuroCore, the C++ Neural network engine i'm working on as a hobby
  3. VReeSDK, the C++ VR/networking SDK i'm working on for work
  4. anything i develop that surrounds these main topics
Obviously the work-related stuff will be much less detailed, to avoid giving away any information i shouldn't.

For now, here's a small overview of what's done in the projects so far:


Controls system

Various systems that can be accessed from anywhere, like inputs, event and logging systems

Events system 

Ability to register/invoke events to ease communication between various objects, includes forwarding of most SDL events.

Input system 

Records most mouse, keyboard, and controller inputs from SDL (maybe obsolete as i believe SDL also has the ability to retrieve this with polling, but helps for uniformity i suppose),
still needs input abstraction ("action"-based rather than "input"-based)

Object/Component system

Ability to make/destroy objects, attach components to objects, and the ability to retrieve objects by name/hash, as well as access components,
also includes events for adding/removing objects, as well as components, the idea being that, as opposed to unity, you don't need to search for objects with components.

Say you're a camera and want to keep track of all objects that contain renderable components, you would search for all objects with a renderable component on startup, then register an event handler for attaching components to an object, and just update your mapping in that event


I've done some basic work on class layout for rendering, but the vast majority still needs to happen.

Settings system 

Ability to read/write settings by name/datatype

Logging system

Simultaneous logging to console & file, timestamped and with helper functions for simple concatenation of values, as well as formatted logging


Filter/Channel system 

Asynchronous cross-thread communication system with possible (generic)transformation functionality

Matrix/tensor system 

Matrix math adjusted to try to transpose tensors to allow matrix/vector multiplication to be a bit more straightforward, and using template arguments to allow the compiler to resolve a lot of the maths at compile-time


SM64 RNG algorithm expanded to 64 bits


First draft of the new version of my modular perceptron, no recurrent or LSTM version yet, and i'm not happy about the current state of how this is used, but then this project has largely been on hold for several months in favor of BWEngine.


Working on re-developing the whole SDK from scratch for version 3.0, using a more modular design, meaning users will be able to pick and choose which features they want to use.
Basic module system working, as well as first parts of networking module.


Popular posts from this blog

Building SIC-1 in VCB Part 1: RAM

On the intricacies of affordance-based interfaces in C++

Building SIC-1 in VCB Part 3: Fadder and auto-RAM