Posted on

SimpleUsageLimits – Complete Guide

Game Designer? Programmer? AddOn Developer? Or just serious about your game project? No matter what – our “Complete Guides” will help you make better games using Unity, uMMORPG3d and our AddOns.

This AddOn is also very easy to install and use, but requires the latest version of the NuCore. First install the NuCore and then simply import the unity package into your project to have access to all SimpleUsageLimits.

This AddOn does not have a effect on first sight, but modifies the way Items and Skills can be used, equipped and/or activated throughout the game. The AddOn is both: very simple and very powerful.

Skill Limitations using various of my other AddOns as well)

Item Limitations (using various of my other AddOns as well)

This AddOn allows you to add several usage restrictions and limitations to both Items and Skills. Their settings are 75% the same with only a few differences. Lets go through all the individual settings one by one.

  • Pro-Tip: As uMMORPG is completely skill-based, attacking with a weapon is always bound to a skill as well. It makes therefore no sense to add the restriction for attacking to the weapon, you rather add the restriction to the corresponding attack skill instead.

Item Settings

  • Required Class (Item only) – Restricts usage and/or equipment of this item to the class you set here (assign a player prefab).
  • Required Skill (Item only) – Restricts usage and/or equipment of this item. Requires the assigned skill to be learned by the user.
  • Requires Skill Level (Item only) – Restricts usage and/or equipment of this item. Requires the assigned skill to be at least of the skill level you state here.
  • Skill Active (Item only) – Restricts usage and/or equipment of this item. Requires the Skill to be active in the moment the user wants to use, equip or un-equip the item.
  • Required Realm (Item only) – Requires my SimplePVPZones AddOn. Restricts usage and/or equipment of this item. Requires the user to be of the Realm or its alliedRealm.

Skill Settings

  • Required Equipment (Skill only) – Restricts activation of the skill. Requires the user to have the assigned item equipped on any slot of the character. This allows you to create weapon based skills.
  • Equipment Category (Skill only) – Totally optional and usually not required. Restricts activation of the skill. Requires the user to have the item stated above equipped at the slot (stated by category) that you enter here (this only makes sense if you altered the default slots, have multi purpose slots or items that can go into more than one slot).
  • Required Inventory Item (Skill only) – The item stated here must be in the users inventory in order to activate the skill. The item is not depleted during the process.
  • Depletable Inventory Item (Skill only) – The item stated here must be in the users inventory and will be depleted when activating the skill. This is in addition to the option above.
  • Deplete Amount (Skill only) – The number you state here is the amount of inventory items that will be removed when combined with the above option. This allows you to create Ammunition based weapons.

Item & Skill Settings

  • Min Health (both) – The minimum amount of health (in %) required to use/equip/activate.
  • Health less than (both) – When checked, the option above is inverted (Health must be lower than X in %). Allows you to create rage skills for a barbarian for example.
  • Min Mana (both) – The minimum amount of mana (in %) required to use/equip/activate.
  • Mana less than (both) -When checked, the option above is inverted (Mana must be lower than X in %).
  • Usage Area (both) – the ID number of a area where this item/skill can be used. Explained in detail in the paragraph below.
  • Min Strength etc. (both) – The minimum attribute value the user must have in order to use/equip/activate this item/skill. The length of the list depends if you have my SimpleAttributes and SimpleStamina AddOns installed.
  • Positive Stamina (both) – Requires my SimpleStamina AddOn. When checked, the item/skill can only be used/equipped/activated while Stamina of the player is higher than 0. This allows you to create a item/skill that can only be used while the player is not exhausted.

Usage Areas
This special option allows you to restrict the usage, equip or activation of any item or skill to a certain area within your scene. If you want to limit your item/skill usage to a specific area. You have to drag and drop the “SimpleUsageArea” into your scene. Adjust its size and set an ID number. This number has to be the same as the item/skill – if you want that item/skill to be usable within that area only. You can have multiple areas with the same ID and of course you can have multiple Items/Skills share the same ID if you want. Set to 0 to disable.

  • Pro-Tip: Need ideas? A skill that can only be activated near water or a food item that can only be used while inside a tavern. Something more fancy? Combine this script with my FreeInstantObject and you should be able to create a item that will let the player place a Tent inside a special area (for example near a fireplace).

