TUXDB - LINUX GAMING AGGREGATE
by NuSuey
NEWSFEED
▪️ GAMES
▪️ STEAM DECK ▪️ DEALS ▪️ CROWDFUNDING ▪️ COMMUNITY
tuxdb.com logo
Support tuxDB on Patreon
Currently supported by 8 awesome people!

🌟 Special thanks to our amazing supporters:


✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Benedikt][David Martínez Martí]

Steam ImageSteam ImageSteam ImageSteam ImageSteam ImageSteam Image
Human Factory Devlog 18/12/2020

Monday 14th: So the first thing I am doing today, as the final part of fixing the compile errors, is to improve the 'HumanSave' class and make it shorter. This is so that I can see all of the components in the brackets when I attempt to make a new save. I'm doing this by subdividing the values into different classes. For example, I just made one for 'HeadSave' which might have some utility when I improve Heads later. Also another one to handle position and rotation, crunching 6 items into one (TransformSave) on the actual HumanSave. This is a really minor task but hey it's on the list and I don't question the list. This should be a default for any project to be honest. Next one I'm making is 'Genetics' to cover all things that are inherited and not changed throughout life. This can stay on the Human as well as the Save and may be useful later. Getting rid of the part that randomizes Torso sizes. If it's there, it should be based on other stats like Strength and/or I should use premade models. Really just sorting out the HumanSave class and making sure it's all nice and perfect. Actually got rid of 'HeadSave' and rolled it into 'Genetics', because the Item remembers the Human anyway. Some stats exist in both 'Genetics' and on the HumanSave, because these are ones that can be changed during lifetime. A few other changes as well as I go. Just making this as clean and easy to understand as possible. Lots of stuff to clean here. Not going to list it all. Just ignoring time constraints and taking the long road instead of the easy road each time. As I go, I'm getting more ideas for improvements and changes, and adding them to the list. I may be here a while, but I think this will help me make rapid progress in the future. Ok managed to clear all errors again. Now I have a few bigger things to whack off the list before I get to more Hydra heads. Ticked all appropriate 'Buff' and 'Edible' item bools in the editor. Same of 'Stations' and 'FoodContainer' bool. Turned 'Dead' into a 'Buff' and changed the way it works a bit so I don't have to ask for it so often. Using 'savedmood' and 'savedhp' which I made earlier. Got rid of the Bar being a FoodContainer as well idea. I think it's fine to let players just make that themselves. Added a string 'Intent' to deal with ambiguities when a Human reaches a target. For example, when I reach a piece of food, am I intending to Eat or Feed someone? If I reach my Bed, am I intending to sleep or Mate? If I reach a person, fight or flirt? This is part of smoothing out what happens in the code when a Human reaches its Target. Adding loads of new things to the list as I deal with the error messages in the script editor, and see improvements to be made. Taking some of these things on my list and shuffling them to later with some edits. Did a bit more and got some of the easy things off the list. I think that's enough for today, just tidying up the list to make it easy for me to process tomorrow. Got a bunch more little things that are difficult but don't require much brain power, a bunch of things to finish off the Station and then a bunch of tricky things. Tuesday 15th: Ok so today just going through the list as I made it. Hopefully I'll still have my sanity at the other end. I occasionally copy it here into the devlog so I'll do it here again to give a better idea of my process. - Reuse the same float to do rolls when doing the genetics for a Human. - Get rid of 'HeadSave' class. - Make GameObjects in Buildings 'Buildings'. Do the same for Items. - Turn Quality Stats into floats and have them deteriorate when dead. There should be a separate stat to handle a corpse's freshness. - Make 'HumanParts' a list of strings instead of a list of GameObjects. Same with Organs. Check for them appropriately in Chopper, Skullverizer etc. - Cancel throwing poo for now. - Make Idle Humans pick a random direction and walk that way. (it's already in there somewhere!) - Make sure to 'DecideNextMove' for Humans when placing them and ejecting. - Use 'HP > 0' on Decide next move. Check for and replace/remove looking for 'Dead' buff. - Make Human's 'Lines' a reusable script. - Use Station.LoadHuman when placing them with a tentacle. - Set usetimes for each Station. - Make Buildings contain an Animator State for the Humans inside to be referred to by the Processor and Building. - Make teleporters use power based on distance. - Sort all Station Inpoints in the Editor. - Sort animations on Stations (Load, Mount, Use, Finish). - Homogenize the way Sound is played on Stations. - Add Dismount phase to Stations and make sure they get to their outpoint. - Redo 'Mad' - Have certain items perishable and make them lose quality depending on that rating. - Use 'GetNearbyHumans' for 'ShowTentacle', and make sure there is an option to check if the Humans can see (not sleeping/dead or looking this way). - Redo Wall Flipper. They should not be something that fits on a wall, but a station with a wall on it. Also fixing Buttons to make them a lot better. Tons of edits to be made to lines of code, most of them very simple and tedious. I seem to remember Hercules killed the Hydra by just constantly striking off heads and hoping for the best? Ok I got the first chunk done. Now onto Stations. It's 12:30 and I now have to completely shift gears in my brain from rapid Hydra slaying to careful Gorgon hunting. That means taking a nap first, or at least a few minutes to meditate. Hands are already tired. Cleaned up and fixed a lot of things in the Station and now I'm happy with it. Some trickiness with some Stations being 'Continuous', meaning they repeat if the Human is still up for working. And some Stations having multiple outcomes based on 'Intent', meaning I won't want them to 'DecideNextMove' but just leave the Station and carry on. So that's 2 out of 3 of the lists I made yesteray. Also got myself a new list of things: - Stop Printer from Printing Food. Make it only print Humans. - Improve Btns. Homogenize animation and tidy. - Clean and fix 'Grab' and 'Place' scripts. - Remove 'Log'. Can bring it back if it's useful. - Label 'Bed', 'Effigy' and 'Treadmill' as 'Continuous' Before I go on to part 3 of 4 of my to-do list, it's 3pm so I'm going to take another little break. Seems my brain wants to sprint today so I have to pace it. Having a think about the Wall Flipper. I was thinking about making it a 2x1x2, with the floor tiles on either side reserved and probably with a circular slice so it can rotate on the Y axis. Much easier to animate. Now, actually, I'm wondering if I need it at all. Getting Humans through Walls has not been a problem since Conveyors go through Walls and create a tunnel automatically. So, if I wanted to introduce this function, I could simply have a Lure attached to a Conveyor Belt. I'm thinking of like a Conveyor with a Lure hanging above it. Or maybe the big Door, 1x3x1, is best, with space above the Door to put a sign. Going to go with the 1x3x1 because I think it looks the best. That means making a placeholder in Unity. Going to leave it there for the day for now. Wednesday 17th: Let it be on record that I know a lot of the things on the list yesterday were stupid, I dealt with them as I saw them. First task today is to redo 'Mad'. Reprogrammed Mad. Was very easy. Made Items lose Quality and other stats over time based on their perishability rating. We'll have to test how this works in real time to get the numbers right. Added a bool 'excludesleepers' to the 'GetNearbyHumans' function, and set it appropriately for each instance. This won't be true when summoning a Human, but will be true when deciding who to talk to and who sees the tentacle when it appears. Buttons tidied. Planned out a new tutorial. Decided to get rid of the Printer entirely and give the Incubator an alternate function. Cleaned and tidied 'Grab' and 'Place'. Didn't see anything I wanted to change. Got rid of 'Log'. Just felt like it was unnecessary and could otherwise be done better. Labelled the appropriate Stations as 'Continuous'. Making a common function for 'OutCargo' which can be used by Transports and other Buildings to pass any Item out. This simplifies things a lot. I wish I had these practices when I started programming this. Makes me excited to code the next game. My main worry is that I haven't really thought about what it will be like when the pipes are blocked. I want to try and make it so it stops and doesn't take up any processing until it's freed up again. Making many improvements to the 'OutCargo' code as I merge 2 scripts together. Fixed an ambiguity where some Stations have Processors where I want to be able to have the Humans mount it by choice. In these cases, I made a bool called 'ManualProcessor'. On LoadHuman in the Station, if ManualProcessor is true then we activate the Processor and ignore the rest of the Station script. Made this to help me figure out improvements for the Container: - When should Containers attempt to export an Item? - At Start. - When an item is added to the Outbox... by 'Place'. by 'OutCargo'. by 'MakeItem'. - When NextStation/NextTransport/NextContainer successfully 'OutCargo's. - When the Outpoint is connected (ConnectTransport). - What should happen when a Container Fails? - Nothing. It will try again when it is triggered. The tricky one is 'When NextStation/NextTransport/NextContainer successfully 'OutCargo's.'. The rest are easy. It's not so easy to check for which Container is connected to any given Building, only the other way around. A Building knows what is connected to its outpoints, but until now it doesn't really need to know what is connected to it. I could ask all Buildings who is connected to the target, but that seems a bit processor heavy. I could say, on 'OutCargo', if the source Building's Inpoint's parent Building has a Container, update it. So for Transports: if (building.Transport.CurrentInpoint.In != null) { if (building.Transport.CurrentInpoint.In.Building.Container != null) { building.Transport.CurrentInpoint.In.Building.Container.Do(); } } While I'm doing this, I'll do the same for Transports (moving = true), Stations (LoadHuman) and Processors (LoadSource). Now, what happens when a Station attempts to Eject a Human, but fails? It should pause, and we should only LoadHuman from this location if it is in this paused state. Buildings don't actually remember their Inpoints except for the Transport. It's tedious but I'll need to fix that. Should be a list of Inpoints, which it would be best to link up manually. Then that's who we ask if anyone wants to move their cargos. Attached all the Inpoints in the Unity Editor. Bit tedious but not too bad. Added an appropriate perishability rating to all Items. Cleaned out unnecessary stuff from the Transport script so that there is less happening in the Update and instead Moving will be made true only when needed. Now my list looks like this: - Redo Wall Flipper. They should not be something that fits on a wall, but a station with a wall on it. - Remove Printer. Give the 'Incubator' at start and give it option to print Humans for Squid instead of DNA. - Redo Tutorial. Hopefully will finish this by the end of the week. Then I can either start on the UI or something else or start testing and fixing. I'm expecting a lot of bugs but, with the way I'm coding it now, they will be easy to find and fix. Calling it a day. Thursday 17th: First task today is to get rid of the Wall Flipper and replace it with what I'm calling a 'Human Gate' which will have the same function. Not going to use any code or prefab from the Wall Flipper. Going in fresh. Wrote the new code for 'Summon Human' which should work for both Humans and Stations. And yes, all the work I've been doing over the past couple weeks was worthwhile, because I was able to do this in 3 lines: human.ClearOccupation (Clears the current Human's activity and cancels whatever they were doing). human.Target = obj (Sets the target as the designated GameObject). human.MakePath() (Sets the Human on its way with its new activity, with everything else handled within this script). Then, the Human will be on its way and when it reaches the Station, the 'LoadHuman' script then automatically will process it through the Human Gate. So I actually don't need to add any more code to complete the Human Gate. In Station, the script automatically processes the Human. Phase 0 is standby, Phase 1 is mounting the Human, Phase 2 is 'Use' where ongoing effects like with the Treadmill and Effigy occur, Phase 3 is dismounting and then the Human is ejected out the other side. In the case of the Wall Flipper, once a Human has been loaded thats its only function. So that's that!? Very cool. Actually there was one thing (at least). Needed to add 'excludeunreachable' option for 'GetNearbyHumans', so that the Human Gate and other Humans can only search for Humans who can actually reach them. I'll probably need more of these as I go, like 'Is human alive?' and 'Is human too busy to talk?'. [Did all that]. Made the placeholder mesh for the Human Gate. That completes the Human gate for now! Removed all trace of the 'Printer'. I will do the new UI Button for the Incubator when I get to that, since all of that code may be redundant at the moment so I don't want to add to it. New item on the list: Cameras should not appear on Walls. Make them attached to the ceiling (visual touch only) so player can put them anywhere and we can simplify the code. I think that's a bridge I'll cross when I come to it because I really need to get back to testing and fixing. Deleting the code for building the camera/wallflipper (wall mounted Buildings) so it will definitely come up in testing. Next item on the list is Tutorial, but you know what, I think the best thing for now would be to just delete all trace of that and go in blind. I have an outline for the new tutorial so I'll put that down the list. Ok I'm finally there. Big achievement! Time to start pressing play and go from there. Before I do that, the first thing I need to do is attach as many objects in the editor as I can remember. I'll be surprised if I can get past the first few seconds of gameplay within a day of work. If I can get the current build working with all these improvements and changes, that's a huge achievement for this year.


