Saturday, March 14, 2015

Environment in Savage Lands: Part 1 - Concept & Sculpting

screenshot from Savage Lands
screenshot from Savage Lands

In my last post I talked about a recent project I'm working on called Savage Lands. Following is the first in a series on how the environment was created.

Concept Phase

Back when we started the project, there were several ideas on the table for what our world should look like. What I was hoping to do was differentiate our world from numerous other survival games, and present a harsh unforgiving climate for a grittier survival experience.

It's funny, I've never been a player of medieval games, or watched Game of Thrones. Most every game I've worked on previously was current, near-future, or futuristic in setting. But as I started to research I became very interested in how GoT treated a setting called "The North", blending both brutal realism and mythical elements in the world.

This research produced our "key" image, the reference that would set the tone for the environment.

key inspirational reference image
The North from GoT, a key inspirational reference image

From there, I made a visual style guide for for the World elements. On large studio games I've worked on, we would typically go way deeper and into greater detail with concept drawings, etc.. But this being an indie project and working with experienced artists, I made a 'lite' style document that provided a broad visual overview.

You can download the style guide here: [zipped Word doc 8mb]

That's a key phrase to remember in all of this: Indie Game. Our hope was to have the core of everything up & running in 3 months. That proved to be wildly optimistic, but the essence of the development process was to move as efficiently as possible, and not rat-hole on anything too specific.

We would start with this direction, then shape it and make it our own interpretation.

Scale & Topology

A lot of discussion ensued about the size of the world. This decision is driven by a variety of factors like the number of players, the speed of player movement, and what the balance is between exploration and player constructed content.

But the reality is, you don't get a true sense of scale until you can actually run around on a map and measure commute times through the space. Some early test maps were experimented with, and the general feeling was that we'd need at least 2x2 km and maybe as much as 8x8 km.

Another classic issue is boundaries, and we decided to go with an island to solve a host of potential issues. Players hate invisible walls, and creating a steep terrain wall around the space makes the world look like a bowl. An island would create interesting water/land interaction spaces, and offer variety to the landscape. If players decided to run into the water, they would die quickly of hypothermia.

So at that point I knew I had to build a big honkin' arctic island. In my head I saw a design that transitioned from sea level up eroded slopes, leading to rolling hills on a broad plateau in the higher elevations.

Crafting the Height Map - Tools

I've been building height map terrains since the first days of KPT Bryce, but it's been a while since setting out to create a game world this way. We needed a tool that would allow iterative design, and generate elements like splat maps, normal maps, and other terrain data.

A colleague of mine had been checking out World Machine, a stand-alone package that uses a node-based interface, and offers a good low-level control for sculpting. It also is designed to work well with Unity 3D, the engine we selected for the game.

Another tool called Terrain Composer seemed like a good fit for texturing & vegetation, and works with World Machine. So the environment pipeline became World Machine -> Terrain Composer -> Unity 3D.

Sculpting the Island

It was very important to me to create a natural, realistic terrain that didn't feel contrived or "gamey". Knowing the play area would be vast, I also wanted as much variation as possible in the topology while keeping things procedural.

After a fair amount of experimentation, I started to envision a 'dual-peak' design. If you only have a single peak, players would just make a beeline straight up the hill to find the highest point. Breaking it into two or more peaks would make the island feel bigger.

In the graphic below, you see the node construction and shaping that takes place in this first stage:

First stage shaping of terrain
Defining the initial shape of the terrain

It starts with a blend of 4 radial gradient peaks, smooshed together then limited using a Constant node. Next we need to add natural break-up to the slopes and some terracing. So we start with the always-magical Perlin noise, and feed that to a Terrace node while using a second Perlin node to modulate it.

Here is the node flow for this stage:

Noise, erosion, and terracing
Breaking up the terrain with organic features

After the Terrace node, we add Erosion and Coastal erosion to emulate the natural flow of water down the slopes. Erosion is brutally expensive in World Composer, it can take up to 10 minutes to calculate the final height map even on a fast system. But it is crucial to providing organic feel and effects of gravity on the terrain.

Adding Game Features

Natural feel is great, but you also need to allow for specific game play features in the design of the terrain. Our designer asked for flat areas to place buildings and other content that would make up abandoned villages and ruins sites. This was partially necessary since the structures were not modeled with "skirts" that would let us sink them into uneven ground.

