Orbit is an adaptive A.I. editor extension for Unity bringing true artificial intelligence to Unity for the first time. Orbit uses an uncomplicated editor, meaning Orbit can be working in your game in under an hour.
Orbit addresses a fundamental problem with most video games: generally speaking, games do not adapt to the way we play them.
Orbit solves this problem by allowing you to train A.I. to change their behaviour based on different play styles of a user. Orbit makes your games dynamic, re-playable and challenging in ways that other games simply cannot match.
Orbit could be used to make:
Incredible first person shooters where enemies change their tactics based on your play style
Amazing RTS games, where the ratio of different enemies units could change depending on the tactics you’re using
Adaptive educational games which automatically adjust difficulty or focus on the user’s weak subjects
A complex morality system, as I did on my YouTube channel here
Link to the Asset Store:
See the software in action:
NEW DEMO: turn-based fighting game with adaptive A.I. (WIP)
I’m not sure if I understand anything yet… my question is… is this used to determine the morality or qualities of the player and sets the game up accordingly, or could a neutral npc be corrupted by the morality of the player or taught new skills by the player, like a follower who has good traits but becomes corrupted because of the players choices during quests or game play?
Also I have no idea how this is implemented into a game…
imtrobin, I apologise about the video, unfortunately there was nothing I could do about that at the time of recording but will be reuploading with better audio. With regards to a short video, I will certainly be doing that in the near future, although this could create confusion as it’s not a simple editor extension with one purpose.
Licarell, Orbit can be used for many things, but the main purpose is to allow the A.I. in a game to change their behavior based on information about the user. If I understand you correctly, Orbit could be used for both of the tasks you’ve described above, although you would obviously need to build quite a bit of technology around it.
The implementation in a game is easy: you simply need to pass a double array to Orbit which represents some information about the player at the current time. Orbit then returns an analysis of what that data means about the user. What information you pass to Orbit, and the returned integer is entirely determined by the software’s user case, and the training process, as demonstrated in the video.
Hi,
I have sent a couple of emails to support but never received a reply, so posting here now.
I’m interested in possibly using Orbit for “Adaptive educational games which automatically adjust difficulty or focus on the user’s weak subjects”.
It’s good to see some documentation and example video up on the site finally, but some more examples would be good in order to be able to determine suitability for project use in this context.
Some questions:
What is the Orbit SVM based on? LibSVM or ?
Will you be releasing the source with the package?
(Reason: I’m very wary of buying high priced packages without source code. It’s much more comfortable knowing you have the source if developer stops maintaining the package, especially for key components like AI)
Could you clarify the licensing with Orbit?
I ask because only after browsing the doc’s which just went up did I discover that the Action license for what you buy on the Asset store is not a distribution license. I think you need to make very clear on the Asset Store exactly what type of license you are selling.
I’d like to get confirmation that this is not the case with Orbit.
coAdjoint are currently using a 3-tier licensing system for Action. The version currently available on the Unity Asset Store entitles you to the Developer Licence. This is a one computer only installation, meaning that the computer that you register Action on will be the only computer that will be able to use the software. You can, however, use the Action Editor for Unity on any computer to design your networks and libraries. If you wish to register on multiple computers, please contact enquires@coadjoint.co.uk.
The Developer Licence will not allow coAdjoint Action to work in Unity-built games running on computers other than the registered computer, unless that computer is registered with coAdjoint as well. If you want to distribute a game using coAdjoint Action then you must apply for a distribution licence. There are two versions of the distribution license: Light Distribution: Designed for sharing demos or small projects. Once the executable game has started running, coAdjoint Action will only continue to work for 6 hours. Restarting the demo will allow for another 6 hour period of game-play using coAdjoint Action. Upgrading to the light Distribution Licence is free and can be done by emailing enquiries@coadjoint.co.uk. Full Distribution: Designed for full releases of your game. This license gives you unrestricted use of coAdjoint Action on any computer for any period of time. Upgrading to the full license requires the acceptance of a new End User Licence Agreement and also may require a contract to be written with coAdjoint. Please email enquires@coadjoint.co.uk for more information, or to request a full distribution license.
Firstly I would like to apologize profusely for the problem with the support/enquiries email address, I now know what the problem is and am extremely annoyed at the person responsible!
Secondly I think your application for the software is one of the most interesting ways to use it, would definitely like to feature your game on my website/ social media.
With regards to more demos, I’m working on as a couple of demos in my spare time but unfortunately can only get so much done whilst maintaining other responsibilities at the same time. The website will be updated when they’re up.
Orbit uses a C# port of LibSVM written by myself which I’ve called UnitySVM. It’s been rigorously unit tested and optimised for Unity. I’m a mathematics graduate so I hope you can trust my maths skills!
At the moment the software is built to a .dll. I have absolutely no plans to stop supporting my software, but I give my word in this forum that if I did stop support for some reason that I would do a final version of the software with source code available.
There’s no licensing system for Orbit, you can buy it and use it in your games straight away.
The licensing system for Action is an unfortunate way to protect my intellectual property. Getting the light distribution license for Action is as simple as emailing me, but I will change the description on the asset store to let people know the deal.
Thank you for the questions, if you’d like any more information feel free to email on tom@coadjoint.co.uk.
I really am so angry about the enquiries emails!! :twisted:
Are you referring to source for UnitySVM or the whole software?
EDIT: for clarification, the main reason for using a DLL is for convinience: when an Orbit project is built for use in a game it depends on UnitySVM code. It would be quite bad practice to have to copy over 10 scripts to a new project so it’s all packaged together!
Would putting the UnitySVM source code in a GitHub repository be enough to persuade you?
As near as I can tell Orbit is a custom port of LibSVM (open source), the training interface and the compile to dll function for accessing the trained model from the SVM?
I’d say all of it this case, for the price you are asking.
In Unity Asset Store terms it’s in the higher end price range and you won’t find too many there that don’t provide the source.
I’ve just run into too many issues with non source packages in a multiplatform deployment tool like Unity.
Your value add in this case is not the SVM per se but the packaging and continued development of it.
Well this is definitely something to consider but seeing how you’re the first person to ask about this option I won’t be making the software open source for the moment.
This may change at some stage in the future.
Thank you for the useful feedback and let me know how your game goes!
I’m doing more hybrid productivity tools + games.
HarpNinja ( Learn Harmonica Faster! HarpNinja ) is one I am currently looking into enhancing with some adaptive AI for player skill development.
I have a lot of ideas to implement, but will start with something simple if I can find the right solution.
I’ve got a working libsvm in C# Unity, but was interested in your implementation.
Chordskilz, also in my sig below, is an older product I’d like to do a complete refresh in and also add in the skills development AI.
I’m also working on a product line of learning games for early childhood music skills development.
I have a complete initial series done already, just looking at how to enhance with some simple skills AI progression.
But, as I say, I’m not big on buying black boxes - especially for key components such as this.
You should really get more videos out; I’m intrigued, but I still don’t fully understand the applications. A more complex example, expressed in something more meaningful than console output, would go a long way to justifying your price point.
Thank you for your intrigue! Have you seen the Morality Modelling video? I’m desperately trying to get out more videos as I completely understand your point. I’m currently working on a turn based fighting demo with adaptive A.I., so feel free to subscribe to my Youtube channel and it’ll be out as soon as I can.
When you get a chance, you should take a look at the board game “The Game of Life: A Jedi’s path” The game revolves around choosing the path of a Jedi or Sith. I think you will find it interesting in the context of morality modelling.
After checking out some more of your videos I think I have a better understanding of the software. Your Morality Modelling videos are by far the most explanatory and I would recommend linking those directly from the Asset Store. I have a few questions about the workings:
Am I correct in that the sole purpose of the Orbit itself is to give similar levels to Skills within the Orbit when producing training samples?
Can you create multiple Libraries for the same Skill sets? For morality modelling, for example, could you have one Library designed to judge morality
from a Socialist perspective and another to do so from a Militaristic one?
I tried to think of a short-term practical application and the Unity Multipurpose Avatar system came to mind. If you are unfamiliar, UMA is a system for rigging humanoid avatars such that physical proportions can be easily modified based on scalar values to a high degree of granularity (e.g. upper arm size, upper arm length, upper body weight, etc.). Think Fight Night character creation. Now, seeing as all of these modifiers are represented as scalar values, they should be able to be turned into Skills and recognized by your system, yes? If so, would it be possible to, rather than representing the training sample as a series of values, input the values into the UMA generation system and provide a rendered body as the training sample?
If these systems could be tied together it could be possible to provide visual classification of sets of modifiers. For example, for the head you could classify it based off of attractiveness or ethnicity. For the body you could provide classifications for attractiveness, fitness, intimidation, symmetry, etc. Also, given the large and frequently bizarre variation the UMA system allows, it would be helpful if Orbit could be used to classify unreasonable extremes as invalid, allowing unsupervised but reasonable random character generation.
Alphalpha really sorry that I didn’t reply to this sooner, thought I’d replied for some reason!
I am tempted to show the morality modelling more but I’m afraid that people will assume that it’s the only thing it can do. In my spare time I’m working on a mini-game that will demonstrate a more standard application of Orbit which I think will be more beneficial.
When you say the Orbits I assume you mean the groups. In that case yes. There’s no definitive relationships between skills (if you’re interested in this option take a look at my other software coAdjoint Action).
You can definitely have two libraries for the same skill set. In the lingo of the software they’re called networks, but the idea is the same. You would simply duplicate your network then train it twice.
I think your UMA example would be absolutely brilliant! I’m actually in contact with the maker of UMA so both of us would be very interested in this idea. As it stands Orbit would take a bit of modification but I’d be more than happy to perform that if you’re seriously interested in this?
All I’d need to do is allow you to use an imported data set as your training example, or alternatively If you buy the software I’ll be more than happy to provide you with source code and you could mod it yourself?
PLEASE let me know if you go ahead with this idea, I’d be very happy to feature this on my website/social media/youtube. Feel free to email me at tom@coadjoint.co.uk if you’d like to discuss this in depth
I am sorry for the late reply. I have been preoccupied with other concerns lately and this slipped my mind. I’m still in the process of learning Unity and have yet to fully familiarize myself with UMA. Also, I cannot afford to invest in software at the moment so any integration I might attempt would have to take place in the indeterminate future. However, should I surmount all of these obstacles I will inform you of such as such an integration does interest me.