Announcing Moon Hunters!

Kitfox Games is proud to announce our second project, which has been simmering for a little while in secret:

MHLogo2Black

Moon Hunters is an open-world adventure for 1-4 players, solving ancient mysteries and building mythologies. Explore a hand-painted pixel art world that’s randomly generated yet rich with crafting, non-linear stories, and arcane lore.

BridgeMock2_post

Features

  • An open, procedurally generated world: Over a hundred different locations and landmarks each have their own potential to help or hinder adventurers.
  • Exploration is key: Every landmark and territory may contain a Myth, which is essential in growing your world and your character.
  • Non-linear story: The mythology of your character and world is determined by your actions, and the world reacts to you differently based on the mythology you build. How will you react when you find a villager has lied to you? Temperamental heroes may be tempted to kill them in revenge, while more charismatic heroes use guile to extract the truth. Or do you try to ferret out other possible traitors? If you have trained in the powers of Dark Magic, the traitor may have a secret to share…
  • Myth-based crafting: Find, collect, and combine rare resources in different ways to create items, learn spells, and summon creatures.
  • Day and night cycle: Monsters and villagers behave differently and rituals have different results depending on the time of day.
  • Pick-up-and-play action: A quick, tight feel inspired by Legend of Zelda lets players set their own pace. A majority of the time in Moon Hunters is spent fighting monsters and claiming magical treasures, so it’s important that combat feels responsive and intuitive.
  • Character progression: Unlock new powers, creatures, items, and myths as you explore the world.
  • Gamer-family friendly: Accessible controls, short play sessions, and co-operative gameplay allow families to play together easily.

BloodSpecialRedux

You can sign up for the Moon Hunters specific newsletter by checking the website: http://www.moonhuntersgame.com or just clicking here.

The project was chosen to join the pilot program of the Square Enix Collective! If you head over there, you can read all about the concept and show your support by upvoting us!

MoonHunters_Gameplay_Logo

Any press inquiries or random suggestions, comments, and questions can be either commented there… or send an email anytime to tanya@kitfoxgames.com.

Level Design and Procedural Generation in Shattered Planet

Overview

Tanya here! This is a more detailed look at the procedural generation in Shattered Planet than we’ve ever shared before! It’s targeted towards game designers and any who are interested in learning more about game design.

I’ll talk a bit about our data structure, I’ll show a bit of the tools I use as a designer, and show how the complexity grew quite naturally over time from a simple premise. Keep in mind that I am not a procedural generation expert – I didn’t write a single line of the procedural generation code in Shattered Planet. All high-fives and awe-struck eye-shinings should be directed towards Mike, Jongwoo, and Greg.

pocgen3

However, as the designer on the project, it was my job to define the intended player experience, and work with the programmers to translate that into workable rules for the game’s engine to follow. So that’s what this is mostly about — a slightly higher-level look at the logic behind the system, rather than the code that actually runs the system.

If you’re interested in the actual code, let us know in the comments or on our Facebook page and we’ll see what we can do!

So without further ado… let’s think back to the beginning.

The Goal

We started work in the beginning of June, 2013. After two weeks, we had finished with our little prototype and we our gameplay was essentially a turn-based RPG in procedurally generated levels. We knew we would be using Unity.

Not long after, we decided on three design pillars to inform all of our design decisions (with some art direction impact as well):

* Intriguing: entices the player to be curious, and rewards experimentation & exploration
* Strategic: rewards tactical play — various different ways to achieve combat superiority, resulting in difficult decisions
* Accessible: immediately engaging, with lots of feedback, encouragement, and opt-in information

These each, of course, had their own risks if any one aspect became unbalanced or poorly implemented. If the ‘intriguing’ content is too mysterious, it may be invisible to players, or downright bewildering. If the strategic component is too strong, it may be off-putting or intimidating for players, especially on tablets (unless we think we can subsist on poaching Paradox fans). On the other end of the spectrum, if there’s accessibility without strategy or mystery, it will feel like an empty shell of a game with nothing worth engaging with in the first place, especially for more hardcore gamers like myself.

