[A12d] More Mechanoids (v1.07b - updated 31.12.2015)

Started by Orion, January 11, 2015, 08:25:33 AM

Previous topic - Next topic

Scottnov

Quote from: Canute on June 08, 2015, 07:12:33 AM
Edit: But i would be a nice idea to add some extra Capture Mech's event, like a software upgrade from Mechosoft went worng and all Mech's shutdown for a day until Mechosoft deliver a new patch.
And the Mechanoid hive manage it to add a virus into the software upgrade system, that activate the catastrophe recovery system on the Mech and let them go berserk or move away to find the Mechanoid hive.
This is a cool idea. Though, the reason for the shutdown would probably have to because of a solar flare, or maybe some kind of cybernetic attack on them, since there's probably no active source still updating mechanoids on the rimworlds. I feel like the event in which a virus could infect mechanoids would work better when installing a new upgrade or repairing mechanoids using spare parts (preferably the last one) as a very low chance for it to happen each time. Maybe with a certain, more expensive upgrade, you could either prevent viruses on a mechanoid entirely or maybe just reduce the chance to near impossible. 

Quote from: Orion on June 07, 2015, 12:54:07 PM
Oh, I didn't mean a curve here. More that the first version will keep this really simple (they just get very little damage from existing). But in a later version you'll be able to procude spare parts and will need them to fix up your mechanoids.
Ahh, I see. That seems like an interesting mechanic and another way to balance them. I assume mechanoids from hives haven't broken down due to constant repairs from other mechanoids?

Scottnov

So, excuse the double post, but alpha 11 came out, and though I am not a modder (though I have some limited programming knowledge) it doesn't seem to have introduced anything that would halt progression of the mod. What are chances looking like, Orion?

Orion

Quote from: Scottnov on June 09, 2015, 06:27:24 PM
Ahh, I see. That seems like an interesting mechanic and another way to balance them. I assume mechanoids from hives haven't broken down due to constant repairs from other mechanoids?
Indeed. They might also have huge factories churning out spanking new mechanoids from recycled material. Who knows how long it takes them to set up such a factory. Might even make for an interesting mod. Mechanoids that build a factory on your turf.

Quote from: Scottnov on June 10, 2015, 11:05:09 PM
So, excuse the double post, but alpha 11 came out, and though I am not a modder (though I have some limited programming knowledge) it doesn't seem to have introduced anything that would halt progression of the mod. What are chances looking like, Orion?
I haven't looked at A11 yet. In fact, I won't, for at least a week, so the hotfixes are out before I start putting work into it. Also I still have some issues to fix concerning A10 that most likely won't be solved by A11.
What causes the most work are actually not the new features. Most trouble is caused by refactoring (moved, renamed or optimized code) and decreased rights (public functions becoming private, etc.). Sometimes one little keyword can mean that I have to reproduce the functionality of one or more whole classes, just to work around the fact that I can't access or extend something anymore.
Also a major pain is the user interface. Since many people (myself included) prefer the EdBInterface, I have to make everything work for the normal interface and that one. And since EdB has pretty much hardcoded the default user interface, I can't just add another tab - I have to make everything work within the rules of the tabs that are already there. So essentially I have to try one workaround after the other until I've programmed one that doesn't break anything in the end while still doing what I need. It's a very tedious process.

Scottnov

Quote from: Orion on June 11, 2015, 04:40:00 AM
Indeed. They might also have huge factories churning out spanking new mechanoids from recycled material. Who knows how long it takes them to set up such a factory. Might even make for an interesting mod. Mechanoids that build a factory on your turf.
Definitely - though it's probably a project for another modder since you seem busy enough as it is. Might be cool too if they had the possibility to already be on the map when you crash land, though it might prove too difficult to survive in areas like that. Maybe you could even find a naturally spawned, broken down and partially destroyed mechanoid factory, which might have some old deactivated mechanoids that reactivate when you enter it. Successfully raiding one would give you a pretty nice source of scavengeable metal, however.

