NEO Scavenger Mobile Progress, and AI Work

Hey folks! Hope everyone had a good weekend. Ours was quite busy! One might say it filled our "NeedContact" and "Need Friendship" stats nicely :)

Back at work, Tiago sent me his latest progress on the mobile port of NEO Scavenger. Have a look!


Ominous reflections not included.

Not bad! It loads the main screen, options, etc., and can start a new game. The player can select skills, and then load an encounter. Though, currently it's loading the wrong encounter (and if you look carefully, you'll notice the next encounter is even wrong-er :)

Also, there are still plenty of smaller issues to sort out with rendering, GUI sizing, etc. But this is an awesome step forward. I was able to wander the hex map, and this is even running on my old, crappy cheap-o tablet. So there's hope that it will work well for many users! Nice work, Tiago!

Back on the space prototype, I think I'm finally starting to make sense of my AI stats. Last week, we got a sneak peek into the full list and naming convention for AI stats. And I think I was finally able to finish standardizing them.

Basically, all stats are good when lower, and bad when higher. And depending on the concept, some are "needs" while others are "stats."

"Needs" are things which, if we have too little, spell trouble for a human. And they're easier to explain as a deficit rather than an abundance. Examples of "needs" include achievement, contact, and hydration.

"Stats," on the other hand, are things which are harmful in large doses, and are easier to explain as a positive than a lack thereof. Examples of "stats" include encumbrance, radiation, and infection.

So far, I've been able to classify all of the numbers into one of those two categories. And as mentioned already, all of them are on a scale where more is worse. One wrench in the works, however, is body temperature. This is an exception where too much and too little are problems. There are some different ways to approach this, but I'll have to give this some thought.

Also, I'm starting to realize there may be a "third" category to track. "Ticks" or "rates." Certain things about humans increase or decrease over time, and these rates change based on conditions. Examples of this include the rate at which we generate body heat, metabolize food, consume oxygen, etc. The above "needs/stats" measure how much we've lacked, but if we're running a marathon, for example, the rate at which we lack oxygen should be faster.

NEO Scavenger already had this with things like "m_fImmuneRestoreRate," and "fWaterConsumptionRate," so I may just be able to copy a lot of this over. (Both values and code/logic.) There are some benefits to having created a survival simulator before a spaceship crew simulator :)


Anase Skyrider's picture
Anase Skyrider

Awesome progress! Based on what you've wrote, I've got a few ideas that should make using and looking at these bars easier to understand. Think of these as spitballs while you're giving this some thought.

1. Make the bars green when low, and red when getting full. Basically just an inverse health bar. This makes it easy to tell that you need to keep the main bars low instead of full.

2. If you want to display numbers, including decay and fill rates, then I have a simple suggestion:
The "UPH" stands for "Units per hour". It could be UPS, for "Units Per Second", or whatever. But you get the idea. The decay/fill rate is displayed when you click it. This should help keep the screen compact because you don't have the numbers *always* blocking how full the bar is, nor do you have to display the current number and decay/fill rates off to the side. This should be very space efficient, which you *might* need down the line.

3. Represent body temperature as just a number, without a bar. Bars are linear, and so displaying temperature (which has a positive and negative) is kind of tedious.

3.5 Or you could break consistency, and have a bar in the center that fills like this:
It fills to the left (and is blue) when you're cold, and fills to the right (and is red) when you're warm.

One problem with #2, in relation to #3, is this:
How you can distinguish a fill rate from a decay rate? This will be harder with the temp bar. Maybe call it "N UPDH", where the "D" stands for decay, and when it's a fill rate, call it "N UFPH" where the "F" stands for fill ("N" is obviously whatever the number is). This is harder and clunkier to read, though. You could maybe draw a little arrow pointing up or down next to the text, too; that might tell you whether or not it's filling. It'll be a bit like it is in NEOScavenger, except the arrow would tell you whether or not it's decaying or filling, as opposed to any single instance of fill or decay (like it was in NEO Scavenger).

That's all I've got. You're coming along great so far, it sounds like. You should have the user-friendliness taken care of in no time.

Malacodor's picture

Just make two seperate stats for warm and cold. With fever it's even possible for both stats to be high. Warm because of the actual body temperature, and cold because with fever we tend to freeze even in a warm environment.

Ran around with a clown mask before it was cool

dcfedor's picture

@Anase Skyrider, thanks for the UI suggestions! I'm not sure yet how much of this info is going to be broadcast to the player. At least directly.

In NEO Scavenger, these stat bars were quite prominent, despite having little other insight into the simulated mechanics of physiology. It's hard to communicate the feeling of cold, hunger, or pain when the user is limited to audio/visual cues. And text quickly becomes overwhelming. So the UI was a crutch.

I may have to do something like this in the space prototype, but I'm kind of hoping to find a solution where the UI is primarily diegetic. In games like Interstate '76, I loved how the UI was as much a part of the world and atmosphere as the game itself:


I realize I'm already violating this by having chat logs and icons, but they're not guaranteed to stay there :) E.g. maybe the chat log is a journal screen that looks like a notepad, and crew stats are on a "psych eval" sheet from the ship's doc?

@Malacodor, that's a possibility I considered. I think the scale itself will be fine, since there is such a thing as "absolute zero," and it's relevant in space. And depending on the way this info is shared with the player, maybe a graphical bar won't be needed.

You're right about the fever having conflicting hot/cold symptoms, though. In NEO Scavenger, this was done with "safe ambient min and max temperatures" instead of actual body temperature. When a person got sick enough, their min safe temp was higher than their max safe temp, causing simultaneous sweating and shivering. And for a while, many bugs :)

Dan Fedor - Founder, Blue Bottle Games

danabnormal's picture

Would the simple answer to that be displaying the crew stats in the med bay? Perhaps at a base level the medbay would show each crew members heart rate/temperature, and could start showing more info about each person as you level it?

dcfedor's picture

Yeah, that's a possibility. Any info the player gets should be through a tool or control panel, so this could be it. I'm not sure if I'd have leveling-up of equipment (I tend not to have incremental upgrades on things/characters), but there may be several brands of equipment with better/worse features.

Dan Fedor - Founder, Blue Bottle Games