But before you have a level, you need the building blocks.

Room Structure

We wanted to be able to learn from the reams and reams of information online about procedural generation of game levels. Most of these involve “dungeons” assembled from tile-based, rectangular “rooms” and “corridors”. However, to keep with the “shattered planet” feel, Xin directed that our rooms would be more organic in shape. This is cool, but makes it so we generally can’t ever use someone else’s algorithm.

So, we give each room a minimum and maximum height and width, using square tiles. For example, a room might be a minimum of 2×2 but a maximum of 4×4. This results in a variety of possible sizes. Here’s an actual shot of what my design tool looks like, for determining the room size potentials (each level set has 4-5 room definitions):

roomdata

(Note, since it’s not obvious from context: Min and Max “Num Rooms” actually refers to how many of this particular room definition are allowed to appear in a level. The above is a snippet from the “RoomsBasic” level set, as opposed to the “NoLakes” level set, etc.) This results in something like this:

level generation design

As you can see, each also has the possibility of internal “holes”, or “lakes” to be generated. This is handled entirely by the engine — as a designer, I merely specify whether or not a given room can have a lake or not. Depending on the theme (desert, laboratory, etc), the “lake” may look like water, lasers, acid, etc. As the designer, I can also decide per-theme which tiles rooms should use (just dirt and brush? Or just dirt and grass? Or a combination of all 3?), and which obstacles (rocks, mushrooms, a combination, etc). Another tools screenshot:

themedata

(Gen Dirt = Generic Dirt, Des Sandstone = Desert Sandstone, StoneDirt is half of each!)

Each room also has (thanks to our lead programmer, Mike Ditchburn) 2-4 tiles set aside as potential “door” tiles, one on each side. Once these are actually connected to other rooms, the game uses a pathfinding algorithm to decide where it’s “safe” to place obstacles — i.e. where it won’t block the player from traversing the room or accessing treasure.

obstacles

So, taking these rooms and my experience in traditional level design, we built the initial algorithm for how our levels would be generated, which was all about the Critical Path.

Critical Path

If you’re a level designer, you know that the ‘critical path’ is the way the player MUST go, in order to complete the level, with no side-tracks, distractions, or mishaps. Typically, to encourage players to continue on the ‘correct’ path, designers place rewards such as coins (similar to an enticing trail of Reese’s Pieces), and enemies… because rather than run away from enemies, most players find it more fun to approach the enemy head-on and engage in combat, assuming combat is a fun, central feature of your game (i.e. not a stealth game). This pulls the player forward.

So, in Shattered Planet, one of the first rules of level generation was that the engine would establish a “critical path” of rooms, which contains the player’s starting “room”, the final “teleporter” room, where the player escapes the level, and all rooms directly in between.

criticalpath

We then treat these rooms differently than side-rooms. Where critical path rooms get lots of little piles of coins to lead the player forward, side-rooms get “treasure piles” — fewer but larger coin-heaps. Similarly, where critical path rooms get fairly average-difficulty monsters, wandering off to the side-rooms may result in occasional monsters of greater difficulty. This is supposed to create a sense of risk for reward — generally, going the opposite direction from a big baddie will result in finding the teleporter, but also in avoiding treasure.

So at this point, without any further improvements, this is what the maps look like in the editor (circa July 2013):

pocgentriptych

Locked Doors

To add a bit of variety and reason to explore the corners, we added locked doors, with keycards scattered somewhere else in the level. Rather than block the player’s progress (or frustrate them if they’re in a hurry, with the Blight on their tail!), we decided to use the locked doors only for optional bonus treasures (and monsters!). So, we wanted to make sure the locked doors never appear on the critical path. Since we know which rooms are on the critical path and not, it was an easy enough upgrade to remove one corridor from an off-path room temporarily and replace it with:

(You can also see a locked door in the first panel of the triptych above, if you squint hard)

desert

Alternate paths

