Logo Platform
logo amplifiers simplified

Bump AI modding above other features

Support!
Ney
Vote now
Copied to clipboard!
11 years ago
May 2, 2014, 7:56:42 PM
lynxlynx wrote:
Modding would be great, since as said it gives game second life, is keeping interest in game (so MP alive), and drag more ppl along for Endless Middleearth mod.

However im not sure if this should be priority now, since everything in apha could change so what is the point of modding it when every forthnight is new patch.

From the other side, modders could have some good ideas, and as such test different builds, which could be later implement, and that is something.
I kind of addressed this in the opening but to answer it again.



I'm someone who has a very high interest in modding the game (specifically ai, since I think it helps the most with the least effort on all sides), so I think I can speak for at least a subset of modders, the issue of "well it's going to change and break the mod" is a complete and total non-issue and is doing nobody any favors.



I wish people would stop countering "lets have better ai modding" with "oh but the modders would have to work so much harder." The answer is no, and even if it was yes, doesn't matter, because modding the game takes effort, and nobody is expecting it to take 3min. I've suggested this thread specifically because I think it will help the game a lot, but in general, modders want to mod, and as early as possible is always better then later. There is also no expectation the mod will even be good enough in the first iteration, so the game changing is really not that big deal to manage and if game api changes are the biggest hurdle in your mod you're probably not trying hard enough. There is no "[devsimplementmodding] suddenly 1000 mods poop out of thin air" a community has to exist and there it's for the best if it forms early (just like any community). For what it's worth you can even avoid a lot of these so-called-issues with some good isolation of the code you write (or some other defensive-programming technique). And if you want to go totally crazy you can even cross compile, and not even worry too much about the language the mod has to be written in.



There are other reasons it doesn't matter as well. Say we're in some "release version" as it were instead of alpha, the idea that you would just "drop a mod" and forget about it is not really good practice. You should be supporting your mod both in the sense of tacking feedback and fixing any issues that arise as well as making sure its version compatible; it doesn't really take the entire api to change for your mod to break, it could be just one lil' thing changes in the way the game works to fix another bit and poof, it's broke, it could even break from other mods.



-



In addition there are some serious issues with "worrying about it later."



I may be judging the game files wrongly, or missing some pieces, as things aren't documented so can't really double check, but the direction modding, as far as ai modding, is going with the implementation is right now extremely leaning towards "sliders in XML" which means no-hope for good ais beyond what you already see or what you'll see at release. If it's the best ai ever on release, awesome. If not, unfixable by mods (unless you count giving the ai 2x economy as a fix). And doing cool things with the ai, realistically probably impossible if not hellish amount of work. With the current approach.



For reference, the current XML format appears to have a lot of "logic gates" more or less and that constitutes 90% of the work on them.



What is there currently looks like a lot of work. The more work the devs put into a system we can't realistically use to do great things the less work they will be willing to put into fixing it or changing it since no matter how important and no matter how much they might want to at the end of the day you can only allot so much attention to one part of the game! it's just common sense.



In the opening the system I suggest would merely give the modders map data of the known map (including "this tile is unexplored" data of course), some basic game data (cities, economy, diplomacy status, etc) and the ability to pass back basic commands you would currently do as a player "move unit X to position Y." That's it. This should all be fairly straight forward to implement and likely a lot easier then the current XML method, because, aside from creating some data types to allow the mod to send the orders the player:

  • there's probably already some "map data" data types along with the others, they just need to be packaged and send to the mod
  • validating those orders can just hook into whatever system they use to validate the players orders currently; and their system does appear to be dynamic based on how orders can cancel as the map is revealed





The way I suggested can implement a mod that uses a bunch of XMLs, ie. the game's current XMLs as data that's part of it's logic.

The XML method the game uses is not be able to implement many of the things I suggested as examples in the opening, if any at all.



It's pretty obvious modding is not necessarily going into the right direction. The ability to change sliders is considered "modding" in a sense but it's extremely limiting, just like how you might go into a game's config file and set the resolution to 1920x1200 even if the game doesn't allow it but you sure as hell can't invent "better graphics" options though it.
0Send private message
11 years ago
May 12, 2014, 1:29:58 PM
SpaceTroll wrote:
Anything that is accessible to game designers, including AI factors, will be modable. We can totally affect the targeting behavior of the AI in combat for instance, which affects how the AI considers its troops, the terrain and the enemy.
smiley: approval

