Tuesday, January 24, 2012

The final push continues, as I tie-up loose ends with company formation, and work on the website and related functionality. I already have the company name chosen and registered, along with the website, but before I start driving people to it, I'd like the website to be ready to receive new users. Part of that is simply having the game, community features, and information about the game for players to immerse themselves in the NEO Scavenger universe. Another part of it is a "call to action."

New Business Model

After some thinking, I've decided to abandon pursuit of sponsorship on sites like Kongregate, Armorgames, and Newgrounds. I'm worried that sponsorship would hinder the growth of the NEO Scavenger franchise. A sponsor's prime directive is to drive traffic to their sites, and my goal is to have fans of the NEO Scavenger universe coming to my site for more games in the series. These forces would be in constant opposition, and would probably confuse the message.

Furthermore, while sponsorship would've meant a nice injection of cash, that dollar amount would be fixed. I may not make more self-publishing NEO Scavenger, but at least self-publishing removes the artificial limit. As well, licensing probably would've meant a month or more of bidding, followed by additional time awaiting publishing on the sponsor site. And even then, exclusivity probably would've meant waiting longer still before getting the game visible anywhere else. I'm at the point now where I want people playing NEO Scavenger, and helping me understand if I should continue or switch to a new product. The idea of waiting over a month to start getting that feedback makes me uncomfortable.

NEO Scavenger isn't complete, by any means, but it's ready to be played. I'd want to make it more complete before opening it up to sponsorship, which further increases the delay. As-is, I think it actually makes a pretty good demo. There's an unlimited amount of sandbox scavenging and wandering to be done, and just enough story to make a 30-60 minute session interesting. So I've started making arrangements to self-publish on my own website, with a freemium-style model.

Users who visit my website will be able to play NEO Scavenger as it stands now. It's basically a demo, and gives the user an idea of where I'm heading with it. Development on the NEO Scavenger demo is over, and I'll begin work on a premium version. If they like the demo, they can "buy" access to the premium, which grants them immediate access to the closed beta builds on the site. i.e. they can play the premium version as it is being developed, not unlike Captain Forever, Cortex Command, Mount & Blade, and Minecraft did.

The price will be up to the user, within a range I provide. All price points grant access to premium, and at least one vote to be used on a list of upcoming features for NEO Scavenger. Paying users can cast their votes on which feature they're most excited about. It helps me gauge interest in upcoming features, and gives them some involvement in the development.

Higher price points will likely grant more votes, as well as other Kickstarter-like bonuses. I'm still working out the details there, but may include adding your own feature to the voting board, characters named or fashioned after the likeness of the customer, unique abilities or items to use in-game, etc.

I guess I felt I wasn't scared enough already, so let's try a crazy business model too!

UI Love

I've done some more UI polish lately, and I'm really digging the outcome. The game is really starting to look good, and a theme is developing with UI elements: one of scavenged controls from 80s super vehicles.

Nothing says awesome like illuminated push buttons.

Using elements like LED indicators, textured black plastic, arcade-style illuminated push buttons, and combining them with label tape, missing wires, and hand-written "do not press" notes, the game starts to feel more in-character with scavenging. Here's a shot of the buttons in action:

The new buttons for switching inventory modes harken back to 80s Mercedes dashboards.

The status bars already had a sort-of boom box equalizer style to them, so these new gaudy buttons seem to fit right in. You can also see some new cursors and mouse mode icons in the top of the screenshot above. It wasn't clear to all users what each of the mouse modes did, and which one was active. So I reworded them for clarity, and added different colors to each mode to distinguish which was active. The currently active modes also have LED indicators.

New title screen!

I finally got around to cleaning up the preloader and title screens as well. They had previously been dumpy-looking since the switch from 1280x800 to 800x600 resolutions. Now, things are back in alignment. You can see the buttons for viewing credits and instructions here.

Also, Chris B had a great suggestion for the NEO Scavenger logo: add a notch near the R ins scavenger, to follow the contour of the lettering more precisely. I really liked the idea, as it made the silhouette more distinguishable, and made the logo more quirky and memorable overall.

Security and Other Issues

As the game migrates from home development to web service, I've had to do a lot of work preparing it for the wild. I added the requisite site-locking code to the game, to ensure it only executes on authorized servers. The swf's reliance on local server data means that it should be a hassle to steal and transplant on another website. I also implemented a code obfuscator, for some security against decompiling.