Additional Information
This AddOn seems quite boring at first, but is in fact one of the most powerful AddOns in my ever growing library. With this AddOn alone, you can give your project a headstart in terms of features and complexity. Just put the various stats and options to creative use. Here is just one example out of a thousand possibilities (please note that this example requires my SimpleSkillStats and SimpleStamina AddOns):

  • Running Skill – Set the Skill to a Buff that increases the players Speed while active. Now check the “Positive Stamina” option. Set all other costs as you like. Essentially you now have a buff that makes the player run faster for a while. Running depletes Stamina – and this Skill requires Stamina to be positive in order to activate. This essentially allows you to create a “Run” skill like in Diablo.
Posted on

Simple PVP Regions – Complete Guide

Game Designer? Programmer? AddOn Developer? Or just serious about your game project? No matter what – our “Complete Guides” will help you make better games using Unity, uMMORPG3d and our AddOns.

The SimplePVPRegions AddOn is very simple to install, but requires the latest version of the NuCore in order to function. After installing NuCore, simply import this AddOn package into your project and you are done.

This AddOn will allow you better control over the Player versus Player aspect of your game by dividing your scene into regions where PVP is allowed. It is very important to know, that after installing this AddOn, all PVP activity will be DISABLED by default. No matter where your players are located in the scene, they won’t be able to attack each other anymore.

You now have to manually ENABLE PVP combat by placing one or more SimplePVPRegion Colliders somewhere in your scene. As long as a player is located inside that collider, the following settings can apply. These settings can be adjusted in the SimplePVPRegion Inspector and control the degree of PVP that is possible while a player inside the colliders area:

  • None – If you select none of the available options, PVP combat will be disabled just like if the player was positioned outside of the PVPRegion area.
  • Open PVP – This option has the highest priority and overwrites all other settings. When selected, anyone will be able to attack a player while inside the PVPRegion area.
  • Realm PVP – When this option is checked, members of non-matching realms will be able to attack each other. We take a closer look at this option in the paragraph below.
  • Guild PVP – When checked, only members of non-matching guilds will be able to attack each other (but not members of the same guild).
  • Party PVP – When checked only members of non-matching parties will be able to attack each other (but not members of the same party).

Of course you can check multiple of the settings above. It is very possible to create a Guild + Party PVP area this way. Just note that Open PVP has the highest priority and overwrites all other settings, followed by Realm PVP and so on.

• Pro-Tip: It is recommended to always corner-off your PVP Regions and connect them to other Regions in your scene via a teleporter. If you put a non-PVP region close to a PVP Region, weird things can happen. Players inside a PVP Region might be able to shoot at players outside the Region etc.

This AddOn adds a new property to all Entities (thats Npcs, Monsters and Players) – the Realm. The Realm represents the Nation, Race or Clan a Entity belongs to. Each Realm can also feature a allied Realm as well.

The Realm allows you to activate Realm PVP as stated above. This will limit PVP activities only to members of non-matching realms (but not members of the same Realm). For example you could have Goblins fight Elves. But Goblins could not fight other Goblins and Elves could not fight other Elves.

• Pro-Tip: Set a Realm to “None” to negate it completely. Monsters that are set to “None” will attack just like the Monsters in a default uMMORPG installation.

In addition, there is also a alliedRealm setting that you can use to create Allies. This setting is also available to all Entities (Npcs, Monsters, Players).

For example you could setup that Humans are allied with Elves and Goblins are allied with Undead. Now Humans could attack both Goblins and Undead but not other Humans or Elves and so on.

• Pro-Tip: To have a Realm without an ally, just set the “alliedRealm” to “none”.

Words of Warning
Be careful placing your PVPRegion areas and don’t make them overlap. Those areas should be quite large and always be cornered off. Both players must be located inside such a area in order for the PVP rules to apply. If one of the players is located outside, PVP will be disabled for that player. I always recommend to slice down your world into junks and interconnect them with teleporter’s.