In the above graphic you may have noticed a node called Layout Generator. This lets you draw spline shapes, then essentially boolean them into the height map. It's pretty tricky to make this feel organic, even with some of the tools they provide to soften the transition of the shapes into the landscape.

Here is a look at a sample shape and it's properties:

Layout Generator & Game Features
Carving features into the terrain

You can see in the above image that the shape cuts into the slope, creating a ridge above and a dropoff below. The area has a roughly 50-75m footprint, with a 10m falloff. The spline shape is easily modifiable, and can be locked when design is complete.

This process was repeated for each village & ruins site on the map. The same technique can be used to create other features like roads, troughs, etc..

Ultimately this tool didn't provide enough true flatness to make the structure placement consistent, so some post-processing was needed on the height & normal maps to ensure we were truly flat in these areas.

The exact issue here is whether you place these features before or after the Erosion passes. You want natural erosion to break up the shape, but it's hard to control how much break up actually gets applied by the erosion. If you place the feature after, you get a really inorganic look with a perfect shape cut into an eroded hill.

Output Stage

The final nodes in the graph create the bitmap output for the main height map, global normal, and masks for defining areas like cliffs.

final output from World Machine
final output from World Machine

The masks are used to limit vegetation, so for example trees & grass don't appear on really steep slopes. They are also used to specify where certain texture maps are applied, ie. steep slopes get rock, flat get snow, etc..

It's important to note that these bitmaps are the starting point for a lot of downstream work. I create many additional masks for things like meadows and clearings, as well as accommodating game objects like large rocks and structures. For example, you don't want grass growing inside houses.

I will go into more detail on masks and splat maps in the next post.

Lessons & Thoughts

It took a lot of iteration to decide just how tall the island is. In the examples shown above, the terrain is MUCH steeper and more vertical than we ultimately settled on.

I like extreme terrain, but early on it became clear that people didn't enjoy running around on 45-degree slopes. It left many people disoriented, and pushed them to keep moving until finding flatter ground. This is an interesting psychological phenomenon, but it also makes a lot of sense for things like situational awareness.

None of my work would have seen the light of day without the outstanding support of my colleagues at Digital DNA Games, an exceptional group of experienced game developers.

Next up, how we displace & texture the terrain:

Part 2 - Terrain Composer & Splat Textures in Unity 3D

Cheers, -H

Thursday, March 12, 2015

Update: Blood is Still Circulating

So one day you wake up and realize you haven't touched your blog for six months.

Life happens. Since my last post I joined the art faculty at DePaul School of Cinematic Arts. After a few years of adjunct teaching I really was enjoying myself, and when the opportunity came along I applied for it. I was honored when they decided to extend an offer.

At that time I was also well into my next indie game project called Savage Lands. It has since been released to Steam Early Access on March 5. The game is a collaboration between two great indie game studios, Digital DNA and Signal Studios.

My part has been creating the environment, lighting , and special effects. In addition, I created the visual branding for the game. I've been working closely with the talented artists at Signal, who created the characters, creatures, weapons, structures, and user interface.

Here is the trailer I cut together over the holiday break:



In the next several days I will be posting a series of articles describing the environment creation process in Savage Lands. My plan is to take you through the entire sequence from designing the height map, to final polish details.

It's been an amazing education in Unity 3D, procedural art creation, and medieval fantasy genre. All areas I had not spent significant time with before.

On to Part 1 - Concept & Sculpting!

Wednesday, September 17, 2014

Key game studio success ingredient: Positive Energy

Game development work is inherently creative, yet often we don't work in environments conducive to creativity. In many game studios, over-scheduled employees are under immense pressure to meet deadlines with the expectation of hitting ever-increasing quality & experience targets.

In a lecture at the World Creativity forum, John Cleese talked about Closed Mode (getting things done) vs. Open Mode (being creative). “If you’re racing around all day, ticking things off a list, looking at your watch, making phone calls and generally just keeping all the balls in the air, you are not going to have any creative ideas.”

So how do we create the conditions for creativity in such a predominantly Closed Mode (and sometimes toxic) environment? The key is to give & receive positive energy at every opportunity.

Acknowledge and support the work of your peers


It's demoralizing to work hard creating something for your game, announcing it to your team, and being rewarded with silence. Yes, we're all busy with our own work. And yes, all those check-in mails take a little time to read. But that is exactly the time you should be giving energy back to the person who put it in. Even if it's as simple as "Wow, nice!".