Quote from: Orion on June 11, 2015, 04:40:00 AM
I haven't looked at A11 yet. In fact, I won't, for at least a week, so the hotfixes are out before I start putting work into it. Also I still have some issues to fix concerning A10 that most likely won't be solved by A11.
Yeah, that seems fair. If you just managed to update it to A10 for right now, though, I'd be happy with that since A11 didn't add much that I feel is spectacular or anything, and I won't be downloading the update until I'm finished with my current colony. That's just me, but I'm pretty sure everyone would prefer an update to A10 and sometime later A11

Quote from: Orion on June 11, 2015, 04:40:00 AM
What causes the most work are actually not the new features. Most trouble is caused by refactoring (moved, renamed or optimized code) and decreased rights (public functions becoming private, etc.). Sometimes one little keyword can mean that I have to reproduce the functionality of one or more whole classes, just to work around the fact that I can't access or extend something anymore.
Interesting, I can understand how that would be quite frusturating.

Quote from: Orion on June 11, 2015, 04:40:00 AM
I haven't looked at A11 yet. In fact, I won't, for at least a week, so the hotfixes are out before I start putting work into it. Also I still have some issues to fix concerning A10 that most likely won't be solved by A11.
What causes the most work are actually not the new features. Most trouble is caused by refactoring (moved, renamed or optimized code) and decreased rights (public functions becoming private, etc.). Sometimes one little keyword can mean that I have to reproduce the functionality of one or more whole classes, just to work around the fact that I can't access or extend something anymore.
Also a major pain is the user interface. Since many people (myself included) prefer the EdBInterface, I have to make everything work for the normal interface and that one. And since EdB has pretty much hardcoded the default user interface, I can't just add another tab - I have to make everything work within the rules of the tabs that are already there. So essentially I have to try one workaround after the other until I've programmed one that doesn't break anything in the end while still doing what I need. It's a very tedious process.
Yet another thing to worry about, I see. It seems you've got a lot to work on, so it's perfectly okay to take your time. Might be a silly suggestion, but have you tried looking at how Mechanical Defense 2 handles it's droids for ideas on how to create a good workaround? I haven't ever used it, and it may or may not be compatible with EdB's interface either. But hey, I thought I'd ask anyway.
Again, I applaud your persistence with updating the mod, and I hope my queries aren't a bother to you.

Orion

Quote from: Scottnov on June 11, 2015, 05:13:24 AM
Maybe you could even find a naturally spawned, broken down and partially destroyed mechanoid factory, which might have some old deactivated mechanoids that reactivate when you enter it. Successfully raiding one would give you a pretty nice source of scavengeable metal, however.

I was working on a mod that would spawn random connected rooms in mountains, as my first mod, but never finished it. So generating mechanoid factories is possible (albeit tricky, if you want to make it really nice).

Quote from: Scottnov on June 11, 2015, 05:13:24 AM
That's just me, but I'm pretty sure everyone would prefer an update to A10 and sometime later A11
That's a good point actually. I guess I'll first finish everything for A10 then before proceeding with A11.

Quote from: Scottnov on June 11, 2015, 05:13:24 AM
Might be a silly suggestion, but have you tried looking at how Mechanical Defense 2 handles it's droids for ideas on how to create a good workaround?
Actually, I haven't. But that's not a bad idea. I'll take a look how they solved some things.

Quote from: Scottnov on June 11, 2015, 05:13:24 AM
Again, I applaud your persistence with updating the mod, and I hope my queries aren't a bother to you.
Of course not. It's always nice if people are leaving comments here.

Scottnov

Quote from: Orion on June 12, 2015, 03:28:39 AM
I was working on a mod that would spawn random connected rooms in mountains, as my first mod, but never finished it. So generating mechanoid factories is possible (albeit tricky, if you want to make it really nice).
Interesting, depending on the scale of mechanoid factories it might be difficult to find a place for them in world generation though. Maybe that could just be an obstacle though. if the player needs to expand in that direction, they'll probably have to take down the facility.

