Mod SDK: Prototype 1

Mod SDK: Prototype 1

With the prototype 0 phase complete, development now enters the next stage: the target for prototype 1 is to create a downloadable distribution of the TGNeo Framework and an, initially pretty limited, modding SDK package, allowing interested third parties to create content and game play mods and even host their own game servers.

The TGNeo framework, underlying the “Lost Realm of Anoria” has been designed for supporting modding from the beginning. All game play relevant objects (items, abilities, ability effects, spells, quests, spawn and loot configurations etc.) are unity scriptable objects and as such can be easily exposed to modders, which in turn then can create their own content.

Using the SDK it will be possible to create content, include it with your own zones in the form of mod asset bundles and configure the system to load your own content either on top of the provided demo content or as a complete replacement. The SDK will contain a combined client/server binary (the server can be run headless) and an empty database, allowing everyone to host their own games.

The current project time frame for an initial release of the modding SDK (TGNeo Prototype 1) is late spring to early summer 2019.

State of the project: February 2019 (Build 23)

State of the project: February 2019 (Build 23)

Game Systems

  • Four character class templates supported: Brawler, Ranger, Wizard and Cleric. These are really just that: a template prefab defining a basic set of abilities and stats, a fixed character model and a default inventory (Ranger and Cleric only). Even these basic test templates vary a lot in terms of completeness: Brawler and Ranger can be considered “playable” while the other two are largely just rudimentary place holders.
  • Combat abilities: the underlying system is one of the most complete ones so far. Abilities and effects for melee and ranged combat as well as magic abilities can be designed entirely using the Unity editor (no coding required) but assignment to class templates still happens in code.
  • Character stats: The stats system is still somewhat embryonic. The basic code framework exists and works well (including networking) but is still in the basic unflexible form (everything is hard coded) from the very start of the project (this was one of the first systems created)
  • Character movement (and networking thereof): Player character movement is handled using semi realistic physics on the local client and replicated to other clients on the network via the server. The server currently simply relays player movements without any verification. Non player characters move exclusively using Unity’s NAV system. All NPC movement happens on the server and once again is relayed to clients using the network. Network updates happen at fixed intervals, use compressed states and a system of interleaved complete/delta_only states.
  • Character animation system: characters (player and NPC) are animated solely on clients using a custom networked animation action control system
  • Combat: combat maneuvering once again happens on the local client for players and purely on the server for NPC characters. All combat resolution (including validation, i.e distance and positioning checks, power checks, validating available abilities, cool down etc.) are server only.
  • Items, Inventory: Items can be designed and configured inside the Unity editor. This includes complete configuration of 2D icons, 3D models, model mounting information for mountable items (weapons, armor) and possible stats effects. The inventory system includes fully automatic processing (apply&remove) for stats effects when items are equipped (i.e placed in equipment slots in the inventory) or un-equipped and is fully database backed (persistent).
  • Loot configurations: this system allows designers to create predefined sets of loot (what items can “drop” and the chance of them dropping) and assign these to either NPC spawners of world items (“loot boxes”) inside the Unity Editor.
  • NPC AI: implemented via a custom behavior tree system. Arbitrarily complex AI behaviors can be created with this system but the setup of behavior trees, at this point, still happens entirely in code. So far only basic behaviors have been created: Patrol, Guard, Chase, Basic Melee Combat.
  • Spawning: a basic spawning system for spawning NPC characters as well as world items exists. Spawners support configuring most aspects of the underlying AI (aggro and assist ranges, roaming ranges, respawn delay etc.) as well as assignment of loot configurations.
  • Quest System: the quest system is the most recent of the sub systems and still very basic. Designers can create simple Quests using the Unity Editor by configuring scriptable quest objects: creating dialogues, quest nodes, assigning rewards (items and/or experience) all can be done in the Editor but creating additional “Evaluators” (these are specialized code objects used to verify if some condition, required to complete a node, has been met) require C# coding. The quest system is already fully database backed (persistent). Current quest state is stored on a per character basis.


  • One single playable zone with three populated areas (“zombie ruins”, “bandit camp”, “orc cave”) exists for test, demo and mostly load testing purposes. This is also the zone that the permanent test server runs.
  • Several tiny development zones exist for development purposes only.
  • Two character prefabs for player characters have been setup with two different 3D models (from mixamo) and all four class templates have their own specific animation controllers.
  • Three NPC character prefabs exist at varying levels of completeness (“Zombie”, “Bandit” and “Orc”) The bandit is from the Unity Asset store, the other two are from Mixamo.
  • All animations have been sourced from as well
  • All textures, world models, inventory items, 2D icons etc. come from Unity’s asset store.
  • The creator of the wonderful music is Eric Matyas from


  • A single headless unity server instance is available on a rented virtual server 24/7. This is used predominantly for ongoing “friends&family” testing.
  • The web server hosting this site also hosts the download directory for the patching system.
  • A custom client auto patching and launching system exists. Patches are created as efficient and compact bsdiff archives and the launcher is able to automatically determine which build version a client is currently on and apply the correct number of patches in order to bring it up to “current”.

Of MMOs, Content & Assets

Of MMOs, Content & Assets

At any time, when you look through the various developer forums, particularly the “networking” sections you will find posts by people asking something along the lines of “how do I make an MMO?”. And you will always find the same replies. In short “It cannot be done”.

And those replies are, of course, correct. It cannot be done. Unless you have very solid funding, a good plan, in depth knowledge and a lot of time. The people asking are always “indie dev” types and, naturally, don’t have any of the above. End of story. Or is it?

MMOs are a very special type of beast. The complexity of the involved game systems, the networking and persistence aspects, the infrastructure and resources required to operate one (should it ever get finished) and particularly the inherent content churn make the the easily most ambitious type of game project imaginable.

Content and Assets: players of a “typical” MMO chew up enormous amounts of content. This comes in various forms. Game world lore, story and quest lines, character progression, plain populated space (the game world, be it divided into “zones” or “sectors” or just one huge hunk ). All this needs to be invented, created, assembled, modeled, rigged, textured. Then there’s graphical and sound effects, ambient music, you name it. All this ideally follows a global plan so that it has a unified, unique and polished look&feel.

For “independent” type developers, or even hobbyists, I believe it really is impossible to create this type of game. I’ve been involved in a project that got pretty close and still failed in the end. Been there done that. So what is the point of this website and the “Lost Realm Of Anoria” project I hear you ask?

Well, I know all of the above. I don’t expect to be able to make a massive multiplayer online game. But, at some point during that never ending summer in 2018, I had the idea of challenging myself: “Lets see how far I can get, alone (!), with just creating a very basic game systems framework for the type of mmo that I like to play (think EverQuest of WoW)”. I know I can’t (even if I try and assemble a small “indie” type team of dedicated and talented amateurs) create a commercially viable, full product. I don’t have the resources, time or money for that. But, I should be able (harnessing the incredible power of one of the fantastic game engines available, for free (!)) to create a playable prototype, implementing the basic game play features and using freely available assets. I won’t be able to sell this (in this form) but if I manage to create something I like to play myself, I will consider it a success”.

Well, half a year of spending almost my entire “hobby time budget” on this labor of love later, my baby is finally at a state where it can be shown to the world, without being too embarrassed about it. It is not very pretty, but most of the features I set out to create are there. It will still need a lot of work until it can be considered a real game but, hey, I am doing this for fun. We’ll see what happens next.