The fact is that most creatives thrive on feedback, it's what motivates & drives them to repeat the creation cycle over and over. In a feedback vacuum, the light bulb of energy dims.

It's also a symbol of professional respect, the fabric of strong development teams. That bit of code that makes something cooler or appear more magical, that tweak to the design making the weapon more fun to use, or that lighting pass helping to make a space feel incredibly real... we absolutely should never take these things for granted.

Don't participate in the negative sub-culture


Not all company cultures are healthy. You may find yourself on a team where a sub-group of people continuously grouse amongst themselves about the game, decision making, or how things are being done. Or you may witness people who routinely rip on other games, ignorant of the actual conditions & constraints that those dev teams operated under.

Avoid getting caught in this undertow, there are no positive outcomes possible from these types of interactions. Channel concerns or doubts about your project into positive actions. Seek out the decision makers and politely ask for more clarity or information. Offer them alternatives or at least your help in improving the situation whenever possible.

Accept that no project ever goes perfectly, mistakes can and will be made. Identifying problems is easy, but offering solutions shows you are focused on moving things forward. Put your energy into building your team up vs. tearing them down.

Set an example that makes others eager to follow


John Cleese also said, "Creativity is not a talent, it is a way of operating." Bring positive attitude and humor into all of your interactions, even in "serious" or stressful situations where solemnity and darkness are normally present. Make it apparent to everyone that you protect your creative process in the face of anyone who questions or attempts to devalue it.

Associate yourself with like-minded people, and take time & space outside the grind to explore and bounce fun ideas off each other. Build up this network with the goal of creating a positive sub-culture. Like a Katamari ball, more people will be drawn in who are relieved and eager to participate.

When you see a normally positive colleague who is being overwhelmed by negative forces, or slipping into a depressive spiral, take them out to lunch and offer your help and support. Let them know you care instead of hoping from a distance that the problem will go away.


Yes, all of this is easier said than done. Game development is hard. Some projects can go on for years, and can lead to a loss of perspective as things get ever more off-kilter. Sometimes the only solution to a terminally negative workplace is leaving it.

But the people in the industry I admire the most, the ones who survive the longest with their sanity intact, are the ones who develop the discipline to eschew negativity, and promote positive energy in every aspect of their work.

Tuesday, April 29, 2014

Philosophy of Teaching Game Art

Students playing "Undertakers" at Columbia College's Manifest 2013

For the last two years I've worked in Chicago as an adjunct professor, teaching college students various aspects of game art production. Recently I was asked to write up my teaching philosophy, and since it's actually an art process I felt it appropriate to post here.

My teaching philosophy is rooted in the practical realities of working in the games industry for over two decades. Throughout the process of making games, interviewing and hiring hundreds of artists, building art teams, and surviving the churn & rapid change in the industry, I've developed what I would call a realist philosophy.

For those art students seeking to work for a major game developer or publisher, competition for jobs is at an all-time high. Only the most dedicated individuals with rich portfolios demonstrating a balance between strong art fundamentals and advanced technical skills are being considered by the top studios.

If students wish to pursue the rapidly growing sector of Indie game development, here again only the most creative, prolific, and differentiated individuals will find it possible to sustain a career.

It is for these reasons that I see my goal as closing the gap between expectations and the reality of what students can expect after they graduate. Learning needs to be role-focused, so the skills obtained directly relate to work they will do as professionals. Following is a list of the techniques I apply toward these goals.

1)      Integrate art fundamentals at every step of technical instruction – Creating art in a software package is different from creating a visual aesthetic. Without a solid grounding in visual theory (contrast & affinity, space, line & shape, tone, color, etc.) many students do not attain the ability to precisely control their work to achieve a specific outcome. These skills need to be reinforced and applied at every stage of their work.

2)      Create a culture of feedback & critique – This is done both in the instructor/student level as well as the classroom community. Critique helps students prepare for professional environments where taking direction is required function of the job. Helping students detach ego from their work is part of this, and will result in a stronger portfolio and the knowledge of how to critique others in a positive manner.

3)      Provide a platform for experiential learning – There is undoubtedly a large amount of information that must be imparted to students learning technical skills. To this end lecture is often unavoidable. However wherever possible I believe it’s better for students to gain experience in the process of setting their own goals within time constraints, delivering results, and allowing them to repeat this loop as often as possible. Quite simply this is what they’ll be doing continually in their professional lives.

