Contact Us

Use the form on the right to contact us for promotional information, questions, or to join our mailing list,. 

           

123 Street Avenue, City Town, 99999

(123) 555-6789

email@address.com

 

You can set your address, phone number, email and site description in the settings tab.
Link to read me page with more information.

Devlog

Enemy Sprites

Matt Judge

Here is a work-in-progress enemy to show you how these guys work. This one's tentatively named "Guilty Christian" and he's based on 16th-century depictions of demons-- little apelike guys made of mismatched animal parts. If you've played the demo you may have an idea of how they fit into the concept / story. They'll be an intermediate enemy between the easy White Ogres and the tougher "human" ghosts-- using humanlike weapons and tactics, but not shields or armor.

For most enemies, the arm holding their weapon is a separate sprite that gets overlaid on the basic sprite, so they can attack in any direction and hold different weapons/items. For a few of them, like the witches or the witchfinder, their attacks don't involve a weapon or emanate from a fixed spot relative to the sprite, so their whole body is drawn directly on the base sprite.


Here's the spritesheet with the basic idle sprites, 4-directional walk, and flickering frames used when taking damage. Generally, if enemies have a 4-directional walk sprite, they get 4 frames per direction, which looks pretty good but is slightly lower quality than the player character (6 frames per direction).
 

The white ogre, for contrast, has a 1-directional walk sprite that's flipped when his velocity is negative on the x-axis. This is because it takes more frames to emphasize the weird unique way he moves, but also because he's a more cartoony character with a vaguely-defined torso, so the "shoulder" of his weapon arm can always be directly above the xy coordinates of his sprite. 

The demon needs a 4-directional walk because his shoulder is in a noticeably different place depending on the direction he's facing. His weapon arm needs to attach in the same place regardless of whether he's moving or standing still, so it doesn't suddenly change positions in the middle of an attack when he stops or starts moving.

Combat Balance

Matt Judge

Originally posted 8/16/16 on Kickstarter. The problems described here have been fixed in the current version of the demo.

 

Hi! Today I'm gonna talk about combat balance and strategy, and give you some more insight into what will be changing with this next update of the demo.  

I think one of the main strengths of Lonely Star is the fast, kinetic, complex combat system. It's something I've poured a ton of effort into over the past few years. I'm a big fan of games that offer something more than novelty, games that still provide a dynamic challenge even when the player knows what to expect.  

So it's kind of a problem that the winning strategy, in any melee fight, is to run away, crouch in place, and hammer the attack button over and over.  

OK-- this is a constant struggle in game development. The developer knows how everything works, knows all the strategies and angles, so, to them, the challenge quickly becomes trivial. Then there's a temptation to keep making the game more and more difficult, and therefore more and more inaccessible to the new player. It's something I have to be careful of.  

Plus, encounters in Lonely Star are usually designed to pose more than one type of threat to the player. In the scenario you see above, if one of the swordsmen's weapons was replaced with a crossbow, they'd just stand back and shoot the player.

But still! This isn't a problem I can afford to ignore. It looks stupid, and more importantly, it's "degenerate"-- a strategy so effective that it destroys the complexity of the game. Go ahead and try it; once you see how well it works, you're probably not going to go back to ducking and dodging.

There's a certain amount of smoke and mirrors to any game like this; by throwing a ton of complexity at the player, it tricks them into thinking that they have to engage with it. Taekwan Kim writes:  

What a degenerate strategy does, then, is cut through all the obfuscation to expose the underlying artifice in its starkest form. It reveals the implicit as only being implicit, that the rules only have meaning because the player chooses to submit to their arbitrariness, and chooses to believe in a context in which they aren’t arbitrary.  

Especially in a difficult game, the player will be thrilled to find an easy, successful approach, so they'll probably keep using it even at the cost of making the game boring to themselves. That destroys the game's ability to offer anything but novelty; pretty soon, the player feels like they've solved it, and it's about as compelling as tic-tac-toe.

So the first thing I need to figure out is, what exactly is the problem? Look, it doesn't work if the player is standing instead of crouching:  

