Pages

Showing posts with label environments. Show all posts
Showing posts with label environments. Show all posts

Wednesday, April 27, 2016

Building the world of Hellenica

Hey everybody, it's been a while!

Lately I've been living inside our homebrew level editor, putting together the huge number of combat environments that make up Hellenica's world. Obviously it would be rather selfish to keep all of the fun to myself, so here we are. Let's go on a journey of creation!

First stop: the end! What? Here's what a finished level looks like in the editor in full, indecipherable, debug glory:


Well, that's not helpful. What say we break this down a bit?

Here's a shot of where things usually start: the level geometry.


Ok, I lied. I typically start in a notebook, but this comes immediately after!

If you've ever built a tower out of legos, you have the requisite skills to build a Hellenica level. That little blue block near the bottom is the cursor, and I move it wherever I need to place a new piece. Most of the time that piece is a rectangular block, but sometimes I bring out more specialized pieces (see the roofs and columns).

Each piece has a texture assigned to each of its faces. When I drop a new piece in, its sides are all set to the same texture (mostly true). In cases where that's no good, I can also paint individual faces using the mouse. Here, I wrote you a message:


Instead of picking a color from a palette like an artist would usually do, I pick a whole texture. Call me greedy. Here's a sample of my palette:


One neat addition we're making to the genre is moving platforms; think elevators, conveyor belts, and magical... platforms. After the player's actions resolve, all the platforms will move a step (which means different things for different types of platforms).

Coupled with Hellenica's repositioning abilities, this opens up opportunities for some exciting new decisions. Do you send your ranged attacker up a lift for a better vantage point at the risk of separating her from the party? Should you push a tough enemy onto a moving conveyor belt to postpone dealing with her instead of focusing your damage on her?

Athens has gone through a serious transformation since the steam revolution, and most levels in the city will feature steam-powered elevators and conveyor belts throughout. This level has a couple elevators and two conveyor belts, one of which wraps around the entire left side.


The squares drawn in the editor are actually just the 'slots' for the platforms. Each platform individually represents a single space in the level, and they move from slot to slot. Squares with a red highlight will start with a platform.

The white arrows indicate the orientation a platform will assume when it enters a slot. The texture we use for the tops of platforms indicates directionality so that a player can quickly grasp how the platforms will be moving in the future. This is a huge help, especially in some of the later levels. ;)

Once the level layout is fairly locked down, I start dropping in the actors that will populate the scene.


Different actor 'groups' are represented by different colors. Typically, these are groups like 'party', 'barrels', 'bad guys'. Sometimes extra groups are defined for special cinematic reveals or triggering logic. More on that later!

Oftentimes, there will be special level logic associated with certain positions. In Hellenica, I'm calling these gadgets. There are two in this level:


These guys spawn barrels and amphoras to keep the moving conveyor belts populated. In other levels, gadgets are used to place hot steam pipes that cause damage, magical traps that probably also cause damage, or friendly abilities that improve your combat effectiveness.

We're most of the way there now, but first we have to make sure the player doesn't cause us any trouble.

By default, the top of every piece is a visitable space for an actor. Unfortunately, trees don't like it when actors stand inside them, something about personal space. So, to avoid complaints I mark certain spaces as untraversable:


In this case, I don't want people walking underneath the elevators or disturbing the trees. Pesky Nephele also likes to vault onto the outer walls, which is probably not Icarus-approved, so that's a no-no.

Ok, it's on to trigger volumes!


On some levels, I don't want all of the enemies to charge at the player's party right away. Everything in moderation, right?

By marking out certain areas, I can link the activation of certain actor groups to the movement of the player's actors. In this way, the player can (hopefully) indicate that she is ready for a fight by moving close to the enemies. (Hopefully.)

Not so bad, was it? Here's a shot of the final product:


