Update #62 - Emberium Studios & Work Optimizer

Hello again! It's official: Enckling has been rebranded into Emberium. I'll delve into that after I mention the minor revisions.

  • Aeta UI: Added OnPositionMove event to Element.cs. Now, any element can become a container.
  • Aeta UI: Added HoldTickSpeed to RenderElement.cs. This allows On*Hold to be called at an interval rather than every tick.
  • Aeta UI: Fixed IsLocked for elements. Now the locked element won't change if the mouse hovers over a different element.
  • Website: In preparation for the rebranding, the website has been changed completely.
  • Website: Added a border image to every <div>.
  • Website: Fixed the social icons at the bottom of the page.
  • Website: Added a simple wavy css animation to the logo. May change or get removed.

Emberium Studios

Enckling is now known as Emberium! It's a refreshing change, and the new website overhaul and logo are incredible.

So, why the change? I had become tired of the original name. I was somewhat happy when I came up with it in late 2015, but over the years it just did not reflect who the company was anymore. And, in a large way, the company is me. As with a lot of my recent work, the new name is inspired by a type of metal from Pilgrimage of Embers called "emberite". Not only that, the new logo is a reimagined version of the old logo from the same game.

I'm still updating parts of the site, social accounts, etc., so I appreciate your patience. If you see an issue, please contact me through email or social media.

Work Optimizer


This is an old tool that has been re-coded into a smoother program. It's a tool to track how much time you're spending doing certain aspects of your work. It uses C#, MonoGame, Aeta UI and Frame. For now, it has similar features as the other clock program. You can add timers, rename them, output the day's work, modify the current time, and a few various features. The big change is that it can track not only how long you work in a day, but when you're working those timers. When I add in the statistics view, this will be a lot easier to visualize.


Some other features I'm planning to add:

  1. Statistics. This will allow the user to easily see his time for the year, month, day, date, day of week, etc.
  2. To-Do List. Control over your data, and integrated into statistics.
  3. Settings. Just a basic screen to allow the user to change things like tooltips and UI theme color.

If you want to download this tool and many others, consider becoming a patron. It's available to Nomad tier and up.

If you have any ideas, constructive criticism, or just want to tell me how much you dislike my creations, you can:

  1. Send me an email
  2. Tweet to @Soestae
  3. Gab to @Soestae
  4. Toot to @Soestae
  5. Comment below

Do you want to support my projects? Here's what you can do:

  1. Become a Patron here!
  2. Tell your friends and family about my projects!
  3. Retweetrepost, retoot, and share!

Thank you for reading!
Soestae, Emberium

Update #61 - New Monument Content, & What's Next

Hello! I hope you've been well. Following Monument's release, I've been adding content to it. So far, I've three new releases in the Tools section, and one Pilgrimage of Embers in Games. I'm very happy with this new direction. Firstly, here are the minor changes:

  • Website: Added the trailer to the top of enckling.com/monument.
  • Prototype: Started messing around with a game engine prototype, which combines aspects of 3D physics while rendering in two dimensions.
  • Website: Updated the Creations page, and replaced it's link in the main navigation bar with a link to the Monument page.
  • Aeta UI: Made a dramatic change to how buttons are handled. Now, any RenderElement can use button events.
  • Aeta UI: Button Invoke*Hold() is now called from a timer. Set HoldTime to a value in milliseconds to change.
  • Aeta UI: Removed ButtonElement. With the addition of Buttons, it was redundant.
  • Aeta UI: For consistency, renamed InputElement to TextLineElement.
  • Aeta UI: Similar to TextBoxElement, TextLineElement now uses KeyInput.
  • Aeta UI: Similar to TextBoxElement, TextLineElement now can use shortcut keys (Control navigation, home/end keys, etc.).
  • Aeta UI: Added deletion repetition to KeyInput. Holding down backspace and delete keys for more than 500ms quickly deletes characters.
  • Aeta UI: Added navigation repetition to TextLineElement. Holding down arrow keys for more than 500ms quickly moves the character index.
  • Aeta UI: Updated how Controls.cs handles mouse checking (changed from custom enum to ButtonState).
  • Aeta UI: Started working on the UI editor. Early stages, but going well.
  • Tool: Started working on a project called "Aeta Frame". This will use Aeta UI, and will be a digital frame for quickly developing programs.
  • Aeta UI: Fixed IsPriority not working like it should be.
  • Aeta Frame: RenderTargets now dispose when the window is resizing. No more super fast memory leak.
  • Aeta Frame: Added maximize button to the titlebar.
  • Aeta Frame: Changed how schemes work. Much cleaner, more reliable!
  • Aeta Frame: Finished adding color variables for the frame UI.
  • Aeta Frame: Added support for tooltips.
  • Aeta Frame: Added a message box, with an unlimited amount of customizable buttons.
  • Aeta Frame: Added overlay to the UIs when the tray is expanded.
  • Aeta UI: Controls.cs now supports multiple controllers.
  • Aeta UI: Added a bunch of summaries to many classes.
  • Monument: Fixed an issue caused by Squarespace. However, you must download the latest version manually.
  • Monument: Added tooltips to the Username and Key boxes at login.
  • Monument: Right-clicking a textbox now erases all of it's contents.
  • Tool: Started a new project using the Aeta Frame called Time Recorder.
  • Time Recorder: Finished icons, and set up the project to use with Aeta Frame. The smaller details.