A crouching attack has less range, less power, and a longer recovery than a standing attack, and the player can't dodge during it, all of which is balanced by a single very powerful property: it can sweep the enemy's legs and stun them.   

When you play a good singleplayer action game, at least one based on dynamic close-range combat, you'll notice that (at least after the first level or two) the game often pits the player against enemies whose attacks are not interrupted when they are hit by the player. Armored enemies in Lonely Star work the same way, but in the demo, there are no enemies with armored legs, only armored torsos.  

I could fix my problem here by taking out the special properties of the crouch attack. That's not what I want to do, though. Sacrificing a lot of complexity to save whatever's left over doesn't seem like a good approach. The crouching attack works great as a countermove, especially against an enemy with an armored upper body:  

But it's not foolproof. The player has to make sure they're not dodging right into another enemy's attack range, or they'll be helpless during their attack recovery:  

I want to preserve this stuff. So here's what I'm working on instead:  

Two things changed here, and they're both in the enemies' behavior. The crouching attack itself hasn't been changed at all.  

1) I made the enemies aware of their reach advantage. Outside of a few early-game, easy enemy types, there's no reason for them to blunder straight into an attack when they can strike safely from outside that range.  

2) I made the enemies aware that, when the player misses an attack, that's an opportunity to counterattack. If the player misses a standing attack, they can still dodge afterwards; if they miss a crouching attack, they might be out of luck. That keeps the risk-reward balance of the different attacks in check.  

So even if the player has the range advantage, not the enemy...

...the old crouch attack spam strategy comes out neutral, not in the player's favor, because the enemies are at least rudimentarily aware of the rhythm of the battle. 

Now this fix makes the game harder, so I've modified a couple of other things to balance it out:  

1) Enemies now may hesitate when they're within striking distance of the player

2) Enemies will hesitate in their approach when the player is swinging a weapon around, even if they're outside of its range. This instinctively makes sense, right? I like that there's a flavor of intimidation to it, a little suggestion of a thinking, feeling consciousness inside those 5x5 pixel skulls, not just an insectile snarl of code. In general, enemies are more prone to hesitation when the player gets aggressive, and more aggressive when the player runs away.  

 

Level Design pt. 2: Structure and Challenge

Matt Judge

Originally posted 8/6/2016 on Kickstarter

Hi! Last time I talked about the technical aspects of designing a level; this time I'm going to discuss level design in terms of challenge and structure. The Snake Town level from late in the demo is the best way to explain this, so be warned that the rest of this post will have spoilers for that part of the demo. On the other hand, if you're stuck in Snake Town, this might be exactly what you're looking for.  

OK, so, in order to learn how to make the magic of fire, the player has to undertake a quest that proves they can handle it. This was inspired by a weird phrasing in the original Legend of Zelda; at one point, you find an old man who offers you a better sword, with the line of dialogue "Master using this and you can have it." What he really means is that you need a certain number of heart containers or something, but I liked the idea of the player having to demonstrate mastery of an item before they can walk away with it. Since there's a mechanical difference between having some fire magic and being able to make more of it on your own, this quest seemed like a good opportunity to use that idea.  

The goal here is to retrieve a "holy stone" from under Snake Town and return it to Moustapha. Since there's no human-accessible entrance to the ruined town, he gives you, in addition to some fire magic, a potion that turns you temporarily into a snake. When you find the stone, your human form is restored, and then you have to escape with it.  

There are three discrete areas to the Snake Town level: the inner part of the ruined town, the cave underneath it where the stone is, and a series of snake tunnels that connect the other two, and which you can only enter in snake form. 

 I've added some labels so you can see how the three areas connect-- "A" connects to "A", "B" to "B," etc. An orange label shows a passage you can only fit through as a snake, while green means it's accessible in human form too.

 I've added some labels so you can see how the three areas connect-- "A" connects to "A", "B" to "B," etc. An orange label shows a passage you can only fit through as a snake, while green means it's accessible in human form too.