Almost as soon as we had the critical path and side-rooms laid out, we realised the levels were pretty boring. They had a lot of dead-ends, which resulted in lots of back-tracking, especially for treasure-hunters… far from the Zen flow of a good level. In fact, a room could only have a maximum number of 2 exits, in the above maps!

So, to add variety and ‘flow’, we tacked on room connections, after the critical path and side-rooms have been positioned. Remember how in the “Room Structure” section above I said we mark out 4 “doors” per room? Well, we use those again! We (by which I mean Mike tells the engine to) find a couple of doors near each other, and draw a straight line between them, as best it can, turning a right angle if needed.

junction

This added a much-needed refreshment to the dead-end problem, and makes exploration that much more interesting.

Exceptions

As with any rules, there are always exceptions. Even in game design.

We also had to build a separate set of tools to make “hand-crafted” levels, including the space-ship that serves as the player’s hub, as well as potentially other secret special levels.. (nope, no spoilers!) We tried to re-use the same data as much as possible. So, I place the same TerrainData cubes around as tiles — see, here’s a peek at the hub, only where I’ve taken the normal tiles and replaced one with the old familiar “Gen Dirt” from before.

tilehub

I can also place the usual enemies and obstacle data objects I use to populate themes.

Future Changes and Lessons Learned

There’s always more to do! The level design is about done, but we want (as you may have noticed in the Critical Path illustration) alternate teleporters that can let you skip to special/secret level themes, special ways for the player to creatively make their own paths to floating rooms, maybe even the ability for the player to swim!

But if we’ve learned anything from all this experimentation from the last few months, it’s:
* Apply traditional level design principles, with flexibility — they’re still useful!
* Procedural generation takes a crazy amount of testing! Just replicating a bug can take hours of loading and re-loading.
* Stay open-minded to possible improvements, after you’ve “finished” implementing your procedural generation.

Thanks for reading. If you want to learn more about level design or game design, I recommend checking out this list of compiled design resources on Tigsource — some are free online.

For those of you only interested in the future of Shattered Planet, never fear! The weeks are counting down to launch, and we’re scrambling to get the content and code polished and bug-free for your eager downloads. If you haven’t signed up for the newsletter yet, consider doing so, for the best news, previews, and secret party invitations.

The Winner is: Gekkian Diplomat!

The results are in from our little community poll! Thank you to everyone who participated.

surveyresults

As you can see, the Gekkian Diplomat clearly won out, with over 50% of the votes. We also collected responses on Reddit.com and Twitter, which followed a similar trend. What with already having humans and robots, perhaps it’s only natural that an alien would win out… but of course, everything seems so much more obvious in retrospect.

NewCharWinner

We’ll be refining the Gekkian player character’s look further as we bring it into the game, and of course we’ll provide 4-5 different heads to try out with different ear configurations and facial expressions. We may, of course, also re-visit the other designs in the future.

Thanks again for helping us make a tough decision!

Choose Your Character!

Hey guys!

So, now that we’re in the last few months of bugfixing, optimisations, and technical massaging… we’re looking at what new content to add, too! We’d like to involve you in the process.

We already have the Assassin, Renegade, and Explorodroid.

originalclasses

Currently, all characters are equal in power and abilities, though that may change in the future.

And now it’s time to choose… the next character! They’re still in the sketchy stage, so the details may change in development.

NewCharSketch

A: The Destructobot
B: The Exile
C: The Gekkian Diplomat

Which would you play? Why? Would you change anything about them?

Leave a comment or answer our survey!

We’ll be using your responses to decide which to pursue first, so choose wisely!

A Long Screenshot: Chillin’ in the Desert

Tanya here. Yesterday, I was working on the game, fixing up some spreadsheets and texts and so forth, and realised that I had been listening to the same cool song for about 30 minutes. I went to find out what it was… and it was Shattered Planet!

So here’s some flutes to make your day (or evening) more mellow, and maybe more mysterious? All praise for the music, of course, should be directed to Ryan Roth. The soundtrack will go on sale simultaneous with the game, so keep a few bucks earmarked!

