Funded! This project was successfully funded on July 17, 2013.

Update #49

March Update - Case Study: Textures

21 comments
25 likes

Hello, everyone! Some of your suggestions for update topics back in February were:

  • Architecture / iteration
  • Multiplayer
  • More tech stuff in general
  • Interface
  • Tools

I'm dealing with a problem right now that falls into the tools / tech stuff categories: Texture management. (This is exactly the kind of thing I would assume is too boring to write about, but hey you asked for it!)

Arg, Unity

Unity is a great tool. An amazing tool, really. But it has limitations. The biggest is that it assumes you'll be using 'levels' in your game. This doesn't rule out open world games, but if you were playing by their rules it would be something like Metro: Last Light where the world is carved up into discrete regions with maybe two or three entrance/exit points, plus loading screens in between them. You load a level and everything in it when you enter an area, then unload everything when you leave. Sure some minor stuff like enemies might spawn and despawn while you're there but the general rule is: load all the things / unload all the things. (Including any textures used in the level.)

FRONTIERS isn't like that. There aren't levels - there's just a world. I have exactly one 'level' that's loaded on startup. After that I load and unload individual objects - characters, rocks, terrain tiles - into whatever area the player needs to see.

This was the root of the problem I faced last year - how do I organize content so that I can load and unload it as I move through the world? How do I avoid loading too many objects at once, or too few? I came up with some decent solutions. It'll never be as seamless as a truly streaming open world like Grand Theft Auto, but it works.

Unfortunately this approach prevents also me from using a lot of Unity's built-in tools - stuff like pathfinding, occlusion culling and (apparently) texture memory management. (Note: I keep hedging when making statements about Unity's texture memory because the truth is, I have no idea what's going on under the hood, and no one else seems to either. Google this problem and all you'll find is lots of unanswered questions & educated guesses.)

So while I may have the number of objects under control, I'm now dealing with a related problem: textures. Load too many textures at once and blammo: crash to desktop. These are the main issues:

  • Unity doesn't have a useful, well-documented way to manually unload a texture that has been loaded at runtime. Yes, you read that right. The only method they offer that actually works makes it impossible to load the texture again, which is useless. I could write an entire blog entry about this issue but I'll spare you the colorful language.
  • The foliage and structures in FRONTIERS have a lot of variety. If I was dealing with a mono-climate I'd be fine, but we're talking a whole new set of plantlife and new structure textures for every region. Which means more textures, which means more delightful crashes.
  • Unity doesn't have a useful, well-documented way to manually unload a texture that has been loaded at runtime. Oh did I already mention that? Well take a moment to let it sink in.

What to do?

Use fewer textures, duh. There are lots of ways to do this.

There are a lot of redundant materials in any game world. Got a wood chair, wood table, wood axe handle, wood cupboard? Use the same wood texture for all of them. You lose a little visual flair but I'll happily sacrifice dedicated oak, cherry and pine textures for more plant varieties.

What about color variations? For characters and for some objects I use shaders that apply colors to areas of a texture based on a red/green/blue mask:

Same two textures, thousands of variations
Same two textures, thousands of variations

Overlay textures are awesome. A cliff face might need a massive 2048 x 2048 texture to look good up close. A unique texture that enhances its geometric contours, mind you - you can't get away with a generic texture like you could with the non-natural wood objects. But if you can only spare 256 x 256 pixels per major rock variety - and I can barely spare that - the result is going to be a blurry mess. So you overlay another smaller, tiling texture on top. Now you've got something that looks OK up close while still preserving the broad details of the unique texture. Different overlay textures can produce different rock varieties, too:

What about snow? We used to have unique snow textures for all of the rocks on Willowpeak, but when I started adding structures to that region we ran out of memory in a hurry. So I axed all the snow textures and swapped it out for a snow shader that applies a tiling snow texture based on the surface normal. (A side benefit being that the snow can be added or removed based on season.)