So, right there, that's a structuring mechanism for the level. When you're a snake, you can enter a separate area that's otherwise unavailable, but you can't jump across the gap to the level exit, on the far right of the first screen, nor can you climb ladders. Since you can go down but not up, you're subtly pushed towards the stone. Because you're trapped until you find the stone, the whole thing has an oppressive bad-trip quality. Being a pit viper, you have can see living things in the dark, which helps you figure out where the paths you can take are...  

...and shows you this "witch" enemy. You're also very fragile and unable to dodge or parry in this form, so most players will be inclined to run away from the enemy, towards the glowing snake passage, which was established by the previous scene as a path you can now take (because a similar passage is the only way out of the abandoned kiva where you transform.)  

u2 unintelligible.png

As soon as you transform, you can no longer understand human language, adding to the nightmarish feeling of the level. You can understand other snakes now, but they have snake-centric concerns that don't necessarily help you.

There's an ancient altar in the middle of the level, glowing like a living thing, but the obvious passage to it is blocked. That's something optional; I won't spoil that one for you.  

There's an ancient altar in the middle of the level, glowing like a living thing, but the obvious passage to it is blocked. That's something optional; I won't spoil that one for you.  

Moustapha specifically says that the stone is "under" the city, so that's another good reason to head straight down, even though the tunnels themselves are nonlinear. The cave where it's located is even specifically called "Under Snake Town" on the loading screen card that pops up when you enter a new area. By giving the player more than one path, but also a clear sense of which direction they're trying to go in general, I want to create a feeling of exploration while mitigating the risk of getting lost and just having to comb every inch of the level for a way forward, a frustrating experience that anyone who plays video games is probably familiar with.

The holy stone, like the altar, is slightly visible in the dark; there's no particular plot reason for this one, it's just to help the player avoid getting lost. If you approach this general area from one side, you see human-built walls instead of the natural walls of the cave, suggesting that there's something beyond them;  

and from the other side, you see a tunnel full of bats, signalling that there's a passage over there in the dark. Touching the stone restores the player's human form.  

Now the real challenge starts. When the player takes the stone, a horde of ghosts shows up to defend it, and when those ghosts spawn, a gust of wind puts out the player's torch, if they have one. The ghosts can pass through walls and regenerate from a central point in the level after being killed, so the player should soon figure out that standing and fighting isn't an option here. The player may also notice that they might not want to use a torch at all, since it makes it impossible to hide from the enemies in the otherwise completely dark cave.

The player is likely to realize at this point that they have no idea how to actually get out of Snake Town. If they're resourceful, they'll notice that by exploring the level in human form before they take the stone, they can decide on an escape route, take out some of the defenders, and even set traps.  

This is kind of important: the game never points out that you can do this. The first time the stone restores you to human form, you'll probably take it right away. After a failed escape attempt or two, you might wish you could explore the level with no enemies chasing you. Then you'll realize that you can; no one's stopping you. By giving the player more freedom than they are ever forced to use to make to progress, I'm trying to reward exploration and strategic thinking.

There's an unlimited source of clean water in one corner of the cave, so there's a chance to rest and recuperate here. Unless the player is in danger (signified by the candle flame on the top of the energy meter), they can sleep to regain energy, or make arrows, torches, and magic. Realistically there'd be no arrow material in the cave, of course, but I'm trying to be pretty scrupulous about not wasting the player's time, and making them leave and re-do the whole level just to restock would definitely qualify as a time waster.  

Most of the level is a warren of small rooms and tunnels. When the player is unfamiliar with these, and trying to escape in the dark, they're likely to get turned around or stuck in dead ends, like this misleading structure in the cave, or the top of this ladder in the town. The narrowness of these passages turns them into a deadly shooting gallery when the player is pursued.  But it also means the player's fire magic can block them completely.

Once the player knows the level's layout, they can use it to their advantage by luring enemies into a trap. There are multiple routes the player can take through the level, so it's possible to mislead the enemies onto one path and then follow another, using the darkness or a little bit of cloud magic or even the smoke from the fire as cover.  

