• Announcements

    • JoeW

      UPDATED - Studio Note & Rhymes with Play Streams Temporarily Canceled.   03/06/2020

      UPDATE (3/19/20): Just a quick note regarding the team at Klei Entertainment. As noted previously, everybody at Klei Entertainment is working from home due to the Covid-19 outbreak. Many of us have been working especially hard to help maintain operations as we all move out of the office and into our homes and with everything being done online, extra time must be spent in organizing conversations and trying to maintain communication. As some of you may know, we have a very open office and we are almost always in contact with each other as we go about our days. Some of us work across multiple teams and that work has become a bit more challenging for everybody.   That being said, at this time the transition has not caused any major disruption in our operations, but it would be overly optimistic to expect that we won't have any delays at all. We're going to have to be especially mindful about this in the coming weeks and make sure we don't take on too much work so we can keep things running smoothly.  We will let you know as we see how these changes affect our timelines.  Thanks UPDATE (3/10/20):
      The test yesterday went well. We got the whole office (mostly) to work from home without significant issue. As a result, Klei Staff that can work from home have been asked to do so until further notice.  This means that we will have to cancel the Rhymes with Play stream until we are all back in the office. This shouldn't affect anything else at least in the short term, but if things change I will update you all here.  Original Post: Hey everybody,  This Tuesday March 10th, 2020 the entire staff at Klei will be working remotely for 1 day in an effort to prepare the studio to work remotely for a little while if the need arises.  Klei is already set up pretty well to allow for working remotely, however we are going to have a one day "dry run" with the whole studio so that we can identify and avoid any issues or downtime that may arise should choose to implement a work from home policy due to COVID-19 outbreak concerns. Unfortunately this does mean that we will be canceling the “Rhymes with Play” Art stream this coming Tuesday, however unless the situation changes we expect everything at the studio to be back to normal Wednesday and we’ll continue our regular stream schedule Thursday March 12th. If the situation changes at all, we'll let you know. Thanks for your understanding.


  • Content count

  • Joined

  • Last visited

 Content Type 




Klei Bug Tracker

Game Updates

Hot Lava Bug Reporter

