• Content count

  • Joined

  • Last visited

Community Reputation

247 Neutral

About Skall

  • Rank

Personal Information

  1. To hide some of the harsh map-edges, we've implemented a global fog system. It's separate from any particle effects that accompany props/characters and specific map elements, but it helps to set the tone for each area. In the animation above, we cycle through a few coloured skyboxes, settling on a sunny-day scene for the cottage. We then apply the skybox colour to a global fog. The fog tapers out to full transparency as is rises up, and its vertical start and end can be altered to match each map's scale. In the end, only a small amount of fog is allowed to seep through the ground of our cottage to subtly soften the area as a whole. The fog is also useful for tapering off the bottoms of the maps, especially vertically-oriented ones. As shown above, the fog gradient can recede to full opacity and cover the bottoms of the walls and columns. Combined with some billowing particle clouds that replace the level-editor grid, the scene becomes a bit less abstract and more loosely defined at the edges.
  2. We've finally gotten ourselves a proper website! Check out the accompanying teaser trailer below, as well as some more-polished screens and concepts:  
  3. No worries, it's a valid question to ask and something that won't be easy to pull off, but we're giving it a try. As for Diablo II, well, it was a real-time game with lots of enemies to defeat, but I remember summoning an army of skeletons to minimize that element, heh.
  4. I think there's lots to offer in terms of combat that tactics games haven't explored all that much. While the mage/archer/melee archetypes are all well and good, there are other variables and nuances to consider as well. For example, in fighting games, there are often multiple hard-hitting or fast characters, but how they close distances, the priorities of their attacks, how vulnerable their attacks leave them, etc. all contribute to a different feel for each one. With MOBAs, there's a greater focus on area-denial and short-term counters, and the environment plays a slightly different role to that of typical tactics games (ambushes, using towers for protection). Based on the Dork Tower idea of a mage, I think the Supplier is actually a very different type of unit. First, he himself doesn't have any area-of-effect attacks, and his role is chiefly to provide ammo for others. In addition, he can activate some environmental objects from afar, so in that sense his utility is very map specific. The same goes for his pull-in mechanic which doesn't cause damage itself, but it can extract enemies from hiding spots and make it easier for the damage-burst units to do their thing. Actually, the pull-in can also cause enemies to be dropped into bottomless pits, but those don't damage so much as instantly kill a unit. Anyway, being a giant, armoured box he's quite sturdy, unlike a typical mage, and he becomes more of a direct threat if the battle is prolonged. Where as the mage might have ammo for his fireballs that evaporates with use, the Supplier can use the bodies that the rest of the team dispatches to launch damaging attacks. The bodies can't be stored as the attacks are used automatically after consuming one, and they're also limited by range considerations, i.e., where the body fell, but the potential for damage increases with use rather than the other way around. Oh, and when the Supplier dies he reverts to a box-shape that others can use to get to higher areas! We've yet to implement all these units and abilities, though, let alone balance them, but I think we have enough ideas that should at least provide a different vibe to each unit type. However, it's the balancing itself -- while trying to keep the units distinct -- that I suspect will be the tricky part.
  5. Huh, I grew up around some fairly old trains, but never noticed leaf springs. It's actually a very cool visual design, but unfortunately I believe we've already modeled the train cars. It's always tricky with to stay accurate to a fictional and anachronistic genre (basic flintlock pistols alongside electrical contraptions and technology that never existed/would have never worked). Still, we are aiming to go for a slightly more European vibe with a distinct look, so I'd love to touch up some of these pieces to make them more cohesive. Thanks for the suggestions! As for vehicles, yeah, they're a pain, but they seemed like such a natural fit for a Steampunk-ish environment. Plus, TBS games tend to shy away from these so we figured it could be a feather in our cap if we included 'em. As you said they complicate movement and collisions, especially in our 3D grid, so we're limiting trains, elevators, etc., to movement only along straight lines.
  6. Finally, it's time to add some decorations. These make a big difference. Objects by default snap to the ground tile beneath the cursor, and like textures can be rotated around. Since objects contain collisions and can be of any size, rotating ones that have a large base uses the top-left corner as the anchor. With objects, we generally didn't need to worry as much about snapping to corners or rotating by 90 degrees as with textures, especially for aesthetic ones. We also added the ability to rotate around any axis, not just the y, and "nudge" each object by a small fraction of a tile. With those capabilities in hand, we went ahead and added object sets. Like with textures, these allow us to "paint" with a randomly selected object from a list, and rotate/nudge it up to a maximum amount based on given parameters. Here's how it looks in action: Once the trees and tree trunks were put in, we manually adjust them so that clipping is not a visible issue, and add various other decorations such as brambles, miscellaneous plants, benches, lamp posts, fallen leaf clumps, etc. A few dirt patches later, and we get this: Of course it's still not done yet, but it's beginning to look more and more like an actual place, don't you think?
  7. Thank you! I didn't see the original response right away -- gotta recheck those thread-subscription notifications. Anyway, 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: 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. Next up, we finally decorate the scene with some objects!
  8. Just a quick update showing some lighting variation via different skyboxes/light point samples. 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.
  9. Since we have multiple layers for the textures, lets start by adding some basic fringes to our house: 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". 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: And here's our house with some grass fringes, extra vines, and a few windows: Will do a quick update on lighting next time!
  10. Here's another batch of concepts: The sombre Konstantyn. The trains of the Sprawl. Potted plants of the Aerie. Miscellaneous icons. The Sleepless Forge
  11. A few more unit animations: Koschei's run on all fours. The Supplier overheating. Scavenger bird's idle state.
  12. 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: 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. 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. 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. 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. Next up, we'll try to make that building look a bit less like a stone slab.
  13. 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: 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. It's easy to see that even though the textures tile seamlessly, the end result is quite uniform and repetitive: 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. 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. 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: 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: 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: And that about covers our first steps. Next up: layering!
  14. Concepts update! Outfit sketches for the police/military corpse. Gatling Turret, phone-booth design. Tea-pot bot! Tatjana and her spider-walker (initially a wheelchair). Further work on the sprawling warrens area.
  15. Animations update! Idle animation of the boxy Supplier. Automaton's "spare-gear" attack. Corsair's and Supplier's death animations. We plan on turning the Supplier's body into a traversable block when he perishes!