Arkasm Version 0.1.40b now available

We’ve just released beta version 0.1.40b of Arkasm, our server manager for Ark Ascended. https://creative-digital-design.itch.io/arkasm

This version adds support for the new ‘The Center’ map released on 4th June as well as functions to easily server copy config files from one server to another, which aids setting up of new servers.

Download Arkasm from Itch.io today to easily manage your Ark dedicated servers. https://creative-digital-design.itch.io/arkasm

Easy Invoke Released

Our first Unity Asset, Easy Invoke is available now on the Unity Asset Store.

Want to accelerate and streamline your Unity coding, get Easy Invoke now!

What is Easy Invoke?
Easy Invoke is a powerful and flexible tool designed to enhance scripting in Unity environments by simplifying the management and execution of coroutines and asynchronous tasks. Aimed at developers looking to streamline complex timing and task sequences in their applications, Easy Invoke provides a robust API that integrates seamlessly with Unity’s native coroutine system and extends its capabilities to non-MonoBehaviour scripts.

Key Features of Easy Invoke

• Delay Code Execution
Easily delay execution of parameterless and parameterized methods.

• Coroutine Handling
Allows the initiation, management, and stopping of coroutines from scripts that do not inherit from MonoBehaviour, facilitating more modular and reusable code architectures.

• Task Conversion
Can run coroutines as tasks for use in multithreaded applications, enhancing the ability to perform asynchronous operations alongside Unity’s main thread.

• Frame Skipping

Offers methods to delay the execution of actions by skipping frames, providing more control over the timing and sequencing of game logic.

• Chainable Methods
Supports the creation of chains of methods and delays, which can be executed in sequence to coordinate complex sets of operations with precise timing.

• Repeatable Jobs
Enables the scheduling of repeatable tasks that can execute actions at fixed intervals, which is ideal for tasks such as polling or continuous checks within the game environment.

Easy Invoke is designed to be intuitive and easy to integrate, requiring minimal setup to get started. Whether you are developing complex game mechanics, interactive animations, or any system that requires precise timing control, Easy Invoke aims to provide a straightforward and powerful solution to manage these needs effectively.

Removing fringing from image in Photoshop

Sometimes when editing a third party .png or .jpg image and the saving it, the resultant new image suffers from fringing because of the antialiasing of the original image.

This video, in which I create a composite image from two separate images, demonstrates the issue and one way to overcome it.

Kingdom Of Galanor

From our thread on the Unity Forums

In my last update, I forgot to mention the headache I faced trying to save the waypoint data in the NPC custom inspector. As I was working with an array I couldn’t use the SerialisedObject system for that part, so I was using Undo.RecordObject, but during testing, I found that Undos were causing the array element order to get mixed up.

It took me a while to discover that I needed to use Undo.RegisterCompleteObjectUndo instead to avoid this happening. Which was great, but then the exact same code that was now working perfectly in my test scene completely failed to save the data in my actual game scenes!

I spent nearly a day trying to figure this out until I stumbled across the nugget of information that scene instances of prefabs also need to have PrefabUtility.RecordPrefabInstancePropertyModifications used on them to make sure the changes are saved to the underlying scene object. (My test scene wasn’t using an instance of a prefab for the NPC object, unlike my game scenes.)

There again, the Unity documentation regarding this is either missing completely or not that easy to find. Such a pain!

Anyway, that aside, I’ve added extra functionality to the NPC pathing system that now makes it possible to simulate them entering and leaving buildings (or anything in the map for that matter). Waypoints can now be configured to pause the NPC for a given amount of time when reached and optionally hide the NPC when paused, and also optionally warp to the next waypoint.

Demo video of this (speeded up 6x)

I haven’t made it so that NPCs can actually travel to other maps, because even though it’s possible the amount of work involved would far out way the usefulness of it.

Two update posts in 3 days, I’m on a roll 🙂

Kingdom Of Galanor

From our thread on the Unity Forums

Wow! Didn’t realise it had been so long since my last post! Still, there’s been a lot of work going on, mainly in relation to custom editors and tools that will help with content creation.

I’ve beefed up the NPC Editor so adding NPCs to maps is all done via a custom editor window and their appearance and roles (vendor, trainer, etc. etc) are completely configurable via the editor window and custom inspectors. I’ve also made it better synchronised with the Quest system, so now any changes to NPCs in scenes will automatically update the quests data to keep everything properly linked and it even prevents accidental deletion of NPCs that are linked to quests.

I’ve also given NPCs the ability to patrol and made a waypoint designer for the editor. This presented a bit of a challenge early on because I used the Handles.PositionHandle method to make it so that I can drag the path nodes in the editor and I wanted to be able to know which handle was currently selected so that I could use that information to do inserts and deletions.

The problem was that there wasn’t an obvious way to know which handle had been clicked on. I trawled through numerous posts and the seemingly best option was to make a note of the waypoint node index when the handle was actually moved, but this wouldn’t allow me to click select them (without having to move them), which is what I really wanted.

However, just as I was about to settle for that I stumbled across this polyline editor on the community wiki http://wiki.unity3d.com/index.php/PolyLineEditor which seemed to be using handles exactly how I wanted, with insert and delete. So a quick root around in the code and I found the answer.

I do a for next loop of all the nodes in the waypoint array and include this code in the loop.

Which works exactly how I wanted it to. However, it would have been nice to have a more obvious way to accomplish this, or at least an example in the Unity docs for the Handles class, as I’m guessing it’s probably quite a common requirement when using handles.

I’ve also made it so that nodes automatically snap to the terrain surface when created and moved, and it also gives visual feedback at design time if any node is placed in a position that can’t be navigated to.

Here’s a couple of images showing the path editor in action.

Valid path, all segments are yellow.

Path with an unreachable node, segments become red following the invalid node.

To finish, here’s a short video of the village of Fernville which will be the starting area for new characters. Still work in progress, but it should give an idea of how it’s going to look eventually.

Kingdom Of Galanor

From our thread on the Unity Forums

Had a bit of a wind down for a couple of weeks over Christmas, but since the last post, we’ve tracked down and squished a number of minor bugs, added weapon model switching linked to currently equipped weapon and added a mini-map.