A Hard Look

Hey Folks! Bit of a rough day, today. I've been having doubts about the prototype lately, and spent most of the day soul searching.

It started as a smaller-scale judgement call as to whether I should invest significant amounts of time/money sprucing-up the rendering in the game. Rearchitecting the game's rendering pipeline would likely solve many performance issues, further enhance the visual appeal of the game (important for raising awareness and sales), and bestow some cool feature possibilities. But it would also mean weeks, potentially months, of outsourced work. And a significant chunk from BBG's financial reserves. Would it be worth it?

After some thinking, I decided to postpone that overhaul. The game's biggest weakness right now isn't graphics. It's gameplay. It just isn't fun right now. And until that changes, any money put into other buckets is probably too risky. I want to make sure this thing is too fun to put down before I bet the company on it.

And that's where things (emotionally speaking) took a dive. I returned to some of the systems coding I was working on, and it felt like things had regressed since my last visit. Things I thought worked were on the fritz again. Shortfalls of my systems were made obvious. The sheer amount of work left to do loomed large. This thing isn't fun. I've been at it for probably a year, year-and-a-half now. And I still can't "play" it.

Now, it's an interesting tech demo, for sure. It does all kinds of interesting things I wished some games would do. And it has loads of potential if it ever does what it promises to do. Complete ship customization, with Sims-like layouts and Factorio-like ship systems. Deep character customization with backstories. Entertaining interpersonal drama with machine learning. It's literally one of my dream games.

On paper, anyway.

But in practice, it's still just a tech demo that does all of the above only partially. And even at that, many systems barely work, and break at the slightest breeze. I decided to take a biiig step back this time, and really assess what I've got here. That's the screenshot today. A spreadsheet listing the pros and cons of this game, with color formatting for clarity.

And what did I discover? See for yourself! 14 reasons the game is good, 15 reasons the game is bad. Hmm. So much for clarity. What if I weight each one based on some heuristic "importance?" A score of 41 "for" the game, and 40 "against." An almost literal deadlock any way you slice it.

That doesn't inspire confidence. Could be worse, for sure. But at the end of the day, when my brain is tired from second-guessing myself, seeing this isn't helping. At least a clear, decisive answer would've been nice :)

I guess the ray of sunshine here is that no matter which course I take, it's probably equal. No danger of making a mistake.

I dunno, though. Probably the biggest reasons I'd be loathe to abandon this prototype is all the awesome work others have poured into it. Michael's amazing setting info, Emily's engaging portraits, Josh's evocative soundtrack...I'd hate to let them down. That said, it'd probably be almost as bad if those things were paired with a lackluster game.

Definitely some more thinking to do on this. But maybe it'd do me some good to give this topic a rest for a night or two, and revisit with fresh energy. Sorry to be such a downer today! First world problems, I know :)


layarion's picture

minute to minute gameplay
Consider turn based instead? Maybe at a "fast forward at 200, 400, 800 percent" buttons, just like in the sims.

Turns have the unique ability to cut to the chase. Of course, that lends a different playstyle. It wouldn't make much use of the ability to freely walk and move around (that's what gamemode this is like right? kinda like Diablo?)

but you would be able to "skip to when something happens". Have turns happen when needed, kinda like Faster Than Light the game. You could have the speed up option have this feature as well. It pauses the game when something interesting happens.

Both things sound like work though. Maybe it's just you? After-all, people play the Sims and Banished. Those games, i feel, do get boring without an "objective" though. I was happy to see some sort of objective with NS, but the ending felt like a cliff hanger. Also the free roam in Neo gets boring because you don't really see the world change. Time doesn't seem to matter there, and it breaks the immersion...but I digress.

I guess the only thing I can say about uninteresting gameplay on a minute to minute basis, might mean that you should reduce how many minutes there are. "less is more" or cut things out and stick to what's good about the minute to minute gameplay. I often face this dilemma in my Youtube tutorials. "How much info is too much?" and I think I'm coming to the conclusion in those that...the longer the message, the more the viewer loses sight of the main focus. Maybe you're just doing too much.

ai can't do anything useful on the ship
some people prefer to control everything their people do...mainly because they don't trust the AI, but sometimes it keeps them from getting overwhelmed. When something happens, they know why.

