Update #63 - New Game Project

Hello! I hope you've been well. This last week and a half has been incredibly exciting, as I've been writing the documentation for a new game. Surprisingly, I have no minor changes to mention, so let's get started!


Project Merchantry

Prototype image for demonstration (not actual art).

Prototype image for demonstration (not actual art).

This game project, known as Project Merchantry, is about the experiences of a travelling merchant and craftsman in a low-fantasy medieval-era world. Unlike Pilgrimage of Embers, this game is a small to medium project. Since the game will take place mostly in one place (initially), this means I'll need significantly less artwork and animations than what I would need in a larger game. The core features of the game will be:

  • Crafting. Create tools, brew potions, and bake foodstuffs from ingredients.
  • Trading. Buy, sell, and barter with the townsfolk and merchants.
  • Professions. Select a profession, earn experience points, and unlock recipes through levelling up.
  • Characters. Converse and trade with immersive characters.
  • Time. Seasons change, and day turns to night.

If I were to divide the expected time spent on activities and add it to a fancy pie chart, it would be:

I'll go into detail on the gameplay, locations, characters, and other topics next.


Crafting

Prototype image for demonstration (not actual art).

Prototype image for demonstration (not actual art).

Basic crafting happens at the crafting table UI, which you start out with by default. The player clicks on the table, and the camera zooms in where he can place items from his inventory onto the grid. If the pattern matches a recipe, then the result will appear in the three output slots directly below. To encourage staying in the game, recipes can be bought from others or discovered through a dream (for more on dreams, see the Time section). In the picture above, the notable differences are the buttons and the progress bar. If I make crafting take a short amount of time (seconds, not minutes), then the buttons will increase/decrease the crafting queue. I'm still toying around with how it should work.

Besides the crafting table, some professions have specific interfaces. Blacksmiths have the furnace, apothecaries have the brewer, and sages have an enchanting table (for more info, see Professions below).


Professions

At the start of the game, you'll pick a profession. For the prototype, I'll only focus on one of these (likely the blacksmith). Once you've chosen, you're restricted to that profession for the rest of the game. These professions are:

  • Blacksmith. Smelts ores into ingots, and uses ingots for creating tools and certain apparel like armor. For smelting, requires access to a furnace.
  • Apothecary. Brews ingredients into potions and posions. Requires access to a brewer.
  • Sage. Uses various items to make spellbooks, and gives items special effects through enchanting. Enchanting requires access to an enchantment table.
  • Baker. Uses ingredients to bake cakes and breads. Baking requires access to a furnace.
  • Clothier. Uses strings to weave fabrics, and fabrics to make apparel.

I'm open to adding a few more. If you have a suggestion, please let me know.


Time

I'm taking some inspiration from Stardew Valley for the yearly cycles. Years have four similar seasons, and each will last thirty days. Each hour lasts thirty real seconds, so a full day will take twelve real minutes.

The player has full control of when he should sleep, and can wake himself up if necessary. If the player pushes through without sleep, he may experience side effects such as sluggishness and harder/longer to wake up the next day. Going days with little sleep, he can collapse from exhaustion and may skip an entire day. Sometimes, an order may need extra preparation time, making it useful to stay up late. Other times, a character may need assistance late at night, and they will call for your name.

An important aspect of sleeping is dreams. A variety of events can occur when you dream, which are:

  • Knowledge. Knowledge of a crafting recipe may be partially (or fully) revealed to you.
  • Prophecy. Knowledge of a future event. This is shown as keywords on the screen. Keywords that seem disconnected will likely not happen -- sometimes a dream is just that. However, it will if you have a couple dreams that have similar keywords.

The game will likely write down dreams to the player's logbook automatically.


Locations

The locations in Merchantry were one of the first things I worked on. I couldn't work on characters unless I knew where they come from -- they should be a product of their environment. Similarly, I couldn't work on plenty of items, because items should be designed as apart of the game world. Fruits, vegetables, meats (from fish, livestock, birds, monsters), woods, ores, etc. You get the picture how important it is to do this first. For the most part, these will remain the same.

The lands are divided into three provinces, with a monarch who rules each one. These are:

  • The Northlands, where it's cloudy and cold.
  • The Westerly Coast, where it's sunlit and fair.
  • The Easterly Steppes, where it's windy and warm.

The Northlands

Vale of Wintertide. A large valley in the center of the Northlands, covered in snow and clouds.
Dwelling of a Cold Monarch. A castle in northeast of the Vale. The monarch of the Northlands rules here. It is surrounded by a deep, icy ravine. The only way to the castle is across the bridge.

Hiemal Alps. Snow-covered mountains located on the upper coast of the Northlands.
Town of Moira. A large town located on the middle of the Hiemal Alps, and extends down partially into the Vale.

River of the Northlands. The largest river in the Northlands. It goes straight through the middle, then snakes down and splits into two smaller rivers that flow to the Westerly Coast and Easterly Steppes.
Apricity Hythe. A small port town on Northlands River.

The Westerly Coast

Citadel of a Fair Monarch. A whitestone castle built on a hill, it overlooks Nairne.
City of Nairne. A coastal city named after Nairne the Prophetess, located on the western shore in the middle.

Keepsake Sanctuary. A temple of burial and remembrance. There are small holes in the stone walls where the family of the deceased place keepsakes and letters.