Field Report: The Life of the Crablet

Dear Galactic Union Science Whatevers,

I heard you are paying frontier explorers in crystals for information on new species and technologies. As the only human to set foot on the shattered planet in sector K, I submit the following:

 

The Crablet

Avatar0

Suggested species name: Homarus cyclopea

Adult size: 40-60 cm

Adult weight: 10-15 kg

Lifespan: ???

 

As you can see, the adult crablet seems quite harmless. But don’t be fooled! Crablets appear to despise humans and I have the claw-marks to prove it. They aren’t as aggressive to the indigenous tribes, despite the fact that the tribes kill the crablets on sight, even by the dozens. Perhaps the locals have discovered some way of masking their scent, which I haven’t learned yet.

The hard exoskeleton is actually rather fragile, and in fact is no tougher than animal hide — even less, when using weapons that smash and crunch. I wonder whether a crab mallet would, in fact, be a feasible weapon…

crabeggs

The “crablet” begins as one of dozens in an egg sac. A single egg sac appears to be capable of creating hundreds, possibly thousands of crablets. The sac pumps eggs out at a steady rate, almost like a caviar factory. I suspect this (along with their delicious insides) is a reason why the local folks kill them on sight; otherwise, they’d fill up the whole dang planet!


CrabletFull
Crablet eggs complete incubation in cooler temperatures, signalling to the crablet inside that it is time to hatch. If an egg is picked up and carried, it will never hatch, as if the crablet inside has become lazy from the warmth.

No time is needed for a newly hatched crablet to adjust to its environment — it hatches fully-formed and ready to fight. In fact, I have attempted to surgically open one of these eggs, and the crablet inside nearly took off my nose!

Crablets, like most other native species, are fiercely loyal companions once befriended. I have occasionally persuaded one or two to follow me, usually through the use of food. These often refuse to listen to my instructions, and rush out to defend me against attackers! Despite this adorable ferocity, they do not appear intelligent enough to train.

I haven’t seen a crablet die of natural causes. It’s possible they are immortal, or very secretive when they get older? Perhaps they transform into another creature entirely. Perhaps I’ll discover a massive crablet graveyard. Only time will tell.

 

blightcrab

On the other hand, if the Blight is permitted to spread unchecked, it appears to occasionally build nodes of power, and these evil-looking crablets crawl out. They appear to want to kill me as soon as they start to exist! There’s no befriending to be done here.

crabpoison

I have occasionally glimpsed a rarer type of crablet that is capable of spitting a highly caustic venom, perhaps due to a unique diet or environmental factor. Luckily, their distinctive bright green shells make them easy to spot and avoid.

For now, my suggested Galactic Union datalog entry for the Crablet will read:

“Delicious, territorial crustaceans that are highly social, traveling in groups. Rumored to be immortal — the population must be controlled with regular culling. Sensitive to Blunt damage.”

newcrabentry

I’ll be waiting for my crystal payment to be transferred.

– Captain Aurora

Free Game: GravCore

What is it?

GravCore is a co-operative game made by 2 people in 7 hours. It looks like a beautiful pong at first glance, but without communicating to the other player, you’re sure to lose! Be sure to invite a friend over to play it with you!

Goal: Work together to guide the ball and collect all of the pieces of your broken space-ship before time runs out!
Player 1 Controls: W and S to move your paddle, Space to change gravity push/pull
Player 2 Controls: Up and Down arrows to move your paddle, Enter to change gravity push/pull


Click to play GravCore!
gravcore

How it came about

A couple of weeks ago, we heard about a little event called Battle of the Studios at the Montreal International Games Summit. We couldn’t resist the allure of a 7-hour game jam, so we sent Xin and Jongwoo to represent us in the arena!

battlestudioswinners

And, naturally, 7 hours later, they were crowned victorious! They won 2 free copies of MayaLT and 90-day access passes to Mixamo. Thanks to 3vis for hosting the Battle of the Studios and encouraging more game jams.