Monument Content

Yes, there's new content in Monument at last! Some of the content were projects I have been building (on and off) since last year, while others I have started more recently. So, I'll introduce you to each one now.

Before I continue, I need to inform you that Squarespace broke Monument recently. I had a URL map through there for convenience, but for some reason they are blocking downloading text. Whether this is intentional or accidental, I'm not sure. This means that the old Monument won't allow you to log in. Fortunately, I caught and fixed most of it as soon as possible. Only thing that can't be fixed is downloading blog posts. Although unfortunately, since old Monument went through there, you have to update it manually. If you have downloaded Monument before July 13th 2018, this applies to you!

Aeta UI


Aeta is a user interface library made for use in C# and MonoGame. It comes as a .dll, alongside a .xml (for summaries), documentation.pdf, license.txt, and logo.png. I designed it to be flexible and lightweight, without sacrificing the complexity. I wanted to give the coder as much freedom as possible without much set up or giving the coder a headache. I'll update this library as I have a need or receive suggestions. But what can it do right now?

The library is structured to use InterfaceManager.cs, which the coder should derive a class from. This is where you will add your interfaces. Next, derive a class from UserInterface.cs, do some basic setup, and add your elements to it. While this is the recommended way, you can use UserInterface.cs and all elements individually. UserInterface.cs makes use of a Camera class for matrices, so the UIs can be scaled and rotated easily. Most important, the user can still click on elements that have been rotated.

Other features include: sort which interfaces draw over others, click detection, minimize/maximize transitions, active/inactive transitions, unlimited HLSL effects with RenderTarget2D, overriding how an element is controlled, smoothly fade or move an element, lock an interface so that no other interfaces can be selected, and plenty more.

Lastly, I have plans to add an interface editor. I'll keep you updated on it's progress.

Aeta Frame


Aeta Frame makes use of the Aeta UI library mentioned previously. It's purpose is to provide a simple frame to help the coder develop good-looking tools more efficiently.

Frame is open source, so it's highly customizable (even if you just change the class-level variables). The button in the top-left corner will expand the tray, which tells the user what every button in the list opens. Clicking a button in the list will open a user interface, and close out the previous one. By default, it has the three titlebar buttons (minimize, maximize, exit). In the bottom-right corner, the user can resize the interface.

Koah Particles


Koah Particles is a lightweight and flexible approach to particle engines. While I released this last month, I haven't had a chance to mention it here. It makes use of object recycling to  keep it's memory lower.

What's Next?

I'm currently making good use of Aeta Frame, as I build a Time Recorder. I have some old software I use which tracks time, but I wanted to give it an overhaul. The new one will contain a lot of the old features, but will also contain built-in statistics so I can visualize my progress for the year or month. Perfect for understanding my habits, such as which days are most or least productice. This will likely be released to Nomad tier (at least initially)!

I'm getting close to releasing some content packs! I mostly mean fonts, but I'm hoping to release some art assets such as animals and item icons.

Lastly, I'm rebranding Enckling into something a little hotter. This will take place sometime next month. I'm really excited about this, and I want to share more, but I'm going to hold off for now.

If you have any ideas, constructive criticism, or just want to tell me how much you dislike my creations, you can:

  1. Send me an email
  2. Tweet to @Soestae
  3. Gab to @Soestae
  4. Toot to @Soestae
  5. Comment below

Do you want to support my projects? Here's what you can do:

  1. Become a Patron here!
  2. Tell your friends and family about my projects!
  3. Retweetrepost, retoot, and share!

