Hey Folks! Another busy day of phoning, emailing, and accounting. I finally started digging into tax documents for 2016, and it's going to be another "fun" year :)
In more exciting news, Josh (video trailer Josh) may have found our first official bug! I'm not counting the billions of bugs Tiago and I found during internal testing, of course. It appears his iPhone 6 has zoom/cropping issues making the game hard to play. Since neither Tiago nor I have that particular handset, this is a good thing. It means we've detected it before an actual customer with that screen size and/or device pays money only to find it breaking!
And in even more exciting news, the website is ready! (?) Or close. I think, anyway.
The Jibe emailed me to let me know the new site is ready to demo, so I have a call with them tomorrow afternoon to review. I'm sure we still have some stuff to sort out (not the least of which is email servers). But this is pretty cool! I figured it was a ways off yet before I'd see the new site. Looking forward to it!
I guess we'll know what I think of it in tomorrow's news :)
Hey Folks! Hope everyone had a good weekend. I apologize for the missed news post on Friday. We took possession of our new home, and well, if you've ever bought a home before, you know firsthand what kind of blast radius that has on your schedule :) Needless to say, this is going to be an interesting next couple of weeks.
When I wasn't hauling garbage, cleaning, or stuck in traffic, I've been constantly on the phone or emailing. Between the upcoming mobile game launch and the house, I'm suddenly the hub of dozens of communications streams.
The game trailer is a "go," and we'll be kicking that off in the following week. I've already started accumulating potential notes, quotes, and ideas with Joshua, and I'm hoping it turns out as cool as we think it sounds. Should be quite an upgrade over the old, 2012 one!
Tiago's got the achievements up and running again, and identified some new UI elements I need to create. Plus, some UI stuff that can be hidden on mobile needs hiding.
I had another afternoon wrestling with Apple's iTunes procedures, as I try to advance the build status to the next ready/review state. I swear, there have got to be hundreds of steps involved, many of which I accidentally discover along the way. I don't think I could've done this on my own. (Thanks, Tiago!)
The future likely holds more of the same. I have some achievement stuff to integrate into Tiago's code changes, new button graphics and UI layouts to do, and then another metric boatload of emails and decisions to make.
You know when you're a kid, and you think about what it's like being an adult with a grown-up job? You picture getting up early in the morning, getting the newspaper, and then sitting down to a desk to start making "important decisions and phone calls?" Except, as a kid, you can't imagine what the heck all those decisions and calls would be, and how could they be that hard?
I found myself thinking about that this afternoon. And as a kid, I think I would've been like, "oh, I see. That's actually not exciting or fun at all." My to-do list literally looks like:
Pay one guy for work done
Review a contract.
Sign contract and send it back.
Send down payment to different guy for work started.
Call the bank to complain about payment system malfunctioning
Pay self, and withhold taxes.
Briefly wring hands about upcoming game launch revenue.
Feel better knowing people are asking about said game launch all the time.
Figure out which IRS forms I have to file to remit my withheld income taxes
Send those IRS forms in, along with remittance.
Figure out which forms I need to send to my tax accountant.
Send said forms to accountant.
Review list of old and possibly dead URLs on website.
Inform web developers of said dead URLs
Review list of issues and bugs for game project, looking for which has priority.
Send email to developer confirming plan for the week.
Reply to some fan/social/press emails.
Take a few moments to envy those that went to GDC and PAX.
Email videographer about some footage I need.
Write daily news post.
Fail to post news due to 403 error.
Start bisecting my post for the magic text that broke the site.
Somewhere in that list, I'll clear a bit of time to actually open coding or art applications and do "actual work." But man, running a business is not sexy at all.
I think the one thing helping me put up with it is knowing it'll all calm down in a while. Once the game is out, I'll still be busy with support and press. But there will come a quieter time where I get to sit down and code the space game. Make systems and worlds. Tinker in my shop, and show off glimpses from time-to-time. Oh how I yearn for those days :)
Hey Folks! Despite not touching an ounce of code today, it actually felt pretty productive. Not having errands really helped :)
First order of business was to get trailer inspiration and materials together for Josh to digest. Since a live action establishing shot is on the table, I collected some of the old cosplay photos as well as the PAX East photos, for reference. I also started digging through old quotes, reviews, and other commentary on the game for hallmark moments.
This led to me re-reading the RPGCodex NEO Scavenger thread. And as I mentioned on Twitter, what a nostalgia trip that was.
The thread begins as NEO Scavenger is in early beta. Still just a baby Flash game and an unknown quantity. It evolves into a desktop game, gets more and more features, until it becomes recognizably what it is today. And it all happens over the course of about 30-60 minutes of reading. Multiple years of work crammed into a dozen pages of funny anecdotes, feature discussion, and some hilarious fan art.
Got me itching to start an NS2 project to add new features. But I had to slap my own wrist before starting, because I have homework to finish first!
I've sent over that idea-fodder to Josh, and I'm awaiting his feedback.
In other (unrelated) Josh news, the latest spaceship editing track is a "go," after a few dedicated listens. This one feels a bit like a mix of 80s and 90s sci-fi music. Technical, yet ambient and unobstrusive, like reviewing schematics.
And while we're on the topic of 80s sci-fi, it appears the new Alien: Covenant Prologue debuted today. Talk about setting the tone. It feels more like the original, and close to how I'd like the new space game to feel. Banter in the breakroom, and blue collar industrial. Maybe I'll figure out a way to see this one before it's out on DVD :)
Hey Folks! Bit of a light news day today, as most of it was spent in various meeting rooms and banks. Necessary errands, unfortunately, but at least they were one-time things and are done with now.
On to the exciting stuff!
I had a phone call with Josh Cauller (note: not Josh Culler of NEO Scavenger's OST), and we discussed preliminary ideas and notes about the new mobile trailer. So far, it's pretty exciting! My homework is to collect some of the more interesting and share-worthy story bites from fans to see if there are things we can portray in the trailer. Hooks that grab the viewer's interest and create a context for the UI shots that will follow and show the game in action.
Meanwhile, Joshua is going to assemble a couple of proposals for the trailer treatment, and we'll go over each to see if any stick.
I already have some ideas as to stories I'm most often told by new players. The hallmark moments many fans seem to go through and mention. (E.g. realizing plastic bags are treasure, and the first time it breaks to name two) But there are likely many I'm forgetting, too.
Also, I noticed Josh (yes, this time the other Josh :) sent over his latest composition for the spaceship editing screen. So I'll have to check that out tomorrow.
So I guess there are some exciting developments after all, just not a lot I can take credit for :) Hopefully, I can do something more useful tomorrow!
Hey Folks! Hope everyone had a good weekend. We had the pleasure of playing Pandemic Legacy with some friends the other day. Interesting evolution of the boardgame! Almost feels like a really structured (rules) role-playing campaign session. So far, a couple rioting cities, 1 scarred character, and an incurable disease, and we've only finished January.
Tiago's still hammering out the achievements code, as well as sniping smaller bugs here and there. Things are still looking pretty good on that front. The game is mostly ready for public consumption, and I'm turning my attention outward to some public-facing assets.
First on that list is a trailer. I've decided to have one professionally done, and I'm speaking with the producer tomorrow. His enthusiasm is already a welcome addition, as I think both Tiago and I are wearing down a bit. And having some eye-candy at the tail end will be a nice reward for all the hard work :)
Also, the website team has kicked into high gear, as their developers begin implementation of the designs. This could mean a new site up and running in the foreseeable future! Unknown yet if this will time well with the mobile launch, but if there's room for coordinating, that's definitely worth adjusting for.
And apart from those, our lease ends next month, so we're prepping for yet another move. We toured the property today, and all appears well. So next steps are to get things moving.
As a result, I may be slow to respond at times as things get taken care of. I'll still be able to check-in fairly regularly, and even work normal days much of the time. But I may disappear suddenly. Just a heads-up: this is normal :)
Anyway, it's nice to see things finally taking-off all around me. Feels like Blue Bottle Games is shifting into a new phase!
Hey Folks! I'm in a bit of a holding pattern with some of the tasks I've started, so I decided to switch gears today and spend a bit of time on the space game.
Namely, naming it! (pun intended)
I think I've got a name I'm going to stick with. After many a false start and unoriginal idea, I finally arrived at something that can be mine. Mine! And I think it might even suit the nature of the game a bit better than my previous ideas.
It's been sitting there on my list for over a month now, and I've been turning it over in my head from time to time to see if I grew tired of it. But it's still pretty interesting to me, and I still like it. So I think it's a go.
Plus, it's mine! Only mine! No other games use it yet!
Not posting it just yet, though. I'd like for the announcement to contain a bit more fanfare than some text buried in a Friday blog post :) Maybe coinciding with some art or other assets to make it more exciting. But it's a bit of a relief to finally have that figured out. Soon, I won't have to say "NEO Scavenger Space Game" :)
In other news, Monday is a stat holiday here. So I'll be taking the day off. And I'm likely to be scarce during the week as we prep for yet another move. This one might be the last for a while, though, as we're finally getting a house of our own! But as you might expect, that comes with a mountain of paperwork and running around. Perfect time for launching a game (not).
So I apologize if I "go dark" for a few days. I think I should be mostly back to normal after that, though. Maybe lower productivity here and there during the move, but hopefully, no major stretches of radio silence.
Not a lot to report today, as it was mostly research and testing for trailers. But I did make progress on that front.
For one thing, it appears there is a way for me to record footage of the mobile build on PC without the cursor appearing. Which is good! Whatever I do for the trailer, I now have a way to insert footage of the actual game. But watching the cursor-less footage is a bit weird. Like watching a game haunted by a poltergeist :)
That got me thinking about whether I should approach the trailer differently. The PC one was kind of a neat mini-story, with lots of cursor-centric footage.
But for mobile, I could go mostly with footage of stuff that doesn't need the cursor as much. (E.g. dragging an item, encounter screens, walking the map). Or I could use more quotes from the press. I could go live-action with something like a scavenger sitting in rubble playing NEO Scavenger on their iSlab. Heck, I could even do a humorous narration of certain gameplay elements.
I have options, in other words. The trick will be figuring out which are worth doing. And which I can afford :)
Hey Folks! Not such a productive day today. I think I may have coded myself into a corner, so-to-speak. And when I searched for backup tasks to switch to, I think each has obstacles of its own.
The achievement stuff I worked on yesterday prompted me to ask Tiago about getting achievement info for the current user. And that reminded him of a task that was nearly forgotten to finish the achievement integration. So he's been focused on finishing the remaining components of that. And since a lot of what I was doing overlaps his work, it's best for me to step aside until he's done.
I figured a secondary tasks that needs doing might be to try and update the video trailer for mobile stores. The current trailer shows the cursor and some old UI, so it's already out of date. And there are some easy improvements I can see making to the old trailer to make it ever so slightly less boring.
Unfortunately, there are some obstacles here, too. For one thing, recording on a mobile device is a different prospect than PC. After some research and testing, I was able to use Google Play to record Android footage of the game, but it only came out in 360p despite choosing 720p. It might've been due to the upload process, but I'm not familiar enough yet to know. And since it's currently using a debug build, there's some debug text in the UI I won't want there. So that would best wait for a release build on the device, which isn't happening for a while.
Then I realized I could probably just build it on PC and record it there, since the UI is the same. I'd have to hide the cursor, though, which would make playing it hard. Hmph.
I've read about some folks who just film the screen using an external camera, like their smartphone. And that might not be a bad idea, since it shows a more physical experience with actual hands touching the UI. But that has its own issues with auto-focus and lighting, and they had to resort to a special app to bypass the occasional lighting/focus shifts due to their hands moving in and out of frame.
I don't know. This is really kind of annoying. Maybe I just have the cursor there and say screw it :)
Lastly, I looked over the remaining issues and saw mostly rare crash bugs on the list, so I decided to go for it and try to cause them. And 45 minutes of heavy melee, scavenging, and crafting later, no crashes. This is good, of course, but not when you're trying to find a rare crash to fix it!
I guess I'd be remiss in not also mentioning my personal productivity has taken a hit lately. I'm usually a pretty diligent worker. But I feel like diligent days are getting pretty far apart in recent months. It could be project fatigue. Could be baby-induced lack of sleep. Could be our upcoming move. Could be all of these things, and probably is.
Could be I need a vacation :)
But I'm almost there. Just get this thing launched, then hopefully that will lighten the financial anxiety once a new revenue stream starts. I'll pick-up a new anxiety source: product support on mobile, but it'll be comforting knowing Tiago has my back for a little while after launch.
Phew! When did being an indie become such a grind!
Hey Folks! Today felt a lot less productive than it actually was, but that's probably because it fizzled near the end.
Looking over the remaining issues, one of the higher priorities is finishing the store-related tasks. E.g. achievements, leaderboards, store text and images, etc. There are already a batch of achievements done, so I could technically call them done.
However, of the 20-30 in the list, only 2 are visible. The rest are hidden until discovered. And that kind of sits strangely with me. I fell like there should at least be a few more visible ones for people to peruse and pursue.
As it turns out, we had others listed that do just that. But we didn't add them yet because they are a bit trickier to implement. The require some custom coding instead of piggybacking on existing systems. So that's what I set about doing today. And I even got three done!
I ran into one, however, that needs to check the servers for a list of achievements, and I'm unsure if it's worth the bandwidth/processing it'd take (since it'd need to be checked frequently). Going to run that one by Tiago for suggestions.
In other news, I updated and paid my business's excise taxes for January. So that's done for another month. And Josh sent a revised ship construction track for the new space game, and it sounds very sweet :)
So in retrospect, not a bad day. But man, I feel pretty useless right now. I guess it's the dwindling progress towards the end of the day. That's fine though. I think tomorrow should start fresh enough, and I have some specific tasks I can tackle!
Hey Folks! Hope everyone had a good weekend. Pretty tame here. Errands, yardwork, and some silly dancing with the little one.
I think we're approaching the end here, as Tiago and I discuss the last batch of issues and transitioning into support mode. We have a few more things to add/verify with achievements, in-app purchase to unlock full version, some other launch stuff, and bugs.
The list is shrinking. 22 open issues, 10 of which are critical/required before launch. Of those 10, the breakdown is:
3 are fixed and awaiting verification
2 are store/launch tasks
3 are random crash bugs that we are having trouble finding
2 are medium bugs
Not too shabby! Of course, any of these could inflate to a bigger deal upon investigation. And we could always discover more. But that's a manageable list. Possibly only a week of work, based on previous weeks!
That said, there is still going to be a lead-time until launch, as app stores do their reviews and approval of the game. There could be some back and forth here if they find things we didn't. But it's all coming together, and a bit scary :)
Unfortunately, I've already wasted one day without solving anything. And that may not be the last time, as we have to move out of this place in a few weeks. But I'm feeling optimistic. It's been a while since a bunch of new bugs were discovered, so we may be actually near the end!
Hey Folks! It was a GUI-centric day today, as I shored-up the new touch controls version of help, and decided to add a toggle for item stacks.
The new help screen looks pretty much like yesterday's layout. I moved a few things around for clarity, and tweaked the text a bit. But the idea is the same. The one addition is stacks, of which Tiago reminded me.
I've had a long-standing bug on my list to figure out some way to show whether the current cursor mode will work on a stack or a single item. On PC, this is just an icon on the cursor. But on touchscreens, there is no cursor. And the context menu is the only way to change whether the tap operates on a whole stack or not (and blindly, at that).
So I set about adding a new UI button for stacks. It looks similar to the cursor mode toggle button currently on PC, and sits right below it. This way, the user can change cursor modes and stack/single all in the same button cluster. And, they can see the current mode!
And for the heck of it, I spruced-up the design a bit to add LED indicators to each, so it was clearer which was active.
While I was in there, I also added mobile-specific tooltip text for buttons that mentioned hotkeys.
Overall, it was a busy and productive day! Lower priority stuff, but they were big tasks that mostly needed doing before launch anyway. And now the game is that much easier to use!
Hey Folks! I managed to get a first draft of the help screen done today, but not before Windows/nVidia decided to make my life difficult.
I spent the better part of my morning trying to understand why the game was suddenly running at 5-10fps instead of the usual 30-60fps. None of the relevant code had changed. I didn't update any library versions. The computer appeared to be working normally. Restarting, rebuilding, and release/debug didn't seem to make a difference. And it was only affecting me, not Tiago.
After several hours of scratching our collective heads, I decided to check the Windows Update History. It appears that Windows 10 tried to update my nVidia drivers the other day. Without asking me. And worse, it failed, without alerting me. I guess my PC was just using a software renderer after that, because manually updating the driver indicated I had no previous version installed.
It's nice of Windows to be updating drivers and all, but c'mon! Let me know if you nuke them out from under me!
Anyway, that's fixed.
And then, I was able to resume working on touchscreen help UI bits. Here's the current draft:
It's not exhaustive, by any means. But it's a sort of cheat sheet that quickly gets some info across, and hopefully those completely lost will find their way here. NEO Scavenger mobile isn't much of an improvement in intuitive usability, I'm afraid. But on the other hand, I think it maintains the same sort of "once you get it, it works well" utility.
Also, I have no idea what I'm in for with the mobile crowd. I barely knew what I was in for with the PC crowd, and I'm a member! Here's hoping the mobile users have at least a drop of patience with my clunky UI choices :)
Continuing yesterday's efforts to take care of long-standing, non code issues, I decided to tackle some UI graphics today.
First, however, I had to finish up the achievement task. And that basically amounted to copy/pasting text and image links to each of the iTunes Game Center achievements. A bit tedious, but easy enough to do.
When that was done, however, the next issue to jump out at me was the help screen.
NEO Scavenger has a help screen linked from the title screen. It talks about how to move items around, scroll the map, and other useful controls. And judging by comments on the internet, few ever see it. But that's no reason not to make sure it's updated for mobile. After all, those few commendable souls who read the instructions shouldn't be left wondering where the WASD keys on their iPad are :)
So I began working on some new icons for touchscreen to replace the mouse and keyboard icons currently in use. I'll need a tap, tap+hold, swipe, pinch/spread, and possibly some others. And when that's done, I'll also need to rewrite some of the text to go with those icons, as many of the game's functions no longer have hotkeys and are context menu instead.
I'm a little worried users will still not see this page, and get frustrated moving things around. And typically, that's where a tutorial would come in. But tutorials are risky in themselves. A poor one interrupts flow and makes users quit from boredom, and good ones take a lot of work and refinement to make. I'm not sure I can come up with a good one in time.
So help screen icons for now, and I'll maybe tackle something additional if time allows.
Hey Folks! Still plugging away at crash bugs today. Though, I also did a bit of housekeeping and finalizing for achievements:
Android and iOS achievements require 512x512 art to go with each. And I've had this on the back burner a while because I don't know what the heck to do. With the list of remaining issues getting short, it's time to start tackling this stuff to get the launch in order.
So, behold the boot! I figure boots in NEO Scavenger are as much a big deal as anything. I guess I could've used the Urn item from the Hidden Lake house. But, this one sort of suits the scrappy, practical, off-brand humor of the game.
Crash bug-hunting is still ongoing. I managed to stumble upon one today after 45 minutes in a session.
It looks like a campsite was listed as socketed, but not actually socketed. This could be taken at face value, but it's also possible it was nullified before it tried to save data. But after loads of trying to make it happen again, setting up camps everywhere, with items of varying descriptions in each, no dice.
In the end, I noticed a lot of the rest of the game checks both the socketed flag and if the socket is null before doing anything, so I decided to follow suit and add a null check there. Even though it does stop the cause, it stops the symptom. And with the bug so hard to reproduce, combined with dwindling time left to fix it, this is a decent compromise.
(I also added some debug output in there, just in case it does happen again, so I can glean some more info.)
Only a moderately productive day. But I think I can close the achievement finalizing issue tomorrow now that I have that art!
Seriously, though, Tiago nailed a bunch of bugs last week. And while I only killed a few, there were several major crash bugs among our combined lists. The good news is that our issue list is dwindling to the last handful, and most of them are the lowest pre-launch priority or near to it. I think we only have 2-3 crash bugs left open, and they are there only because they're hard to make happen. So maybe we're closer to done than I give credit for?
Today, I fixed another crash bug involving combat. It happened when the player and NPC both target the same creature in battle, and kill it. The battle removes the dead creature, and switches the player's target to one of the remaining combatants. And if that combatant was also targeting the dead creature, the UI crashes trying to show the sprite for that target. (I.e. null reference)
I started thinking about ways to cache the sprite for a target, say for an extra turn or two, so it would be there even after the target leaves battle. But the more I thought about it, I realized it would require a lot of extra code, and possibly introduce new errors or memory leaks.
Instead, what I've added is an "Escaped/Deceased" sprite that can be used if the target is missing from battle. It should be clear enough what happened, and if not, the message logs are there to help.
Next up: a bug Tiago found when NPCs try to equip their best weapon. And it's a null reference. Surprise! Looks like there's somewhere in the code that an NPC's item gets destroyed but the AI code still refers to it.
And what's worse, it's really hard to trigger. I spawned all kinds of DMC guards and Bad Muthas all over the place, and watched whole platoons cut each other down. And nada. I'm almost wondering if I should just blindly try to fix the error by adding a null handler where it happens.
We'll see tomorrow. But fingers are crossed that we're nearing the end!
Hey Folks! Just a quick note today, as I'm running late for making dinner.
The encounter trigger fix is in, and required some more strategic placement of null reference handling in the inventory UI. Basically, when the player used the sign at the Last Chance diner in the sprawl (or any encounter trigger item), the encounter would delete it on the first page (to avoid the player using again while already inside the diner, recursively entering it).
Unfortunately, this all happened midway through the "use item" code in the UI, so the game did all this stuff to clean up the used item after it was destroyed. Guess what next? That's right. Our friend null reference.
Once that was fixed, it was off to the next null reference issue: battles.
It seems that if I throw a bunch of DMC guards and Bad Muthas into a hex, and enter their battle, I get a null ref when one dies. My target specifically, I think. I'm guessing this is due to their sprite or combat "pair" data being deleted and the battle UI trying to display it. But I need more time to sort out what or why.
But that's for Monday. It's weekend time, so have a good one, all!
I stumbled upon a crash while crafting a shotgun with a strap, and in the process of fixing that, I broke a memory leak fix. Ugh. So one full day later, I've finally got both fixed at the same time. I had to take one big destroy() call out, and sprinkle it strategically around in other places to avoid killing items prematurely when crafting.
Fortunately, this seems to not only fix the bug, but also improves memory leaks a bit. Hopefully, no side effects as a result, but we're on the lookout.
A second issue I've encountered involved items changing modes, such as with flashlights. It seems that if you tried to turn a flashlight on and failed, and later found one that worked, the one that fails after that might crash the game. Really. This is the type of bug we're down to fixing.
As it turned out, this was again due to memory leak fixes being too aggressive. Or more accurately, being too aggressive because of inaccurate bookkeeping. The failed "turn on" was trying to destroy the "on" mode too many times, which is why this only happened after a few flashlights were spawned and switched on/off. But, fixed now!
And lastly, I'm on the heels of a crash bug when trying to revisit the Last Chance diner. This appears to be a problem with (again) memory leak fixes destroying the sign object in the hex, but somehow leaving it in the hex's list of objects to draw. It seems like it's being removed correctly from the hex, so I'm unsure why it tries to draw the next time the hex is rendered.
That'll be tomorrow's task.
I guess the bright side of all this is that these are pretty esoteric bugs. They'll happen for a fraction of the users, usually long into the game. And with autosave, it should only be a minor setback. But still, it'd be nice to launch without a thousand bad reviews :)