Gas Dynamics Optimizations, Concept Art Done

Hey Folks! Hope everyone had a good weekend. Ours was pretty busy, though not terribly exciting. Usual family/house stuff.

Back at work, I had a bunch of admin stuff to take care of, then I was off to fix the gas dynamics performance. Last week, I noticed a big chunk of the framerate drop in complex scenes was due to gas dynamics. Specifically, the gas exchanges between rooms were being wasteful with redundant calculations and memory allocations.

So I overhauled the code today to only do those calculations as-needed, as well as to reduce the sampling rate from per-frame to 2 per second. The full derelict docked to the chargen station now runs at 60fps, where it previously ran between 20-40. In fact, the only slowdown I'm noticing now is pathfinding on such large maps, and that's only while walking, and it drops framerate about 30%.

In fact, I created a release build of the game just to see, and noticed no slowdowns at all!

I did, however, introduce a few edge cases that caused bugs. I think I've fixed all but one, which is causing periodic pressure sensor failures, and gas pumps to run more often than needed. I think this is due to my clearing of the partial pressure data whenever gases change. I probably need to modify values instead of relying on recalculating them completely, so there's no gap in accuracy between gas changes and partial pressure stats.

Anyway, that's a big step towards more stable play in salvage situations, and it should be possible now to focus on gamefeel again instead of trying to ignore stuttering.

In other news, Ashley's latest concept art is approved, and I can't wait to show you! I'm thinking my next newsletter/update announcement will feature one of her pieces. Just as soon as I figure out what other stuff to include :)

Looking forward to getting back into things tomorrow. There's a bunch of stuff Michael's been up to involving jobs and objectives, so merging our progress so far might be a big improvement!

Tags: Ostranauts

Comments

Rovlad's picture
Rovlad

This is off-topic, but I've been wondering: is "feeling" and "feels" just different wording, or is this related to game mechanics in any way?

dcfedor's picture
dcfedor

This is just lack of consistency in my game terms. I'm still "feeling" out the best way to express AI moods :)

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture
Rovlad

It's probably better to just drop "feels/feeling" completely then, otherwise it's just confusing. But I'm sure that interface will change over time, so that's hardly top priority.

I'd suggest using icons for these states, with a tooltip on mouseover, and then color-code them depending on how particular need is neglected, maybe even sorting them by state of neglect. And only showing exceptionally dangerous status effects as hovers over characters in-game, like asphyxiation or nervous breakdowns. :)

In any case, thanks for answering!

dcfedor's picture
dcfedor

I think the one tricky bit is for things like "Selfish." Being selfish and feeling selfish are different things.

If I take the last cookie, I am being selfish. If I am empathetic, I will feel selfish about doing it. If I am a sociopath with impaired empathy, I will not feel anything.

In the case of that UI in the screenshot, it's trying to tell me what my current needs are. That I'm feeling selfish, and I need to do something generous to feel better. Which is different from a personality trait I might have that makes me do selfish things.

A more concrete example might be hunger vs. malnutrition. One can feel hunger independently of malnutrition, or feel full despite being malnourished.

You're right, though, that the UI isn't making that clear. We may need blocks for stuff we feel vs. stuff we are.

Dan Fedor - Founder, Blue Bottle Games

Rovlad's picture
Rovlad

Good points all around, but I'm sure you'll come up with a way to handle it when the time is right.
NEO Scavenger had pretty basic, but completely workable "bar system" after all. Stuff like "being full but malnourished" only tends to confuse people, even if it's more realistic.