Things have been quiet here lately as I’ve a high workload at my day job and am very dedicated to it, so I thought it a good idea to share semi-regular summaries on what I’ve been working on; if only to remind any readers that I am indeed still alive and wheels are turning.
I’ve neglected posts on the subject of the original reason I decided to start this blog, so without further ado…
Minecraft (and related Java experiments)
- ModShell development is indefinitely suspended due to an unresolved blocker that sadly remained unanswered on Stack Overflow. However, it may eventually be converted into a Turbo Tools plugin (see it’s section below) depending on how far and quickly Microsoft/Mojang go with their SDK/API. It is very low priority, but a great example of a free plugin for Turbo Tools so still of personal interest to me.
- Imperium itself, as before, has had zero direct development. I have, however, been working on other things which are essential prerequisites to my vision of the Imperium mod. No spoilers though, sorry 😉
- CosmicLib is my general-purpose Java library for shared code among my projects and it’s growing quite complicated. It is mostly Minecraft orientated for the moment, but it deserves it’s own section, below.
- Highly-optimized trigonometric functions, mostly written by other geniuses but tested, benchmarked and modified/customized by myself;
- Builders and helpers for heuristic analysis and cataloging of simple multi-dimensional spaces (e.g. Minecraft worlds); effectively an “AI” that can understand and recognize the features of simulated environments in the way a human would (details soon). This is the practical implementation of the “Topographic Profiler” I’ve ranted about on MinecraftForum, only better. Rather than hooking into Minecraft’s procedural generation to “cheat” at building humanized-data of the world, it’s more like “procedural recognition” which allows it to be used outside Minecraft and be much more powerful (and even more complicated). This is not designed to be a full-blown AR sensor framework or anything like that though.
- “CosmicEngine” (working title); a platform-independent layout and window manager, with the possibility of expanding into a full-blown 2D render engine (e.g. sprites, motion, physics/collision, etc). Designed to work with both Minecraft and Android sub-libraries (see below);
- Various other tid-bits and nifty things that make Java programming less repetitious, and some other secrets 😉
- A butt-load of helper functions and wrappers for Forge modding, designed to reduce the need to randomly flail around in Forge’s complicated source tree for something that may or may not exist (consider it a practical alternative to documentation, or an “API overlay” if you prefer) along with extensive error handling and improved performance (namely loading times). This will not only be a time-saver for experienced Java developers, but could be a nice alternative to MCreator for those who are new to Java;
- CosmicEngine entry points and additional helpers for Minecraft-specific GUI design, along with lwjgl “bindings” for actually displaying the GUI;
- “TileGhost” (working title) object and associated registery/ticker. An alternative to TileEntities that are not realtime-priority and lacking some other features (e.g. support for a dedicated render object), but far easier on resources overall. In other words, something that goes in-between a Block meta/state collection and a TileEntity;
- Some new AI tasks, mostly for enhanced NPC and passive-mob mechanics;
- Related to the first point: various “registrars” that act as a central delegate (i.e. each one a singleton) for mods to completely replace some areas of vanilla logic (e.g. changing AI tasks in vanilla mobs) on a one-time basis rather than each mod running it’s own expensive loop (faster loading and better error control);
- “RenderTransformer”. Another singleton helper, this will assist modders in applying motion and physics to blocks far beyond the existing capability (e.g. falling sand and gravel). This is a core part of my planned “Timberrr!” mod, where trees fall over naturally when chopped;
- Some other experimental things that are too immature to worth mentioning.
Well, that’s basically it for Minecraft. I had a lot of other ideas for mods, some may recall me ranting about the ten or so different ideas I had on MinecraftForum – feel free to ask me about them in the comments!
- TurboShell is a GUI/CLI “hybrid” where most of the user input and realtime processing happens. At first glance it looks like a fancy GUI wrapper for the Windows Command Prompt, and under the hood it is – albeit with many powerful and time saving functions (without being complex) and plugin support for custom commands, behaviors, and possibly alternative interpreters. It can also act as a complete replacement for Windows’s default Explorer shell, providing a CLI that acts like a standard command prompt and a GUI that lists files/directories, and both remain synchronized to the same working working directory (multiple TurboShell windows can be open simultaneously).
- TurboServer is the host “server” app that provides the back-end functionality for TurboShell and plugins, managing automation and related background tasks. It sits in your system tray (or notification area as they call it these days), also providing useful shortcuts and helpers for making your Windows workstation more productive for whatever you do – which of course are also extensible via plugins.