Then there's terrain. When Given first started working on the terrain he told me 'I want to use four textures - dirt, grass, sand, rock.' I told him he was crazy, and I meant it. How could we possible achieve the variety I wanted with only four textures? His solution was to use a color overlay shader. The shader cleverly identifies the average color of the texture it's being applied to, then only changes that 'major' color while leaving the rest alone. I had planned to use 16 2048 x 2048 textures plus local variations, so even with the addition of a 512 x 512 color overlay texture for every terrain tile we still came out ahead. It's tough to describe so I'll just show you a before / after:

There are other methods like texture atlasing and clever UV mapping - this is especially relevant for the interface.

Still not enough

This accomplishes a lot but it's still not enough. The best way to keep texture memory in check is to unload the textures you aren't using. If you're nowhere near a palm tree - and I have ways to tell - do you really need that palm tree texture taking up 256 x 256 precious pixels? No. But as I mentioned before, Unity doesn't have a (useful) way to manually unload a texture that's been loaded at runtime. So until I hear differently - and I'm working on getting directly in touch with someone at Unity who can address this issue - I'm forced to assume that FRONTIERS must be capable of loading all of its textures at once.

I'm shaking my head as I type this because that kind of restriction is ludicrous, but the alternative is to subject players to eventual out of memory errors as I continue to load (and not effectively unload) textures as they move from one part of the world to another.

So the next week or so will be spent aggressively pruning every texture that we don't absolutely, positively need.

Oh Unity, I can't stay mad at you

This texture unloading business is a major headache and kind of inexcusable but it doesn't diminish Unity's overall usefulness. For every hour I've spent wasting time wrangling textures I've probably saved ten with their shader tools or rapid compiling. And to be fair, I am the one that broke the rules - if I had stuck with their level paradigm I wouldn't be facing this issue. (Curse you, stubborn streak!)

AND there's always the chance that someone, somewhere has figured out a useful workaround for this problem, or that the latest version of Unity will address it outright. I'm keeping my fingers crossed for that outcome.

Alright, back to work

I'll go into multiplayer in the next update. Matthew is hard at work on it right now, so by then I'll have some more in-depth information. In the meantime if you're still in the mood for some tech stuff, here are two devlogs you might have missed that touch on Creature AI and randomized character generation.

Cheers,
- L


Update #48

FRONTIERS has been greenlit

17 comments
64 likes

(Click to embiggen)

Well that was quick

5 days, nearly 10,000 'YES' votes and an unbelievable 87% yes vote ratio. And we finished in the #7 spot. My head is still spinning.

A couple of articles are responsible for that last-minute bump:

And the rest was all you guys. This entry could have languished for weeks or even months below the top 100 threshold - Greenlight is far from a perfect system, and I had prepared myself for that miserable possibility - but instead I swear we made some kind of record. Thank you for all the votes and shout-outs. They made this happen.

So... yeah. Guess I'd better finish this thing, huh?
- L


Update #47

Whoa!

23 comments
46 likes

The Greenlight page is exploding!

And way earlier I expected! But before I get into what happened, here's a link to the Greenlight page, complete with updated trailer. Enjoy, and don't forget to vote! :D

CLICK HERE FOR THE GREENLIGHT PAGE AND NEW TRAILER

Okay, here's what happened:

Last night I decided to do a stealth launch on the Greenlight page. I figured I'd post the trailer and launch the page and just not tell anyone, then do the official announcement today. Why? Because I was tired of website updates & wanted to finish the main site and press kit with links to the greenlight page & new trailer, etc. It was 7pm on a Saturday night, I figured maybe 10 people would stumble across it by morning.

About an hour later I noticed the Greenlight page had a hundred votes already. Huh. Turns out that stealth launches don't really exist on Steam. And the voting ratio was roughly 70% 'YES' to 30% 'NO.' Pretty decent, but not amazing either. Wuh oh, I thought, what if it goes down further?

So stealth launch suddenly became soft launch - I posted on Facebook and Twitter and the forums that Greenlight was live, hoping to drive that ratio up a bit. I figured we'd see a small bump, then I'd bring out the big guns tomorrow with the Kickstarter update. Two hours later this is where we stood:

(embiggened version) 

Okay, not bad! And sure to get better once the KS update went out. I went to sleep slightly less nervous. But in the middle of the night I woke up and checked the stats and those numbers had shot straight up. As of this morning, this is where we stand:

 (embiggened version)