Everything posted by KittenIsAGeek

  1. On humanity + engineering games

    I'm not sure that "IQ" was the appropriate word, but.. different individuals learn in different ways. If you're artistic, then a game that encourages your creativity is going to help you learn a great deal. If you're an engineer, then games that let you model systems will help you learn a lot. I'm somewhat of an artist and an engineer, so those two aspects of ONI are the most beneficial to me. I learn a lot just messing around in the game, even if I'm not attempting to do anything special at the time.
  2. As I have said before, ONI isn't most games. You can NOT use other games as a comparison for potential ONI performance. Most games rely on graphics hardware for a good share of the work. ONI does not. ONI's graphics are relatively simple. Switching from hardware to software rendering on my computer doesn't change ONI's performance noticeably, while any other game would slow to a crawl. Laptops that have good graphics hardware often have decent cooling for that hardware, so games can run for hours without overheating. However, since most games don't really put a lot of load on the CPU, even gaming laptops skimp on cooling the CPU. I'm not disputing that your laptop isn't a good laptop for gaming. I'm pointing out that ONI doesn't use your laptop's hardware like other games do. At all. ONI is primarily a computation application. At its core, ONI grabs a hunk of stuff from RAM, pulls it into the CPU, performs several calculations on it, then shoves it back into RAM. This is very similar to how HD video rendering is done, whether you're compressing raw video into the latest codecs or you're using Blender to create a 3D life-like animation. If you compare how rendering performs between computers, you can compare how ONI will perform between those computers. Comparing 3D graphics or gaming performance will tell you nothing about how ONI will perform.
  3. I remember going over this in one of my classes a few years back and the professor showed us several ways that this process actually fails to get the shortest path. But, usually it does a pretty good job. Anyway, we're both pretty much agreeing that pathfinding takes a lot of computational time.
  4. ONI won't use six cores. It will use two threads, which could rotate through the six cores. There are some possibilities for your crashes: Heat is causing instability somewhere in your hardware. You're running two threads continually and laptops aren't usually happy with this regardless of how many cores they have or how new they are. You could be running close to your max memory and stuff is being swapped to the drive. This can cause hangs or lockups if something critical gets swapped that takes too long to swap back. This would be an operating system issue. If it was ONI itself causing the crash, then a lot more players would have that problem. I can create a crash by loading a game repeatedly about a dozen times until my memory is full, so ONI isn't perfect -- but it shouldn't be crashing during normal play unless something else is going on. I haven't experienced this. Can you give me some specific mods that have issues so I can test them? I play exclusively on Linux and have since the start. Benchmarks may be decent at comparing two systems, but they're not a reliable method. Sorry. Besides, you have six cores, which means a multi-thread benchmark will use all six cores during its tests, so it will definitely perform better than a 4-core system doing the same benchmark. However, that says absolutely NOTHING about how a two-thread application will compare across the two platforms. My 7 year old i5 out-performs quite a number of newer systems when it comes to ONI, despite testing extremely poorly on benchmarks.
  5. Some Newbie Questions

    How was this determined? Or, more specifically, when was this changed? I've used dirt tempshift plates for their thermal inertia since they first introduced thermal physics. Treating a tempshift plate as 800kg of material always works out when I do the math for how much energy they can store. They also transfer heat with the log average of the tempshift plate's conductivity and the conductivity of whatever they're transferring with, which is why you see them passing heat to insulated tiles. If I'm wrong, that's fine, but I'd like to know where you came up with your numbers, please.
  6. At its base, you're correct. Its simply a matter of iterating through possibilities and matching them up with distance/time constraints. However, the problem is one of scale. If you have only three possible paths, then its very simple to pick the shortest route. The problem scales exponentially, however, as you include destinations and possible routes. As humans, its easy for us to exclude routes immediately, so we only consider those that appear to be the best. For computers, someone has to tell the computer which routes are not worth checking, otherwise it will analyze them along with the rest and add to the computing time requirement. Google Maps pathfinding doesn't get it right quite a bit of the time in my area. It often tries to direct people through the cement plant because on the map its a paved road while the alternative is dirt -- but the cement plant isn't an open public road. There's also some routes that google will fail to give an option unless I chose a mid-point along the route I want. And the traveling salesman problem is even more complicated than the google maps pathfinding scenario, because the traveling salesman problem is: "There are X destinations that can be reached in any order, find the fastest route that goes through each of them, preferably without backtracking." With multiple paths between each point, it isn't always a matter of just picking the next closest point. The algorithm for a computer ends up being recursive, scaling exponentially with the potential paths and destinations: You pick a route through all destinations and calculate its weight, then you start again, picking a different route, and check its weight. Do this for all possible paths and then sort for the shortest. A person looking at the map would quickly say, "Well, we only need to check these three paths for the fastest," but a computer has to check all that aren't specifically excluded.
  7. you could try Rime with Frozen Core, Metal Poor, Geodormant, and Large Glaciers (S-FRZ-1990833985-0) for a different kind of challenge.
  8. Yeah, Traveling Salesman is an example of a problem that is dead simple for humans and extremely complicated for computers. Neural networks are doing a fairly good job, but I find it fascinating that any random kid can tell you which path is the shortest, but it takes a lot of very smart people a long time to teach a computer how to do the same thing.
  9. Some Newbie Questions

    There's lots of different ways. If you're wanting to stop the heat, then build a couple of insulated tiles in the gap. Ceramic is best, but Igneous will work for a while if its two or three tiles deep. I'm not currently sure. I know there was a while where atmo suits would melt into their base metal on contact with magma, but I haven't tried in forever so I'm not sure if that's still a thing. Hatch farms are great for meat and for coal. Egg shells aren't that great for lime, but every bit helps. The molts from the crabs are decent, as are "fossils" found in the oil biome. So, really, its up to you. Some you can destroy, some you cant. There's a mod out there that lets you destroy anything. But yes, I agree: They definitely CAN be in the way and obnoxiously placed. Tempshift plates encourage thermal transfer in the area around the tempshift plate. Basically the circle of tiles immediately around the tempshift plate will transfer their thermal energy at a higher rate. Sometimes this can have unexpected consequences. For example, insulation thermal calculations use the minimum transfer rate between the insulation and whatever they're transferring energy with. Tempshift plates use the log average instead of minimum -- so if a tempshift plate is touching an insulated tiles, it can cause thermal energy to transfer to/from the insulated tile. Another use for tempshift plates is as a heat sink. For example, a granite tempshift plate has 800kg of granite while a granite tile is only 200kg. This means you can store 4 times more thermal energy in a granite tempshift plate than you can in a tile. This can be useful when you're wanting to slow down temperature fluctuations. If you're working with colder materials, you can build tempshift plates out of dirt. For example, I often use a pool of water as a thermal sink. An aquatuner loop cools it down, and another loop runs through with whatever I'm pulling heat out of. If I build a pool and fill it with dirt tempshift plates, then each square has the mass of water AND the mass of dirt as a thermal sink, so it takes a lot more energy to raise the temperature. This is both simple and difficult. The biggest hurdle will be working with temperatures that low. You can't use water as a coolant in your loop, for example, because it will freeze solid and break your pipes. Your best choice for coolant is supercoolant. Alternatively you can use liquid hydrogen, but there's the problem that you first have to MAKE liquid hydrogen... You can also use liquid oxygen, which you can make using gaseous hydrogen and a thermo regulator -- but that's really finicky and you will definitely break pipes. However, if you have super coolant, its very simple: Run a loop of supercoolant through your aquatuner and into a chamber of hydrogen and just keep running it until the hydrogen liquifies.
  10. Well, darn.

    That's the best way! You're not having fun until Bahni accidentally floods your base with steam. My personal opinion is that you should always experiment with things. One of my favorite professors used to tell us to "never assume that whatever you design will be used as intended. It won't. If there's another way to use something, somebody will find it." Basically he was trying to teach us good design practices, but I took his advice a little differently: "Never assume that the intended use of a device is its only function."
  11. ONI is not like other games. ONI does not really make use of your GPU. ONI, instead, does a LOT of calculations that require your CPU. It also does a lot of moving stuff from memory to the CPU and back again, so that it can do the calculations. You'll notice at the top that ONI is using 144.7% CPU in your screenshot. This means that its running about two threads. It isn't at 200% CPU because time is spent moving stuff from memory into the CPU and back again (along with other OS tasks) that will prevent ONI from actually running two threads at 100%. Additionally, there will be thermal throttling to keep the CPU cores from overheating. Most CPUs will rotate a running thread through each of the cores to distribute the heat, but laptops in general are poor at moving the heat out of the system. Most laptops I've worked with will not run a thread at full speed for very long before throttling kicks in. Finally, you'll notice that I mentioned moving stuff from memory to the CPU and back again. This is a relatively slow process. You can get the same sort of performance hit by compressing a raw 4k video into h.264 or h.265 formats without using video card hardware, as it involves grabbing a chunk of data from memory, shoving it into the CPU, performing a calculation, then shoving it back into memory.
  12. I generally clean up my dupe's paths on a regular basis. If there's more than one choice, the dupes will frequently make the wrong choice. Also, once you get to very large numbers of dupes, reducing the possible choices for any particular dupe will dramatically improve the performance of your base (not just FPS, but also Getting Stuff Done (tm)). There's also a non-obvious way that tasks are completed. For example, the way that sweeping currently works is that your storage locker doesn't set the task, the debris that will fit in it does. So a debris that is close to your dupe basically says, "Hey! I have somewhere to go! Who's available to pick me up?" Then all the dupes check their current tasks and priorities and finally schedule priorities. Multiple piles of debris are multiple tasks that get onto the queue. They're decided based on where the dupe currently is, until the queue is full. So the dupe will pick up a debris and run all the way across the map to its storage locker, put it away, then run ALL The way back to pick up the debris that was right beside that first pile, since that's close to where the dupe was when the tasks were originally organized. Because we're human, we can easily see that this approach is not the best. Why doesn't Meep just pick up the debris right beside the locker, instead of running all the way across the base first? Well, that's because the debris by the locker, since it was so far away from Meep, probably isn't even on his list of possible tasks.
  13. Well, darn.

    Solidified Magma (aka hot igneous tiles) still have a lot of heat energy, especially when there's a lot of still liquid magma near them. The problem, IMHO, is the distance you're pulling the heat to get it into your turbines. Steam turbines are extremely efficient at removing heat energy. Your heat path is going to be slow to replace all the heat that's lost. First, the abyssalite might be hot, but no heat energy is coming from that direction. OK, some is, but not enough to really matter. Heat also prefers to move up, rather than to the sides -- but the path "up" from the magma is abyssalite, which won't be moving any heat. Next, each transition (magma, igneous, metal tiles, door, door, door, door, metal tiles, steam) from one conductive thing to the next is going to only work when there's a temperature differential between each side. The greater the temperature differential, the more heat that will move. I bet if you mouse over each of those doors, you'll see that there's a significant temperature change between each one, and there may even be a temperature differential from one side of the metal plate to the other. You can solve your problem by closing the distance between your heat source and your turbines. I've found that a single door sandwiched between metal tiles (or diamond) works best, as there's only three points of thermal transfer. Finally, you may want to put some automation controls on your turbines so that they only run within a certain temperature range. This will prevent them from burning off all the heat without producing much power. One turbine running at 180c can remove 4.179*2000g*(180-95) = 710k DTU/s. One tile of magma at 1600c can hold 1 * 1000000g * (1600 - 180) = 1420000k DTU, which seems like a lot, but -- assuming you can transfer the full energy to a single turbine -- it will only run a turbine for roughly 2000 seconds or about 3 and a third cycles. So your three turbines will exhaust all the potential thermal energy in 4 tiles of magma in 3 cycles.
  14. unnecessary oxygen usage

    Have you tried to look through a telescope while in a full containment suit? Trust me, despite what the game shows, Meep is pulling his suit off to operate the scope.
  15. If you use an oil refinery, as shown in your screenshot, then it is not fully sustainable. You will require additional water to push the oil out of the well. While this is good advice, and its what I usually do, it isn't self-sustaining unless you already have a large surplus of water being produced.
  16. Alright, what's actually happening is that your tanks are always draining when possible. So, if your left-most tank sends a packet of water out, then the center tank can sent a packet out, and the right-most tank can send a packet out. Thus when you start letting water out of the left-most tank, the right-most will empty first, because the water is continually flowing into the next tank. @Neotuck's example above shows how to disable a tank so that liquid doesn't flow out of it. You could also use liquid shutoffs. With the new automation outputs on the tanks, you could easily do what you need by using either doors or shutoffs. The idea is that you want the left-most tank to empty first, then refill it with the liquid from the center tank. So you could set the automation of the left-most tank to "High: 100, Low 0" and send the automation output to either a door under the central tank or a shutoff. You can also send the output through a "NOT" gate to a valve or a door controlling the tank itself. So what will happen is that when the tank is empty, the output will be disabled for the left tank, and the output will be enabled for the center tank. The center will fill up the left tank, and when its full the automation will disable the output of the center tank while re-opening the output of the left tank.
  17. Ceramic?

    Clearly you have construction errands that are using Ceramic. This could be pipes, tiles, insulated pipes, insulated tiles, or some buildings. I can't see what all you have queued to be built, but since you have more allocated than you have available, your total in the list will be zero. The list on the side is "available" materials, not "everything on the map." Stuff that isn't reachable won't be counted. For example: You can see that I have a lot of hatchling eggs, but they're behind a door that dupes can't go through, so they're not counted on my resource list.
  18. It can be big, or it can require space materials. It doesn't need to be both unless you're processing a LOT of nat gas. You can condense sour gas without super coolant, but you'll need a lot of room so you can do it in stages. Also, without space materials, you'll need a magma pool or a volcano as your heat source. A petrol boiler is indeed a lot easier. While it doesn't produce as much surplus water as natural gas, it is still water positive. I will admit, sour gas boilers without space materials are rather finicky. The most difficult part was that you almost have to run it continually or things start to break. The amount of water you get back, though, was definitely nice. You can use the surplus water to generate oxygen and hydrogen for rockets to go get you the space materials. The problem I've had with shine bug reactors was that when they are overcrowded, they stop shining. You have to contain them using liquid locks so that the "room" size isn't a factor.
  19. Ceramic?

    Ceramic is used for insulated tiles. Steel is not made from ceramic.
  20. Yes, but 10kW with a natural gas boiler is completely sustainable and renewable. You'll get more resources out of it than you're putting in. You'll generate enough water to replace any oil you use in the process, and you'll produce way more power than it takes to sustain the boiler and sour gas condenser. It also won't use any dupe power (except to occasionally let off pressure) once you get it running, and was also a condition of the OP's "Self-sustaining" requirement.
  21. Beginner Questions

    You only need toilets near where the dupes sleep. Where they eat and have their recreation should be close by as well. Dupes (usually) use restrooms only at the end of their shift, or during the 'bathroom break' marked on their schedule. So if you have 2 toilets and 3 dupes, 2 will use them at the end of their shift before eating and the 3rd will use it in the morning after waking up. If they have to travel a long way to get to the restroom, it will cut into their recreation time, sleep time, or both. Also, on gas management, you can do some of it just by how you design your base. For example, if you dig an area above your base, hydrogen will collect there. If you dig out an area below your base, CO2 will collect there -- assuming you're producing enough oxygen to maintain a decent pressure of it in your base. This makes it easy to remove the unwanted gasses, since game physics will do half the work for you. In my current base I have a setup like this to currently handle CO2: At the bottom is a pump that turns on when there's CO2 building up, but it only turns the pump on if there's also suitable air pressure (hence the Atmo Sensor and the Gas Element Sensor). The gas pump feeds into a pipe that hits a loop controlled by a valve. CO2 continually circulates in the loop, so only CO2 enters into the loop. Any other gas (like oxygen) continues past and goes through the second bridge, which takes it up to a vent. The CO2 that exceeds the valve's pressure limits goes out the bridge on the upper left, eventually feeding into the containment room. I have the containment room set up so that as long as there's adequate air pressure (Atmo Sensor set to 500g), AND the tank is empty, the pump will kick on and fill the tank. Gas coming in to be contained first tries to go into the tank. If the tank is full, then it continues on and goes into the room. This reduces the amount of pumping that needs to be done when you're using the gas, conserving energy. I look at the water/vent trick as a simple one-way valve that would work with normal pressures in real world physics, but some view it as an exploit, so directions to build it are hidden in the spoiler below: Other ways of dealing with the gasses you don't want is to get rid of them. A carbon skimmer will turn clean water into polluted water and remove CO2 from your base's atmosphere. Dasha Saltvines can remove Chlorine, while Hydrogen and Natural gas can be burned. Deoderizers can turn polluted oxygen into clean. Other gasses, such as sour gas, aren't as quick or straightforward to remove.
  22. 5-10 kW is quite a bit for self-sustaining. The ONLY way you're going to get that power as a renewable source is to dig down to the oil biome and build a nat-gas boiler. Boiling oil into sour gas, then condensing it into nat gas and burning the gas will give back more water than you need in order to pump more oil out of a well. You can easily produce 10+ kW of surplus power once you get the whole thing running. Depending on how you build your boiler, you can do it without any space materials. The only necessary dupe labor once you have it running is occasionally letting the pressure out of the well. If you don't build a boiler, but instead build an oil refinery, you will lose water in the process and it won't be completely sustainable -- however, it WILL take up a LOT less space. So if you have surplus water from a geyser, then pumping oil out of a well will definitely get you the power you need mid-game. A refinery will use dupe labor to run the building, but at full output you can run multiple petrol generators off the labor of a single dupe.
  23. It puts a red line on my dupe's status page. Entirely unacceptable!
  24. I don't really need them, but they only use them during downtime or bath time, so its not really any big deal at this stage. The morale isn't as important to me at this point as getting rid of 'grimy' and 'wet feet' flags. In another few cycles I'll have a salt water geyser tamed (very top, across the ladder from the hydrogen vent) and I can switch from Mealwood to Bristlebloom. I'll get a dining hall (or great hall) built and combine all that morale with showers and I should start having dupes pop their specials like sticker bombing or balloons. I've only had those up for about 10 cycles now. The moment I found and tamed the nat gas geyser it became crucial. I built three at once, since it was simpler that way. Previously I was burning hydrogen and coal, but those have been removed while I reconstruct my generator plant. I'm going to set it up so that hydrogen becomes on-demand for high-load, and coal becomes my failsafe backup. The slowest part right now is that I have only ONE dupe that can dig through obsidian. Ugh.
  25. That's cool.. and weird. "Hey, yeah, my game is lagging, but I was doing fine until cycle 60." "Go build a ladder." "Huh, that fixed it." I work with embedded systems a lot and its always fun to try and track down why the new subroutine just broke everything. My favorite was debugging a robot that had to go through a series of tasks that were decided by colored tiles. We were given a simple track that let us arrange the tiles any way we liked so we could test all the possible options. Then on test day everything ran perfectly until the very last step. I spent 10 hours going through every line of the code to figure out why it was going haywire on the last step. It turned out that the compiler made integers 16 bits long, but the linker assumed they were 8 bits. The test track was a couple of inches longer, and this slightly longer track meant the timer ticked just long enough to exceed the limit of the 8-bits it was assigned.