Why all the security? I'm not actually concerned with folks playing the game without paying for it. I'm sure it'll happen. It's probably not even a bad thing, as long as I can manage to pay the bills. More eyes on a product at least means a greater awareness. Besides, waging a war on piracy is not what gets me up in the morning. Making cool games does.

No, I'm more concerned with pirate portals. People who take NEO Scavenger, strip out the links back to my site, and profit off of my work. I invested a lot of my own cash into making NEO Scavenger. So if someone is going to hack my name off the title screen and claim the game as their own, I'm going to at least make it not trivial to do. I owe that to myself.

And in the end, the game isn't a fire-and-forget title. It's an evolving thing. It's a different game on Tuesday than it was last week. Customers are getting access to a service: the "Dan Fedor is making a game for you" service. If you're a customer, and you want the best NEO Scavenger experience, you'll come to the source, where it's fresh, and better than anywhere else. All other copies are imitators: irrelevant.

Monday, January 9, 2012

It's been over a month since I've said anything about NEO Scavenger, and I let an extra week slip by between blog posts last time. In order to make amends, it's Bonus Post Time! Two posts in one day!**Bonus post time does not constitute an offer or agreement between author and reader to provide additional posts in case of blog rhythm lapse. Void where prohibited.

New Items!

I've been hard at work creating more items for NEO Scavenger. Most of the items I create can be used in some game mechanic. There is only one item that has no use yet (a handful of ashes), and none that are vendor junk. Each item can either be directly consumed, equipped, used in crafting, or in an encounter. As a result, they take a bit of time to make.

Ideally, I'd like for there to be a variety of each item type, for both setting flavor and better character customization. But I'm prioritizing more verbs for the player to use above more nouns. Once enough of these verbs are in-game, I can start rolling out the variety. And I'm really looking forward to that. (Neon-colored "Hiya Poopy!" kid's backpack? Yes please!)

Let's go shopping at Shop Mart!

In the screenshot above, you'll notice a whack of new items. (Or as my junior high creative thinking advisor would call it, a "whomp" of new items.) New items include:

A military-grade laser rifle (Ha! You thought the .308 was hard to find!)

Mushrooms (Culinary or poisonous? Only one way to find out! Or two.)

A variety of berries (Black and blue, good for you...)