4)      Focus on building a robust portfolio – Whenever practical, every visual project undertaken in a class should produce portfolio-worthy work. I try to let students make the work uniquely theirs to elevate their attachment & investment. In a four year program, students ideally should finish with dozens of diverse & compelling work examples, curated from hundreds of attempted pieces. I impress this metric on every student I meet.

5)      Teach the importance of building community – Nearly equal to visual & technical skills is the ability to effectively communicate and work in a cross-discipline team setting. The best artists in the world still need to collaborate and interact to be successful, both in local and the global communities. I relate my experiences (both successes and mistakes), show students what professional branding is, and demonstrate why building strong industry connections is crucial to their future.


The professional games industry is an exceptionally challenging, often difficult place to establish and maintain a career. Statistics have shown that the average length of a game developer’s career is around 5-7 years before they burn out.

My goal is to give students the tools, resources, and skills they need to avoid the pitfalls, and give them the foresight to know what’s ahead so they can be successful & happy professionals. I believe the return on their educational investment is of paramount importance.

Sunday, December 22, 2013

You can't go home again (reflections on a virtual past).


A few days ago I logged into the Space MMO Eve Online for the first time in 3 years.

Some background: For about six years I was a pretty hardcore player of EVE online. It's the only MMO I've ever played, mostly because I love sci-fi, and don't center my gaming life around Tolkien-derived worlds. EVE grew to become a great gaming escape at a time where I was burned out on the industry. It helped me learn to love gaming again.

At the peak, I was the CEO of a fairly notorious PVP corporation called Mad Bombers (11B), founded by my good friend Eagleknight11B. At the core, we were just a bunch of guys who liked to drink beer and blow up spaceships late at night. But given how brutal and unforgiving EVE is, we really bonded and built a small and trusted group of friends.

For years we formed wolf packs and roamed in 0.0 security space, terrorizing sleepy, horrible alliances by taking up residence their systems. The best thing about it all was that when we got into a fight, we worked so well together that we could take on gangs much larger than our own and still come out on top. All of this was coordinated using Teamspeak so we could talk to each other.

Eventually things started to fragment, as we had grown so large that the original culture we'd established got diluted and compromised. As in the real world, group dynamics sometimes seem easy to build, but hard to maintain over the long term. In 2010 I resigned my CEO post and left the game to clear my head of all the noise.

This past week I started to think about EVE, and how the best times in the game were around the holidays because everyone was around. So I decided to log back in and see what had changed since I left.

At first, the usual OH GOD WHAT HAVE THEY DONE WITH MY SHIPS? Months of rebalancing, nerfs, and buffs by CCP meant half my spaceships were broken and needed to be reconfigured. A couple of ships I really loved like the Sleipnir and Ishtar were overly nerfed which made me sad.

But then what was really, really weird was the silence.

My contact list of 100's of friends showed nobody on-line. The community I knew and was a part of had all gone. Over the next few days... still no green lights on my list.

I looked through a dozen comm channels, they were always buzzing in the old days. All of them, dead.

Here I was sitting on billions in assets, multiple characters, and years of experience. And I was totally alone, like it had never happened. What a weird sense of loss, one that I've never experienced with any other game in any context. 

Most of the games I've worked on live for a year or so in the market, then fall off into oblivion as the next game comes out. It must be amazing to work on one game for over 10 years just making it better & better all the time. Especially a game that builds long term communities and the memories associated with them.

What does all this have to do with art process? It is my firm belief that to know games, you have to play them as a gamer (not a developer). To understand what game art means to the player, how they value it, and what works in context of the game play. If you don't play the art, I think you can lose some perspective on the process of making it.

Here's whats left of my EVE history, neatly summarized in statistics:

Tryptic Photon
http://eve.battleclinic.com/killboard/combat_record.php?type=player&name=Tryptic+Photon

Thursday, December 19, 2013

Audio is the 'multi' in multimedia.

Today I posted a new Soundcloud page, it contains a mixture of game soundtrack work, rock instrumentals, and various sonic experiments. This is the type of work I do when I need a change of scenery. 

https://soundcloud.com/caustic-photon

Hope you like it!

Wednesday, November 20, 2013

The eagle has landed...

I've finally updated my portfolio with recent work from indie games and other stuff. If you get a chance please have a look, and let me know what you think.

http://www.causticphoton.com

Thanks!