The sling comes in handy here; the noise of a rock hitting the wall or floor can pull enemies away from the route the player intends to take. But the sling requires some practice, because a poorly-timed throw will be inaccurate, and in these narrow corridors an inaccurate throw will probably land a lot closer to the player than they intended.

Here's a place where player feedback was important; people were having a lot of trouble finding the exit, which is in a passage that extends further to the right than the rest of the town. I added this beam of light from a crack in the wall to highlight it. Because of the way the game's lighting system works, things like this that are visible in the dark in any context stand out a lot, I hope.

And getting to the exit involves jumping a pit, which requires a tactical choice. The player can memorize where it is in order to clear it in the dark, or they can light a torch and risk being chased. 

Level Design pt. 1: The Illusion of Space

Matt Judge

This was originally posted 7/30/16 on Kickstarter

Hi! Today I'm gonna talk about the process of building a Lonely Star level. Let's look at the "Home" area where the demo starts-- it's a good example because it's complex, with indoor and outdoor areas and spatial illusions. First I do a few super rough sketches describing the layout and perspective of the area, including indoor and separated sections.  

Indoor zones

Indoor zones

How the level fits into the landscape

How the level fits into the landscape

You can see how, with an open outdoor area like this, the central layout of buildings and the boundaries of the level are often figured out separately. It's weird, even psychologically disconcerting, to realize that when you're offering the player the illusion of freedom, what you're really doing is figuring out how to trap them in your world without them noticing, or escaping, or even wanting to escape. Renee Nejo described it as building a prison for the player. It's hard to look at game worlds the same way once you've built one.  

(Can I digress here for a second? Hiding these boundaries is important. The player should never be prevented from going somewhere they want to go by an obstacle that they could easily pass in real life. You've all probably stepped off a tiny ledge in a video game, only to discover that you can't get back up, just because the game doesn't have a jump button. A surmountable obstacle in the right place piques the player's interest, gives them something to do, and distracts from the arbitrary insurmountable obstacles on the edge of the game world. )

After sketching I make any new tile graphics that the new area requires. Tiles are for unchanging graphics like floors and walls-- particularly anything I know will be either always behind, or always in front of, the moving objects (e.g. the player character, enemies, animals). The engine I'm using, Game Maker, is pretty ubiquitous in 2D indie games-- Hyper Light Drifter, Hotline Miami, and Spelunky all use it-- in part because it's well equipped to deal with these very problems. Tiles are organized into layers of different depths; tiles with lower depth than the player's character will appear in front of them, tiles with higher depth will appear behind. Here's how the layers look in the Game Maker level editor:  

This is a 2D game with an illusion of 3D space, so things get even trickier. It's a lot like building theater sets. (Remember the opera house in Final Fantasy, where the stage flats look and function exactly like the "real" castles in the game world?)  

The player can't be allowed to move into the space behind some of these tiles, either because that space doesn't actually exist, or because letting them go there would obscure the action. But by making the "stage flats" big enough that the player can step partially behind them, the 3D illusion is preserved. And though the player gets that it isn't quite realistic, I can show them the rules of the game on an intuitive, unconscious level, just by being consistent in the way I depict things.  

For example, when the player really can move behind a large object, it turns transparent when they're on the other side of it. That also lets them see whether an enemy is hiding behind it!  

Objects are distinct from tiles; they're things that the player needs to able to maneuver freely around, like the pillars and the still here, or the semi truck pictured above. Freely intermixing tiles and objects does a lot to convince the player that they're moving through space in a realistic way.  

Here are the tiles vs. the objects in the level editor. Some things, like the pillars, are part-tile and part-object, so that I can increase their heights with tiles without having to make new object graphics for every possible size they could be. In the object view, you can also see the invisible architecture of the level. Those transparent red and blue boxes define where the player really can move, and you'll notice that they don't always line up where you'd expect, but the result feels right when the player interacts with it.

While I'm building the level, I constantly reference the original sketches to keep proportions in check. I usually keep the level editor zoomed in to actual size, because it helps me keep track of what the player will see on the screen at any given moment, and gives me a reference point for the size of things relative to people.  