Lesser Mire. A swampland located to the north-west in the Westerly Coast.
Lake Oro. A large, wide lake that cover the north and north-eastern parts of the Westerly Coast.
Meadows Hamlet. A small village located just south-east side of Lake Oro. There is a meadow of flowers towards the south.

Stormridge Mountains. A range of mountains in the     
Isles of Alisa. A group of islands located near the Westerly Coast.

The Easterly Steppes

Palace of a Brooding Monarch. Located just before the promontory.
Settlement of Lilias. A village located slightly north-west of the palace.

Huntsmen's Promontory. A peninsula on the south-east corner of the Steppes.
Easterly Beacon. An ancient lighthouse located on the tip of the promontory.
Thousandth Acreage. Thick woods covering most of the promontory.

St. Ava's Mountain. A mountain named after St. Ava. Located in the center of the Steppes.
Lightveil Falls. A waterfall that flows out of the mountain.

Haven of Gusts. A deep, redstone basin with a large pit that extends down indefinitely. Wind pushes outward from the pit, causing a perpetual whirlwind. Located in the south-west of the Steppes.
Nomad's End. An ancient place of many homes, shops and temples carved into the sides of the Sanctum of Gusts.


Characters

The characters I've imagined fall into four categories:

  • Dialogue. Living characters that talk to the player.
  • Lore. Dead characters mentioned in legends and lore.
  • Inconsequential. Simply fodder to buy from, sell to, or fulfill special orders.
  • Creatures. Beings used for lore and items. Most of these will remain unseen.

For now, I'll list all of the dialogue characters. These are separated by nationality. Please note that some of these may change later or, or get removed entirely.

The Northlands

  • Kynne, Monarch of the Vale. The current ruler of The Northlands.
  • Merle of Moira. An old man from the city of Moira in The Northlands. Known for his potions and poisons.
  • Brae of Apricity. A girl from Apricity Hythe.
  • Storr the Mighty. A viking-esque man who was born by the Northlands River in a wolfskin hut. Known for his strength and endurance.
  • Shieldmaiden Nessa of Moira. A young woman from the city of Moira. She is decent with spears and shields.
  • Ellard the Sage. An aged man, born in Hiemal Alps.
  • Edana the Wroth. A young girl raised in the Vale, separate from society. She has a tendency to magically ignite things.
  • Spellsword Keane. A man born at the southern edge of the Vale. He is known for his skills with both sword and spell.
  • Ferrymaster of Apricity. A man born at the docks of Apricity Hythe. Known by the locals as ferrymaster.

The Westerly Coast

  • Eleora, Monarch of the Coast. The current ruler of The Westerly Coast.
  • Sir Gower of Nairne. A man born to a commoner in Nairne, eventually becoming a respected knight.
  • Celia the Pilgrim. A woman from the the city of Nairne, born to a merchant family. She lives in the Sanctuary of Keepsakes.
  • Orestes of the Mountains. A rugged individual who dwells on the Stormridge Mountains. Often comes down weekly for supplies.
  • Daisy of Meadows. A woman from the hamlet of Meadows. She sells flowers and dyes.
  • Guildmaster Cavell. A shorter man, he is the guild leader in Nairne. He hates you, as you are not apart of the guild. He feels you are not doing it the proper way. You skipped the fees and hoops that everyone else had to do.
  • Marmion the Apprentice. A young lad, apprentice to the Guildmaster. A product of his environment, he is cynical and mischevious.

    

The Easterly Steppes   

  • Lonn, Monarch of the Steppes. The current ruler of The Easterly Steppes.
  • Okes of the Acreage. A man from the Thousandth Acreage on the Steppes' promontory. Known for his herbs.
  • Dawn of the Dusk. A girl born to a nomadic family on St. Ava's Mountain. Excels at magic.
  • Tynan the Short. A wayward dwarf with no roots. He is an adequate baker.
  • Eara the Butcher. A tall, thin woman born in Lilias. A quiet individual known for her meat.
  • Yitma the Ratling. A small, rough, humanoid rat. Understandably abandoned, he's no friend of humans. Sells bits and pieces of monsters... among other creatures.
  • Una the Masker. A short woman born on the outskirts of Nomad's End. Well known for her clothes and masks.        

Various

  • The Silent Knight. An individual whose face is hidden. He's the "hero of the game", the "player". As time goes on rumors will spread of his appearance when places or people are saved. Merely a subtle parody.
  • The Postman. Deliverer of mail (model after the one in Minish Cap?).

Art Style

As with the opening picture, the perspective will be on a 45° angle.

Style A

styleImage.png

One of my earlier thoughts was to still do it in pixel art, but slightly different. I like the chunkier, blocky texture that some of these offer.

Style B

il_570xN.857641458_6s8i[1].jpg
cb9636ac0e157d28d5319fd1706b8a97[1].jpg

A newer thought was cartoon style, but make a lot of the game objects (characters, items, trees, etc.) look like stickers by adding a white outline. Animations would be minimal, relying mostly on rotation and scale effects for actions like walking. Characters could have different poses to show emotions (surprised, frustrated), always facing the screen. I would probably opt for the first image, due to the lightheartedness it gives.


Final Words

Alright, those are most of my ideas on this project. If you read the whole thing, thank you for sticking with it! In the coming weeks, I'll do some experimenting and prototyping. It's gonna get crazy soon!

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 #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

workOptimizer.png

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.

workOptimizerExample.png

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

aetaBanner.png

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

frameBanner.png

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

DetlzhdX0AIyoqG[1].jpg

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.

Monument

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.