More Uses
If you use this AddOn in combination with my other AddOns, additional uses will become available. For example my SimpleTeleport and SimpleTravelroute AddOns offers a limitation to what Realm can make use of the Teleporter.

Another example is my SimpleUsageLimits AddOn: Combined with SimplePVPZones it will allow you to limit the usage/equipment of certain Items to a specific Realm as well as it’s alliedRealm. So you could create a Magic Sword that is only useable by Humans (and their allies, the Elves).

Posted on

Building an Indie-MMO – Dos and Don’ts (Part 2 of 3)

Game Designer? Programmer? AddOn Developer? Or just serious about your game project? No matter what – our “Complete Guides” will help you make better games using Unity, uMMORPG3d and our AddOns.

4. Don’t twist and turn the asset (beyond its original use)
Im now with uMMORPG for almost a year and met a lot of new and interesting people on the forums, as well as the official uMMORPG discord server. Every now and then I come across somebody who wants to use the asset in a way it was not intended by the original author. For example by adding dynamic,  destructible terrain, custom playerworlds, realtime action combat system, level- and classless systems and so on. Basically, all of these changes are possible if you have the proper skills, time and resources at hand. But those changes are also major modifications that make the asset do something it was not designed for. This is also referred to as a total conversion and is a daunting task, especially if you are lacking high grade coding skills.

I strongly disadvise such an undertaking unless you are 100% dedicated, willing and competent enough to do so. Your plan might start well, but after a while you will run into serious issues as well as the impossibility of receiving official updates, the usage of AddOns and a whole lot of maintenance and compatability problems. Just imagine the amount of content you can create using the time spent on a total conversion in a different way.

If you want to actually finish a game using uMMORPG, stick to what you get and expand the core asset via AddOns (your own, free ones and maybe a few commercial ones). But keep the core aspects like movement, targeting, combat, the world itself, class and level system – as they are. If you plan to re-design any one of these sensitive areas – you might be better writing your own asset from scratch instead.

Warcraft 3 Digimon Total Conversion

5. Don’t get AddOn greedy (use a few selected ones instead)
Another lesson I learned in almost one year of uMMORPG projects, tests and writing AddOns: Some people out there are not satisfied with the number of features the core asset ships with. Of course I agree with that fact, but I also understand that the author is not able to provide each and every feature the community wants to see. Vis (the author of uMMORPG) is in fact adding features to the asset in regular intervals, and a sprawling scene of AddOn developers emerged as well, trying to fill the gaps and expand uMMORPG wherever possible.

This particular situation: “We don’t have every feature we want yet, but we might get that in the near/mid/far future” has lead to a form of AddOn greed that took toll on several developers out there. AddOn greed on the one hand makes you scavenge the web for all kinds of AddOns to put into your project. Trying to get as close as possible to the “next WoW killer” in terms of feature quantity. On the other hand, it causes a stalemate to project development because you go into a “I can’t continue to develop my project unless feature X becomes available” endless loop. By playing the famous MMOs out there (look – so shiny!), some Dev’s become even more AddOn greedy and completely cancel out their own development cycle. Waiting for better days instead of advancing the development of their projects.

My advice: Don’t get AddOn greedy, as you will never ever gonna catch them all. And there will always be new stuff on the market. There won’t be that “golden 1.0 version that marks a perfect start” you are waiting for. Limit yourself to a few selected AddOns and maybe one unique feature. AddOn greed will put your project into eternal stalemate. Development is the exact opposite of standstill. It means you have to take the destiny of your project in your own hands in a pro-active way.

Comic by

6. Don’t think of “development” as a simple asset flip (understand what dev means)
Another thing I’ve encountered several times over the course of the last months is that many people think that game development using Unity 3d is just a simple asset flip. But exactly the opposite is the case – the more assets and technology you have at your hands, the more complex development becomes as all parts must work together in harmony. Just think of every asset as an instrument in an orchestra, your job as a developer is to conduct them to work together in terms of rhythm, harmony, length, volume and pitch.