Now we need some kind of an adorable picture saying "here, have my firstborn". Sadly, I lack adder's mad skillz so I wasn't able to find one ;_; Either way, thank you for your posts and for keeping us informed smiley: smile
0Send private message
11 years ago
May 12, 2014, 12:38:57 PM
SpaceTroll wrote:
Anything that is accessible to game designers, including AI factors, will be modable. We can totally affect the targeting behavior of the AI in combat for instance, which affects how the AI considers its troops, the terrain and the enemy.




That is pure gold.

Thank you and the team for relieving a lot of fans from the anxiety we have been feeling.



Thank you for keeping us informed and answering questions too. It makes a huge difference and allows us to support you as much as we can. For instance this is the first time I've ever bought an Alpha version. Why? Because I believe in the dev team and they talk to us. Keep it up.
0Send private message
11 years ago
May 12, 2014, 9:15:18 AM
VieuxChat wrote:
Will the battle AI be moddable ?




Anything that is accessible to game designers, including AI factors, will be modable. We can totally affect the targeting behavior of the AI in combat for instance, which affects how the AI considers its troops, the terrain and the enemy.
0Send private message
11 years ago
May 12, 2014, 1:54:02 AM
Option 2 (lua / python scripting) would be great. I'm sure that it would be impossible to do before release, but maybe as a post-release support?
0Send private message
11 years ago
May 11, 2014, 7:32:33 PM
This seems like the most relevant place to ask, if any devs happen to see this, but since there will be a focus on being able to mod the game as easily as possible, is there a chance Endless Legend will have Steam Workshop integration?
0Send private message
11 years ago
May 10, 2014, 10:02:18 PM
ThorTillas wrote:


Cheers,

flo



(Thanks to Eric and SpaceTroll for the revisions)




This is definitely a excellent , informative post and I think majority of community will appreciate the fact that you took time to explain why some things are not possible. I'd like to add one last thing about the issue of C# and Lua; I agree here with nightbasilisk that lua would be probably preferable even if this takes twice the time (I mean for us to wait for such modding support. I'm not trying to tell you how to manage the time I'm pretty sure you know that well enough especially if current state of things is any indication of that smiley: wink ). While nightbasilisk have provided imo nice take on the issue from modder perspective, I as a person who downloaded more mods than made, think looking at that from user side Lua would be more trustworthy and I don't think I'd risk downloading anything written in C# unless I really, really trusted the person who made it.
0Send private message
11 years ago
May 10, 2014, 11:38:24 AM
ThorTillas wrote:


Thanks for reading and I will keep you posted about any improvements on the mater!!!



Cheers,

flo




Thanks for replying!



Good to hear it's being considered.



Sounds like it's set up to allow some good mods.



Will really be looking forward to the code modding part, even if it comes after release!
0Send private message
11 years ago
May 7, 2014, 6:03:53 PM
ThorTillas wrote:
Thanks for reading and I will keep you posted about any improvements on the mater!!!



Cheers,

flo
Thanks for the visibility into the teams thoughts at the moment and for the tacking the feedback.



I understand you already have a budget and plan and can't push anything like this though. I respect you have other considerations to deal with, and something has to give; albeit still a little sad ai has to be the one to give.



Hopefully at some point in the future there will be enough resources to expose that level of control. If I were to pick one of the options you gave I would say the lua variant is the better option, at least from my point of view, just because we, the modders, don't want people to be "oh well is this isn't just going to delete all my stuff is it?" when they look at mods just as much as you do. Beyond that though I don't really care so long as it's a programming language and not just "switches" and "knobs," though I imagine for the wider public lua is a more friendly language then others—just because it's purpose design for scripting.



Again, thank you for tacking the time to answer the proposal. smiley: biggrin

It's unfortunate you can't do it, but it is how it is



Cheers
0Send private message
11 years ago
May 7, 2014, 4:48:36 PM
SpaceTroll wrote:
Guys,

We hear you, although I must admit it was not part of our plans. The programmers are discussing together trying to see what they can do to help you in that regard. Expect some news at the beginning of next week.



Cheers



