|
Post by dragonkid11 on Oct 12, 2016 7:29:49 GMT
Long before this game was released, I already have a ton of ideas imagined upon watching the trailer alone.
Adding in new weapon type, different spaceship shape and possibly going into full soft scifi region.
After that game came out and my expertise in programming crushed, it's...kinda hard to mod everything I wanted.
But for now, I would like to focus on the smaller thing that made up the basis of the game.
Material.
So far, I see that material is basically just a bunch of stats and numbers piled together with a final colour to show off when it's on the outside.
Which means it's WAY more easier to mod than other things like trying to make pure scifi nonsense.
I was thinking of adding in a couple pure fictional material into the game, as well as some real life material that wasn't added to the game just for the hell of it.
Like for example, ice armor.
Currently, it's all speculation until I get home from college and start working.
Maybe I will get some progress in a couple days or weeks.
So, what are you guys modding idea that you have?
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 12, 2016 9:49:22 GMT
After that game came out and my expertise in programming crushed, it's...kinda hard to mod everything I wanted. I might be able to help out with the programing part, unfortunately I have no idea where to find some info on how to mod the game, do you know more? The biggest question for me is, will it be possible extend the functionality of the game, like displaying orbital parameters or custom missile control algorithms or are we limited to graphical (maybe animations?) and material mods. I know a thing or two about control theory, I would love to write a nasty space combat AI Structured and composite materials would be great, like honeycomb aluminum for tanks and silica aerogel - boron sandwich as turret armor. That is a great idea, but you might want to keep it away from the radiators and the engines I'm currently thinking about how to implement some sort of asteroid mining (basically giant fuel tanks with asteroid textures + refuel module on the ship). Then you could rendezvous with an ice asteroid and "refuel" your armor or decide to burn it for some extra ΔV.
|
|
|
Post by shiolle on Oct 12, 2016 12:44:28 GMT
I think programming skills are not needed in case of CDE. At first when I read about in-engine mod support, I thought about external DLL plugins and an available API for modders to work with. It doesn't seem to be the case; the game is just a single exe and as far as I can tell there is no mechanism to load external DLLs. You can basically mod anything in the Resources folder (except maybe shaders) by placing your own version of the files into the Mods in Application Data.
Therefore you probably can't mod in new homing algorithms. You can add/replace celestial bodies, including adding your own models and textures, but I doubt you can add a new model for a black box module. It seems even models for existing modules are procedurally generated.
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 12, 2016 13:59:38 GMT
I think programming skills are not needed in case of CDE. At first when I read about in-engine mod support, I thought about external DLL plugins and an available API for modders to work with. Are there any statements from the developer(s) regarding what kinds of mods will be supported? It is like I waited for a game like CDE since I read my first Arthur C. Clarke and Asimov books, would be a shame if I could not make some drones violate the laws of robotics Already on it. (not my model, I'm really bad with blender)
Now the drone makes wired beeping noises...
|
|
|
Post by nivik on Oct 12, 2016 15:20:27 GMT
I think programming skills are not needed in case of CDE. At first when I read about in-engine mod support, I thought about external DLL plugins and an available API for modders to work with. It doesn't seem to be the case; the game is just a single exe and as far as I can tell there is no mechanism to load external DLLs. You can basically mod anything in the Resources folder (except maybe shaders) by placing your own version of the files into the Mods in Application Data. Therefore you probably can't mod in new homing algorithms. You can add/replace celestial bodies, including adding your own models and textures, but I doubt you can add a new model for a black box module. It seems even models for existing modules are procedurally generated. I need to take a closer look at this, myself. From what I can tell in the stacktraces, I'm 95% confident that the game is written in Visual C++. Most of the modding community around similar games is in C#, which has more similarities to Java than C++ in my experience. For example, garbage collection is sort of an add-on in Visual C++, not a core part of the language, so I'll warn everyone right now that "weird edge-case memory leaks" is probably going to cause people blood pressure problems. :3 That said, KSP originally didn't allow external DLL loading: modding support was originally created by a player, who essentially compromised the game code to allow them to inject DLLs. They hired him and made it an official feature. IIRC.
|
|
|
Post by dragonkid11 on Oct 12, 2016 16:01:36 GMT
Okay, I have read the resource file again and while some of the files can be easily added and wrote into the list as they are neatly categorized.
...Some of the files feel like I'm trying to read Shakespeare out of wet spaghetti.
I can probably figure something out if I spent hours squinting at the lines but for now I'm just trying to get the head and tail of the files.
|
|
|
Post by shiolle on Oct 12, 2016 19:13:44 GMT
Already on it. (not my model, I'm really bad with blender) Now the drone makes wired beeping noises... I haven't unlocked black box modules yet (not sure what unlocks the ability to create them), so do you just select a model in the game or do you reference it somehow in the designs file? I got the impression that celestial body model is selected based on their names, i.e. you have to have models with the same name as your celestial body. I need to take a closer look at this, myself. From what I can tell in the stacktraces, I'm 95% confident that the game is written in Visual C++. Most of the modding community around similar games is in C#, which has more similarities to Java than C++ in my experience. For example, garbage collection is sort of an add-on in Visual C++, not a core part of the language, so I'll warn everyone right now that "weird edge-case memory leaks" is probably going to cause people blood pressure problems. :3 That said, KSP originally didn't allow external DLL loading: modding support was originally created by a player, who essentially compromised the game code to allow them to inject DLLs. They hired him and made it an official feature. IIRC. You don't need stack traces. It says so right at the beginning of the CDE.pdb file: Microsoft C/C++ MSF 7.00 I don't think that the language is relevant, or at least it's much less of a barrier than having to hack your way into the game. C# is certainly easier to pick up for those who only start learning programming, but if you have to write in C++ to create a mod, there will be people doing it. I think CDE has enough of a community already for that. However creating a good infrastructure for writing and using mods is in turn able to prompt people to make them. For me the golden standard of mods (and steam workshop) integration is Space Engineers. Making and sharing content, as well as turning mods on and off is extremely easy in that game, and look at the bustling modding community around it. And it's much less of a game after all the years in early access than CDE is right now.
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 13, 2016 8:38:55 GMT
I unlocked them in the infolinks menu (second entry) otherwise you have to finish the game (I think) and you can select the model in the black box design menu. I have only written some Assembly and C for microcontrollers, but shouldn't it be possible to write an API or RPC mod, something like kRPC?
|
|
|
Post by shiolle on Oct 13, 2016 9:55:46 GMT
I have only written some Assembly and C for microcontrollers, but shouldn't it be possible to write an API or RPC mod, something like kRPC? The mod you have linked, as all other modern KSP mods, use the extensive API (over 2000 classes) that KSP provides. I've not seen that original mod for loading external code nivik mentioned, but if I have to guess it must have used something like DLL injection. I'm in no way an expert on DLL injection, but from my limited understanding it consists of loading a DLL into the memory space of the target process and then making that process run some code from it. That's what I meant by hacking into the game. It's not necessary in KSP today. KSP loads all DLLs in the GameData folder at runtime without any of the above techniques, then it uses class attributes (a feature of C#) to know what components the classes in those DLLs are supposed to replace and it provides a wealth of interfaces to supply data to the mods via the DLLs that modders can include into their projects. This is what I mean by modding infrastructure. Of course, CDE doesn't have any of that. Your RPC idea should work, but you will still need to inject that DLL that will listen to those calls and execute them for you. The next logical step would be to inject a DLL that would just load other DLLs and run some code from them. That way you won't need another process to make those calls. In fact, that is probably how that original mod for KSP worked. Modders will also have to use a PDB reader to navigate through the PDB file to find what procedures they can call.
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 13, 2016 15:02:26 GMT
Of course, CDE doesn't have any of that. Your RPC idea should work, but you will still need to inject that DLL that will listen to those calls and execute them for you. The next logical step would be to inject a DLL that would just load other DLLs and run some code from them. That way you won't need another process to make those calls. In fact, that is probably how that original mod for KSP worked. Modders will also have to use a PDB reader to navigate through the PDB file to find what procedures they can call. CDE loads the OpenAL sound library and as the name suggest the source code is available. It should be possible to recompile it with some extra features. That sounds at least easier than injecting dll's.
|
|
|
Post by nivik on Oct 13, 2016 18:47:07 GMT
Of course, CDE doesn't have any of that. Your RPC idea should work, but you will still need to inject that DLL that will listen to those calls and execute them for you. The next logical step would be to inject a DLL that would just load other DLLs and run some code from them. That way you won't need another process to make those calls. In fact, that is probably how that original mod for KSP worked. Modders will also have to use a PDB reader to navigate through the PDB file to find what procedures they can call. CDE loads the OpenAL sound library and as the name suggest the source code is available. It should be possible to recompile it with some extra features. That sounds at least easier than injecting dll's. That could work, but you still run into the issue of not knowing anything about the game code's structure: what the classes are, what their member functions are, what you can access publicly versus what's private...not to mention more esoteric questions: What happens if I change a nozzle deflection before or after physics was calculated this game tick? What happens if I instruct the nozzle to deflect more than its gimbal angle allows? What happens if I try to deflect a non-gimballing engine? What happens if my AI script isn't terminated after the remote control is destroyed, and I keep telling a nuclear warhead to detonate after it doesn't exist in-game anymore? If the code is written in a way where it's assumed the person writing control code knows what the limits are, there may not be anything which keeps you from doing things which shouldn't be possible. You might wind up with rocket engines pivoting 120 degrees and poking out the side of the armor or clipping through fuel tanks. You might wind up with a nuclear bomb that goes off once per physics tick, forever, until the game crashes. You might be able to re-class the sun as a 10^18 gigaton nuclear bomb (though it's unlikely you'd do that accidentally). Here there be dragons.
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 13, 2016 22:00:25 GMT
Or even a Kraken . Well I thought that it would be harder than bending some jumps, let's hope we get super awesome mod support by qswitched in a couple of month. Think I will use the time to polish my rocket science skills... and thermodynamics... and nuclear physics... kinetics, optics, field equations... God I love this game And maybe I'll dust of IDApro and do some crackme's just in case, that's fun too. Sorry this is a thread about modding not Foos's todo list ^^
|
|
|
Post by xenophon13 on Oct 14, 2016 1:11:17 GMT
I think programming skills are not needed in case of CDE. At first when I read about in-engine mod support, I thought about external DLL plugins and an available API for modders to work with. Are there any statements from the developer(s) regarding what kinds of mods will be supported? It is like I waited for a game like CDE since I read my first Arthur C. Clarke and Asimov books, would be a shame if I could not make some drones violate the laws of robotics Already on it. (not my model, I'm really bad with blender)
Now the drone makes wired beeping noises... Hey foof, how did you manage to do that? I'm pretty decent with Blender and would love to use it for modding, but don't know how to get models into the game.
|
|
foof
New Member
Posts: 31
|
Post by foof on Oct 14, 2016 14:36:18 GMT
Hey foof, how did you manage to do that? I'm pretty decent with Blender and would love to use it for modding, but don't know how to get models into the game. Sorry for the delay I was at work. On windows CDE creates the following folder C:\Users\your username\AppData\Roaming\CDE. The appdata folder is normally hidden but you can type %appdata% (including the percent sign) into the address line of the file explorer and then create a link to a more convenient place (or just disable hidden files in the explorer setings). If you want to replace a 3D model for example the Spacesuit, you simply look up its name in CDEs resource folder in this case [...]steamapps\common\Children of a Dead Earth\Resources\Models\Spacesuit.obj. Then you create or modify the model and put it in the [...]\AppData\Roaming\CDE\mods\models folder. New models for black-box weapons are a little easier, just place the file in the \mods\models folder and choose it in-game in the black-box module designer. You have to unlock the black-box module in the infolinks or by completing the game. Textures should work the same way but I haven't tried that. Please keep us updated ok? Edit: I am oficially to stupid to use bbcode
|
|
|
Post by carrier0 on Jan 21, 2017 12:02:37 GMT
Is there a way to mod in fusion reactors and fusion torch drives?
|
|