[WIP] Trudy's Mechanicals - 3D Steampunk Tactics Game

Discussion in 'Feedback Requests' started by Incubator, Dec 8, 2014.

  1. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    While on the topic of movement, I'm curious as to what people think about our hybrid approach to ranges.

    In most typical tactics games, there is no diagonal movement resulting in a diamond shaped movement area:

    [​IMG]

    Since we have diagonal movement, assigning the same cost to diagonal movement as cardinal movement would create an awkward square shape:

    [​IMG]

    Since we're committed to squares rather than hexes, we wanted a solution that was in-between the two options in order to obtain the most natural feel. If the cost of moving up/down/left/right is '1' point, then moving up-right/down-right/down-left/up-left should cost roughly '1.4' points (the square root of '2'). Since dealing with tiles is a bit more binary (you can walk across '1' tile or '2' tiles, never '1.4' tiles), we multiplied these values by two and rounded 'em up similarly to what old Civilization games used to do. The end result is that cardinal movement costs '2' points, and diagonal movement costs '3' points.

    This is how it looks in action:

    [​IMG]

    The algorithm makes for a more natural radius; a circular area projected onto individual tiles. However, there was one reason why we didn't instantly jump on this solution: the ability of units to constantly circle each other using diagonal movement as a shortcut.

    This is something of a pet peeve of mine in tactics games. Since many of them implement the idea of different vulnerabilities for a unit's sides (forward, left/right, back), melee units tend to hopscotch around each other in order to attack the most vulnerable spot: the back. This is particularly awkward and tedious when two melee units are isolated but within range of each other, and diagonal movement only makes this easier to accomplish.

    The issue can be alleviated with unit-specific abilities, e.g., some units can only attack with at least one tile of space between them and their target, others get a free hit on any adjacent enemies that try to walk away, while others still always turn to the attacking direction, etc. While these all help to limit hopscotching, I was still concerned over the behaviour manifesting itself without a global rule to discourage it.

    Our solution was the aforementioned diagonal movement caveat: it's only possible to move diagonally if there's nothing perpendicular to the movement path (i.e., to the left or right of it). This way a unit can't walk around to the back of its enemy in just two steps, but has to take the full four steps route.

    A few other rules helped to avoid the issue as well, namely the ability to cause extra damage by shoving the enemy into a wall or off a ledge, and the potential to score a critical hit when attacking from an elevation. Combined with elemental vulnerabilities and unique modifiers, we hope to present various strategic options at each unit's turn that rarely boil down to the obvious "attack the back" choice.

    [​IMG]

    Let us know what you think of our approach!
     
  2. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Over time, Tactics games -- or just games with turn-based combat -- have adopted a few common interface concepts. Here are a few conventions we're considering for Trudy:

    1). Player's team is colour-coded blue, the enemy's red, and NPCs green.
    [​IMG]

    2). Movement ranges reflect team colours, are often represented with filled in tiles.
    [​IMG]

    3). Alternatively, movement ranges are represented via an outline that traces the edges of the movement range.
    [​IMG]

    4). Multiple ranges are used to indicate that a unit can travel further but at a cost, e.g., can't attack, extra resources need to be spent to attack, etc.
    [​IMG]

    Blue/Red/Green team-colouring seems like a no-brainer so we'll probably keep with that convention. We'll also most likely go with outlines instead of filled-in tiles to keep UI real-estate to a minimum. However, a bigger factor for using outlines is our desire to save filled-in tiles as indicators for areas from which a unit can attack.

    Tom Clancy's Ghost Recon: Shadow Wars is the only game I know of that did this and it worked rather well:

    [​IMG]

    Granted we won't be defaulting to green tiles but potentially stick to team colours. This, however, brings up another issue -- secondary ranges are often colour-coded yellow:

    [​IMG]

    This always seemed a bit counter intuitive to me as gold highlights are standard indicators for something that's interactive. The association in my head is that yellow == can act, team-colour == can move, but not necessarily do anything else.

    We might just flip the convention here -- make move+act outlines gold, and move outlines team-coloured -- or simply go with white outlines like Shadowrun Returns:

    [​IMG]

    I think I have a slight preference for coloured ranges as they're easier to parse, but I'm not sure if our approach would be counter intuitive to XCom players; what do you guys think?
     
  3. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    [​IMG]
    Initial mockup of the forge arena.

    One of the first gameplay elements we'd like to iterate on is the concept of an arena battle where the crowd and/or a "battle master" can have an impact on the fight itself. These modifiers range from items being tossed down by the crowd in the rafters, to the layout of the map itself changing based on in-battle events.

    To prototype this gameplay, we've decided to mock up an arena in Trudy's "Sleepless Forge" district.

    [​IMG]
    Destructible barrels can cause a fiery explosion or shower units in oil making them more vulnerable to heat-based attacks.

    The arena battlefield is asymmetric with a giant furnace leaning against one wall. In the center rests a rough hill of terminals and crates, while the opposite end of the furnace is used as storage for various carts and hazardous materials.

    [​IMG]
    The mine carts can be pushed to knock around enemies, while the terminals activate the conveyors leading up to the furnace.

    Various pipework and heat grates also present dangerous areas that can be activated based on each team's performance. There's no real safe spot in the arena, but plenty of points of interest that can either provide an advantage or backfire in spectacular fashion.

    [​IMG]
    Conveyors above the arena can be activated to feed the giant furnace.

    The furnace itself was designed to look demonic with twisted metal at its top forming downcast eyes illuminated by the inner heat, and a front-side grill tapering into jagged teeth. The whole front plate can be raised and lowered with a pair of chains to imitate biting and chewing.

    [​IMG]
    As the furnace is fed, molten metal drips from the sides of its mouth.

    It's possible to stay at the edges of the arena, blowing up barrels from afar and pushing carts into oncoming foes. However, reaching the center allows the activation of the terminals that feed the beastly furnace causing fire and steam to explode from the pipework spread throughout the arena.

    Furthermore, feeding the furnace will eventually cause molten metal to drip out and cover the lower sections of the map making the central hill the only spot where units can survive.

    [​IMG]
    3D mockup of the forge arena.

    Hopefully this variety of options will encourage players to explore various strategies, including shoving their enemies -- and perhaps even allies? -- into the gaping maw of the furnace in order to gain instant favour of the forge.
     
  4. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Back with more concept art!

    [​IMG]
    The four-armed, pantsless version of the Bulter Bot, and the finished base one in a tuxedo.

    [​IMG]
    The electrified ram structure at the front of the ship.

    [​IMG]
    Ravagers, the deranged cousins of the Homunculi.

    [​IMG]
    Bridge overpass concepts for the sewer-like bottom of the ship.

    [​IMG]
    Various plants and coral that has sprouted in the above sewers.
     
  5. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Quick update with some in-game screenshots from our original tech demo:

    [​IMG]
    Zoomed-out view on the sewer-like Underworld.

    [​IMG]
    Flooding a room with water to limit traversal options.

    [​IMG]
    Extending a bridge over a chasm -- these can be a variable length and collide with rain particles.

    [​IMG]
    Blowing up some pipes/barrels and lighting an oil slick on fire.

    [​IMG]
    Destroying a coal station from inside a cannon turret.
     
  6. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Animations update!

    [​IMG]
    Idle animation of the boxy Supplier.

    [​IMG]
    Automaton's "spare-gear" attack.

    [​IMG] [​IMG]
    Corsair's and Supplier's death animations. We plan on turning the Supplier's body into a traversable block when he perishes!
     
  7. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Concepts update!

    [​IMG]
    Outfit sketches for the police/military corpse.

    [​IMG]
    Gatling Turret, phone-booth design.

    [​IMG]
    Tea-pot bot!

    [​IMG]
    Tatjana and her spider-walker (initially a wheelchair).

    [​IMG]
    Further work on the sprawling warrens area.
     
  8. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    We've been making lots of progress on the level editor, and although things haven't always taken the most obvious path, it's been coming along nicely. I figured it'd be fun to demonstrate some of these plodding advances by creating a small, abstract map and dressing it up. The scene below is colour-coded using our old annotation fills:

    [​IMG]

    First let's do some basic texturing.

    Based on the in-game camera view, each "tile" is a 128x128 PNG as we found that it displayed enough detail given the overall size and scope of the geometry. These tiles can be painted directly on the scene, or used to flood fill a selection. Here's a quick demonstration of painting the map with three textures: grass, stucco, and rock.

    [​IMG]

    It's easy to see that even though the textures tile seamlessly, the end result is quite uniform and repetitive:

    [​IMG]

    The most obvious way to solve this is to create a bunch of 128x128 tiles that can all connect to each other, but this is very time-consuming. Worse yet, it prevents larger details from being an option as any tile must connect to any other tile, from any side, removing the possibility of larger details flowing from one to another. To compensate for this, we first tried using Wang Tiles.

    [​IMG]

    While these were quicker to produce than 16 individual grass tiles, there were still issues that only became evident once the tiles were randomly laid out. There were no obvious hard seams, but the changes in brightness around the tile-edges created straight-line patterns when viewed as a whole. These were difficult to accommodate for ahead of time, but looking at the distribution-image we had an idea: what if we just created a giant texture that could tile seamlessly?

    Since we were not bound by the same memory limitations, we decided to try this out by providing support for a large texture -- 4 times the size of the original -- to be painted over the scene one tile at a time.

    [​IMG]

    This allowed us to give the texture more organic details, and its large size prevented any patterns from becoming too visible. Here's a comparison of the original map and the large-tile approach:

    [​IMG]

    Finally, to make the scene start looking less abstract, we wanted to give the house a slate roof. While this was easy enough to do with a single tile, we quickly realized another problem: all the textures "flowed" in one direction. This meant that all the rooftops were covered with the exact same pattern despite being perpendicular to each other:

    [​IMG]

    We didn't want to create numerous versions of each texture rotated to a specific angle as that'd take more prep work and demand more space for textures in terms of both memory and file-size. Instead, we added the ability to select and rotate individual texture-pieces without altering the geometry:

    [​IMG]

    And that about covers our first steps. Next up: layering!
     
  9. CCHAudio

    CCHAudio New Member

    Joined:
    Oct 11, 2014
    Messages:
    123
    Likes Received:
    0
    A steampunk SRPG? I'm sold, looks amazing!
     
  10. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Thanks, glad you like what we've shown so far!
     
  11. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Our level editor has a total of 5 texture-layers, but this number is somewhat arbitrary -- everything gets baked down into a single texture map in the end. Since we haven't experimented with texture-blending (yet!), all of our upper-layer textures contain transparencies and are stored in .tga format to avoid mipmapping/alpha-channel issues.

    Below is an example of some extra details added to the grass via a secondary top layer containing a few flourishes:

    [​IMG]

    It's subtle, but further helps to break up the grass.

    Once this basic layering was in, it was time to create various aesthetic extras. However, to get the most mileage out of our decorations, we decided to reuse and expand on our roof-tile-rotation feature by allowing any texture to be rotated (0, 90, 180, or 270 degrees) and mirrored (horizontally and/or vertically). While such drastic transformations usually result in obvious seams, none of our decorative tiles touched tile-edges or were big enough to look odd following random transformations. Below is an example of a single leaf tile placed as is, and then randomly rotated/mirrored.

    [​IMG]

    These random transformations were actually done by hand, though, so our next step was to create the concept of tile "mini-sets" that would automate some of the work for us. Each mini-set consists of 1-n amount of tiles, and a list of valid transformations for the mini-set as a whole. The editor allows for filling/painting with mini-sets just like with regular tiles, except the actual tile placed on the map is randomly selected from the list and transformed according to specifications.

    [​IMG]

    Mini-sets require a bit more groundwork to set up, but they've already proven big time-savers. Below is an animation of cycling through some of fill possibilities using a leaves-set.

    [​IMG]

    With more experience, it quickly became evident that it was beneficial for virtually all decorative tiles to be part of a mini-set. With paths, for example, we split the stone pieces into centre/corner/side mini-sets and painted with them directly.

    [​IMG]

    Next up, we'll try to make that building look a bit less like a stone slab.
     
  12. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    A few more unit animations:

    [​IMG]
    Koschei's run on all fours.

    [​IMG]
    The Supplier overheating.

    [​IMG]
    Scavenger bird's idle state.
     
  13. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Here's another batch of concepts:

    [​IMG]
    The sombre Konstantyn.

    [​IMG]
    The trains of the Sprawl.

    [​IMG]
    Potted plants of the Aerie.

    [​IMG]
    Miscellaneous icons.

    [​IMG]
    The Sleepless Forge
     
  14. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Since we have multiple layers for the textures, lets start by adding some basic fringes to our house:

    [​IMG]

    The above image has vertically-fringed corners, but we quickly ran into an issue with horizontal fringing. Since our heights are done in half-blocks (64 "pixels", which are half of the 128 minimum texture height) and the fringe textures occupy only a small portion of a tile, it was possible for the textures to be applied with no visual alteration. The animation below shows the same fringe being applied to different elevations, with some of the textures not appearing until they're "nudged".

    [​IMG]

    This nudging alters the anchor of the texture so that the fringe part starts 64 pixels lower and properly aligns with the tile. This nudging was required in numerous places, so we also implemented it for horizontal orientation. This allows us to quickly fine-tune other decorations such as vines:

    [​IMG]

    And here's our house with some grass fringes, extra vines, and a few windows:

    [​IMG]

    Will do a quick update on lighting next time!
     
  15. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Just a quick update showing some lighting variation via different skyboxes/light point samples.

    [​IMG]

    The lighting intensity and skybox saturations are purposefully overintensified to show off the contrast between them. It's still all fairly subtle to ensure that coloured lights don't completely distort the painterly style. We hope this approach gives us some options for "tinting" each biome and giving them all a unique atmosphere.
     
  16. uriweru

    uriweru New Member

    Joined:
    Jun 20, 2015
    Messages:
    10
    Likes Received:
    0
    Whats the good word on this game? When will it be ready for release and which platforms will you be releasing on?
     
  17. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    It's still fairly early on, so we're looking at 2016 for PC, with Mac/Linux/console ports a possibility as well. We're keep the door open for those if we have the resources to port it.
     
  18. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    One more update on textural decorations: decals.

    Unlike regular textures that are placed on top of each other, decals don't have to conform to a specific tile size and can be smoothly moved around. They can also scale easily and wrap around objects as shown below:

    [​IMG]

    However, since decals are projected down, they tend to unintentionally overlap multiple objects. In the case of the house, any prop standing next to it would "absorb" a part of the crack decal, which didn't really work out. In the end, we used them somewhat sparingly and in more desolate areas.

    [​IMG]

    Next up, we finally decorate the scene with some objects!
     
  19. Sim

    Sim New Member

    Joined:
    Oct 21, 2007
    Messages:
    60
    Likes Received:
    6
    This looks very good so far =0
     
  20. Incubator

    Incubator New Member

    Joined:
    May 7, 2009
    Messages:
    47
    Likes Received:
    0
    Thanks, appreciate it!
     

Share This Page

  • About Indie Gamer

    When the original Dexterity Forums closed in 2004, Indie Gamer was born and a diverse community has grown out of a passion for creating great games. Here you will find over 10 years of in-depth discussion on game design, the business of game development, and marketing/sales. Indie Gamer also provides a friendly place to meet up with other Developers, Artists, Composers and Writers.
  • Buy us a beer!

    Indie Gamer is delicately held together by a single poor bastard who thankfully gets help from various community volunteers. If you frequent this site or have found value in something you've learned here, help keep the site running by donating a few dollars (for beer of course)!

    Sure, I'll Buy You a Beer