[Project] (Alpha 8) Stone to Steel

Started by ItchyFlea, April 25, 2014, 02:05:05 AM

Previous topic - Next topic

ItchyFlea

Right, I did an update. Now to take another 3 week break. :P
I'm kidding of course. Updates will hopefully happen much more frequently.
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

Psyckosama

Might be interesting to make it so instead of being about a space colony its about being a primitive tribe. Maybe repleace the creatures with dinosaurs?

ItchyFlea

Despite wanting to do updates more quickly, updating this to work with A4 is taking longer than I expected.
Heck, the output log containing a list of what was wrong with this mod was 60kb in size, rather than 4kb, and that was after fixing everything that would have otherwise just outright crashed the game.
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

mrofa

All i do is clutter all around.

ItchyFlea

Considering what I've seen the in changelog for what is most likely going to be in Alpha 7, I am bringing this back from the dead. I will be starting this from scratch, and as such am currently simply back to the planning stage.

Hopefully everything that's being added to A7 will work how I think they'll work.
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

Duncan

I think this is one of the most important mod ideas because much of the functionality in it is groundwork that will enhance or enable a lot of other mods. Plus I love survival gameplay. I may consider donating some .dlls depending on available time and other factors.
I have some questions:

1. Is there some sort of shared repository where progress and changes can be shared for collaboration? If you want to go it alone that is fine but in my experience setting up git/svn and a basic forum/wiki/bugtracker makes a huge difference when people are working together. I have a redmine instance up on openshift if you want me to create a project for you.

2 . How attached are you to the total conversion idea? i.e. the part about not being able to progress beyond copper. My idea was that once copper casting and forging are available it is possible to make wire. If you have copper wire you can create a primitive transmitter. My original idea was that at this moment a research bench could become available through traders, and the standard game tech tree could be unlocked.

And some suggestions:
These are fairly advanced and only proposed for consideration once the basic mod is made. I understand that some of these ideas could be hard to implement. Obviously getting the basic steps done that you initially proposed is the first priority. Let me know if there are any small tasks I can help with.

Passive research:
Generally in this mod research is not necessary, it hinges upon having the tools or not, and an item progress tree would be the primary means of advancement. There are some things however which can be discovered. One idea I had was to make the research tree invisible, and make all jobs have a research component. Every time I melt copper for example a few points are added to smelting research. Once researched this unlocks tin and/or bronze. This has the effect that you play normally and at some point one of your guys simply shouts 'eureka!' and you have a new tech. This would feel much more natural than the current tech system.

Animal AI overhaul:
Unreal World has a brutally unforgiving hunting system. Many a hunter has starved to death while stalking and chasing his prey over the course of several days. Although the Rimworld engine would not really support the full depth of hunting and trapping from UW, some improvements are possible. Your idea about animals that fight back is one example. Animals that run away would be another. The normal behaviour for non-agressive creatures should be to maintain a safe distance from colonists. Cornering them or ambushing them should be part of hunting. A stealth mechanic would also go a long way here but that is a really tough one.

Seasons:
Cold harsh winters and other environmental effects are a huge bonus to survival gameplay. I think there might even be some vestigal code in the engine for low oxygen environments. I think having a super cold winter where plants wont grow and people can't spend long outside should be a priority for any mod.

ItchyFlea

Quote from: Duncan on September 11, 2014, 08:24:30 AM
-snip-
I like going at projects alone, and feel that the .xml side of this will be something I can do alone. The C# side however, I'll definitely need help with. I've never used anything like git/svn, but there's a first time for everything. :)
As for textures I've got someone in mind.
In the past I was attached to the idea of sticking to the colonists being permanently stuck in the chalcolithic age, however I am not anymore. I have some ideas regarding progression towards communications technology before reaching a level where power generation can occur.
The passive research system could be an interesting way to unlock tech.
I like the idea of passive animals keeping their distance from colonists. I just finished watching the video they've got on their website for Unreal World. Looks like I'll be playing that game to see what they've got that works that could be applied to this mod.
Seasons, while applicable, are definitely a future addition.
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

Duncan

I tried out .dll modding and it was surprisingly simple. I wrote a simple test mod to see how easy it would be to prevent jobs based on equipment/apparel/other pawn attributes and it worked fine. The mod I made simply prevents any character from chopping trees unless they have a Lee-Enfield equipped.

Basically on the xml side of things all that was required was setting a custom WorkGiverDef for the task that needs to be tool based. The only thing that needs to be changed is the giverClass tag. That makes the WorkGiver use my custom code and not the normal one. Basically it is as simple as:


<WorkGiverDef>
<defName>PlantsCut</defName>
<giverClass>RimworldDLLTest.WorkGiver_PlantsCutTest</giverClass>
<workType>PlantCutting</workType>
<verb>cut</verb>
<gerund>cutting</gerund>
</WorkGiverDef>


It is probably a good idea to check what changes, if any, are coming for equipment and apparel for Alpha 7. Then you need to decide what is the best way to implement tools as items. After that it should be no big deal to integrate them into the work system.

Duncan

I checked the daily changelog, so far the only relevant information was:
"Equipment (weapons etc) can affect stats.
Apparel can now affect any stat, including work speed, psychic sensitivity (tinfoil hats!), social impact, etc."

This is great for this mod as it means you can simply set various tools and items to have a bonus or penalty to their relevant job skills, i.e a copper pick mines slower than a bronze one.

I also wrote a thread trying to get information on secondary equipment. If that gets an answer it should be very helpful.

ItchyFlea

Well, new ores cannot be added to this version of the game. At least not easily. I've found a way to get a single block of a new ore to spawn, but that's it...

Although I do know of a workaround solution where a single ore can be made to drop multiple types of ores. Well, more specifically become a new ore type when mined. Unless that was a bug that got fixed...
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

mrofa

All i do is clutter all around.

Duncan

It appears you are right, I looked into the code and there may be a dll solution but I am having issues. It is hard coded with the 4 current ore types and the class that codes it is difficult to mod. If you mod an ore it will be in the game, but it can't spawn in mapgen.

In the mean time, what you can do is change the name, description, graphics and droptypes of the current minables. Currently a certain percentage of ore is generated, of that 3% is gold, 3% is plasteel, 5% is silver and the rest is metal. These percentages are also hardcoded.

Given that you didn't want a lot of metalworking, maybe copper and tin but no more, what I would suggest is modding MineableMetal to just be another normal rock, and then mod gold, silver and plasteel to be copper, tin and maybe something like flint or obsidian. This will make those materials very rare but in a stone age mod that should be fine.

In case I do get mineables working (and out of curiosity anyway), what mineables did you want to mod in, and how common should they be?

Duncan

Woot I did it. I posted the mod for anyone to use in this thread. Just download it and follow the instructions there and you will be able to mod as many custom minerals as you want.

ItchyFlea

#28
I've got some freetime today so I've started work on the mod.

Can you make the workgiver mods so that they simply look for someone holding a weapon starting with "HandAxe_" and "Pickaxe_" and have the rest of the name as a variable?

EDIT: Attached to this post the results of todays work. Download here: http://ludeon.com/forums/index.php?action=dlattach;topic=3303.0;attach=4076
What does this do?

  • Adds in 2 ores, copper and tin.
  • Modifies the butcher table so that deer antlers can be obtained (2nd butcher creature option) bronze can be made (out of 9 copper 1 tin), copper and bronze pickaxes can be made.
  • Deer Antler pickaxe has mining speed of 0.2
  • Copper pickaxe has mining speed of 0.5
  • Bronze pickaxe has mining speed of 1
  • Deer spawn in all biomes with a commonality of 0.5
In other words, not much yet.
Actual gameplay isn't really affected yet, so this more or less is just a cosmetic addition to the game at the moment.

[attachment deleted by admin: too old]
All my mods are licensed under a Attribution-NonCommercial-ShareAlike 4.0 International
Ask for permission before using in ModPacks

Click here for a list of the mods I've created

Duncan

Good to see some progress. I still feel like weapons are not the best solution though as I feel like a pawn should be able to carry an axe and still fight with a bow, but I think it is probably best to go ahead with what you are doing and refactor it later. As Tynan says in his blog, it is better to iterate fast and not care about making it perfect.

I set up the tool restrictions as you asked, you can get the files here. It is set up so that the pawn needs to be wielding any weapon which has a defName starting with "Pickaxe_" to mine, and with "HandAxe_" to cut trees. Please note the capitalisation, I copied it from your post. I understand why, pickaxe is one word and hand axe is two. But it could be confusing. If you want it changed let me know. Maybe something like 'Tool_Lumber_' and 'Tool_Mining_' or something along those lines. Whatever you want is fine by me though. To integrate my files with your mod just copy the dll into the assemblies folder, and the BaseWorkGivers.xml into the Defs/WorkGiverDefs.