Amost every day, I encounter people who saw just another asset on the store and want to combine that said asset with uMMORPG. Multiply this by the number of subsystems found inside the uMMORPG asset like inventory, combat, ingame shops, npc dialogues, networking, character progression, enemies and so on and you get a massive list of assets that seem to fit your needs at first.

But you should be aware, that all of those assets are standalone and where not designed to be used as part of the uMMORPG asset or a networking environment. This means, all assets require professional coding to integrate them into your uMMORPG version. Now each and every asset was written by an individual, with individual goals and a individual coding style.

If you go that route, your job as a developer will be far more than just a simple “asset flip”. You have to understand (that means “learn”) each asset as well as the uMMORPG assets code in order to bring the loose ends together. As 99% of those assets are not plug-and-play-able in the unique “MMO client/server networking environment that uMMORPG is” – you will need a solid skill set and a couple of hours per asset to make that work with uMMORPG.

In theory, it sounds so cool to simply dump the “Third Person Controller” into your uMMORPG3d project and have immediate access to all of its features with 0 coding involved. In practice it’s more like opening the gates of hell (alongside a 75$ waste)…

This article links to: Building an Indie-MMO – Dos and Don’ts (Part 3 of 3)

2017 by Fhizban (the author of NuCore and AddOn developer for uMMORPG3d).

Posted on

SimpleSummon – Complete Guide

Game Designer? Programmer? AddOn Developer? Or just serious about your game project? No matter what – our “Complete Guides” will help you make better games using Unity, uMMORPG3d and our AddOns.

The SimpleSummon AddOn requires the NuCore Version 1.15 or higher. First install that or a newer version of NuCore. Next import this AddOn package. Next locate the Resources folder in this AddOns folder and move all Items therein in  the corresponding Resources -> Items folder of your project.

Now locate the Network Manager in your scene and check its inspector. Add to its “Registered Spawnable Prefabs” list the “Bandit Minion” and “Skeleton Minion” prefabs from this AddOns prefabs folder.

Now add the two example items “Mercenary Contract” and “Summon Seketon Book” to a NPC shop or a loot drop in your scene to test them. Run your project, acquire those items and use them in order to test!

This AddOn allows players to summon/hire Minions that will fight at their side for a limited period of time. You can use this AddOn to simulate Mercenaries (like found in Diablo for example), sidekicks or hirelings. But of course this AddOn can also be used to add a Necromancer or Beastmaster class to your game.

  • Minions are hired/summoned via Item usage
  • Minions behave like a mixture of Monsters and Pets
  • Minions defend their owner, auto attack and move randomly, they also follow
  • Minions stay for a limited time period and then die automatically
  • When their Master dies/logs out, all Minions die automatically
  • Players can summon any amount of Minions, up to a technical maximum
  • When the summon maximum is reached the usage of summon items is disabled
  • Minions can be summoned at a preset level, this allows weaker/stronger Minions
  • Minions themselves do not trigger aggro
  • A future update will add hiring/summoning Minions via skill usage as well.
  • Players cannot force kill (aka: force un-summon) their Minions!

Creating Minions
In order to add a new summonable Minion to your game, you first have to duplicate one of the prefabs in this AddOns prefab folder. It is not possible to use a regular Monster or Pet. Then edit all it’s values in the inspector. You will see that the stats of a Minion are a mix between a Monster and a Pet. Simply duplicate one of the example prefabs that ship with this AddOn:

It is very easy to edit, just a few things to keep in mind:

  • You do not set the summoning duration in the Minion itself, instead its on the item (explained below).
  • You can edit the DefendOwner and AutoAttack options just like a pet, but the player won’t be able to actively toggle these commands while a Minion is summoned. This means you create a Minion for specialized uses instead.
  • Minions have levels but do not gain experience. This allows you to create Minions of varying strength, it also enables you to summon Minions at different levels. You can never summon a Minion at a higher level than the one you stated in the Minions Inspector.
  • Don’t forget to add new Minions to your Network Manager registered spawnable prefabs.