Quote from: Orion on June 12, 2015, 03:28:39 AM
Actually, I haven't. But that's not a bad idea. I'll take a look how they solved some things.
Happy to help, make sure to update us on how that goes.

AllenWL

Quote from: Orion on June 05, 2015, 03:48:55 AM
Quote from: AllenWL on June 03, 2015, 03:35:12 AM
What if mechanoids had 'thoughts'?
I was actually contemplating doing it like that. But the implementational difficulties were overwhelming (not that they weren't for any other part of this mod, but you have to make choices), since you can't just turn off the thoughts of "normal people".
I was thinking about this, but prisoners don't get cabin fever or joy needs(and in extension, joy-related thoughts), right?
Could something like that be used? Like get rid of their need for rest/food/space/etc to make them not get thoughts? I mean, they can't think 'cramped space' or 'hungy' if they have no need for space or food right?

Orion

Quote from: AllenWL on June 13, 2015, 01:50:58 AM
I was thinking about this, but prisoners don't get cabin fever or joy needs(and in extension, joy-related thoughts), right?
Good thinking, but I've been down that road already. There's this hardcoded section:

private bool ShouldHaveNeed(NeedDef nd)
{
...
return (nd != NeedDefOf.Joy || this.pawn.JailerFaction == null) && (!nd.colonistAndPrisonersOnly || (this.pawn.Faction != null && this.pawn.Faction.def == FactionDefOf.Colony) || (this.pawn.JailerFaction != null && this.pawn.JailerFaction == Faction.OfColony));
}


What it means is that if the character is a prisoner, he won't have joy. Preferably I'd just add a need "Maintenance" and "Charging" and add some activities for getting those, but while easy on paper, it's close to impossible in code :-\

Orion

Quote from: Scottnov on June 12, 2015, 06:33:32 PM
Quote from: Orion on June 12, 2015, 03:28:39 AM
Actually, I haven't. But that's not a bad idea. I'll take a look how they solved some things.
Happy to help, make sure to update us on how that goes.
Okay, I checked how mechanical defense did it and ... they just didn't. Instead of using the mood / needs tab they use the lower left status box to display the battery level of the droids.

So I think I'll stick with not having any needs (apart from repair) for now.

Orion

Alpha 10 version
Finally, I've managed to convert the mod to A10. PAL is gone now, though. I tried to test it as much as possible, but if you spot any problems, please let me know (and include a screenshot of the detailed error message, or your output_log.txt).

Have fun!

... now off to fix A11 ...

Scottnov

#370
Quote from: Orion on June 13, 2015, 05:14:23 PM
Alpha 10 version
Finally, I've managed to convert the mod to A10. PAL is gone now, though. I tried to test it as much as possible, but if you spot any problems, please let me know (and include a screenshot of the detailed error message, or your output_log.txt).

Have fun!

... now off to fix A11 ...
Awesome! I'm gonna go install and subsequently test it now, finally Army of One shall rise from his metal prison and join his subjects on the field.

Quote from: Orion on June 13, 2015, 10:52:51 AM
Okay, I checked how mechanical defense did it and ... they just didn't. Instead of using the mood / needs tab they use the lower left status box to display the battery level of the droids.

So I think I'll stick with not having any needs (apart from repair) for now.
Huh, interesting. Hopefully they implement custom needs into modding support in the future.

Also, I had a thought, this mod seems more about improving on mechanoids as a concept in general. While I'm not asking you to change it since you are the creator of the mod, wouldn't a name like "Mechanoids+" or "Enhanced Mechanoids" be more fitting?

Edit: Alright, I just revived Army of One. As it turns out, HE is actually a SHE. Who woulda thought? But that's beside the point, I have a few questions:
1. Can all mechanoids not fight at all? I haven't gotten to test if they fight in self defense, but seeing as how that's their primary function when you first see them, it might should either be a re-purposing option or an upgrade since I can understand them not being able to fight always or at least not well for balancing reasons.
2. Adding onto what's above, I think, if possible, they should not come equipped with a weapon when they start out. It should probably be an upgrade, but for now it's fine.
3. More of a suggestion than a question, but what if colonists gained a different mood bonus for talking to mechanoids? One that's either slightly higher or lower than talking to a human and has flavor text like "I talked to that robot that we have work around here. What an interesting little tin can." or something like that.
4. Colonists should automatically repair mechanoids when they need it, but you should have the option to repair them fully at any time. Colonists never fully repair a mechanoid, they only repair the more heavily damaged parts. Another workaround might be making repairs an operation, which will, with some time (and later the right parts), fully repair the mechanoid.

Orion

Quote from: Scottnov on June 13, 2015, 05:22:05 PM
Also, I had a thought, this mod seems more about improving on mechanoids as a concept in general. While I'm not asking you to change it since you are the creator of the mod, wouldn't a name like "Mechanoids+" or "Enhanced Mechanoids" be more fitting?
I could call it that. But the way I saw it is that it just puts more emphasize on the Mechanoids aspect, for those who like it. So you get "more mechanoid stuff", so to speak.

Quote from: Scottnov on June 13, 2015, 05:22:05 PM
1. Can all mechanoids not fight at all?
Correct, although some might fight back if you try to decommission them. If you want some lore behind it, I'd say the colonists purposely take the fighting aspect of the AI out, since they're scared shitless to have these things turn against them (again). Think Doctor Who with "friendly" Daleks running around his house.

Quote from: Scottnov on June 13, 2015, 05:22:05 PM
2. Adding onto what's above, I think, if possible, they should not come equipped with a weapon when they start out. It should probably be an upgrade, but for now it's fine.
True. I skimmed on that detail for the sake of getting it done faster.

Quote from: Scottnov on June 13, 2015, 05:22:05 PM
3. More of a suggestion than a question, but what if colonists gained a different mood bonus for talking to mechanoids? One that's either slightly higher or lower than talking to a human and has flavor text like "I talked to that robot that we have work around here. What an interesting little tin can." or something like that.
I was thinking that too. Maybe even have a personality trait for liking/disliking them and getting a positive / negative buff for having them around.

Quote from: Scottnov on June 13, 2015, 05:22:05 PM
4. Colonists should automatically repair mechanoids when they need it, but you should have the option to repair them fully at any time. Colonists never fully repair a mechanoid, they only repair the more heavily damaged parts. Another workaround might be making repairs an operation, which will, with some time (and later the right parts), fully repair the mechanoid.
Right now indeed they only fix what needs fixing the most. A "total repair" button is a good idea. Then the mechanoid would go into standby and a colonist would repair everything that is damaged. I'm curious how that'll be once spare parts are part of the equation.

Orion

Changelog
1.04a - 14.06.2015
I've implemented your suggestion of a "full repair". Now you can just set a mechanoid to full repair and he'll stop and wait until he's fixed up. Also, in full repair mode colonists are going to fix every little dent.

Scottnov

#373
Quote from: Orion on June 14, 2015, 04:48:39 AM
Correct, although some might fight back if you try to decommission them. If you want some lore behind it, I'd say the colonists purposely take the fighting aspect of the AI out, since they're scared shitless to have these things turn against them (again). Think Doctor Who with "friendly" Daleks running around his house.
Seems logical, I definitely think there needs to be a way for them to fight through upgrades/research somehow, though. I mean, obviously it can't come cheap, since having an army of pretty much immortal soldiers that are more durable than the strongest of humans would not exactly be what you'd call 'balanced'.
EDIT: I just had a thought; what if the ability to do combat was a mid-to-late tier upgrade, but each time it is applied to a new mechanoid there is a small chance (around 5% or so) that that mechanoid's old function will "re-awaken" and the mechanoid would go around acting like any old "wild" mechanoid?
Quote from: Orion on June 14, 2015, 04:48:39 AM
True. I skimmed on that detail for the sake of getting it done faster.
S'fine, I probably would have done the same.
Quote from: Orion on June 14, 2015, 04:48:39 AM
I was thinking that too. Maybe even have a personality trait for liking/disliking them and getting a positive / negative buff for having them around.
That'd be pretty cool. If possible maybe it should depend on their backstories and skills, ex: a mechanoid nerd with high repair and research would love talking to one, while a tribal with opposite stats would not enjoy talking to one.
Quote from: Orion on June 14, 2015, 04:48:39 AM
Right now indeed they only fix what needs fixing the most. A "total repair" button is a good idea. Then the mechanoid would go into standby and a colonist would repair everything that is damaged. I'm curious how that'll be once spare parts are part of the equation.
Quote from: Orion on June 14, 2015, 02:54:28 PM
Changelog
1.04a - 14.06.2015
I've implemented your suggestion of a "full repair". Now you can just set a mechanoid to full repair and he'll stop and wait until he's fixed up. Also, in full repair mode colonists are going to fix every little dent.
I appreciate it!

EDIT: Something else I thought of is the option to zone an area for mechanoids specifically to rest in. Mostly so I can make Army of One sleep in her tomb, but also to create "workshops" where they can easily be repaired from a single place.
EDIT #2: I recently repurposed a Crawler who I affectionately called "BUD-E", however, BUD-E seems to be very ineffective in most respects because he can only go for about a minute before he needs full repairs. Because of the low HP of crawler parts, even taking a single point of deterioration damage increases crash chance dramatically. Maybe either make them get a much smaller gain to crash chance when a part starts to deteriorate or make parts deteriorate much slower on crawlers.

Orion

Quote from: Scottnov on June 14, 2015, 05:10:45 PM
Seems logical, I definitely think there needs to be a way for them to fight through upgrades/research somehow, though. I mean, obviously it can't come cheap, since having an army of pretty much immortal soldiers that are more durable than the strongest of humans would not exactly be what you'd call 'balanced'.
EDIT: I just had a thought; what if the ability to do combat was a mid-to-late tier upgrade, but each time it is applied to a new mechanoid there is a small chance (around 5% or so) that that mechanoid's old function will "re-awaken" and the mechanoid would go around acting like any old "wild" mechanoid?
Could work. Although this sort of gamble probably will either keep people from using the feature entirely, or get rather annoyed when it actually happens. Both not a desirable outcome.

Quote from: Scottnov on June 14, 2015, 05:10:45 PM
That'd be pretty cool. If possible maybe it should depend on their backstories and skills, ex: a mechanoid nerd with high repair and research
would love talking to one, while a tribal with opposite stats would not enjoy talking to one.
I wouldn't really know how to do that. The normal backstories have these things hardcoded. I think I can only make it random.

Quote from: Scottnov on June 14, 2015, 05:10:45 PM
EDIT: Something else I thought of is the option to zone an area for mechanoids specifically to rest in. Mostly so I can make Army of One sleep in her tomb, but also to create "workshops" where they can easily be repaired from a single place.
I'm rather against having zones for "menial" purposes, since they complicate how the game works. What would work, though, is that just like the droids you can build restplaces for them. Although I think right now it gives them more personality that they pick their own favorite spots to rest.

Quote from: Scottnov on June 14, 2015, 05:10:45 PM
EDIT #2: I recently repurposed a Crawler who I affectionately called "BUD-E", however, BUD-E seems to be very ineffective in most respects because he can only go for about a minute before he needs full repairs. Because of the low HP of crawler parts, even taking a single point of deterioration damage increases crash chance dramatically. Maybe either make them get a much smaller gain to crash chance when a part starts to deteriorate or make parts deteriorate much slower on crawlers.
Actually they already gain less damage, but not proportionally less. The crawlers, with their fast speed and tasks colonists never get around to are by far the most useful, so they need to be nerfed accordingly. Maybe just a little less, we'll see :)