[ 2021-01-05 11:39:20 CET ] [ Original post ]

Human Factory
Fire Cycle Games Developer
Fire Cycle Games Publisher
2020-11-02 Release
Game News Posts: 55
🎹🖱️Keyboard + Mouse
6 user reviews (6 reviews)
Public Linux Depots:
  • Human Factory Linux [257 M]
You are a great tentacled cosmic deity, drifting through the endless void. Space can be very boring at times. But every now and then you find something that can hold your attention for a few hours at least. This time, you found Earth.

Raise and feed Humans.

Build all the necessary items to make the Humans feel at home. Make sure they are fed and put to work. As you learn more about the Humans, you can learn to better accomodate them.


Process Human byproducts.

Human waste can be deconstructed into pure matter and used for building. Many parts can be used for cloning, allowing for potentially infinite expansion. Watch as they churn their own milk for you to sell.


Butcher the Humans

Take their skin, their flesh, their brains. Build ever more elaborate and beautiful factory lines. Remember, Human meat tastes best when cut from a living soul!

Trade with the other cosmic space deities. Analyze and gain new technologies. Become the greatest great one in the multiverse.


MINIMAL SETUP
  • Processor: 1.7+ GHz or betterMemory: 1 GB RAM
  • Memory: 1 GB RAM
  • Graphics: Radeon HD5450 or better; 256 MB or higher
  • Storage: 1 GB available space