Creating Summon Items
Right now, its only possible to summon Minions via Item use, a later version will add summoning via Skill use as well. You can combine the item stats with any other stats like “Usage Destroy” or “Usage Mana”. Now lets go through all options one by one:

  • Summon Active – Only activate if this is a summon item. De-active this option for all other types of items in your game to prevent unexpected results.
  • Summon Minion – Choose one of the Minion prefabs you created beforehand. Only choose a prefab of the Minion type, do not use any other object or it won’t work.
  • Summon Amount – Set any amount up to the technical maximum. This maximum is shared between all Minions (whatever type they are) a Player has summoned at the same time.
  • Summon Duration – This is the duration in seconds. After that time span the Minion will die automatically. Minions also die when their Master (player) dies or when you logout of the game.
  • Summon Level – The level that Minion is summoned at. This is auto-capped to the amount of levels you create in your Minion prefabs inspector (so if you state 3 here, but your prefab has only level 1, any summoned Minion will be of level 1 instead.

Summoning Limit
There is a technical maximum of how many Minions each player in your game can summon at the same time. You can edit it in the Constants file of this AddOn, although its not recommended to change that. This has been done because too many Minions will cause a lot of additional load to the server. This is also the reason why Minions are summoned via an Item (later also Skill) and do not wander around the gameworld. Because that uses a lot of additional CPU/RAM on the server side and makes no sense in terms of gameplay.

The Summoning Limit is a shared limit between all types of Minions a player can summon. So if the limit is set to 5 and a player Summons 3 Sekeletons, that player will be able to summon another 2 Bandits for a total of 5.

Please note that all Summoning Items are disabled once this limit is reached, they are also disabled if the amount of Minions to be summoned is higher than the total cap. When a Minion dies, the amount is adjusted – so it might be possible for the player to summon Minions again.

• Example 1: You have just one item in your game that lets a player summon 3 Skeletons. After using this item once, any further use is disabled because the total number of summoned skeletons would exceed the technical maximum.

• Example 2: You have two items that allow a player to summon 3 Skeletons or 3 Bandits. After using one of them, the other one is disabled because the total amount would exceed the technical maximum.

Its an idea to provide your players with a number of summoning items of varying summon amounts (like 1 Skeleton, 2 Skeletons, 3 Skeletons) to compensate this limitation.

Posted on

Building an Indie-MMO – Dos and Don’ts (Part 1 of 3)

Game Designer? Programmer? AddOn Developer? Or just serious about your game project? No matter what – our “Complete Guides” will help you make better games using Unity, uMMORPG3d and our AddOns.

Time for some myth busting – in this new blog series I would like to share some personal thoughts on the process of creating an Indie MMO using Unity and the uMMORPG asset. It’s all about realistic game design and how to manage such a project – things you should do and things that you should better not touch (not even with a stick). Please note that the following pages represent my personal thoughts and are in no way representative for all opinions out there. Also note that I write exclusively about creating indie games using Unity and the famous uMMORPG asset (but I am not the author of uMMORPG).

Summary: The purpose for this blog series is to give advice to game designers who are set for one single thing: To create and finish a game using uMMORPG and AddOns within a reasonable amount of time, using a reasonable amount of resources and still generate a reasonable amount of joy/revenue.

Thanks for reading and enjoy!


SamuTale Unity based Indie MMO (Unity Client + Custom Backend)

1. Do Not…switch to MySQL (if you are not a programmer)
uMMORPG was built with simplicity in mind and therefore uses SQLite as it’s database system. SQLite is a subset of MySQL with reduced complexity and stripped down features. It also has several advantages as it does not require you to setup a database server and can therefore be run locally and on a dedicated server without further configuration. The uMMORPG core scripts and all of our AddOns where built around SQLite, if you want to switch to mySQL now, that means replacing each and every database script in your project. Now imagine you add a new AddOn (that will most probably also be based on top of SQLite): You have to replace that script syntax with a proper mySQL syntax as well. This goes on and on for every AddOn you add and everytime the core uMMORPG version is updated.

Of course you can still do that, especially if you know how to program both in C# and mySQL. But if you can’t – I highly recommend you get a programmer on board of your team or pay a freelancer. Otherwise just keep your hands off. SQLite is not bad at all. The only problem are networked databases and multiple databases. But do you really need that? Do you have one server up and running – and how about three? Do you? Do your game and your community allow for such a complex setup already? Furthermore imagine all the content and features you can get done in the amount of time that is required to switch uMMORPG over mySQL.

Finally, there are several Indie MMOs out there that rely on SQLite for years – and they are still alive and kicking! Just do a quick google search or check out Wurm Online for example.

Wurm Online (SQLite)

2. Do Not…aim for MMO (aim for MO instead)
Unity (and especially UNET) was in fact not built for massive multiplayer games. There is not a single MMO out there that utilizes Unity as it’s server backend. Of course there are several Unity MMOs on the market (not just Indies – check out Crowfall for example) but they all use a highly sophisticated and very powerful server backend written either inhouse from scratch in C++ or C# or using professional 3rd party software. What Unity is used for in terms of MMOs is the client. And just the client (Summoners War is another example). There might be exceptions, but thats what I observed in the past years.

Im not saying that a MMO is not possible, just ditch that “massive”. In my eyes, any Indie game will always have to struggle for players and you will have a hard time attracting thousands of online players to your game. If you do your job right, you will be able to have hundreds of players online. Thats not MMO, thats MO – and thats absolutely perfect both in terms of revenue and technical limitations.

Just imagine how much marketing power is required in order to attract 10.000 players – and how many servers and people who manage those servers must be paid (or be very dedicated to your project). It’s a nice dream but nothing realistic. Instead you should aim for a small but tightly knit community and good content. Content that offers your players areas to explore, quests to complete, monsters to fight and items to acquire. And all that represented in a appealing and polished way, with a special care to the details. You won’t be able to populate a world with content, that is capable of satisfying 10.000 players – but if you work hard, you will be able to create a world with enough content to keep 1k players around.

Project Gorgon (Indie MMO)

3. Do Not…alter the core beyond recognition (use AddOns instead)
I tell you the story of my very first uMMORPG project: After getting used to Vis coding style and a bit of knowledge about the asset, my first thought was: This is lacking so many features – I have to add as many of them as I can! Said and done, new features where tacked on and stuffed into the core asset. A few days later, Vis released the first update on the store that contained only minor changes. I was able to update by hand and did setup a GIT repo for the future. Several tiny updates followed that where all easily manageable, but the process got slower and more tedious each time. This made me skip one update or another, leaving a gap in my personal series of uMMORPG version numbers.

After a while I wanted to start a side-project based on the same uMMORPG asset and realized that I cannot move my features from one project to another. Then – all of a sudden – Vis released a new AddOn that allowed parties. This rendered my own party code obsolete and I had a hard time A. removing the old code and B. updating to Vis new code. A period of smaller changes followed that I spent stuffing even more features into my Frankenstein core, updating turned more and more into a chore. I was so happy when everything worked that I skipped a few of Vis official versions. You should know, that when you do – catching up to the newest available version becomes even more difficult. My little frankenstein engine was only missing a proper pet script now, the code was all spaghetti like but it worked. And then Vis released the Pets update. And I jumped around, screaming and pulling my hair out!

My advice: It’s OK if you want to modify the uMMORPG core system, we all want to add our own features and make the asset unique. But do by using the AddOn system. Because that is was the AddOn system was made for. That system also allows you to sell your AddOns, but thats not it’s primary use. The AddOn system enables you to add more or less extensive modifications to the uMMORPG core system (using partial classes and hooks) while the core scripts remain intact. This means you can update your uMMORPG asset, you can import/export AddOns, you can move them to other projects and share them with your team members. The AddOn system will make your life easier and your project much more manageable. Think about it!

This article links to: Building an Indie-MMO – Dos and Don’ts (Part 2 of 3)

2017 by Fhizban (the author of NuCore and AddOn developer for uMMORPG3d).