ENDLESS™ Space 2 is turn-based 4X space-strategy that launches players into the space colonization age of different civilizations within the ENDLESS™ Universe. Your Vision. Their Future.
The decision graph is a bit daunting at first, but we've gradually added a set of filters and search functions to help you find what you're looking for
Let's start with some vocabulary:
The graph is made up primarily of coloured "nodes" - each node has a "motivation" value associated with it; the node's colour is defined by its motivation (hot colours for important things, cold colours for unimportant ones):
Motivation defines the maximum amount of resources (dust, titanium, fleets, law slots, ... etc are considered "resources" by the AI) that the AI is prepared to attribute. Even the most questionable objective will be pursued if it costs the AI nothing to perform it
You can filter by motivation using the slider in the top bar of the decision graph:
The big grey rectangles are called "contexts" - they are basically just used to organise the graph nodes into neat little packages:
You can filter by context using the drop-down list at the far-right of the top bar, you'll notice that some contexts have the same name - debug tools can sometimes have bugs too There should be enough to be getting on with though:
The rectangular nodes are called "tasks" - these are specific operations that the AI can perform in-game. A task can involve just clicking on a button (for instance, "bribing a minor faction") but it might involve a number of clicks over the course of a number of turns (for instance, "moving a fleet to specific node and launching an invasion"). No matter how simple or complex a task an Actuator is required to carry it out (see the previous post):
Each task has a "status" which defines the colour of its border. You can filter by task status by selecting the status you want to see in the top bar:
tasks that are "waiting for validation"have not yet been considered for resource allocation.
tasks that are "ongoing" have had resource allocated to them and as currently being carried out by an Actuator.
tasks that are "succeeded" have been successfully carried out by their Actuator.
tasks that are "failed" had had resources allocated to them, but there has been some issue: for instance a fleet assigned to a task might be destroyed before it can complete its objective.
tasks that are "cancelled" had had resource allocated to them, but these resources have been taken back and reallocated: for instance a fleet might be reassigned to a more important mission, like defending the AI's home system.
tasks that are "denied"have been considered for resource allocation, but were deemed not important enough to merit the required resources.
The ovular nodes are called "goals" - these are more abstract and long-term objectives than tasks: increasing your empire's science production is a goal, queuing a specific system improvement in one of your systems is a task. A task is really just a step towards a goal:
The arrows that connect nodes together are called "generators" because they generate the tasks and the goals and initialise their motivation. When multiple generators create the same goal/task the motivation of the resulting node is all the higher:
You can zoom in and out using the scroll wheel, left-click and drag to pan around and left-click on nodes to examine them. This can be used to understand where a task's motivation is coming from, provided you've activated heuristic debugging (see previous post). Looking at a task we can see a bunch of information, but what's really of interest to us is where the task's motivation is coming from :
If heuristics are turned on we can click on the motivation values of each of the generators, listed at the bottom of this panel, to see in more detail where why these motivation values are so high (or low). This opens up a smaller panel immediately below the first:
As a rule "child" nodes always have a motivation that is equal to or less than their "parent" (a node is another node's parent if it generates this other node). The easiest way to trace a child's motivation back to its parent or a parent's motivation to its children is to activate "auto-filter". This mode hides all the nodes apart from those connected to the currently-selected node:
That's all for now, but with any luck we'll have Jhell here soon to talk about diplomacy
But I think, with this AI tool, Chronicles, support of their gamers, allowing their gamer's input ...
Amplitude has just taken my top ranking for best strategy games developer - replacing Paradox, which replaced GPG, which replaced Relic. Creative Assembly and Firaxis have always been just outside that list.
I wish there was a way to have the AI examine the player's "state" as if it was another AI in a way we can see. This way we can compare For example a top player with the reccomendations of the AI every turn if he was playing in his stead. That way we can perhaps be able to adjust the Ai's measurments that are avialbale to us to push its behaviour towarsds a better and more competetive one.
Obviouslty the tools the AI has are insuffecient to make good calculated sense-making judgemtns at the same level of a top human player but we might, by observing its descision making in the shoes of a top player, adjust the AI's parameters in a way that might not make sense within its own limited systems that judges the game state, but would none the less bring the AI to play better.
What I mean is that some parameter changes to the AI's behaviour might be considered weak choices within its own internal calculations but would none the less make it a better player in an intuitive player controlled way.
We would manually adjust its levelrs and parameters so that when it examines the game state of a top player every turn, it would make descisions that are closer to the ones a top player makes.
Is the debug tool still working or has it been abandoned? :3 I thought it was a really unique tool to learn how AI thinking works while also being relative to the game.
Sorry to not telling you about the changes we made in the release note. We deactivate the tool that allows us to watch Enfer brain by default since it has an impact on game performances.
To activate it you must add the option --enablemoddingtools.
To do that, go the game properties in steam. Right Clic -> Properties.
Then in the General tab click on "Set Launch Options..." and enter --enablemoddingtools.
This should activate the AI tool (and other cool stuf :) ).
Note that the Enfer tool is also deactivated in multiplayer games since it allows you to watch a lot of information about your opponents.
Hi
I did this but still nothing on localhost:4377. Any ideas? Do I need to start a new game instead of existing?
[edit]
tried with new game, still nothing. There is nothing running on port 4377 according to netstat
Sorry to not telling you about the changes we made in the release note. We deactivate the tool that allows us to watch Enfer brain by default since it has an impact on game performances.
To activate it you must add the option --enablemoddingtools.
To do that, go the game properties in steam. Right Clic -> Properties.
Then in the General tab click on "Set Launch Options..." and enter --enablemoddingtools.
This should activate the AI tool (and other cool stuf :) ).
Note that the Enfer tool is also deactivated in multiplayer games since it allows you to watch a lot of information about your opponents.
In case you missed the stream, here's a quick overview of the new AI debug tools, which we're opening up for all of you to play around with
Once you've launched Endless Space 2 you can access the tool through a web browser by typing localhost:4377 into the address bar:
Note that you need to be in-game (not in the game menu) and that you'll need to wait for about 10 seconds for the debug server to start up. If you're still in the menu or too quick on the draw you'll get an error Also, while it should work on all browsers, we recommend using Chrome or Firefox as we've not really tested it anywhere else. Mobile devices aren't going to cut it either, sorry
Anyway if everything worked out you should find yourself on a web page that looks like this:
Very important: the debugger will not refresh automatically when you end your turn: each time you want to take a fresh peek at the AI's brain you'll need to force the browser to refresh the page by pressing F5. We've done this on purpose so that we can keep a snapshot of the AI's previous state in one tab well taking a look at the new state in another
Equally important: There are two things you're going to want to do straight away. First select an empire which has its execution mode set to"full",as for obvious reasons there isn't going to be much to look at if you examine the (non-existent) AI of an empire controlled by a human player. For instance you can click on the hyperlink marked"Major Empire 1" in the list of empires:
Next you're going to want to enable the heuristicsusing the toggle in the top right-hand corner of the screen. This will slow the game down but will give you a lot more information about what the AI is thinking! Once you've hit the toggle you'll need to press thesynchronise button just to the left of the toggle - this will force the AI to refresh based on this new configuration:
At the top of the screen are a series of tabs that correspond to the various stages in the AI's decision process:
In brief:
The "Debug" tab contains technical and profiling tools.
The "Snapshots" tab contains a summary of all the data that the AI has received from the game.
The "Analysis" tab contains a set of enriched data that the AI generates based on this raw game-state.
The "Decision" tab contains tools for debugging what the AI has actually decided to do based on this information - more on this later
The "Actuators" tab shows information on how the AI is carrying out its chosen objectives.
The place where you're probably going to want to spend most of your time is the decision graph, which you can access through the "decision" tab:
You should end up on a page that looks like this (it may take a little while to load depending on how far along the game is):
Yeah, I know
We'll be discussing in a little more detail how this all works soon, for now suffice it to say that this is "where the magic happens"
First of all let me start by saying that exploring the Diplomacy part of the AI can lead to "spoilers" of sorts, as you'll see any behaviour it could adopt ; and we've designed a few of them to be just that, surprises (at least on your first playthroughs). Now you can dive in there informed :).
Start by going here:
You then end up here:
This screen is a summary of all your relations (as Empire0, pink) with the other empires in the game. The table with IDs and duration is what we call "RelationLogs", and tracks what happened between you and that person. If we take this line for example :
It means that we have been in a "medium duration" Peace with Empire1 (blue) for 3 turns. These logs are used for us to trigger transitions between behavioral states in the diplomatic state-machine. Speaking of which! To access the behaviour itself, you'll have to click this button, for a given empire:
You'll then be taken there (right-click -> open image in new tab to see it bigger):
Now this is a messy state-machine. The algorithm to automatically place nodes and arrows is apparently quite complicated (I'm quoting the devs here ^^'), and we could only do so much, so the states need to be hand-placed so that the HSM (Hierarchical State Machine) looks legible. You can try to reproduce this model (this is the dev version, so you might be missing some nodes/arrows ; that's ok):
It's very small, but basically you have the 4 big boxes (from left to right, top to bottom):
- Cold war
- War
- Peace
- Alliance
Here we are looking over our relation with Empire1, and as we saw previously, we're at peace, hence the big blue highlight on the Peace box. If we zoom in:
We can see that inside the big Peace state, we are in Propose Agreement state, and inside this state, in the Ask Science Agreement state. This state can be read as "Empire0 (pink) will propose a science agreement to Empire1 (blue) as soon as it has enough influence to do so".
Now we can also see some black and red arrows (= transitions between states) on the graph, and you might also see blue ones. This goes as:
- Black: the transition hasn't been tested
- Red: the transition has been tested and is false
- Blue: the transition has been tested and is true, so it has been taken
You can click on a red or blue arrow to obtain more information on the tests being made (it gets highlighted in orange):
A transition has to return true or false. We make a bunch of "boolean" tests (true or false) with "and" (&&) and "or" (||) operators. The above can be read as is:
- Base value is used to initialize the transition and can be safely ignored (its value depends on the first test made on it for those who are curious)
- Has 1 turn elapsed?
- Did we enjoy a long science agreement?
This last test is itself divided into 2 sub-tests:
- Do we have a medium science agreement relation log?
- OR do we have a long science agreement relation log?
The true and false values are then read from the game. Most of the transitions use relation logs for their tests, so you can also check their presence in the table we saw previously.
What you should know is that there is a hierarchy to which transitions are tested first. Basically, the bigger boxes have priority over the smaller ones ; if a transition from a big box is valid, it's taken, and we ignore any other valid transition that goes from smaller states.
The last feature we wanted to tell you about is what we tried to show you during the stream: you can force the AI to go into a state. This is useful for test purposes or just to mess with things, but be careful, status has to be consistent (if you force the AI in a peace behavioral state whereas it's in cold war, it will automatically go back to cold war: the exit transition from peace will indeed be valid!)
You then need to make the AI think again so it knows it has changed state, so click this button in the top bar: and then hit the Refresh button of the graph (or your browser):
And tadaaa! Your AI should now be in the new state. You can also see that the tested transitions have changed:
This pretty much covers it :). If any of you guys shows interest and has more questions, don't hesitate to ping Wilbefast or me, we'll be happy to help where we can.
- does AI use this module for Tactics selection (pre-battle & Tactic deckbuilding)
- does AI use this module for ship design ?
- in the future, will we be able to modify the AI or is it just a "read only" tool to know what the AI does, that won't have more purposes that to know how to debug xml scripts ?
- does AI use this module for Tactics selection (pre-battle & Tactic deckbuilding)
- does AI use this module for ship design ?
Pre-battle tactics-selection is done via the decision graph, yes (more on said graph shortly). The deck and modules are chosen based on a bunch of metrics that are calculated in the analysis: basically each module and each play is good in a certain set situations and bad in others. So the AI first decides who their current primary enemy is and then figures out what set of situations (Lasers? Big ships? Shields?) they are up against in order to choose which modules and plays it should use. I don't have time at the moment to explain exactly how this works as it's a little arcane, but you can take a peek at the numbers being run in the situation debugger, in the analysis tab:
- in the future, will we be able to modify the AI or is it just a "read only" tool to know what the AI does, that won't have more purposes that to know how to debug xml scripts ?
As shown in the stream it is possible to write as well as to read in certain places. When JL and I make changes though we do so in code: unlike EL's, which had a lot of external XML data, ES2's AI is written entirely in C# with the only data coming from a synchronisation of the game state. We're not exactly sure at this point how AI modding will articulate, but as the AI is handled by it's own external DLL it's theoretical possible (though not really practicable at this point) to replace the DLL with your own. We still need to discuss exactly how modders would go about doing this in practice though.
This is incredible! Although it's listed out separately from the modding side of things, I can see this level of detail being huge for doing up new races via mods. I know when I did new races back in ES1, they tended to be about as intelligent as bricks, and it was really hard to know why. This would've been a god send.
About betterdebugtools, I've decrypted some of its language. It is using a basic encryption just changing the letters and stillcommunicatinginEnglish. It isreasonableas it was born inan English language environment, and those letters thathave distinguishedparallellines, angles are quite mathematic in nature, easier to understand thatLatinalphabet. So the messages so far are: "Hello Humans", "Assuming Command", "Deploying ENFER Protocols". Here is a photo of alphabet known to me so far.
Sorry to necro, but since it's pinned I didn't think it would be an issue.
So, does this still work or was it scrapped after the "stunt" for the launch?
I've been trying to get into E.N.F.E.R. tool and see the choices being made and why by the AI and such. I open the game, let it sit for about a minute and then try to access "localhost:4377" but it is always not found.
DEVwilbefast
Lost Dev
Something is afoot at the end of my leg!
DEVwilbefast
Lost Dev
37 000g2g ptsReport comment
Why do you report wilbefast?
Are you sure you want to block wilbefast ?
BlockCancelAre you sure you want to unblock wilbefast ?
UnblockCancelkuertee
Newcomer
kuertee
Newcomer
19 600g2g ptsReport comment
Why do you report kuertee?
Are you sure you want to block kuertee ?
BlockCancelAre you sure you want to unblock kuertee ?
UnblockCancelFather
Newcomer
Father
Newcomer
2 100g2g ptsReport comment
Why do you report Father?
Are you sure you want to block Father ?
BlockCancelAre you sure you want to unblock Father ?
UnblockCancelDEVFrogsquadron
Broken
Frogsquadron / François (\franswa\) "I am tormented with an everlasting itch for things remote. I love to sail forbidden seas."
DEVFrogsquadron
Broken
52 300g2g ptsReport comment
Why do you report Frogsquadron?
Are you sure you want to block Frogsquadron ?
BlockCancelAre you sure you want to unblock Frogsquadron ?
UnblockCancelilovemnms
Space Spark
ilovemnms
Space Spark
29 400g2g ptsReport comment
Why do you report ilovemnms?
Are you sure you want to block ilovemnms ?
BlockCancelAre you sure you want to unblock ilovemnms ?
UnblockCancelAliC
Newcomer
AliC
Newcomer
11 400g2g ptsReport comment
Why do you report AliC?
Are you sure you want to block AliC ?
BlockCancelAre you sure you want to unblock AliC ?
UnblockCancelDEVTichau
Dev Team
Adrien Lead AI Developer
DEVTichau
Dev Team
37 000g2g ptsReport comment
Why do you report Tichau?
Are you sure you want to block Tichau ?
BlockCancelAre you sure you want to unblock Tichau ?
UnblockCancelVIPEysteinh
Analyzer
VIPEysteinh
Analyzer
40 500g2g ptsReport comment
Why do you report Eysteinh?
Are you sure you want to block Eysteinh ?
BlockCancelAre you sure you want to unblock Eysteinh ?
UnblockCancelKaada
Peaceful Craver
Immer Ruhig Blut. wenn man schnell ist macht man Fehler.
Kaada
Peaceful Craver
20 300g2g ptsReport comment
Why do you report Kaada?
Are you sure you want to block Kaada ?
BlockCancelAre you sure you want to unblock Kaada ?
UnblockCancelMartinSGill
Senior Transformer
.
MartinSGill
Senior Transformer
30 000g2g ptsReport comment
Why do you report MartinSGill?
Are you sure you want to block MartinSGill ?
BlockCancelAre you sure you want to unblock MartinSGill ?
UnblockCancelAliC
Newcomer
AliC
Newcomer
11 400g2g ptsReport comment
Why do you report AliC?
Are you sure you want to block AliC ?
BlockCancelAre you sure you want to unblock AliC ?
UnblockCancelMisiok
Old
Misiok
Old
12 700g2g ptsReport comment
Why do you report Misiok?
Are you sure you want to block Misiok ?
BlockCancelAre you sure you want to unblock Misiok ?
UnblockCancelDEVTichau
Dev Team
Adrien Lead AI Developer
DEVTichau
Dev Team
37 000g2g ptsReport comment
Why do you report Tichau?
Are you sure you want to block Tichau ?
BlockCancelAre you sure you want to unblock Tichau ?
UnblockCancelMisiok
Old
Misiok
Old
12 700g2g ptsReport comment
Why do you report Misiok?
Are you sure you want to block Misiok ?
BlockCancelAre you sure you want to unblock Misiok ?
UnblockCancelLynrael
Digital Symphony
...wir müssen den Kindern mehr Deutsch lernen! Edmund Stoiber
Lynrael
Digital Symphony
30 500g2g ptsReport comment
Why do you report Lynrael?
Are you sure you want to block Lynrael ?
BlockCancelAre you sure you want to unblock Lynrael ?
UnblockCancelNagohShan
Newcomer
NagohShan
Newcomer
22 100g2g ptsReport comment
Why do you report NagohShan?
Are you sure you want to block NagohShan ?
BlockCancelAre you sure you want to unblock NagohShan ?
UnblockCancelDEVwilbefast
Lost Dev
Something is afoot at the end of my leg!
DEVwilbefast
Lost Dev
37 000g2g ptsReport comment
Why do you report wilbefast?
Are you sure you want to block wilbefast ?
BlockCancelAre you sure you want to unblock wilbefast ?
UnblockCancelDEVwilbefast
Lost Dev
Something is afoot at the end of my leg!
DEVwilbefast
Lost Dev
37 000g2g ptsReport comment
Why do you report wilbefast?
Are you sure you want to block wilbefast ?
BlockCancelAre you sure you want to unblock wilbefast ?
UnblockCancelMODDevildogFF
Unfallen Founder
Creator of the Unfallen concept. "To move freely, one must be deeply rooted."
MODDevildogFF
Unfallen Founder
44 200g2g ptsReport comment
Why do you report DevildogFF?
Are you sure you want to block DevildogFF ?
BlockCancelAre you sure you want to unblock DevildogFF ?
UnblockCancelVIPEysteinh
Analyzer
VIPEysteinh
Analyzer
40 500g2g ptsReport comment
Why do you report Eysteinh?
Are you sure you want to block Eysteinh ?
BlockCancelAre you sure you want to unblock Eysteinh ?
UnblockCancelKweel_Nakashyn
Old Pilgrim
Who's holding the torch ?
Kweel_Nakashyn
Old Pilgrim
23 300g2g ptsReport comment
Why do you report Kweel_Nakashyn?
Are you sure you want to block Kweel_Nakashyn ?
BlockCancelAre you sure you want to unblock Kweel_Nakashyn ?
UnblockCancelDEVwilbefast
Lost Dev
Something is afoot at the end of my leg!
DEVwilbefast
Lost Dev
37 000g2g ptsReport comment
Why do you report wilbefast?
Are you sure you want to block wilbefast ?
BlockCancelAre you sure you want to unblock wilbefast ?
UnblockCancelRomeo
Literary Transformer
Never shift in to reverse without a backup plan.
Romeo
Literary Transformer
38 900g2g ptsReport comment
Why do you report Romeo?
Are you sure you want to block Romeo ?
BlockCancelAre you sure you want to unblock Romeo ?
UnblockCancelVIPSuperMarloWorld
Auriga
VIPSuperMarloWorld
Auriga
29 400g2g ptsReport comment
Why do you report SuperMarloWorld?
Are you sure you want to block SuperMarloWorld ?
BlockCancelAre you sure you want to unblock SuperMarloWorld ?
UnblockCancelVIPsatoru
Epistis
Wherever you go, there you are
VIPsatoru
Epistis
42 300g2g ptsReport comment
Why do you report satoru?
Are you sure you want to block satoru ?
BlockCancelAre you sure you want to unblock satoru ?
UnblockCancelPirat90
Old Timer
Played it a bit, it's ok.
Pirat90
Old Timer
26 300g2g ptsReport comment
Why do you report Pirat90?
Are you sure you want to block Pirat90 ?
BlockCancelAre you sure you want to unblock Pirat90 ?
UnblockCancelsamsonazs
Enthusiast
"Idiots try to maintain order - A genius can control chaos"
samsonazs
Enthusiast
29 200g2g ptsReport comment
Why do you report samsonazs?
Are you sure you want to block samsonazs ?
BlockCancelAre you sure you want to unblock samsonazs ?
UnblockCancelPirat90
Old Timer
Played it a bit, it's ok.
Pirat90
Old Timer
26 300g2g ptsReport comment
Why do you report Pirat90?
Are you sure you want to block Pirat90 ?
BlockCancelAre you sure you want to unblock Pirat90 ?
UnblockCancelRomeo
Literary Transformer
Never shift in to reverse without a backup plan.
Romeo
Literary Transformer
38 900g2g ptsReport comment
Why do you report Romeo?
Are you sure you want to block Romeo ?
BlockCancelAre you sure you want to unblock Romeo ?
UnblockCancelvideovillain
Pixel Twister
Improve yourself, improve the universe!
videovillain
Pixel Twister
26 100g2g ptsReport comment
Why do you report videovillain?
Are you sure you want to block videovillain ?
BlockCancelAre you sure you want to unblock videovillain ?
UnblockCancelVIPKuma
Hissho Lord
VIPKuma
Hissho Lord
35 800g2g ptsReport comment
Why do you report Kuma?
Are you sure you want to block Kuma ?
BlockCancelAre you sure you want to unblock Kuma ?
UnblockCancelvideovillain
Pixel Twister
Improve yourself, improve the universe!
videovillain
Pixel Twister
26 100g2g ptsReport comment
Why do you report videovillain?
Are you sure you want to block videovillain ?
BlockCancelAre you sure you want to unblock videovillain ?
UnblockCancelMattoFrank
Newcomer
MattoFrank
Newcomer
5 400g2g ptsReport comment
Why do you report MattoFrank?
Are you sure you want to block MattoFrank ?
BlockCancelAre you sure you want to unblock MattoFrank ?
UnblockCancelLexan1x
Newcomer
dfsdf
Lexan1x
Newcomer
1 300g2g ptsReport comment
Why do you report Lexan1x?
Are you sure you want to block Lexan1x ?
BlockCancelAre you sure you want to unblock Lexan1x ?
UnblockCancel