Here's another kind of invisible architecture-- a "fall," which is a wall with built-in gravity. It can be disorienting to try to build this stuff in a way that neither looks nor behaves unnaturally. The player can never be allowed to fall off the north side of something, because "north," "up," and "uphill" are all the same thing behind the scenes.  

To help with the illusion of space, I built a special kind of isometric fall, one that can function as either a "wall" or a "fall" depending on the direction the player's coming from. It's kind of hard to explain, so let me just show you:  

Here's how it's supposed to work. But if I disable the line of code that makes this object distinct...  

...the player plunges through non-Euclidean space like a hapless explorer in a Lovecraft story. There's not a shred of true 3D functionality in this game; it's 100% optical illusion. 

Encounter Design

Matt Judge

Over the past couple months I've mostly been debugging and promoting the game, in anticipation of a Kickstarter, so there hasn't been a lot of news on the development front. Now that I'm getting back into development, I'll have more to talk about here.

There aren't a lot of one-on-one encounters in Lonely Star, and that's by design. Individual enemies are largely pretty easy to push around.

Continually body-checking this guy every time he tries to do something makes it impossible for him to respond.

Add even one more enemy, though, and now failing to take him into account puts you in danger. By the way, check out how, when the player repositions so the conquistador is between them and the archer, the archer moves to outflank and ends up close enough that he switches to a melee weapon. That's an important thing for the player to exploit, when they're fighting multiple enemies-- maneuvering so they get in each other's way.

Similar deal here. Every time the enemy starts to attack, the player dodges and strikes his unarmored legs. For a one-on-one encounter, like a boss, I could give the enemy leg armor, or a limited ability to do dodge attacks of his own, to complicate this approach.

But just by having multiple enemies, with different attacks of different speeds and ranges, with slightly randomized elements to their level of aggression, things get a lot more interesting. The player can't dodge-attack back and forth unharmed forever; eventually, one of the four attackers they're exposed to will get a good shot at them. This boss, the Witchfinder, is probably the hardest in the demo, even though he has low health, no armor, and the slowest ranged attack in the game. His entourage and his attack range organically combine into a complex, reactive challenge.

This is what a better attempt at swordfighting him looks like, by the way. The player uses their speed advantage and the terrain to break through the enemy line and get a clear shot at the boss. Still, you can see that going in with just a melee weapon requires good timing and footwork.

Or, by spending some corn to make magic, you can fight in a more strategic, less twitch-reflex-based way. It's a tricky balance to strike, but my goal here is to incentivize stealth and tactics, not with special rewards or ranks, but by making them legitimately less dangerous than facing everything head-on.

Adaptive Difficulty

Matt Judge

Difficulty is a tough thing to pin down in an action-RPG. It's an action game, so it has to be tight, mechanically clear, responsive, and predictable in certain ways. It's an RPG, so different approaches the player might take to stats and tactics have to be meaningfully different without one clear "best" option.

 

 

The new 1.07 update introduces adaptive difficulty in kind of an unusual way. Here's what I mean:

With each little bit of complexity, the difference in difficulty grows between a challenge that a brand-new player will find approachable and one that an experienced player will find meaningful. And because there's more than one type of progress in Lonely Star besides just making your way from one area to the next, random encounters are part of the system, which makes it even harder to structure a difficulty curve.

 

I ended up taking a page from the God Hand playbook here. Now the rewards and difficulty of combat increase with each enemy defeated and decrease with each death.

When I say difficulty, I don't mean that enemies take more or less hits to kill, or anything like that. Difficulty here means two things: a) the composition of random encounters, but more importantly b) the abilities of the enemies in combat.

 

 

A few hits will kill virtually anything in the game, player or enemy. When the difficulty is low, enemies may be indecisive or they may be aggressive, but they won't try to defend themselves, and that means a sharp player can take them out before they get the chance to do very much. When the difficulty is high, enemies will start to do things like dodge and parry (pictured above).