Thank you for reading!
From Enckling, with love.

Update #60 - A New Journey With Monument

Hey, welcome back! I've been awfully quiet here, as I've had my mind focused on coding and artwork. Great news: Monument is finally complete! Before we get into that, here are the minor changes:

  • Aeta UI: Moved a majority of the ImageElement.cs contents into RenderElement.cs. Now TextElement.cs and ImageElement.cs share common methods, thus decreasing complexity.
  • Aeta UI: Reorganized and renamed some folders that contain the elements.
  • Aeta UI: Individual elements can now cast shadows.
  • Aeta UI: Added HLSLTextureName to EffectOrder.cs. This must be set to the name of the HLSL Texture2D name when using shaders.
  • Aeta UI: Fixed an issue that caused tall game windows to cut off interfaces at the bottom.
  • Discord: Added Wanderer and Wright roles, and changed "Patron" to "Adventurer".
  • Data Serializer: Slight change to how the parser identifies objects. Previous way worked for everything except null strings. Not okay!
  • Data Serializer: Added "Prepend" and "Append" to the DataAttribute tag. This works well for structuring the serialized string.
  • Data Serializer: Added "Nickname" to the DataAttribute tag. Purely visual purpose. The coder must manually avoid conflicting names.
  • Aeta UI: Moved action queueing out from UserInterface.cs into a separate class. 
  • Aeta UI: DrawStencil() can now (almost) be called more than once.
  • Aeta UI: Added AlignTop, AlignBottom, AlignLeft, AlignRight, and AlignCenter methods to TextElement. For setting the origin of the text easier.
  • Aeta UI: Added KeyInput.cs, an improved way to get key to string input.
  • Aeta UI: Added TextBoxElement.cs. Like InputElement.cs, but multiple lines.
  • Aeta UI: Added text wrapping to TextBoxElement.cs, with four modes: Letter, Word, EraseFirst, EraseLast.
  • Aeta UI: Certain TextBoxElement behaviours can be turned off. This includes: line and index navigation, home and end keys, enter key, control navigation, control deleting, etc.
  • Aeta UI: Improved how KeyInput.cs handles key code for upper and lower keys.
  • Discord: Added #amusement channel to the Lounge. Discuss movies, TV shows, games, novels, and other forms of entertainment not related to Monument.
  • Aeta UI: Scale lerping now works when done in "Set Scale -> Set Scale Target" order. Odd glitch.
  • Data Serializer: Fixed an issue preventing SerializeEvent and ParseEvent from being called when a List is sent in.
  • Aeta UI: Fixed a render error caused by the renderElement list not being re-ordered when an element was removed.
  • Legal: The EULA for Monument has been completed. Go to enckling.com/monument-eula for the latest version.
  • Website: Lines now have a little bit more style.
  • Aeta UI: Due to a velocity issue with dynamic length, ScrollElement.cs has been changed from linear interpolation back to velocity and clamping.


If you've been following my progress on Twitter or Mastodon, you'll know what this is. For those who haven't, Monument is the hub for downloading the latest games, tools, and resources that I've created. This is my first step from an independant game developer to a digital content creator. There are six screens in Monument, which are:

  1. Login. Self-explanatory.
  2. About. This interface has information about the creator, quick links, and the latest updates.
  3. Settings. Basic settings, such as remember user and display tooltips. Also has buttons for opening the .exe's directory and clearing all library files.
  4. Library. Where all of the games, tools, and resources are at. Clicking on an item will load it into the Item UI.
  5. Item. This contains all of the versions of the selected item. Clicking a version will display more information and the option to download or launch.
  6. Mail. If you have a suggestion, issue or comment, you can send me an email directly.
 The Item screen, showing Pilgrimage of Embers.

The Item screen, showing Pilgrimage of Embers.

There isn't much content in here yet, but over time I will to fill it with quality games, prototypes, game assets, tools, and anything else I make. Pilgrimage of Embers is available to any Patron (Nomad, Adventurer, or Knight tier). I will be sending out usernames and keys shortly, so keep an eye out for it. If you would like to get access to Monument, consider becoming a patron.

If you have any ideas, constructive criticism, or just want to tell me how much you dislike my creations, you can:

  1. Send me an email
  2. Tweet to @Soestae
  3. Gab to @Soestae
  4. Toot to @Soestae
  5. Comment below