(This is an early level, so I don't feel too bad spoiling it for the faithful. Forgive me!)

Truthfully, my process is nowhere near as linear as I've laid it out here. As with any creative endeavor, large portions of time are usually spent wandering the harrowing depths of uncertainty. Lots of experimenting, lots of failing, but hopefully in the end I come up with something great. Having good tools certainly helps.

Hope you enjoyed this write-up! Let me know if there's anything else you'd like more info on.

Saturday, February 7, 2015

Hellenica Environments: Rhodes

It's now week two of post-PAX South life, and we're back into the swing of things. I'm currently in the middle of tweaking combat and building new levels, so it seemed like a good opportunity for an art update!

This week's travel destination is Rhodes, an elevated island city surrounded by a great wall on one side and staggering elevated docks on the other. Led by the so-called Mechanist-King Evagoras, the island nation is known for its theomechanical marvels as well as its generosity towards its allies and those in need.

We actually began work on Rhodes before Daniel, our environment artist, started working with us. At the time, we were still searching for the right partner, and we decided to give Collateral Damage Studios a trial run with Rhodes.

To start off, we wanted to work out the important elements unique to Rhodes. This meant figuring out how the steam-powered ship lift worked and what the Colossus of Rhodes may have looked like. We also knew we'd need to include some other elements for story reasons, so we tackled those as well. This exploratory part of the process is always my favorite.

 


A couple of the lifts relied on some questionable physics, so we decided on the rightmost implementation. In general, we were pleased with most variations of the other elements, though we really liked the mechanical solar system installation on the observatory.

With some more concrete details in mind for these elements, we started thinking about the composition of the scene.


We knew we wanted a dramatic view of the harbor that showcased the Colossus as well as the elevated docks. The first option actually worked the best for us, as it provided a nice vantage point from which to view the cityscape in the background. After a little more playing around with the finer points, we settled on option B from the second image. The airy, open feel of this composition provided a nice contrast to some of our other city locations that feel more cramped and urban.

Once that was settled, the artist took off towards the final image. CDS was great about keeping us posted on the various stages involved along the way.




This is where things stood at the end of our trial run with CDS. They exhibited an incredible attentiveness when it came to the fine details, and their transparency throughout the process was fantastic.  We were quite happy with how the final image turned out, but unfortunately the scheduling just didn't work out when it came to a continued partnership.

Now, jump ahead several months with me. Daniel had been on board for a while and was turning out great work on our other locations. We decided that we wanted him to go back over Rhodes and ensure it matched the style of his other pieces. This mostly entailed intensifying the lighting and shadows to match his preference for more dynamic lighting. Flip back and forth between the two images to see the differences.


Notice anything else that's different?

The Colossus and the boats are huge now! Unfortunately, we lost the staggering height that was critical to the island's identity during the transformation, as Daniel had dragged in the Colossus and resized the boats in the harbor due to a miscommunication on our part.

Luckily, this worked to our favor in the end. With a quick change to the horizon, a few additional ship elevators, and some architectural duct tape to help hold up the docks, Daniel was able to make the sense of scale even more pronounced than before.


So there you have it: Rhodes. And if you happen to be in town, don't forget to ask Evagoras about the elevators' auto-load balancers!

Friday, January 23, 2015

Off to PAX South!

We're hopping in the dragonmobile this weekend to head up to the very first PAX South! (That's right, we'll be one of the few cars traveling north to reach the convention.) We don't have an official booth, but I'm hoping to get as many hands and eyes on Hellenica as I can manage in the two-day period.

To prepare, I've been polishing up one of the more unique levels in the game: the train ride to Thebes! I won't spoil the plot details, but suffice it to say that our party's in for a rather bumpy ride.

Unlike the combat stages in most tactics games, this particular stage is broken up into multiple parts (different train cars), and I'm really happy with how it turned out. Here are some shots of a few of the cars:




If you're going to be at PAX South this weekend, shoot us a note here or on twitter @thedragonloft! We'd be more than happy to show you the demo.

Friday, November 21, 2014

Art updates!

Sorry for the delay folks, I've let the blog slip the past couple weeks.

In hopes of winning back the favor of our Internet patrons, I have a couple offerings in the form of consumable digital media! Yum.

First off, I've been putting a lot of work in over the past two weeks adding some new features to our level editor and environments. Specifically, the ability to shape and paint the level however the designer likes.

After the addition of just a couple new shapes, I did a quick remodeling of one of our first combat levels. Here's the before and after:


I'm still just using our 3 test textures, but it already looks much, much better.

The second big update this week came from Valery. She finished up a huge batch of animations that I've been busily plugging into the game. Here's a little teaser I put together for the new Scylax animations:


The game's really starting to come alive!

Saturday, October 11, 2014

Level construction and keeping focus in the Unity editor

Up until now, creating the geometry for a level in Hellenica was controlled entirely through keyboard input. Here's what it looked like:


It's a cinch once you pick up the hotkeys, and now that I've been using it for a few months, constructing the geometry for a level is one of the quickest parts of the process.

Recently, we've been thinking about how to layer on Valery's art to make our environments more appealing. I decided it was going to be cumbersome and complicated to paint specific faces of the level blocks using keyboard hotkeys. The time had come to add mouse picking to the editor interface.

I immediately ran into issues dealing with Unity's default mouse picking behavior, though. Whenever you click on a GameObject in the scene view, Unity changes its focus to that new object! Generally, this is exactly what the user wants. In our case, however, painting tiles becomes very difficult when every click changes the user's selection!

After some internet research and experimentation on my own, I ended up with a solution that works well for us. It comes down to overriding Unity's GUI focus for the duration of the painting operation. Here's a quick sketch of how this is done:

 ...
else if (Event.current.isMouse)
{
process_mouse_input(Event.current);

// if we detect a left click while the mesh editor is selected,
//   do not allow Unity to change our selection. assume we're editing
//   until we release the left mouse button.
if (Event.current.type == EventType.MouseDown && Event.current.button == 0)
{
    // hotControl is a static variable that Unity uses to track the
    //  active GUI control
GUIUtility.hotControl = m_editor_control_id;
}
else if (GUIUtility.hotControl == m_editor_control_id &&
Event.current.type == EventType.MouseUp && Event.current.button == 0)
{
GUIUtility.hotControl = 0;
}
}
 ...

I begin overriding GUIUtility.hotControl on the MouseDown event and hang on to control until a corresponding MouseUp event to guarantee that the editor captures clicks as well as sustained drags.

m_editor_control_id is generated as follows:

m_editor_control_id = GUIUtility.GetControlID(this.GetHashCode(), FocusType.Passive);

As you may be able to tell, this solution isn't perfect. Any gizmos that end up in front of the level mesh will be unresponsive to mouse clicks so long as the mesh remains behind them, as the mesh editor is now all-consuming. (Muahaha.) But, it works well enough for us to get started painting levels.

Here's a quick gif of a paint job I did with some test tiles:


I have no doubt that this system will keep evolving as we go. If anyone out there has any ideas for improvement, let me know!

Friday, August 22, 2014

Hellenica Environments: Crete

This week I thought I'd follow up on Victor's intro to Crete with a post showing off the art. It's one of my favorite locations in the game, and I'm really happy with how the background painting came together.

Here's a quick description of the setting:
"The Minoan civilization collapsed for unknown reasons centuries ago, leaving only fog-covered ruins on the isle of Crete. Athens nominally claims Crete as its own, but rocky crags shrouded in fog and rumors of a curse keep them mostly absent from its shore.  As such, these ruins and their surrounding waters have become a harbor for disreputable vessels that would rather confront whatever curses the ruins hold than the Athenian navy."


As with most of our requests, Daniel's first sketch of Crete was basically perfect. The mood is spot on, and even without the details in you can already make out many of Crete's characteristic features: derelict ships, crude shanties, and the ominous entrance to the Labyrinth in the background.


We changed up the composition a bit to provide a more viable vantage point for the party, but I insisted that we hang on to that ghost ship mast. Fortunately, Daniel's a swell guy and was happy to oblige. (I suppose we're also paying him to listen to us, but that's hardly relevant.)


Here's the final revision of Crete that you'll visit in Hellenica. This location's a really fun one to play through, I wish I could post more than just the art!

Thursday, July 24, 2014

Hellenica Environments: Thebes


So, it's been a while since we've shown off a new location, but I have a secret to share. Between my last post about Corinth and this post, we've finished nearly all of the location art! Two quick reimaginings of existing locations remain, and then we'll be 100% complete with the location backgrounds. Praise Zeus!

Exultations aside, Thebes is today's focus. Or at least, Hellenica's Thebes, completely transformed by its railroads. Here's our inspiration:

"Thebes has the ambition and determination of a nation that's been on the economic and political rise for over a decade. Their wholehearted embrace of technology is evident everywhere, from the mechanical design of its buildings to the great factories which have turned the city into the most important manufacturing center in Greece, as well as the primary railroad hub."

And here's Daniel's accompanying sketch:


He definitely nailed the vibe we were hoping for, but we felt that overall, the scene was just a bit too modern for our game. Steampunk ancient Greece is a tricky setting, and we have to work hard to make sure our art doesn't stray too far out of line.


To address that issue, we brought the perspective down lower. Without modern construction materials, it would be impossible to build structures that tall. At this point, you can start to see some more traditionally Greek elements sneaking into the architecture, but it still felt a little too 19th century London. Onwards!


We nixed the windows, removed the arches, really pushed the columns, and traded out the gas lamps for torches. Overall, it felt much more Greek without sacrificing the vibe and the steampunk elements.

At this point, we were feeling pretty good about Thebes, so Daniel spent some time cleaning it up and working on the details. Here's the final version:


And that is Hellenica's version of steampunk ancient Thebes, railroad and manufacturing hub of the ancient Greek world.  The observant viewer might even find a clue about some of the other dealings that take place in Thebes. Let us know what your theories are in the comments!

Friday, May 9, 2014

Hellenica Environments: Corinth

I'm no expert on the Mediterranean, but working on this game has certainly brought me closer. (Victor's another story; there's no doubt in my mind that he could rewrite half of the Wikipedia articles concerning ancient Greece at this point.) In Hellenica, your party of adventurers will trek to well-known locations like Athens, Sparta, and even a few mythical stops like the Isle of Circe, if you so choose.

One of the first locations you'll be able to visit is Corinth, a grim melding of steampunk fiction and Greek tragedy. Here's a brief run-down of the city and its recent history:

"Once a luxurious city second only to Athens in prestige and naval power, Corinth was devastated by Poseidon for its hubris in building an "unsinkable" ship. In addition to being struck by a tsunami, the city is ravaged by never-ending storms that ensure the flooded city cannot be rebuilt. A few former citizens still call the city home, living mostly in the ruins of a temple to Aphrodite, doing what they can to maintain it."

Victor's great at putting together these little snippets to establish the vision for the world. With this description in mind, he set out to gather relevant reference images: dilapidated, ancient cities, buildings overgrown with flora, and settlements flooded beyond habitation. After a bit of pruning, we let our talented artist, Daniel Thomas, run with it.


Daniel tried out a few different color palettes to help us explore different feelings for the scene. We ultimately thought that the greener hues created an unintentional sense of toxicity, so we went for the blue version. This specific hue of blue also evokes a sense of the supernatural for me, which I appreciated having for this ghost town.


We also played around a bit with placing characters in the scene here to see how well the two styles meshed. I think the preliminary trial looks promising, but we're still unsure if this is the right direction for us to take.


Here's the final image after Daniel spent a bit more time cleaning it up and addressing a few minor quibbles from us.

As with all of the art in our game, we strive to recreate ancient Greek forms and then dress them up with steampunk details. In this case, circumstances preclude an abundance of steampunk goodness (thanks Poseidon!), but you can still make out some of the infrastructure left around from the integration of steam technology.

So readers, where in ancient Greece would you like to visit? Maybe we can take you there in the next environment update!