This is insane. We're outpacing some of Greenlight's top-ranked items by a lot. (I'm really curious to see how we stack up against the #1 item.) Look at this chart:

So this isn't just a matter of getting Greenlit quickly any more. Unless I'm totally misreading these stats, we actually have a shot at becoming one of the top-rated / most-quickly-greenlit games ever. Wasn't something I'd planned but hey I'll take whatever I can get.

So! Get in on that dogpile and let's make that line even more absurdly vertical!

Cheers
 - L


Update #46

FRONTIERS is coming to Steam Greenlight on March 30th!

16 comments
22 likes

Hello, everyone - on March 30th FRONTIERS will be going live on Steam Greenlight! (Don't know what the heck Steam Greenlight is? Click here.)

And I need your help. I plan to distribute the game on GOG and Humble Bundle as well, but getting on Steam is my number one priority right now. Why? Because Steam's free tools will help me to distribute and rapidly patch the pre-release beta. The beta is a massive undertaking, and every minute I don't spend packaging and distributing and wrangling the next build is another minute spent squashing bugs and balancing gameplay.

Here's the Plan

Remember how much we kicked ass on Kickstarter? A big part of that was the early influx of backers. That pushed us into the top ranks, which generated interest, which kept us in the top ranks. I want to pull the same trick with Greenlight, which is why I'm doing a pre-announcement. If every backer with a Steam account plus even a fraction of the 10,000 from the Steam Concepts page votes YES on the FIRST DAY it ought to raise a few eyebrows.

In other words, the plan is lots of votes really fast. IT'S JUST CRAZY ENOUGH TO WORK.


Media gods willing I might even be able to swing a bit of press. In the meantime, you can help by telling everyone you know who might even have a passing interest in FRONTIERS (and a Steam account) to get ready to vote. I aim for a quick, decisive victory!

Isn't Greenlight getting phased out?

Hilariously, yes, they are phasing it out. Great timing right? But they haven't announced exactly when this is happening, only 'sometime in the next 12 months,' and in the meantime I've got to play by their rules.

I'll post a final announcement once the Greenlight page goes live on the 30th.

After the Greenlight launch is behind me I'll do a proper monthly update - I've got answers to some of the questions you asked last time, plus new gameplay footage.

Cheers
 - L


Update #45

February Update!

27 comments
56 likes

Hello everyone! Let's kick this off with another beautiful screenshot of one of my favorite locations - the totally revamped Willowpeak. Remember how play-dough this place used to look? I'll refresh your memory:

After three major revision this is what it looks like today:

Ahh. Don't you just want to live there? Here's a hi-res version.

Final Book Kit

If you pledged for a book kit, keep an eye on your Kickstarter inbox. The final kit will be sent out within 24 hours. It's a major step back in terms of complexity (I axed the standalone program thing and went web-based) but a major step forward for flexibility, formatting and (eventually) translation into different languages.

Get this - that's the very last kit. They're all done! Can you believe it's been five months since the first kit was released? I can't. (Seriously it feels like two months tops. It's freaking me out.)

Beta News

Plans for the beta are firming up. I'm not going to mention any dates or deadlines - I've learned my lesson there - but I will say that a beta release is officially an active goal, not just 'something we'll eventually get to.' I've spent the last two weeks mass-building main quest assets - structures, characters, books, letters, etc. Meanwhile Given is taking everything we've learned about terrain generation and applying that know-how to the creation of our final endgame landmasses. Once that's all wrapped up I'll be releasing one final alpha to stress-test distribution, followed immediately by the long-awaited beta. That's right, you'll get a main quest right out the gate!

Would You Like To Know More?

I consider it my responsibility to keep everyone entertained with info & trivia while you all patiently wait for the final game. Partly because I dislike it when Kickstarter projects vanish into the mists after a few months and partly because I feel it's the least I can do.

But I'll be honest, I'm running out of stuff to say in these updates. That's not because nothing interesting is going on - it's a 24/7 madhouse in here. It's because I'm losing perspective.

What do I mean by that? Imagine that you're a reporter in the middle of a tornado. There's no lack of excitement - you're in a 300mph wind funnel of death! - but you can only relay so many variations of 'STUFF IS FLYING AROUND REALLY FAST AND BOY IS IT LOUD' before it starts to sound boring. On this project it's some variation of 'I BUILT SOME ASSETS AND SOLVED SOME PROBLEMS AND BOY AM I BUSY!' Maybe you find this info riveting - or maybe your eyes are glazing over. I have no way to tell from inside the storm.

So help me out! What are you curious about? What are you NOT curious about? I'll gladly talk your ear off as long as I know someone wants to hear it. Would you like to know how I stay hydrated while I work? (Trickier than you might think!) Or maybe what third party tools I like to use? How many assets I create in a week? How I motivate myself? What Steve likes to eat for lunch? (The fact that I'm only half-joking about that last one should illustrate how out-of-touch I feel.)

Or hey, maybe you're content with no chit-chat at all! Just the facts ma'am and the rest is for the birds - that works too. In any case, I am at your disposal.

Taverns & Shops & Inns & Recipes & Plants...

There's one thing I DO know you'll want to hear about - your in-game assets! Along with the main quest assets, I've also started building everyone's custom content in earnest. Your shops, taverns, inns, engineer structures and so on have been bumped up the priority queue and they're looking fantastic, if I do say so myself. Once again I'd like to thank everyone for taking your submissions seriously and giving them appropriate (and inventive) names & descriptions. I haven't had to ask for a single name or concept to be modified.

I'm also continually reviewing everyone's recipes and plants, and I'm finding those equally fun. I can't promise there won't be revisions there because I haven't processed them all yet, but I'm loving everything I've seen so far.

I was warned repeatedly that giving backers direct input like this was dangerous and potentially a major time sink but so far you've proven the naysayers completely wrong. (They know who they are. Neener neener, told you so! Hehe :D)

Alright that's all for now, catch you next month!


4,574
Backers
$157,381
pledged of $50,000 goal
0
seconds to go
  • Pledge $5 or more
    You selected

    14 backers

    APPLICANT ● Thanks for supporting the game. Here's some cool desktop art and hi-res digital maps of the game world for your trouble. Plus you'll have access to all the backers-only content, polls and feedback sessions.

    Estimated delivery:
  • Pledge $15 or more
    You selected

    2315 backers

    NOVICE ● Get everything listed in the Applicant reward AND get a copy of the finished game when it's released on PC, Mac and Linux!

    Estimated delivery:
  • Pledge $25 or more
    You selected

    332 backers

    DOUBLE PACK ● Get the art pack plus TWO copies of the finished game when it's released on PC, Mac and Linux!

    Estimated delivery:
  • Pledge $25 or more
    You selected

    761 backers

    APPRENTICE ● Get everything in the Novice reward PLUS a digital download of the soundtrack and access to the limited beta when it's released!

    Estimated delivery:
  • Pledge $30 or more
    You selected

    250 backers All gone!

    EARLY BIRD RANGER ● Get everything listed in the RANGER reward, but for a special early bird price!

    Estimated delivery:
  • Pledge $40 or more
    You selected

    211 backers

    JOURNEYMAN ● Get everything in the Apprentice reward PLUS an extra copy of the game, your name in the credits, AND a digital book authoring kit that allows you create readable in-game books, journals & letters that will appear in the final release! (See FAQ for details!)

    Estimated delivery:
  • Pledge $55 or more
    You selected

    274 backers

    RANGER ● Get everything in the Journeyman reward PLUS have your name inscribed on a towering memorial in the game's largest city! Your character will also start the game with a blueprint for the APPRENTICE BLADE, an exclusive backers-only weapon! (See FAQ for details!)

    Estimated delivery:
  • Pledge $70 or more
    You selected

    70 backers

    NEW REWARD ● BOTANIST ● Get everything in the Ranger reward PLUS create your own in-game plant that will appear in the final game! We'll send you a Botanical Creation Kit™ to create & name a unique plant. Mix & match a huge variety of options - edible or poisonous, colorful or drab, scraggly or flowery, medicinal or groovy hallucinogenic. You'll even get to choose its favored climate! (This new reward is automatically included in all higher tiers, including Barkeep.)

    Estimated delivery:
  • Pledge $70 or more
    You selected

    51 backers All gone!

    SPECIALIST ● Get everything in the Ranger reward PLUS I'll work with you to put your face on an NPC (with a name based on your name) that will appear in a random location in the official release!

    Estimated delivery:
  • Pledge $85 or more
    You selected

    25 backers All gone!

    BARKEEP ● Get everything in the Ranger reward, PLUS your own in-game tavern! With this reward you can choose the name of one of the many wayward taverns in the game world. I'll design a logo inspired by that name and it will appear on the tavern's shingle. What's more, your copy of the game will come with a 'deed' to that structure, which you will own from the start!

    Estimated delivery:
  • Pledge $100 or more
    You selected

    173 backers

    NEW REWARD ● ISLANDER ● Want an Island? Get everything in the Botanist reward, PLUS inherit a small, mysterious island at the start of the game - including the strange, ruined estate that was once built on it! Players without this tier will also have access to this island, but your copy of the game will establish you as its legal owner, and you'll be able to choose the island's name on the world map! You'll also receive a digital booklet of hi-res sketches of the island & ruined estate in PDF form. (This new reward is automatically included in all higher tiers.)

    Estimated delivery:
  • Pledge $175 or more
    You selected

    25 backers All gone!

    ENGINEER ● Get everything in the Specialist reward PLUS I'll model and hide one object of your choice somewhere in the game world! After the game's release you'll receive a sealed map revealing its location in case you can't find it on your own. Of course to read it you'll have to cut the seal like a cheater! ☺

    Estimated delivery:
  • Pledge $300 or more
    You selected

    5 backers All gone!

    MASTER ● Get everything in the Engineer reward PLUS I'll create one building of your choice (within reason) that will appear in game world. It could be your childhood home or a favorite real-world castle - I'll work with you to ensure it ends up in the finished game! (See FAQ for details!)

    Estimated delivery:
  • Pledge $330 or more
    You selected

    3 backers All gone!

    NEW REWARD ● INNKEEPER ● Get everything in the Master reward PLUS you can name one of a few select Inns in the game world. I'll design a logo inspired by that name and it will appear on the Inn's shingle in the final game. Your copy of the game will come with a 'deed' to that structure, which you will own from the start! (This new reward is automatically included in all higher tiers.)

    Estimated delivery:
  • Pledge $500 or more
    You selected

    10 backers All gone!

    COMMANDER ● Get everything in the Master reward PLUS I will send you a 30" x 30" map of the game world, printed on quality paper and aged by hand for guaranteed uniqueness! Your name will also appear in a special 'Cartographers' credits section! I'm really looking forward to making these, folks. They're going to look gorgeous.

    Estimated delivery:
  • Pledge $2,000 or more
    You selected

    1 backer Limited (2 left of 3)

    ARTISAN ● Get everything in the Commander reward PLUS a signed, hand-painted 3D-printed model - your choice of either an Obex Waystone or an Obex Gateway! (See FAQ for mockup.) Each will be unique, painstakingly detailed and crafted for longevity. A true collector's item. (This reward is automatically included in all higher tiers upon request.)

    Estimated delivery:
  • Pledge $2,500 or more
    You selected

    3 backers All gone!

    STARWALKER ● Are you a cigar chomping, money burning, tweed-wearing baller and shot caller? This option is for you. You'll get everything listed so far, plus A CO-EXEC PRODUCER credit in the opening titles and one of three World Regions will be given a name based on your name (Only three slots available for obvious reasons.)

    Estimated delivery:
  • Pledge $3,000 or more
    You selected

    1 backer All gone!

    SPYGLASS ● Get everything in the Starwalker reward PLUS the one and only FRONTIERS spyglass. This 12-power, 18," leather-sheathed, hand-aged spyglass served as a reference model for the all-important in-game spyglass. Even in a world filled with precious items and hidden treasures, this spyglass (which is passed down to you by your uncle, the renowned explorer) carries immense history and prestige - and now you can own its real-life counterpart. (See FAQ for images.)

    Estimated delivery:
Funding period

- (30 days)