Jump to content

Xenonauts - Community Modding Tools


Chris

Recommended Posts

Xenonauts 2 has been designed from the very start of development to support modding, and we're now approaching the point where our official mod loader is complete. The last remaining task then becomes the creation of a "modding editor" that will allow players to easily access and edit the information held in the game's JSON files (which are already exposed in the game directories, but are difficult to read / edit with a text editor).

The underlying work on this tool has already been done by the development team, and what we now need is a GUI to sit on top of it.

Specifically, we need to create a standalone cross-platform GUI that calls into the serialization and asset management tools we've made. The bulk of the work here is going to be creating this frontend and figuring out a visual design that can display all the required information to modders in a sensible way.

This is something the development team is planning to do, but it's nowhere near the top of our list of priorities - we need to focus on getting the entire campaign playable first, for example. However we've already seen several people attempting to hack modding support into the game, so we were wondering if any community members with a background in programming might be interested in collaborating with us (and aspiring modders) on the creation of this tool.

We'd be more than willing to support any such efforts with documentation and technical assistance, and I feel like it could potentially be a win for everyone - the developers can focus on the game, and the community would probably get more user-friendly mod tools (and get them sooner) than if the developers made them.

If you are interested in helping out, please just post a reply in this thread or DM me / email me. And if nobody is interested, that's also fine - it was just a thought. As I said, we will get around to making them ourselves, we just need to focus on other things first.

Link to comment
Share on other sites

I was a Programmer/Analyst as my livelihood for 40 years, I'd love to see what you need, programming language, thoughts on how we need to integrate to main game, etc.

Making sure we have knowledge of the  underlying program language(s) the most important so we get people that know how to use it as we create such a tool.

Link to comment
Share on other sites

1 hour ago, Sunnybuns said:

Heck I love to give it a shot and help you out! With the addition of the modding tool I feel like we can help you out with your roadmap, especially when it comes to making new maps, which is a huge factor in these kinds of games.

Mapping, as far as I'm aware, is out of the scope of the modding tools unfortunately.

Link to comment
Share on other sites

Thanks for the replies. I'm going to be linking this post in our next Steam update so I'll follow up with people towards the end of the week, once that has gone out.

Mapping is not part of the initial scope of this mod tools, no - it's too tightly integrated with Unity to be something we can do in a standalone editor.

But if the simpler standalone editor is successful, the next step would likey be a more powerful (but more complex) Unity-based mod editor, as this will likely be required to add new art assets to the game anyway. And a community map editor tool could potentially be part of that.

Link to comment
Share on other sites

18 minutes ago, asdfcyber said:

I don't have too much time lately, but I'd love to help! It does sound like this is mostly intended for asset replacement/value tweaking mods and not for pure-code mods like Geoshape, is that right?

Yeah, I'll set up a dedicated sub-forum / discord channel for the participants and go into more technical details if we get enough interest, but the standalone mod editor is intended to be a simple tool that allows people to get started on changing the game without requiring any serious technical knowledge of setup time. I'm hoping that producing it won't actually be that demanding on the people helping out.

I must admit we'd not actually really considered the concept of a pure-code mod. But that's certainly something we can discuss as part of the wider community tools discussion if the initial standalone editor doesn't prove too challenging.

Link to comment
Share on other sites

You will make code wise things for sure like editing stats, adding new weapons but my concern is about visuals. At X-1, I could add anything 2D as everything was 2D but now even I notice some items images are 2D, there are tons of 3D things too. Will we able to add new weapon models? Or at least will we able to change the texture of the weapons or armors? Same for air content, adding new plane/ air weapons with new images.

Sam for UFOs. As you throw out classic XCom UFO design and used premade ones, you already killed it, but still we need to able to add new UFOs at least changing the texture. Premade UFO designs ruined most of the X-1 modding ideas and it was really sad that you did this again with the second game. Maybe you still add the ability to do it so modders can replace the UFO's entirely and add new ones. Map making got a big role on this. 

But my biggest concern is about enemy side. Mod communities mostly add things that player can use, but I find it very boring if the enemy is same. I would like to add new enemies but I don't have any idea that you can do that at all. 

X-1 engine got many options you did not use at X-1. This made many things possible for us at X-1 era and we improve it with Community mod support. For example, enemies could use 2 weapons or at least we could make enemies use shields. We could do some respawn tricks/chains with the reaper method.

Items and research chains, we add some special items to the map as a map object which spawns as loot in the end of the mission, like Alien Memory Cards. With this, we could link those items for special researches. Same could be done for enemy inventory, a unique enemy which got a random chance to spawn in a specific UFO could open a special research. You don't need it to finish the game but this kind of things add replay and grind value to the game.

I am still sad that you did not play X-Division as I know. So you could understand many ideas possible to add this game with modding. It would be way easy to explain the concepts I got in my mind. 

Those are I can say for now. Good luck. 

Link to comment
Share on other sites

I tend to take charge of projects is participate in, so that has advantages and disadvantages.

Here is just my 2 cents.