Squirrel corpses! (Source of meat and fur. But careful they don't rot!)

Squirrel pelt gloves (Who says you have to find everything you wear?)

A handful of twine, thread, and floss (Suitable for squirrel snares, or sewing!)

New Skills UI!

I also gave the skills screen a much-needed overhaul. There was some confusion as to how skills vs. traits worked. In practice, they behave a lot like any other item: traits are like containers that you can equip (e.g. a bag), granting you room to fit skills into (e.g. putting items in the bag). Traits are usually drawbacks, skills are bonuses. So taking more drawbacks means you have more room for bonuses.

Choosing skills and traits in the new UI,

I start each player out with four "Basic Human" traits for free. They each grant space for one skill, with no penalties. If the player wants any more than four skills at the game's start, they need to take a trait. The trait might limit their carrying capacity, or make them need food more often, so they should be chosen carefully.

I also separated skills and traits into different boxes, and changed their colors, so now skills are blue and traits are red. This should make it clearer that they are different beasts. Previously, they were lumped together in one box, with blue and white colors.

Finally, I made slots for the traits to go into. I might as well use this opportunity to teach players how to manipulate items, since they share mechanisms anyway.

New Inventory Controls!

I've also changed the way the inventory screen controls work (again). My most recent playtest was with a 9 and an 11 year old. Using my laptop's trackpad, they were unable to shift+drag items into slots. Furthermore, ctrl+click to consume items was not easy to remember. Overall, it was just too hard and required too much dexterity to manage the inventory. I've had a lot of input suggesting this might be an issue, so it was finally time to try something new.

Shift and ctrl are now out of the picture. Instead, the user can click toggle buttons to change the behavior of mouse clicks in the UI. If you look at the top of the above screens, you'll see a bar with different action icons such as "drag" or "take." Clicking any of those activates that mode of mouse input, until the user clicks a different mode. No more shift+drag to move an item. Now, the user can choose the "drag" mode to move items around by hand, or the "take" mode to quickly auto-drop items from ground to body and vice-versa.

The "use" mode replaces ctrl+click for consuming items. Some users were trying to drag items to the mouth, or other areas of the body to use. I had provided a "Use" slot down in the lower left corner, but I don't think anyone looked there. And ctrl+click was not well-documented, so people just gave up.

The "whole stack" button toggles whether the click operates on a whole stack or not. When on, whole stacks will mvoe around. Otherwise, just the top-most item in a stack will. This is mainly there for large stacks of items.

Each of the mouse modes also has a hotkey; 1, 2, 3, and 4, respectively. These should be close enough to the WASD keys used for map scrolling and item rotating, as well as the UI hotkeys for different screens/menu (Q, C, Esc).

Finally, I made one subtle change which has drastically changed the usability of this screen: I made mouse clicks register on release rather than on mouse down. I'm not sure why I didn't try it sooner, but the former feels way more predictable and easy to control than the latter. It also makes dealing with partial stacks of items possible. I lose the ability to hoover-up items by holding the mouse down and moving it over everything I want, but I gain more precise control in exchange. Usability wins.

New Logo!

As the game nears completion, it was finally time to tackle the logo. I had a lot of doodles in the past, but my eventual logo choice looks like this:

Official NEO Scavenger logo.

The idea behind the logo is that NEO Scavenger mixes past and future, chaos and order, natural and artificial. The world of NEO Scavenger is filled with high technology, supernatural activity, man's fading past, and his tenuous future.

The NEO lettering reflects scratched lettering like that found on potsherds. Specifically, the ostraca used by archaeologists to piece together details of daily life where whole records are sparse. Indeed, the NEO portion of the name is an acronym for "New Earth Ostracon," suggesting the piecing together of our present times from the point of view of a post apocalyptic scavenger. This will be revealed in the game at a later time.

The Scavenger lettering looks more organized and futuristic. It is meant to give a feeling of modernness, even futuristic style. It also recalls the era of sprite graphics, the chosen art style for the game.

Finally, there was a series of criteria that I wanted the logo to fulfill:

Must look good in black and white - One mistake inexperienced logo designers often make is to design a logo that requires 3 or 4 color printing to see correctly. 3D rendering and subtle shading look really nice under ideal situations, but what happens when your logo is photocopied? Printed on a cardboard box? Faxed? On 1-color LCD? I wanted the logo to be legible and recognizable in the most restrictive display situations.

Must be vector-based - Logos will appear at a wide variety of sizes, and it's best to have it saved in vector format for the inevitable day when you need it printed at 300dpi. Or on a poster. Or a t-shirt. I sketched the idea in Photoshop, but I ultimately transcribed it to Illustrator.

Must work on all backgrounds - You never know where you might end up putting this logo, so it's best to have a plan for when it is over a dark and a light background. In this case, enclosing the logo in a double border ensures it shows up no matter what.

New Scavenging Mechanic!

The game is called NEO Scavenger, but the scavenging mechanic was pretty boring before: just keep opening up the inventory screen on each hex to see what's there. I did some thinking, and prototyped a few ideas on paper, and came up with the idea below.

Scavengable hexes have magnifying glass icons.

Whenever the player is wandering around, magnifying glasses appear on some hexes at random intervals. These are scavenge icons, indicating that the hex has a scavengable location in it. (Box icons mean there are items of value in the hex already found) When the player enters the hex, they get a button in the top right allowing them to scavenge the current location.

Standing in a scavengable hex.

Pressing the scavenge button opens up an encounter screen, with all available scavenge locations listed for the hex. In a suburbs hex, this might be a mobile home or storage shed. In a forest, the player would only see stretches of forest to scavenge.

Choosing one of the scavenge locations shows the player some info on the prospects, such as the danger level, the likelihood of finding anything, and the chance of attracting unwanted predators. The player is also presented with any applicable tools or skills that would affect the outcome.

Once the player chooses his tools, the scavenge result is calculated. The player may find loot, may get injured in an accident such as a collapsing roof, or possibly attract the attention of a man or monster.

The idea could still use some fleshing out, but I like that it puts scavenging more in the hands of the player, rather than just random loot generation per-hex. We'll see how it works in practice.

And That's Not All!

Really, this may be the most exclamation mark dense post I've written yet. But there's a lot to talk about! In addition to the above, I've worked on:

Adding Playtomic API for metrics - Playtomic was super easy to implement, and I'm already collecting data on my debug plays. Still working out the best metrics to track, but this should be a no-brainer for game devs out there. It's free, easy, and useful.

Implemented a preloader - The final version of the game will need to be self-contained for portal sponsorship, so I made it possible to roll the content into the package based on compiler options. Doing so means a larger file size, though, so the preloader is there to tell the user how much game has downloaded in real time. Flixel's built-in preloader was easy enough to tailor to my needs.

Implemented SecureSWF by Kindi LLC - Just the trial version for now, but I think this is the package I'll be going with. It was a bit tricky to get working, as the settings needed tweaking to work with my code. But I managed to get it working in an afternoon, and most devs swear by it. So this is going to be a near-term purchase for me.

Added a save/load game feature - Still hammering the kinks out, but I can now save data for a game. Not sure where I'm going to store it yet, though. Considering GamerSafe, but I don't want to kibosh my chances of getting sponsored.

And there's still so much more to do. I'm being pretty harsh on feature cuts right now, trying to get something viable packaged and ready for sponsorship this month. It breaks my heart to leave some features on the cutting room floor, but I should be able to scavenge them for the next iteration. "Release early and often," they say, and I am looooong overdue in that department.

Well, 2012 is here. Speculated by many to be the end of the world. I suppose it's only appropriate that this will be the founding year of my new company. (Ahem, I mean the company will make games involving post-apocalyptic settings. Not that other thing you were just thinking.)

Business Development

As reported earlier, I became a permanent resident (PR) last month. Permanent residency was a big deal for two reasons:

It allows me to stay in Canada indefinitely.

It allows me freedom of employment without any visas, including starting a business in Canada.

Without #2, I was unable to work for anyone other than specified by my visa (i.e. BioWare Montreal). It was frustrating not being able to do much about my employment situation except wait. Having a hobby to work on helped, but I felt stifled by not being able to do much of the business development necessary to start an indie studio. Now that I'm in the clear, I can increase throttle to full (well almost, see below).

I spent a lot of time researching start-up businesses, and trying to get a handle on what was required. There's a ton of good info out there, but the hard part seems to be narrowing it down to the parts that are applicable. In case it helps any readers, here's a list of steps I went through. None of this should be taken as legal advice, as I am not a lawyer. Also, many of these are specific to the province I live in, BC. However, the general idea will be similar regardless of Canadian province/US state.

Draft a business plan - It sounds like a hassle, but it has already paid off for me. Doing this has put a lot of things into perspective for me, and forced me to answer questions I hadn't considered. Take this step seriously. It doesn't have to be polished if you don't plan on showing it to investors, but it should be as complete as possible.

Decide on a business structure - I spent a lot of time thinking about this one, and was quite close to incorporation. However, doing step #1 revealed some things about my plans that were making incorporation sound like overkill for my start-up. Also, I was lucky in finding Jack Nilssen's Dark Acre Year Zero Post Mortem when I did, as it bolstered my confidence that sole proprietership was the best fit for me.

Submit a business name request - Provided you're going with a name other than your own, you'll need to register that name with BC. You'll need one primary name, and two alternates in case the first is taken. I did mine online, and it only cost $32. I made a spreadsheet with a list of company names, and researched the following for each:

Search for the name on the internet. I considered the name good if there was little conflict with other search results, particularly in the video games area.

Verify the desired domain is still available. This step is optional, but you'll probably want a website for your business if you're going to market your indie games. I used whois.net.

Register your business - Once your business name has been approved, you must register the business with BC within 3 months of starting. I also performed this step online. In fact, BC makes this and the next few steps pretty easy by integrating them all in one website, the BC OneStop service.

Register with the CRA - If your business sells goods and/or services, and the world-wide annual sales exceed $30k, you need to register for the GST/HST. The IRS probably has a similar requirement in the States. For me, this step must wait until I get my PR card, as I will need a permanent SIN number (like an SSN) to register.

Obtain necessary business licenses - Depending on where you live, your municipality may require you to obtain a business license. Turns out living in the woods saved me about $80/year, as my municipality does not require licensing. However, most towns and cities do.

Employee considerations - If you hire any employees or contractors, there are a number of employee-related programs you'll need to look into. These include EI, payroll deductions, WorkSafe programs, etc. I'm sticking with solo for now, so I was able to skip many of these.

I also collected links to some additional sources of info, for those interested:

Small Business BC's checklist outlining the process of starting a business in BC.

Start Your Own Business - a handy walkthrough and reference for starting a business (US-centric, but most topics still apply). Available as paperback or kindle. Thanks Mom and Dad!

BC OneStop - I already link to a subsection of OneStop in step #4 above, but the general site provides a wealth of info, and is worth checking out.

As you can see, there are quite a few steps involved. Fortunately, they're not too hard to do. In truth, it took me longer to straighten all the steps out and make the necessary decisions than it did to actually do them. With any luck, I've saved some budding indie some research time!

So what name did I choose? Well, the website is being developed, so I don't want to direct anyone to empty space. Stay tuned!