Some people don't want to micro everything, and want to cruise along, and worry about the bigger details. To answer this, perhaps you can simplify what the a.i. needs to do. you're probably already thinking of that though.

I've never made a game, so I'm talking out of my ass on all this, but taking a break is probably what's best.

OverHaul Mod
DevKit Mod

dcfedor's picture

Thanks for the suggestions. Though I think the rate of time passing is only part of the problem.

Perhaps the bigger problem here is that there isn't anything really to do yet. You say "cut to she chase" and "skip to when something interesting happens," but what are those things? There is no chase. No "something interesting."

In NEO Scavenger, the interesting things are something like this:

- exploring the random hex map
- choosing whether to scavenge a place or keep looking
- choosing how to scavenge a place
- finding interesting loot
- figuring out how to carry/equip the loot
- maneuvering around creatures on the hex map
- fighting creatures
- treating wounds and other conditions
- reading new story elements
- deciding how to respond to story elements
- using tools/skills/actions to keep stats healthy or restore them
- finding and using tools to craft more useful items
- long-term strategy/planning involving the above

In the space prototype, we're missing a lot of these things. I think the plumbing for many of them is there. But we only have a few stats/needs, a few items for those needs, and no real way to get/earn more items. And the map isn't something to explore, really. More of a time barrier to reaching places.

It's possible that starting to fill some of these empty systems with content will help, though. Social interactions are more numerous, and are maybe one of the most interesting things you can currently do. So maybe that's a hint?

Dan Fedor - Founder, Blue Bottle Games

ra1's picture

I've previously suggested cleaning out the ship, doing retrofits, repairing damage from a stray meteor, sending a probe out to collect resources from a derelict ship, etc.

Heck, even fighting off an infestation tribbles would be an interesting distraction.

ascavone's picture

Ouch -

Well, good for you for taking that hard look. Seems like you have a few things going on here. I'm not sure that all of these catagories should fit into a "Should I continue on with this" decision.

Thing the first: maintainability/regressions. I'm not sure how well the engine supports this, but do you have any automated testing? It makes all the difference in non-gaming industry programming in my experience. That along with continuous integration practices like test-on-commit, make things so much more maintainable. Regardless of engine, you should be able to unit test plenty if you make the effort to use pure functions and keep business/game logic separate from visualization. This will also help you with refactoring, which it sounds like you need: monolithic classes, too much logic spread across many data files, etc.
Untenable code is a real problem. If you can't get a hold on the regressions and extensibility is low,
then it might be worth considering scrapping or rewriting. Still, I would try adding in better unit testing and instrumentation if it's not already there before making that decision.

Thing the second: features that don't work i.e. auto-docking, AI doesn't do stuff on ship.
I think features can always be simplified or pulled out. Sometimes we get attached to things we spent a lot of time writing, but if it's not working, isn't fun and doesn't add all that much (or is substitutible with something simpler), I'm not sure how much weight it should have.

Thing the third: unfunness. I love layarion's ideas. Also, AI is overrated. Especially machine learning. It might be a good advertising checkmark, but even if you code it right, it's very unpredictable and I bet most people would feel like it wasn't working even if it was.

Thing the fourth: performance. If you get a hold of the maintainability of your code, I don't think performance should worry you too much. "Premature optimization is the root of all evil" You can always go back and refactor performance if you have good auto tests.

My thoughts anyway. Would you be willing to do some focus groups/live broadcasts with folks to see what we thought? You might be in too deep for an unbiased analysis.

Good luck and hang in there!

dcfedor's picture

@ra1, yeah, I think you're right about that. Even just a repair action players can initiate on things, and then random hardware failures/damage to deal with is a good start. It creates some urgent work to keep players busy, and limits the amount of time for other needs-fulfillment.

Right now, the biggest threats crew have to deal with are hypoxia, starvation, sleep deprivation, and social trauma.

There's little the player can do to deal with hypoxia except designing a good ship in advance, and keeping AI locations and doors opened/closed. Food and sleep are similar, in that you're limited to what's already in the ship design.

Social trauma is probably the only thing both AI and players can address through gameplay. Though there's no penalty for failing (or bonus for succeeding).