Here it becomes really important that the player has multiple "lines" of defense, like dodging and parrying, which activate and recover independent of each other.

I'm also getting a little experimental with the new weapons. These two are included in 1.07:

 

 

The splitting maul delivers a crushing blow, but it takes a second to pick it back up. While the head of the maul is on the ground, it actually drags, arresting the player's movement if they try to move away from it.

 

 

The rapier, instead of a conventional parry, can intercept enemies' attacks with its own faster attack, canceling the incoming blow and countering it at the same time. It's been cool to learn a little about how these weapons were historically used, when I've been hearing their names my whole life but usually only seeing them represented as different points on an exponent curve of attack power.

Shook Ones

Matt Judge

If you follow indie games you've either watched Jan Willem's Nijman's talk about screen shake or you're about to. A lot of easily-overlooked craft goes into representing physical sensations in audiovisual media; easily-overlooked because, if it works, a casual observer will consider themselves to have felt the sensation instead of seen it.

The gif frame rate is eating a lot of it in this particular example, but you can see an earthquake effect each time the mouth in the ground vomits fireballs. You can see the same thing a lot more clearly in the trailer.

As I started to implement this, though, I realized that "screen shake" isn't just one thing. Look at what's happening here:

There's a sensation, all right, but it's the wrong one, and a weird disconnect is the result. Shoulder-checking a man in armor shouldn't feel like the earth is quaking under your feet. It took a lot of experimentation and re-working the way my previously rather haphazard camera code interacts with the way Game Maker handles and enforces screen boundaries, but I'm closing in on something that feels right on.

Like I'm doing with the camera, I'm refining some other systems so they're more consistent and broadly applicable. Instead of the straight-line hitscan they used to be, bullets are now projectiles just like any other, rendered in that cool Goldeneye tracer style that you know from video games, and can interact with cover without needing any special exceptions:

Cover

Matt Judge

Lonely Star is pretty far into production already, but in an effort to reach out to the indie game community I've decided to start a development log on the tigSource forums. Articles will be archived here too.

I'd never thought of a 2D, top-view game needing a cover system, but as I've expanded on the game's stealth and vision mechanics, a cover-system-shaped hole in the gameplay started to take shape.

The player can crouch to hide in foliage, move silently, and deliver sweep attacks. There's a defined class of objects that are not too high to shoot over, but still act as obstacles. That's really all it took:

This looks wrong, doesn't it? It looks like the monsters' arrows are somehow weaving through the barrels to hit you.

These should provide cover to a crouching player character. The 2D forced perspective that Lonely Star uses makes it difficult sometimes to keep the way objects collide feeling smooth, consistent, and visually understandable. But here, it helped a lot; my first idea was some complicated thing involving the Pythagorean theorem and sprite heights and cosines. But it turns out that it feels and looks right if, when an enemy's projectile passes over a low obstacle, it should be unable to hit a crouching player for the next (x) frames-- (x) being the number of frames it's traveled already.

There's a random factor involved in how far an enemy's shot "overshoots" you, and incorporating that into the cover script led to a cool effect where the shots will sometimes pass over the cover and the player and sometimes hit the cover instead.

The GIF is a little choppy here-- when the player is standing, they fire an arrow back over the barrels at the enemy.

But not every low obstacle should stop every projectile. Should a chain-link fence stop an arrow? A bullet? So I spent a long hour assigning properties to every low obstacle, deciding what each one should protect the player from. One cool thing about this is that it can superimpose cover properties on obstacles that are made of tiles, not objects (don't worry about the distinction-- if I'm doing my job right, you'll never notice)

So how exploitable is this? How much does it change the game?

Not a huge amount, not yet, which I'm happy for. The enemy AI is already smart enough to outflank a player who stays hunkered down, so there's a risk involved in popping in and out of cover to get them to waste ammo, and that risk multiplies with the number of shooters. Arrows are a limited resource for the player, and the sling can't be used from a crouching position. More testing is in order, for sure, but right now it looks like a situational option that I can grant the player that's useful without upsetting the game balance.