GAMEBILLET

[ 6133 ]

10.73$ (17%)
5.89$ (80%)
16.79$ (16%)
7.54$ (16%)
5.97$ (14%)
17.19$ (14%)
9.93$ (17%)
18.67$ (15%)
53.99$ (10%)
12.74$ (15%)
17.19$ (14%)
13.19$ (12%)
15.29$ (39%)
9.19$ (8%)
1.05$ (92%)
8.39$ (16%)
8.39$ (16%)
10.07$ (16%)
8.25$ (17%)
8.27$ (17%)
16.59$ (17%)
33.97$ (15%)
5.12$ (83%)
4.97$ (17%)
8.99$ (78%)
21.99$ (15%)
16.52$ (17%)
12.42$ (17%)
2.95$ (80%)
16.97$ (15%)
GAMERSGATE

[ 2120 ]

0.54$ (91%)
2.0$ (80%)
17.99$ (40%)
1.35$ (77%)
3.33$ (76%)
27.49$ (45%)
5.0$ (75%)
3.38$ (62%)
3.3$ (83%)
0.58$ (92%)
1.5$ (90%)
1.0$ (90%)
9.0$ (70%)
3.75$ (85%)
0.3$ (85%)
0.75$ (85%)
1.5$ (85%)
1.2$ (85%)
5.0$ (90%)
1.0$ (80%)
18.0$ (55%)
9.9$ (67%)
4.5$ (85%)
3.0$ (85%)
1.69$ (89%)
4.5$ (70%)
3.75$ (92%)
0.75$ (85%)
4.56$ (89%)
2.0$ (80%)

FANATICAL BUNDLES

Time left:

3 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

0 days, 19 hours, 50 minutes


Time left:

25 days, 19 hours, 50 minutes


Time left:

5 days, 19 hours, 50 minutes


Time left:

32 days, 19 hours, 50 minutes


Time left:

21 days, 19 hours, 50 minutes


Time left:

18 days, 19 hours, 50 minutes


Time left:

26 days, 19 hours, 50 minutes


Time left:

28 days, 19 hours, 50 minutes


Time left:

49 days, 19 hours, 50 minutes


Time left:

356474 days, 11 hours, 50 minutes


Time left:

31 days, 19 hours, 50 minutes


HUMBLE BUNDLES

Time left:

6 days, 13 hours, 50 minutes


Time left:

13 days, 13 hours, 50 minutes

by buying games/dlcs from affiliate links you are supporting tuxDB
🔴 LIVE