Do you want to support my projects? Here's what you can do:

  1. Become a Patron here!
  2. Tell your friends and family about my projects!
  3. Retweetrepost, retoot, and share!

Thank you for reading!
From Enckling, with love.

Update #59 - Aeta UI & Monument Progress

Hey, I hope you've been well. A lot happened these past couple of weeks! Here are the minor revisions (long!):

  • UI Library: Renamed the "UI Library" to "Aeta", and made a neat logo for it.
  • Aeta UI: Improved and cleaned up TextLineElement.
  • Website: Visiting enckling.com/discord now loads a cover page with the discord widget rather than redirecting to the invite URL.
  • Website: Changed the Promo Popup from PoE to Monument focused.
  • Website: Added "Seek" link to enckling.com navigation. This will direct you to the search function.
  • Website: Moved date to bottom of posts, and added author alongside it.
  • Website: Author link now redirects to the Soestae twitter profile.
  • Aeta UI: TextLineElement now supports sensitive data and a customizable sensitive symbol.
  • Aeta UI: Fixed the render order of elements.
  • Aeta UI: Fixed ButtonBoxElement clickbox not adjusting with origin. 
  • Aeta UI: Fixed TextLineElement sensitive data relying on regular text than the custom symbol for IndexPosition.
  • Aeta UI: Added IsLocked boolean to Element. This is used to prevent conflicting shortcuts (especially helpful for typing).
  • Aeta UI: Added defaultElement to UserInterface.cs. If the controlledElement is null, it can optionally be set to defaultElement now.
  • Aeta UI: BoxElement.cs and ButtonBoxElement.cs now set their UI's controlledElement to themselves if mouse is hovering.
  • Website: Added Itch.io social link to the footer, and removed the Facebook link.
  • Marketing: Updated my itch.io page (https://soestae.itch.io/). I've neglected it for years now.
  • Aeta UI: Added IsLocked boolean to UserInterface.cs. Prevents other UIs from gaining control until the current UI is finished.
  • Aeta UI: Added action queueing to UserInterface.cs.
  • Aeta UI: Added IsInteract and IsRendered booleans to individual elements.
  • Aeta UI: Added the ability to delay control checking. Useful when element misclicks occur during UI transitions. 
  • Aeta UI: Added Animator.cs, used for animating textures.
  • Aeta UI: Added AnimatedCheckboxElement.cs. Like CheckboxElement, but with animation.
  • Aeta UI: Removed rightClicked and middleClicked animations states. They now use "Clicked".
  • Aeta UI: Made public the "OnX" events. You no longer have to add or remove through a method (AddEvent, RemoveEvent).
  • Aeta UI: Separated "onControls" event into individual control types: onMouseControls, onKeyboardControls, onGamepadControls, and onAltControls.
  • Aeta UI: Updated how controls flow on all elements.
  • Aeta UI: Added TargetRender and TargetUpdater strings to Element.cs. Used for filtering what gets drawn and updated.
  • Aeta UI: Replaced FadeIn() and FadeOut() with Fade(color, speed).
  • Aeta UI: Renamed a few variables. RenderOffset to Center, InterfaceSize to Size, InterfaceOrigin to SizeCenter, InterfacePercentage to SizePercentage.
  • Aeta UI: Added two positional variables. TopLeft and BottomRight, which are at the top-left and bottom-right corners of the UI. 
  • Aeta UI: Added ToolTip.cs. Perfect for giving descriptions to elements.
  • Website: Added Mastodon social link to the footer.
  • Aeta UI: Removed "SetInteraction" from UserInterface.cs. Interaction can be set manually with IsInteract boolean.

Aeta UI

I've talked about this in a previous update, but it was under a different name. Aeta UI is a user interface library coded for use in C# and MonoGame. Since working on the Monument games launcher, I have discovered a lot of very specific details that needed refining. You can see all these changes in the minor revisions above.

I am planning on releasing this as a .dll soon, but first I need to get a license written up and the documentation. I'll walk you through the setup process and troubleshooting, so I'm anticipating it to be 15 or 20 pages long. I may not have time to do this until after I release Monument.

Monument Progress

A lot of progress has been made to Monument since the last update. Then, it was just images and a font, but now it's functional experience. In the video above, you'll see the login, message box, about, settings, assets, and item UIs (in that order). It's still a work-in-progress, but I'm very happy with how far it's come.

So, what's left? Not including the inner workings, quite a bit. There's an empty space on the right panel of the about UI. The settings UI should have more options. The item UI is completely empty. I need to add a Downloading UI, which shows information about an item's download status. Also need to add in a title bar, and remove the default Windows title bar. Thankfully, Aeta UI makes all of this easy to code in. It's the planning stage for each UI that takes time.

If you have any ideas, constructive criticism, or just want to tell me how much you dislike what I make, you can:

  1. Send me an email
  2. Tweet to @Soestae
  3. Gab to @Soestae
  4. Toot to @Soestae
  5. Comment below.

Do you want to support my projects? Here's what you can do:

  1. Become a Patron here!
  2. Tell your friends and family about my projects!
  3. Retweetrepost, and share the content that you like!

Thank you for reading!

From Enckling, with love.

Update #58 - Monument & Various Fixes

Welcome. I'm excited to share this update with you. I'm heading in a new and positive direction with Monument, as I shift from independent game developer to creator. While I'll still do games, I don't want to limit myself to just that.

On a personal note, I finally created a better online alias and identity. TheShyyGuy was an old username from almost 7 years ago, and I felt it no longer represented me. If you see a username called Soestae in your timeline and have no idea who he is, that's me! And, birthday milestone tomorrow: I turn 21.

Alright, alright. Here are the minor revisions.

  • Added BaseOffset vector to Element.cs. Now elements can return home.
  • ContainerElement.cs now sets a removed element's target offset, so they return home.
  • Added in code to support shaders with multiple techniques.
  • Fixed a memory leak caused by not disposing AlphaTestEffect (used for masking UIs).
  • Added control-neutral code support to Element.cs.
  • Added control-neutral element selection to UserInterface.cs. This is important for gamepad and keyboard navigating UIs.
  • Added sci-fi shader technique. Future!
  • Cleaned up Controls.cs, and added Gamepad support.
  • Overrided default gamepad controls for all interactable elements.
  • Minor clean up to UserInterface.cs.
  • Added DialElement.cs. It's like sliders, but rounder!
  • Added KeepInBounds(). It'll gently push the UI back onto the screen if it wanders too far.
  • Added RadialBlur technique to the list of available shaders.
  • Completed the logo for Monument. It's neat!
  • Revamped nearly half of the Discord server, changing it from company-focused to game launcher (Monument).
  • Completed specific textures for Monument: UI frame, background, text input box, button, checkbox + animation, checkbox mark + animation, horizontal divider.
  • Completed the small and large fonts for Monument.
  • ImageElement and derived classes now support smooth scaling and rotation.
  • DialElement now smoothly scrolls across the -180 gap.
  • TextLineElement now must be activated if using keyboard to navigate to it.



Officially announcing Monument, the upcoming games launcher. This is one of the first steps in building up a community, and a new path for Enckling Games. The launcher will have similar sections to the PoE launcher, such as login, games, downloading, and about. There's also plans for a secret section, only accessible in a secret way, and will reveal secret knowledge with a secret key (or something).

Lastly, I'll code a Monument updater, which will download and install the latest launcher version (think Discord).


I'm very happy with the name and how the graphics turned out. It has a geometrical, earthy feeling. I looked up celtic art, which inspired the edges. When creating the font, I realized how careful I had to be. Geometrical can look futuristic, and that was not what I wanted. As you can see in the picture above, it looks great, and fits very well with the other graphics. The large font is the same, except a couple times larger and with a median effect applied to round out the pixel edges. Most of the graphics are complete, so now I need to polish the UI library before I feel comfortable making it.

With this announcement, the Discord server is now called Monument Society instead of Enckling Games. Additionally, the Patreon page has begun renovations, shifting its focus from supporting Pilgrimage of Embers only to Monument, which includes all games, prototypes, and even tools I create. I intend to keep the same costs, and stay per game update release. I will complete the Patreon page after I complete the games launcher.

Now, most of you who signed up for the Pilgrimage of Embers alpha will not have access to the new games launcher, but can certainly gain access easily by supporting me on Patreon (after it's been sent out, of course).

I'm expecting to complete and release Monument by update #60. Let's see if I can complete it by then!

If you have any ideas, constructive criticism, or just want to tell me how much you dislike what I make, you can: Send me an email, tweet @Soestae, gab to @Soestae, comment on the Facebook page, or respond in the comment section below.

Do you want to support my projects? Here's what you can do:

  1. Become a Patron here!
  2. Tell your friends and family about my projects!
  3. Retweetrepost, and share the content that you like!

Thank you for reading!

From Enckling, with love.