The most important part that is missing in this thread are end users. People who can NOT program but want to mod. You need 2 groups of people. One group of people who can make the actual program, and the second group of people who can not program but would like to produce creative content. People who want to mod and can program are put into the group of people who can program.
The question that you have to ask yourself is what is the target audience. You could propably answer that by saying that the target audience are people who are willing to produce creative content. This target audience will propably be somewhere beetween people who can program, and people who cant. The big discrepancy is not in the quality, but the quantity. The overwhelming amount of people who want to create creative content cant program, even if the quality is not on par. If you want to have a high quantity of creative content make tools which are designed for people who dont know how to use computers, if you want to get high quality mods you have to increase the capability of the tools.
One of the examples of a very programmy system is @ Illunaks modmerging system: https://www.goldhawkinteractive.com/forums/index.php?/topic/11156-documentation-modular-mods-system/. Very handy for programmers indeed, but nobody else used it because nobody understood how it worked. The other problem is that the modular mod system is actually a chain. Have one faulty mod in your mod loading order and everything may break down. Even worse, without actually notifying the user of it. 20 hours into the campaign and it breaks. If your software can be misused, the users will misuse it.
Simply put you need QA. Otherwise you will simply end up with wolves designing a barn for sheep. Very handy for wolves indeed ...

Other thoughts include:

Proprietary or open source ?

Version Control ? Git ? Public hosting ?

Licenses ? Dependencies ? Contracts ?

Which GUI library ? Programming Language ?

 

This post does not express my interest in participating, merely my interest in getting quality tools running. Otherwise you will simply end up with dead code ...

Cheers
Charon

Edited by Charon
Link to comment
Share on other sites

I'm certainly interested in helping if I can. I have a quite bit of free time up until the end of the month. I probably should mention that I am a coder as well.

I do share Charon's concerns of usability, but I differ in that I believe a well designed tool can offer both functionality and usability. Though in my opinion very few pieces of software ever achieve one of these things, let alone both.

Anyway, hope it goes well.

Link to comment
Share on other sites

Thanks everyone. There seems to be enough interest for us to go ahead with the project, and we're just in the process of doing final tests on the mod loader functionality. Solver is also part of this mod tool project (although he's not posted here) and he's investigating the logistics of getting a standalone editor to run based on the DLLs that are shipped with the game - which would make life a lot easier for everyone, as nobody needs to go near Unity to work on these tools. So hopefully we'll pull something more formal together this week and invite everyone interested to take a look.

@Charon yes, you make a good point about modders needing to be involved in the design process. This was part of my plan, but we needed to check first whether there were programmers interested. I'm not sure if there needs to be a formal process for that though; I think as soon as people start using the tools there'll be organic requests for new features and feedback on how the UI could be improved. These tools are likely to be something that are heavily iterated on based on modder feedback.