Having hardware fatigue/damage to deal with regularly would at least be something to do. Ditto for tidying-up. And all of these things would increase the need to finally get the cash flow established. (Acquiring needed parts, tools, resources.)

Plus, I suppose an easy short-term solution to boring maps and lack of resources would be to sprinkle the System with derelict ships to plunder for food packets :)

@ascavone, good points! And I should probably mention that a lot of the downer mood in yesterday's post turns out to be just that: mood.

I'm feeling better today, and I think I'm realizing that yesterday's doubts and fears were a mix of producer/PM-like concerns, and also psychological.

Both stemmed from admitting the game is not ready for visual polish. That sort of cascaded emotionally into "this game is not good," coupled with systems failing when I needed a victory to pick me up. I.e. mounting, crippling doubts.

And I'd probably be remiss to ignore the possibility of depression or other emotional concerns. Working alone in the basement for such long periods can be a recipe for all kinds of problems. In team environments, physically present coworkers can sometimes restore faith in situations like this before they get out of hand. (As you folks are doing here. Thanks!)

Anyway, to your points:

1 - Automated testing is one of those things I agree I should do, but never get around to doing. Part of it is not knowing where to start. Part of it is knowing any work on that postpones the next "victory" in terms of enjoying the game I'm making.

2 - Sacred cows and cutting chaff. Yeah, and this is something my mind turned towards pretty quickly after posting yesterday. Part of that System map, for example, was just me wanting to do a Newtonian flight model, because it's an attractive problem. In reality, the user just wants to feel like it's passable science. I'm thinking I'll chuck a lot of the per-frame simulation code (which is at fault for unreliable outcomes and complexity), and switch to something more deterministic. And ditto for other systems that I'm suffering due to sunken costs.

3 - Unfunness. I think this stems from not a lot to actually do, nor reasons to do anything. And suggestions in today's comments are a really good start towards remedying that. The machine-learning comment here might actually be more about #2 than fun-factor. And it's possible I need to focus more on reliable AI, and maybe reserve the machine-learning code for minor randomness, if at all.

4 - Performance. I'm fairly confident I can get things back under control once I focus on that. I think my main concern here is commissioning art assets to fit one architecture, and then making optimizations later that warrant redoing the art. Though, I can probably safely commission the art done in a diffuse+ambient occlusion style, as that works in most foreseeable graphics regimes.

As for focus groups/live broadcasts, I have a couple of thoughts on this.

I've shown the game in action on YouTube, and I tend to get a good reception. However, I think a lot of that is couched in expecting the game to fulfill some potential that's not already filled. I.e. "looks cool! Can't wait to see it when it's done!" I don't get the sense anyone wants to play it now, though.

Similarly, I've shown the game live to a group of game devs with a similar response. A lot of "really cool idea!" type responses, but not really a sense of "I can't wait to get my hands on this."

But you're right, I'm probably in there too deep for an unbiased analysis. As yesterday's moaning illustrates :)

I don't think I want to go the focus group route just yet, however. I worry that showing it too early is going to garner feedback that's all over the place. E.g. "You should make it multiplayer! Add base-building! What about fleet management?"

Instead, I want the game to be doing something clearly first, so playtesters can say "ok, I see what this game is going to be about. And this is what I'd want to do in such a game."

Trouble is, I haven't bridged that gap yet between "interesting toy" and "fun game." But these comments (yours and the others here) are seriously helping me visualize some concrete steps. So thanks!

Dan Fedor - Founder, Blue Bottle Games

layarion's picture

"1 - Part of it is knowing any work on that postpones the next "victory" in terms of enjoying the game I'm making."

You could think of having that skillset itself as a victory for all future games and this one. something that, even if you scrapped this whole project, you'd have forever.

kinda like my new knowledge with RegEx.

OverHaul Mod
DevKit Mod

dcfedor's picture

This is true. Investing in oneself is a victory, albeit a long-term one.

I guess what I was getting at is, when you're down and out, sometimes you need a "now" victory. Putting in more effort for a distant future payoff is harder some days than others.

I think there are a lot of factors in that, though. I definitely had a more optimistic view of things 15 years ago, while I tend to be tired and jaded these days :)

Dan Fedor - Founder, Blue Bottle Games