ST


Will the battle AI be moddable ?
0Send private message
11 years ago
May 7, 2014, 3:16:24 PM
ThorTillas wrote:
  • The visual mapping of almost every simulated entity in the game,





  • smiley: biggrin Happy about that ^^



    Very relieved to hear you guys are ready for data modding on release, and want to support a proper code modding system. It sounds really cool.
    0Send private message
    11 years ago
    May 7, 2014, 2:54:32 PM
    Sorry for the delay guys.

    We have had some discussions going on our side about your post, and modding aside, we are currently building up both the improve list and the feature list for the upcoming months...

    And to be honest, writing a post in English takes some time ^^... at least for me...



    First of all, thanks a lot to have taken the time to write your thoughts and wishes. It always amaze me how much time you guys spend on helping us to improve our(your?) game.



    Then to the point: yes we will support modding as much as we can.



    From the beginning – starting with Endless Space – we have built our games and our codebase with modding in mind.

    There are two things you may want to mod in a game like ours:



    • The data,
    • The code.





    Modding the data:



    We started in Endless Space already, by providing an extensive amount of xml files, allowing the game designers and the modders to modify the game contents without the need of a programmer’s intervention.

    We have extended the access to event more data customization in Endless Legend, you should be able to modify the following:

    • The game economics,
    • The factions traits and balance,
    • The world generation settings,
    • The units statistics, along with their equipment,
    • The items database,
    • The heroes and their skills,
    • The visual mapping of almost every simulated entity in the game,
    • The quests to be triggered, their mechanics, their rewards, the loot tables…
    • All the AI parameters…



    … and much more!



    We have grown the game around databases of such xml content.

    We will continue to use this data format and we shall improve and/or enlarge the different systems to expose more features.



    Concerning the AI modding itself,

    If I have to point out some of the AI tweaks which will be allowed by xml, I would say:



    • City buildings

      • Improve the City governor choices (population and building),
      • Improve the repartition between building production and unit production.

    • Unit designs

      • Improve the item/body choice based on units archetypes,
      • Improve the unit archetype needed for each "military" mission (city attack, region defense, etc).

    • Empire

      • Improve the research choice based on city needs, resource needs, etc,
      • Improve the army behavior based on the overall mission (patrol, attack city, region defense, region clean up, etc),
      • Improve economics repartition (unit/building production, Unit/building buyout, etc) based on global empire state (at war, game starting, empire expansion, etc).

    • Minor faction

      • Change the minor faction behavior based on surrounding cities, surrounding major empire, etc,
      • Change the minor faction spawn frequency, which unit design to choose, etc,

    • Quest

      • Spawn quest armies with a specific behavior (chase the interacting army, patrol in the region, destroy the nearest city, etc).







    And so more...

    In fact every time we have to implement a new feature, we try to expose as many parameters as possible... Not only for you to modify, but for our designers to be able to change their mind and do some of the work without us.



    Modding the code:



    When we started Endless Space three years ago we did not have the means to address the issue of completely modding our game.

    That is the reason why we concentrated on the data part, and not on the code.



    With Endless Legend we have had a little bit more time to think this through, but again we lack the expertise to include full support of code modifications.

    There are several ways to allow one to tweak the code of a game:



    • Export some game API to a scripting language and allow modders to (re)write parts of the code in that same scripting language. Other games offer to edit the code in lua or python.

      Honestly it is quite feasible; but it would take some time to figure the right function bindings (event though utilities exists that can automate the process), and we fear it will divert too much of our time at a moment when we don’t have much to spare…
    • The other conventional way is to expose our core game API and allow the modders to write external libraries in native code (c++ or c#).

      Since we are working on Unity, our entire codebase is in C# already, so loading an external assembly is not an issue there. And this is definitely the direction we had in mind when starting Endless Legend.





    With this last solution, you would have instant access to our whole game code and structures; the difference between what we or modders could do would be very thin then...

    But C# is a powerful language, powerful enough to let one erase some files on a player’s hard drive, powerful enough to collect personal data and send them to an Internet server...

    Handling the proper restrictions and the proper exposure of our game API is a great amount of work, that we just cannot afford at this time.



    I know it's not the answer you will expect from us, but we prefer to be frank with you instead of just saying "Yeah, great idea, we are doing it asap!!!".

    I don’t think it’s going to make it day one Endless Legend’s release... don't forget that we are still a small company and we are building our knowledge base with every game and year that goes by.

    That's said, it is still something we keep in mind; and I really hope one day we will manage it.

    Hope for the best... but plan for the worst...



    Thanks for reading and I will keep you posted about any improvements on the mater!!!



    Cheers,

    flo



    (Thanks to Eric and SpaceTroll for the revisions)
    0Send private message
    11 years ago
    May 5, 2014, 12:41:03 PM
    lynxlynx wrote:
    However im not sure if this should be priority now, since everything in apha could change so what is the point of modding it when every forthnight is new patch.

    From the other side, modders could have some good ideas, and as such test different builds, which could be later implement, and that is something.




    nightbasilisk already explained this, but just to put it really simply: adding moddability after the game is done is like adding plumbing to a house after it's finished being built. It's far less work to integrate modding from the start, and if the new drywall means that a pipe needs to be moved, it's still easier overall than knocking the whole side of the house out to put an entire piping system in. smiley: smile
    0Send private message
    11 years ago
    May 2, 2014, 9:30:37 PM
    Guys,

    We hear you, although I must admit it was not part of our plans. The programmers are discussing together trying to see what they can do to help you in that regard. Expect some news at the beginning of next week.



    Cheers



    ST




    And all is well in the world.



    Thank you for the platform that will allow us to shine and share smiley: smile
    0Send private message
    11 years ago
    Apr 27, 2014, 11:51:21 PM
    AI modding should be available as soon as possible. It is required for a fun game, and fun game is the primary feature!



    I understand there are considerations against this, mainly top 3:



    • lots of work
    • as buildings/units/features come in ai may become invalidated
    • api may become invalidated in time because the game is early in development





    Obviously the "extra work" is unavoidable, however with regard to the others:



    • modders updating their scripts for new features likely won't require rewriting it
    • so long as you allow for ai extensibility it takes just one mod to provide a legacy compatible updated version and any dependent mods will magically work
    • even old scripts that require complete rewrite can be used as references to speedily rewrite in a new "better" api, assuming the api is indeed better (it's not like you re-think the logic you already figured out)
    • early feedback on if ai modding is not properly implemented just makes things move forward faster!





    ---------------------------



    Okey those are the cons out of the way. Here's the issue that ai modding solves:



    • endless space ai eventually becomes obsolete (even the super cheaty ones)
    • creating cheating ai is not an acceptable solution (to a lot of players)
    • cheating ai DOES NOT WORK for multiplayer drop-in/drop-out features
    • even the best ai (assuming static logic) becomes dull after enough games against it
    • the "easy" "hard" etc is not necesarily the best implementation



      Just as an example we could have "personality" based ai: "tutorialized", "defensive", "aggresive", "diplomatic", "buyout dust focused", etc.

      Modders will likely find better ways. Here are some other variations just to make a point:

      • ai that's designed to interact with other ai in cooperation calculating both as one (eg. combined force movement, guerrilla war against the player armies)
      • ai that clones player strategies to some extent
      • [differentvariationsonaithreatmapping,planningandscoutingalgoryhtms]
      • ai specifically made for a multiplayer settings (ie. ai that is designed with having multiple humans in the game)
      • ai that accepts defeat based on a special condition (eg. lose capital = concede defeat)
      • ai that accepts gentlemen agreements (eg. no X unit, no upgrades, etc)
      • ai that is specifically designed for join-in/drop-out/re-joins, ie. takes what you have, does not touch settings, makes things that are idle do things, moves your unit to defensive positions and tried to keep everything alive and out of the way of other players killing it while you're gone (this assumes the ability to re-join multiplayer game in the same slot)
      • ai specifically designed for a afk-strategy management, like the above only designed to continue with a strategy if a player needs to leave for 20-ish turns for some reason (personality would be chosen in secret by the player at the start of the game)
      • ai specifically designed for join-in slots, ie. joining in the middle of a game, basically: does not expand too aggresively, is very defensive, tries to stay away from other players, builds up okeyish trying not to abuse that it's potentially being intentionally left alone; if it detects that in it's absence and in the absence of other ai's like it the game would be won (eg. conquest) then it concedes defeat automatically
      • ai specifically designed to have a lot of randomness in it
      • ai designed to take hints from another source (eg. vassal style ai that takes hints from a stream chat of sites like twitch)



      etc



    • ai becomes easily obsolete with meta changes; never gets updated usually (eg. starcraft1 ai, same strategy though out all balance patches), mods have better chance on that
    • ai modding needs to be independent modding from other mods; so you can at least try to play with as many mods as possible
    • ai modding needs to allow for it's own pop-in interface, so you can have mods and multiple ai mods all with settings and have them all just work; more small and focused ai mods better then single monolithic ai mod
    • ai modding needs to allow for the host to just run all the ai so that ai modding doesn't require other players from having the ai scripts themselves





    Some more concrete Pros

    • high playability for the alpha/unfinished content! as well as post-release
    • multiplayed can be easily pushed back further if needed (not saying it should; just saying with "good" ai as a feature it's possible; unlike now where it couldn't get here sooner)
    • interesting ai is great for both multiplayer and singleplayer! (think ai stomps, or ai custom made to act a role in a multiplayer game, eg. every player gets 3 ai vassals, vassals accept chat commands thereby you can have every player to some extent control 3 factions if they wish)
    • good ai, making for a strong skimish mode is better then a campaign mode (a custom ai can even make a campaign happen just by a simple implementation of ai triggered quests!)
    • good ai can make for interesting deplomacy, you could have ai where nothing is changed other then the way they interpret diplomacy and some "priority system" and that would make a huge difference in how games play out and the difficulty:

      Ai1: "Oh hey guys player1 is kind of going to kick all our asses at this rate, lets all temporarily work together, gather all our armies and go kick his ass."

      Ai2, Ai3, Ai4, Ai5: "Agreed."

      Ai2: "I'll take over his cities."

      Ai1, Ai3, Ai4, Ai5: "We'll combine everything and kill his armies."
    • if the game has extensibility then you can have different mods do different things, for example you can have a really complex "unit management ai" then other mods can come in and build on top of it, in the sense of having a dedicated "town management" ai depend on the unit mangament ai for "unit purchase orders hints," you can then have a whole slew of "optimal building" ai's all dependent on the same "unit mangament" ai. The unit maganegement ai may very well not even care for which faction it is.





    Loose Technical Requirements



    • exposed map information (of course only what you actually legitimately know)
    • marketplace-style support for easy access, including updates (eg. steam workshop)
    • ability to have multiple versions of the same Ai Mod at once and to have it switchable
    • extansability support! Because sharing and improving makes everything go faster. Proposed implementation:



      Pipeline

      • Gamemaster/Game, out: Map-Data, Rejected Orders
      • Base Ai Script/Framework, in: Map-Data, Rejected Orders out: Map-Data, Extra-Data and Move-Recommendation, Rejected Orders
      • Re-Interpreter Ai Script/Framework, in: Map-Data, Rejected Orders, Extra-Data and Move-Recommendation, out: Map-Data, New-Extra-Data, New-Move-Recommendation, Rejected Orders
      • ...any number of re-interpreter ai...
      • GameMaster/Validator, in: Move-Recommendation





      In the pipeline,

      • Gamemaster/Game is the current game, Map Data is game created object including everything: unit data, diplomacy, town data, unit stats, etc. If it's on the map or related to the game and the player knows about it then it's there. Rejected Orders are commands that were passed either on a previous turn but didn't pass validation.
      • Base Ai Script/Framework is a modder creatable "Ai Mod" which processes the data for the purpose of producing a move recommendation OR just just as a helper for other mods! (eg. creates threat maps, transforms Map Data to another data representation, etc)
      • Re-Interpreter Ai Script/Framework is a modder created object that is a more advance version of ai script. Instead of linking with a Game and getting Map-Data the script needs to link to either a Base Script or another Re-interpreter. The Re-interpreter is able to change a recomendation by forming a new recomendation object and may be used to create an ai or to act as a extra framework above the base script or another re-interpreter framework. Unlike base script the re-interpreter would REQUIRE a dependency to a version of another Ai Mod.
      • Gamemaster/Validator is a game entity that recieves a recomendation object and validates it (ie. "Unit X should move to Y via A, B, C" validation: "can unit x actually path there?" "are there effects preventing unit X to path there." The validator may choose to reject or slightly-alter orders to resolve conflicts.





      Required Modder-relevant Objects/Dataformats

      • Map Data object interface/abstract (so frameworks can just outright replace it for convenience)
      • Recommendation-Move object interface/abstract
      • Rejected object interface/abstract









    Really good technical stuff to have



    • ingame editor for the scripts, turn-autosave-reload, and object inspection (purpose: write/improve/fix ai scripts while playing the game)
    • streaming between scripts as an option for advanced ai modding pipilines; for really fast complex ai (waiting is not fun, stream processing should improve things)
    • access to ai specific worker threads for any capable scripts with a lot of processing to take advantage
    • ai settings page in the lobby (basically the ai script that sits at the end of the pipilene should be allowed to provide an gui interface for itself)
    • ability to select an ai for yourself in the lobby in secret (assuming hot-join/leave with slot-player retention support in multiplayer)
    • local ai persistent storage (ie. some api for the ai script to store values, for use by adaptive scripts)
    • inter-ai communication api for the purpose of creating cooperating ai's
    • access to chat for the purpose of grabbing commands, or a specific ai console in the abscence of that
    • ability to create/manage quests objects and send them to players or other ais that are capable of accepting them (ie. campaign quest giver and enemy campaign ais)
    • error reporting





    Total waste/unnecessary technical stuff to have



    • anything to do with algorithms for processing the data (just have good ai extensibility and there can be ai modding frameworks people can use)
    • any tool that could be created by modders given the game data is available

    0Send private message
    11 years ago
    May 2, 2014, 4:57:10 PM
    SpaceTroll wrote:
    Guys,

    We hear you, although I must admit it was not part of our plans. The programmers are discussing together trying to see what they can do to help you in that regard. Expect some news at the beginning of next week.



    Cheers



    ST




    It is certainly appreciated. I guess asking for full steam workshop integration would be probably too much but any way to edit races, skills and heroes sounds great to me.



    lynxlynx wrote:
    Modding would be great, since as said it gives game second life, is keeping interest in game (so MP alive), and drag more ppl along for Endless Middleearth mod.

    However im not sure if this should be priority now, since everything in apha could change so what is the point of modding it when every forthnight is new patch.

    From the other side, modders could have some good ideas, and as such test different builds, which could be later implement, and that is something.




    I don't think anyone in their right mind is thinking about extensive modding of alpha title. The point is unless modding is considered in the end product the further development goes the harder it is too add and the more limited it has to be. Adding modding is not 2-clicks away and the difference between writing new code or adding changes with that in mind is way efficient that going back and rewriting it.
    0Send private message
    11 years ago
    May 2, 2014, 4:07:36 PM
    SpaceTroll wrote:
    Guys,

    We hear you, although I must admit it was not part of our plans. The programmers are discussing together trying to see what they can do to help you in that regard. Expect some news at the beginning of next week.



    Cheers



    ST


    Wow, it's nice that you are considering it and so soon. smiley: smile
    0Send private message
    11 years ago
    May 2, 2014, 2:14:00 PM
    ^ As you say, modders could present some good ideas. But the point is, I think, that we would like to see the game grow around modding, so its a full feature and in place for release, whereas with ES it happened after all the development was over, and as such was very limited. At least for me, I would like to see it more integrated early on, because to me modding is the biggest part of G2G.
    0Send private message
    11 years ago
    May 2, 2014, 1:45:42 PM
    Modding would be great, since as said it gives game second life, is keeping interest in game (so MP alive), and drag more ppl along for Endless Middleearth mod.

    However im not sure if this should be priority now, since everything in apha could change so what is the point of modding it when every forthnight is new patch.

    From the other side, modders could have some good ideas, and as such test different builds, which could be later implement, and that is something.
    0Send private message
    11 years ago
    May 2, 2014, 10:17:27 AM
    Guys,

    We hear you, although I must admit it was not part of our plans. The programmers are discussing together trying to see what they can do to help you in that regard. Expect some news at the beginning of next week.



    Cheers



    ST
    0Send private message
    ?

    Click here to login

    Reply
    Comment

    Characters : 0
    No results
    0Send private message