This somewhat also touches on the points made by @drages but the purpose of this initial mod tool is simple mods, and it is intended for people who have very little knowledge of programming or anything else. It should be a single program people can install on their computer and then use it to change the values in the game, and it should spit out a mod that can be easily uploaded to Steam Workshop. To my understanding (although I'm not a coder), the "modular mod" system exists in Xenonauts 2 but is handled automatically this time around. The focus is ease of use.

Unfortunately, this tool is going to have limitations. The big one is the ability to add new assets to the game, because Unity locks all its assets away in Asset Bundles and a standalone program can't add new things to these Asset Bundles. At least initially, this standalone editor simply won't be able to add new art to the game in any form - e.g. if you want to create a new weapon, it has to pick from artwork that already exists in the game files.

That said, this is something that can be addressed. One solution is to create a second more powerful mod editor for advanced users that works as a Unity plugin, which would allow the users to do anything that the developers can do, including making new maps etc. But this requires the modder learns (or already knows) Unity, as well as there being some technical / licensing hurdles we need to overcome.

It's also possible that a standalone tool could be written that hooks into Unity and adds new artwork to Asset Bundles without the user having to have any Unity knowledge. There might be other options, too. But a lot of this depends on the skills of the programmers taking part, and how much time they're willing to put into the project. But these are discussions best had once the simple tools are in progress and people have a better idea of scope and what is / is not possible within our framework.

  • Like 1
Link to comment
Share on other sites

On 9/8/2023 at 8:57 AM, drages said:

You will make code wise things for sure like editing stats, adding new weapons but my concern is about visuals. At X-1, I could add anything 2D as everything was 2D but now even I notice some items images are 2D, there are tons of 3D things too. Will we able to add new weapon models? Or at least will we able to change the texture of the weapons or armors? Same for air content, adding new plane/ air weapons with new images.

Sam for UFOs. As you throw out classic XCom UFO design and used premade ones, you already killed it, but still we need to able to add new UFOs at least changing the texture. Premade UFO designs ruined most of the X-1 modding ideas and it was really sad that you did this again with the second game. Maybe you still add the ability to do it so modders can replace the UFO's entirely and add new ones. Map making got a big role on this. 

But my biggest concern is about enemy side. Mod communities mostly add things that player can use, but I find it very boring if the enemy is same. I would like to add new enemies but I don't have any idea that you can do that at all. 

X-1 engine got many options you did not use at X-1. This made many things possible for us at X-1 era and we improve it with Community mod support. For example, enemies could use 2 weapons or at least we could make enemies use shields. We could do some respawn tricks/chains with the reaper method.

Items and research chains, we add some special items to the map as a map object which spawns as loot in the end of the mission, like Alien Memory Cards. With this, we could link those items for special researches. Same could be done for enemy inventory, a unique enemy which got a random chance to spawn in a specific UFO could open a special research. You don't need it to finish the game but this kind of things add replay and grind value to the game.

I am still sad that you did not play X-Division as I know. So you could understand many ideas possible to add this game with modding. It would be way easy to explain the concepts I got in my mind. 

Those are I can say for now. Good luck. 

Yes, this is one of those things where theoretically X2 will allow modders to do a lot more than they could in X1, but it just depends on how effectively we can give the user access to our development systems (and whether users can learn to use them effectively, because they can be pretty complex at times).

The tiles for the X-Com style destructible UFOs are still in the game, by the way. If we can manage to find a way to give modders access to the level editor then there's no reason why you have to use the premade UFOs.

Link to comment
Share on other sites

Well I work as DevOps/SRE/SA (depends on organization really, recently even as backend developer primarily developing Platform Engineering platform for team of developers, so they can use it without dealing with Ops part, hence I have strong background in Software Engineering with Go, Java and Python background (wrote plenty of tools and worked on various micro-services based projects) and also have solid foundation with C#, because with how many ecosystem I have encountered and worked with - yeah, not experience with game dev I know.

But I absolutely suck at everything Frontend, UX/UI related. Not that I am stranger to it, but they are my weaker side. And also when it comes to design, I might be good at planning and executing architecture of an entire or part of a product ecosystem and business logic but things like maps/level design and etc, a big no.

So, what I am trying to say backend I can do but if bulk of development is around implementing intuitive interface, yeah that's another story. 

As for Asset Bundler's limitation, personal opinion and in regards to investment and engineering effort, as far as things as integration, adaptability, unity plugin's approach wins, consequences are minimal. And you can even make money of it by charging on Unity store, if you chose due to shareability options

As for standalone tool, there is much more complexity involved there at each stage of operations we would want to achieve, particularly when it comes to handling formats and loading to Unity assets and etc, it's a lot more complexity (like even possibility of having to automate some process in Unity editor itself, which sort of is contradicting) and effort with really the benefit being flexibility (plus the class-platform being another thing to consider).

Not to mention, for me personally anyways,  it's easier to learn to us Unity as platform and write plugin in C#, it's not really an obstacle just takes a bit time than the secondary tool from ground up, just my two coins.

Edit: Assuming this actually comes to life, given the Unity drama going on. And just to be clear my understanding Unity is very basic, going back to days when I just play around with mini project, when it was still Unity 4, so yeah very much useless by now 

 

 

Edited by Senteliks
Link to comment
Share on other sites

Yeah, that´s an big Problem. I don´t know how the Devs from Goldhawk are thinking about that Unity-Drama.

But many Develpers worldwide will for new Projects mid and long-term use an other Gameplay-Creation-Module if that Drama goes on and Unity can enforce their demands. The Problem is not only that this Demands attaks the protecton of data privacy in the EU and the liberty from Developers / Modders which have to use the same Gameplay-Creation-Module for exactly that Game [Modders later then earlyer].

The only useable Gamplay-Creation-Engines of similar Quality are Unreal [the 2nd big one with Unity] and Clausewitz [Paradox Interactive]. With a lot of time the Developers have to create an Up-to-Date-Creation-Version of Open Source-Engines [like the Quake-Gameplay-Engine and similar]. Other Alternatives as Gamer I don´t see for Devs / Modders which work on the same Game earlyer or later in the mid and long term.

Edited by Alienkiller
Link to comment
Share on other sites

Godot is fairly decent alternative on surface I don't see a reason why X2 wouldn't be able to continue there. (yeah, yeah, porting things to another engine and all that but godot has advantage, which is it's C# based and robust)

In fact unity owns much to the fact being much older and having very little competition at the time. So it established itself on top of the food chain and now it's hands the most streamlined and convient platform to build games (yes it's engine it's very abstracted)

Unreal  is really overkil forl Indie titles like X2 and Clausewitz is build for different purposes.

 

 

Edited by Senteliks
Link to comment
Share on other sites

  • 2 weeks later...
11 hours ago, Inventoraus_Rex said:

Not really a pressing matter, as I don't have the time to contribute much at the moment, but are there any updates on this topic?

We're just finalising some stuff at our end. Turns out supporting modding (or, rather, supporting the community making mods) requires more at our end than we thought. But we're nearly done with the extra stuff.

  • Thanks 1
Link to comment
Share on other sites

On 10/9/2023 at 3:19 PM, SoulFilcher said:

I wonder how much can be done before we get our hands on the official tools.

Currently it's just basic JSON editing. You can only edit stats of stuff, and some very very basic AI profile tweaks, but I haven't figured out how to add new items yet.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...