Sign in to follow this  
haloman30

Elaztek Updates #7 - Gitlab Migration and Blamite Updates

1 post in this topic

Hey, everyone! It's been a little bit, and we've got some news to share!

 

Gitlab Migration

 

First off: we've once again migrated the Gitlab, except this time we didn't break LFS data. The new and updated Gitlab can be found at the Gitlab's original URL: https://gitlab.elaztek.com. As a result, if you have any repositories cloned you will need to update the origin push/pull URL's to point to gitlab.elaztek.com instead of newgitlab.elaztek.com. Since all the old data (accounts, repositories, etc.) is still present, no other adjustments should need to be made to those URL's. You may need to log-in again if you use a GUI application for interacting with Git, and if your repositories utilize webhooks those may need to be adjusted as well (though this depends on the hooks themselves typically).

 

The old URL (ironically named https://newgitlab.elaztek.com) has been set to redirect automatically to the new URL. As a sidenote, the Gitlab has not exchanged hands during this migration. Seeing as internally I've mentioned moving things to my own hosting a few times (and I suppose it's possible that such information may have slipped out potentially), I figure its worth mentioning. The main purpose behind this migration is to reduce the sheer number of servers that have been in use by Errite (the studio that hosts Gitlab as well as assists with other server-management-stuffs with Elaztek and CU), as it became more costly than made sense.

 

Blamite Game Engine

 

You didn't think we've been sitting alone doing nothing the past few months, have you? If you did think that - you'd be entirely justified because there's been a lot of that before. But today, we've got some goods to show off. For most of you, it'll be more boring stuff - but while it isn't much on the surface, it's actually a much bigger deal under the hood - and I'll try to make that clear as best as I can.

 

 

Engine Architecture Changes

 

The game engine has, up until now, been a standalone executable. No libraries or anything crazy like that, just a simple blam.exe and that's it. However, as time went on it became clear that this wasn't gonna work out long-term. The engine's core has to be used outside of just the game - Sapien will need to use it, our UI editing tool that has yet to be named needs to use it, and our planned unified editor for Blamite will of course need to use it as well. So, we had to perform some adjustments to migrate the engine from being a standalone application to a DLL, or Dynamic Link Library. In layman's terms, this means the engine can be utilized by other applications without having to bake the engine's runtime into each and every development tool by hand.

 

We aren't done with that migration, as the migration has revealed a couple real issues - namely that the engine doesn't have a very clean startup and shutdown routine. There's a lot of data that "persists" through restarts erroneously, that was previously given no thought since that data would just be lost on exit. However, this mainly refers to trying to do things like stop/start the engine from those external tools - initial startup works just fine.

 

 

Documentation

 

Along with this, we've started to build up a documentation website for Blamite. Or, rather, a "Guides" section. We have automated source documentation built via Doxygen, but this is presently kept behind lock and key - as it includes many of the source code files for the engine. What isn't being kept behind lock and key is this new Guides section, which is derived from the Blamite repository's Wiki section. The new documentation is crisp, clean, and much easier to use than Gitlab's built-in Wiki (especially for what we're using it for). Keep in mind - absolutely nothing on these guides should be relied upon for any amount of real guidance at the moment. Since the engine is only in its infancy at the moment, a lot of things are undocumented. What is documented are, in many cases, old feature plans by 16-year-old-me back when I had no real clue how to do anything with a game engine, or even C++ for that matter. You will see a few pages marked with a notice like this:

 

bf4b9d14d3b304f3994fcaf5cadf8341.png

 

Usually it will contain a message about me harshly criticizing my past self and stating that the page exists for archival purposes only. Most of these pages are kept in the 'Deprecated' category.

 

Other pages are either out of date, incomplete, or in some cases may actually be complete if you're lucky. Don't expect anything too exciting on the guides for a while, though you may periodically get a glimpse under the hood in between announcements. The new guides section can be found at https://hub.elaztek.com/guides/latest.

 

 

Tags - The backbone of all Blamite content

 

For those of you at all familiar with Halo's game engine, you've surely heard of Tags before. In Bungie's engine, tags are used for the vast majority of all game content. And as of now, Blamite has full support for creating new tags and tag classes. Cache files (.map files) aren't implemented yet, and there are a few other things that need to be accounted for, but the bulk of the engine's tag/tagclass system is functional. Along with that, we've made a couple minor but, in my opinion, very key changes that will prove to be invaluable later on.

 

Each tag file stores the version under which it was created within its file. And while this may not seem like a huge deal, it means that we'll be able to actually know what exact version each tag was built with. This can be used for a number of things, particularly with backwards compatibility. We could either let the engine be aware of all previous tag formats - though this could prove to become very unwieldy, very fast. A more realistic implementation is having Guerilla facilitate tag upgrading. We could even make it so Guerilla can automatically download the appropriate plugin files for that tag and help the user migrate their tags forward.

 

No tag classes have actually been solidified yet. In fact, Guerilla hasn't even been upgraded to be able to handle proper tag files. But it's something that'll be happening sooner rather than later.

 

Screenshots

 

So, I've talked about a number of things in this post - but so far, I've not shown anything in the way of photos. Let's fix that. Below you can find some screenshots of the various engine tools. Each image will have a brief explanation below it.

 

Sapien

Spoiler

8ec04a0213c376a4f96305f87ea62eae.png

Main window, includes a functional Game Window and a not-yet-functional Game Output window.

 

0b387a94441c006b442800ff552af98e.png

Classic dialog to select director speed, based on the original look of the same dialog from H2Sapien with H2Codez modifications.

 

c13d61b89c4c9c4bd435a3330bbaefd3.png

Enhanced select Director speed dialog, includes a titlebar and several default options. Out of view is a separator line below which will contain the most recent custom speeds.

 

57aa180e620662f5ac962f068657a0ac.png

The Run Command dialog, can be used to run a command if you're too lazy to press ~ to open console.

 

ebcec3f29fe6e845170aafbe5a759220.png

The About dialog

 

ecec1727d38424fc2a84cd5bec41c04d.png

The auto-backup preferences page

 

0ba7e983174ccbf2580f23796e6c27be.png

The current Appearance options page. As Sapien becomes more functional, more appearance options will likely be introduced.

 

db88d2e32437679e061a1198b64ae31c.png

Preferences for adjusting specific engine settings from within Sapien.

 

0093fea40426e6a762cb4ca8aaf8a120.png

Currently unimplemented keybind editor.

 

Guerilla

Spoiler

b20dbf8238599573938227ef3730c353.png

Main view, with the Explorer bar and a sample tag open.

 

3451d49e920584357d5141b3bd54c7ae.png

The about dialog

 

435d598a28d09055b351be68a83b1dcf.png

The Explorer bar when switched to Class view, to sort things by tag class instead of hierarchy - for those used to modding tools like Assembly

 

ba4ab83aa5ada5824172a720c755eefc.png

General settings

 

49d8efa3086dc3adac0c647101dad9ec.png

Appearance settings, much more in-depth.

 

68bf02931e6c1b17b6af1a3e9642d9c7.png

Guerilla currently includes rich presence. The user can configure specific keywords that, if present in the tag path, will be excluded from Discord.

 

623be64715e2d8bc3af04011105fc520.png

Advanced settings that control more in-depth appearance tweaks.

 

Blamite Engine

Spoiler

5c03b4a757da37a677f9e9993a90361e.png

In-engine Tag editor, capable of reading and writing tag files.

 

aa95cd6a67130d2c40bcdabebdd1d2b1.png

The engine's about dialog

 

7fb1f4217543b18ab30ddc6fd2f9a287.png

The debug menu - looks familiar, doesn't it? Fun fact - the selected item animates too. The animation system is fairly crude, and not at all portable - but what it relies on is the engine's game tick - which is fully operational.

 

4e540369c0dda143172edaa4d1534d46.png

The console - something that might be a lot more familiar to the average Halo modder (especially in CE)

 

 

Unfortunately folks, that's all we've got - for now. Progress is always being made - and while not all of it is worth showing off, be rest assured we're always inching closer to having a fully functional engine on our hands. 3D rendering isn't being worked on yet - but we're very close to being there.

 

Until then, we'll see you all next time.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this