Environment Design: The Shattered Desert

Hi guys! Tanya here!

Today I’ll go into some detail on our environment design, using the Desert as an example, since we haven’t shown it off much yet and it’s the first area-type the player encounters. I’m actually from the Mojave Desert of southern California originally. I spent most of my childhood chasing lizards, catching kangaroo mice, and climbing the Rocky Mountains… when I wasn’t allowed to play NES, anyway.

joshua-tree-national

An environment’s atmosphere comes from every element — the landscape, the colors, the wildlife and lighting. Xin, our artist, starts by painting the terrain we need. For the Desert, we knew we wanted basic tiles of Dirt, Sandstone, and Brush. We want the Desert to feel desolate and dry, but not lifeless.

deserttiles

Now, before you think, “those aren’t very interesting! Where’s the life, the juice, the oomph?” … we started out going super-detailed, with intense painterly details on each tile…

badtilesjpg

And yes, they were beautiful! BUT when they’re tiled all together, 10×10, it looks terrible. Dirt starts to look like meat!

badtilejpg

We might still sprinkle details like these throughout as a rare treat, but for now, we’ve had to forcibly tone down the contrast and details of any one basic tile, for the betterment of the whole.

Next, he paints combinations of each tile-type with another, so that the world generator can smoothly transition between regions. For example, a half-Brush, half-Sandstone tile should always buffer between Brush and Stone areas.

deserttileshalfsjpg

The final terrain layer is composed of “crumbly bits”, as we call them, which help reinforce the idea that you’re on a shattered planet. They match at least half of the tile-type they’re generated next to. For interior levels, these take the form of metal struts and frames. For exteriors, they’re more like chunks of earth and rock.

deserttilescrumbsjpg

And then, at long last, the fun part — we can add gameplay! Bushes and rocks are obstacles that get in your way and help with the ambiance. As for enemies, you might have seen our Hatchling and Nest Guardian back when we first concepted them in July, and now they can finally romp and hunt in their natural desert habitat. Combining all of the elements together gives us a flavorful, unique Desert environment that feels significantly different from the others.

deserttileswithstuffjpg

So, with no photoshopping or other trickery, here’s a screenshot taken directly from the game while it’s running:

desert2jpg

The next step will be adding in a flavorful background for each environment. We want to keep the lonely, dark feeling of the desert at night, but something a little bit more interesting than plain black.

BgDesert

Unique story encounters can also happen in the desert — finding unearthed skulls, old campfires, lost hatchlings, or even strange stones can lead you on mini-adventures into the unknown. Just like home?


If you’re interested in playtesting Shattered Planet or just receiving our monthly newsletter, be sure to sign up on the right-hand sidebar!

Playing With Fire

Space captains can now find themselves in a tough spot if they play fast and loose with fire.

Because, you see, grass and moss and brush tend to catch nearby fires and even embers can be dangerously hot to walk on.

Watch the gif below carefully to see a venomous crablet get turned to a pile of ash!

firespread

Free Game: Sculptorgeist

As a mind-refresher, the Kitfox Krewe took a weekend off from Shattered Planet and decided to do a game jam! If you’re not familiar, the purpose of a game jam is to make a game within 48 hours. And so… we did!

Behold, the glory that is Sculptorgeist:

gameid_593_sculptorgeistscreen1

gameid_593_sculptorgeistscreen2

gameid_593_sculptorgeistscreen3

The official game description: “In Sculptorgeist, you are a poltergeist haunting a clay house. You can only effect the inanimate objects, not the easily frightened clay people that are trapped in the house. Try to get the highest score! Happy haunting!”

Pro tip: Click and drag for maximum scaring… and if you are a MASTER OF FRIGHT, perhaps you’ll earn a secret ending!

If you want to play it, click here and get started!

Furthermore, as you’ll notice in the link, we did it as part of the Indie Speed Run, which is a contest … so if you leave a rating, maybe we’ll win a prize of some kind? Wish us luck!