Brian Crick

First Person Fencer

Took a bit of a detour over the last couple of days to try out an idea for a swordfighting game mechanic that’s been stuck in my head.

There’s a lot that’s janky about this, but it’s been nice to just dive in to a couple of random ideas and explore them.

First:

swordfighting

The idea here was to tackle a number of things I don’t like about first person shooters. I like how immersive the environments feel in first person games; I like 3d platforming, and I like the lack of item trays in your typical FPS. But… I don’t like the shooting so much.

The solution was swordfighting. You can’t see a sword in my prototype, but the idea is you can thrust or slice with your sword, wearing down an opponent’s shield. Every time you slice, you divide the shield into smaller fragments. You can thrust at a small, red-highlighted fragment to destroy it. Really small fragments simply disappear on their own.

So here are some things I had in mind:

hit or miss

In an FPS, if you shoot something, you either hit it or you miss it. True, there’s something kind of satisfying about lining up a perfect headshot (if you can stomach the subsequent gore), but I just don’t find the act of shooting that interesting. Your targets have X health points, each shot does X damage; do enough shots and the target is eliminated. It’s not something that’s expressed in a very visual sort of way.

So here, you eliminate a target when you’ve gotten rid of their shield. It’s pretty easy at first, but when the shield starts to wear down, it can be a little tricky to line up slices in such a way that they cut a maximum number of remaining shield fragments.

I find the act of doing this kind of fun and visually interesting.

abstraction

You don’t fight your opponent: you fight their shield. There wouldn’t be any blood, or dismemberment or anything; you’re not thinking about the damage your weapon might cause to someone’s flesh. As soon as the shield is gone, the opponent can conveniently vanish in a puff of pixels.

(I might have your opponents be all mechanical anyway, because I’m still squeamish about showing harm to living things.)

health bar

Your opponent has no health bar; the more shield they have left, the healthier they are.

variation

Let’s say a shield fragment turns red and can be thrusted away when it has an area of 1 unit. And shield fragments under 0.5 unit simply disappear as soon as they’re created. With that in mind, the following things happen:

An opponent with a shield 0.6 units in area can be eliminated with a single thrust.

A single slice will probably do it too. You can be messy: if you divide the shield into one 0.2 unit fragment and one 0.4 unit fragment, they’re still under 0.5, and both fragments will disappear after the slice.

Go up to 0.8, and you’ll have to be more careful about your single slice, say, dividing the shield into two equal 0.4 unit halves.

At 1.2, a perfectly-centered slice will result in two 0.6 unit fragments that don’t disappear outright, but which are small enough to be thrusted away.

And anything above that size will require multiple slices, which the player will (hopefully) have to put some thought into arranging if there are time constraints of some sort (like, you know, taking damage).

You could even have shield so big you you have to jump up to start your slice and continue it on your way down.

I like this sort of progression. The difficulty scales in a way that isn’t just about spending more time in the fight or taking more damage.

problems

All that having been said, there are a few problems that will probably prove difficult to solve.

animation

I do not relish the thought of modeling and animating a believable sword and jointed sword arm that responds to your movements.

cursor

The mouse is used both for movement and slicing: at present, your sword tip is always at the center of the screen. Besides looking very unnatural when you do actually have a visible sword and arm, it makes placing your slices feel very awkward. While slicing, I expect the camera to stay relatively still.

height

If your opponents are the same height as you, you’ll constantly be looking down at their shields. Again, awkward.

symmetry

I’m having trouble imagining giving the player their own shield that follows the same rules as the bad guys. The controls could be awkward or confusing, and you wouldn’t even be able to see most of your shield most of the time.

camera

Incidentally, I’m also experimenting with a sort of fisheye camera. Your horizontal field of vision is around 120 degrees, but it’s a cylindrical projection, which minimizes distortion on the edges. Of course, this adds some distortion to what would be straight lines in a regular projection.

Ideally, I’d want something that was sort of like you were standing inside a cylinder with the world projected onto it… and then took a couple steps forward. So when you turned, there would be a little bit of distortion, but not as much as a regular planar projection. But that would involve lots of matrix math I don’t understand.

Overall though, I think it feels fairly natural. I don’t like how limited your vision is in most first person games.

to sum up

I think this has potential. Who knows when/if I’ll develop this more; right now, I’m just glad to have the basic concept out of my head.

Bread and Butter

Been thinking about web site development a lot lately.

I used to be a freelance web site designer, which I have mixed feelings about. I liked meeting new clients, and building a rapport with them, and whipping up site designs in Illustrator and Photoshop. I liked being able to say I was a freelancer, just like I like being able to say ‘I make software for kids with autism’ now… it feels good to say that. Worthwhile.

But the actual process of turning those ideas into web sites always annoyed me.

So I’ve been thinking about that, and about game development, and how, even though I don’t find the idea of developing games to be particularly noble, I honestly enjoy the most of the tedium of game development. And I’m wondering if I might do well to treat game development like freelancing.

There are web site clients I picked up because I thought I’d love working with the client, and there are clients I picked up because they could help me pay my bills.

With game development, I’m only working on things I love to make. There aren’t any bread & butter, pay-the-bills games.

And maybe there should be.

Working on web sites I didn’t care about on a personal level was a little soul crushing. But I could work on a game that’s more than a little derivative and have lots of fun doing it, if I only let myself do so. I like playing casual games. I like playing cookie-cutter rehashes of old tropes. It’s only an overdeveloped urge to Change the World that has me working exclusively on things I find unique. And as someone who can do all the programming, graphics, and music for a game project on my own, I stand a good chance of making decent games with very little overhead.

Which is not to say that I could just flip a switch and break into the industry by doing this. It just might be worth trying.

Find a Reason

Sometimes, there is work you need to do, whose value you understand, and this understanding motivates you to do the work.

And sometimes, you do things for no reason at all, in the hopes that you’ll find something valuable in them.

I think the One Game a Month Thing is leaning towards the latter.

So in the day since my last One Game a Month post, already commited to making one game a month, I’ve thought of new reasons to do so:

I need practice talking about programming

I’m not real comfortable talking about programming, but it’s becoming more and more important that I can do so for my regular job — I can’t just work on my own and describe my progress in high-level, metaphorical terms anymore, because my co-workers and my boss now actually care about the technical details of what I do.

My regular projects like Tinselfly and Operetta are in tedious, heads-down places where they’re not real interesting to talk about, but having a new project a month will give me plenty of technical things to mull over in my journal.

It can be a family thing

I’ve occasionally made noises to my wife and brother about teaching them programming stuff, but sadly I never got around to prioritizing it. This is a good excuse to do that.

I can make game-like things that aren’t games in the technical sense

Specifically, I’m talking about that Celestial Stick People tablet app I’ve been threatening to make. It would be nice to get that done, and while I’m at it, revise the book since The Game Crafter now prints nice card-sized books for you.

Process of Elimination

Been on a bit of a purging/cleaning binge lately. What I want, more than anything right now, is less.

Fewer tchotchkes, fewer clothes, fewer kinds of spices in my kitchen, fewer board games in my dining room.

Less clutter.

There are of course, other solutions to the problem of clutter, solutions that don’t involve garbage bags and and boxes of stuff to give to charity. You can organize things better. Buy more bookshelves. Be more careful about what you do buy.

But the purging, the solving of a problem by simply getting rid of stuff — is oddly satisfying. And it’s always the first solution I think of when my house is getting too cluttered for my tastes.

Which brings me to the subject of violence in video games.

* * *

There’s been a lot of talk lately on the subject of violence in video games, and with this One Game a Month thing starting up, I wanted to talk about that a little.

I think about the issue, such as it is, in term of film. A great film can transform you. A mediocre film can still transform you, if you happen to watch it in a particularly vulnerable emotional state.

I feel that fiction would be kind of pointless if it didn’t change us.

And hopefully, the fiction out there will change us for the better, but I’d also say that there’s a lot out there that can make us worse. You can say that fiction can be transformative without going into anybody’s subjective definition of what sorts of transformations are desirable.

Similarly, I believe games can be transformative. I wouldn’t be trying to make games if I didn’t believe that playing my games might somehow make the player grow as a person.

Can playing a game make you a worse person? Probably. But I think the mechanics of that transformation are more subtle than the ‘playing shooting games makes you want to go out and shoot things’ kind of logic floating around there.

If I have any problem with violent games, it is that I don’t find violence a terribly interesting solution to problems. Don’t get me wrong, I like your typical outer space scrolling shooter game. It’s mindless and fun. But everything’s external to you. If only these hordes of space invaders were gone, life would be better. Everything is all their fault.

Externalizing everything and casting yourself as the righteous hero is kind of a terrible way to deal with problems.

Eliminating something in your way is just one way to deal with it. You can sneak around threats. You could make changes to your character that make obstacles easy to deal with. You could be tasked with turning obstacles into assets.

And lots of games focus on these kinds of solutions to problems. For my part, while I’m not nixing violence, I’d like my One Game a Month entries to have fewer threat-elimination scenarios, and more interesting ways of dealing with the threats the player is presented with. Because I think that will lead to better experiences, that encourage the player to think about problems in interesting ways.

Twelve

Hello 2013! I’m not much for resolutions, but I kindasorta decided to join this One Game a Month thing. It’s basically what it says on the tin: A bunch of developers are pledging to make one game, every month.

This may end up being a very bad idea, or it may be just what I need.

The rules are pretty loose, so I’m reading ‘make’ as ‘finish’, not ‘start and finish’ a game every month. With that in mind, I’ll be including my existing projects in this endeavor, and using this as motivation to get those finished and out there.

I’ve got four game projects currently in development:

  • Tinselfly, a character-driven action/adventure hybrid;
  • Operetta, a 4x / shooter hybrid;
  • Blind Tigers, a co-op board game; and
  • an untitled cyberpunk-themed board game.

In addition, I could tack on some things I started years ago but never completed:

  • Gemslinger, an arcadey Facebook game; and
  • Mika’s Tavern, a turn-based strategy game with no actual violence.

And that’s six projects right there.

* * *

What I’d like to do for the rest is just relax and make things I’d want to play, since I have so much trouble finding things I want to play. Nothing terribly innovative or demanding. Lunchbreak-sized games.

What games I do start for this will be small, 48-hour game jam sized things so they don’t take up too much of my time.

I’d like to make an attractive dungeon crawl. A simple RTS that’s so small in scope it doesn’t even require scrolling or a minimap. A completely derivative platformer with cutesy characters.

The only way I’m every going to work on stuff like this is within the context of a larger endeavor filled with projects I see as more worthwhile, and I think it might be good for me, to force myself to work on things that are known quantities.

* * *

Scheduling will be tricky here. I want to keep Tinselfly moving, so I’m probably going to be working on two things simultaneously all the time — Tinselfly plus another project. The existing board games and Operetta are bigger than your typical 48-hour gam jam stuff, so I want to get those out of the way first.

* * *

To kick this off, I’m starting with something to gamify the process of learning volume control and multiple-hand playing on a keyboard. I could really use something like this; my skills in these areas are terrible.

If I still had a pen tablet, I might have started with something to gamify the process of learning pressure and angle control, things I never really learned. Oh well.

 

 

Jam is a Sometimes Food

So there was another game jam this weekend, and I didn’t participate this time around. And there’s a jam coming up in January, and I’m not sure I’m going to go.

It’s not that I don’t enjoy game jams; they’re fun and intense and I learn things I’m not expecting to learn, which is the best kind of learning… but it’s a little like, I dunno, binging on chocolate. Sure, I love chocolate, but if you really love chocolate, you won’t allow yourself to be in a situation where you’ve eaten so much of it that you kind of want to throw up and never see chocolate again.

You know, like there’s a PSA in my head saying PLEASE EAT CHOCOLATE RESPONSIBLY.

Anyway. I guess I’m just not real into the jam kind of environment where you’re plugging away at one thing, to the exclusion of all else.  I’d much rather, ya know, spend any given weekend with Marie or friends or whatever, and do game dev stuff when I’m home alone.

However, there’s this other thing coming up called One Game a Month, and that sounds more to my liking. I could work at my own pace, on my own terms, without having to block off a whole weekend.

* * *

You need a Twitter account to sign up for One Game a Month. I had one for a while, but kinda hated the whole Twitter experience — I think it’s fair to say I just didn’t ‘get’ it — so I killed my account entirely.

But I went ahead and signed up again. Guess it’s worth another shot.

Much Ado About Purple

So I made this game a little while ago called Green & Purple, for a game-making contest. You’re a green ball, trying to make contact with a purple ball, and live happily ever after together.

I actually spent a lot of time going back and forth on the colors. I wanted pastels; I wanted two colors that were contrasting, of course; I didn’t want your usual red vs. blue selection.

But most importantly, I didn’t want pink & blue. I didn’t want players to immediately see this boy/girl dichotomy there. Even in an abstract, hastily constructed game, I wanted to make sure I wasn’t reinforcing any of those save-the-princess type sentiments out there. It’s a pet cause of mine. So I went with green and a sort of bluish purple, which I figured were reasonably neutral colors.

Despite that, hearing people talk about the game, many referred to the purple ball as ‘she’ and the green one as ‘he’.

Trouble is, you’ve only got so many options. With sufficiently contrasty colors, one color is probably going to be warm — fiery reds and yellows — and the other bluer, cooler. In the absence of any other context, I suspect people are going to see the warm color as more feminine.

Near the end of the project, I worried that I was possibly falling into some gender stereotypes despite my best efforts to keep things neutral; the cool colored ball was the one you were controlling, the one with some agency; the warmer ball was completely passive, waiting to be rescued. I considered switching the colors, but didn’t have time to do it before the contest deadline came up.

But you know what? It wouldn’t have mattered. Because this is not about color choices or thinking that people who read too much into color choices are sexist. It’s about the biases we all carry.

Had I switched the colors, and had people read the purple player as female and the green object of its affection as male, you could say it was a gender-role reinforcing game design, to play a female character whose only goal is to find a mate.

Had I started with those colors — a purple player and a green companion — there’s a good chance I would have worried about that… and wanted to switch the colors.

Because I’m biased.

While I’d love the gender roles in the world to up and disappear, I certainly can’t say I believe they’ve already done so. I expect everything I see to express gender stereotypes; I expect to be annoyed by said stereotypes. Because I am biased, I will desperately try to pull my experiences in line with my expectations, spinning said experiences as needed. I will spin my perceptions of any game I play to fit in this world view, seeing sexism where there may be none — because thoughtless, sexist characterization is what I expect to see in most games.

And that applies to my perception of my own work. I will fight to keep my work egalitarian, but my biases will have me seeing depressingly overt sexism in everything I make. In a less abstract game, in a game with recognizable human characters, I will be wont to complain that I have failed to make such-and-such a female character sufficiently stereotype-breaking. I will graft a perception bias onto a character who may very well be, in an objective sense, portrayed in a perfectly respectful way. I will likely post a journal entry about it, wondering how I can do better. In my post, I will describe said character in terms of a stereotype that is an oversimplification of who the character actually is; and in doing so I will reinforce the very stereotypes I seek to avoid.

Fighting bias is a skill. Wanting to be less biased does not immediately grant you this skill. Wanting to produce works with an egalitarian world view does not immediately grant you this skill. I know I say that a lot, such-and-such-a-thing is a learnable skill, not a part of your core being. But having bias, being prejudiced or bigoted or whatever… it’s very, very tempting to think of acting upon bias as a failure of conscience, rather than a failure of skill.

I’m coming to the conclusion that it’s a lot more complicated than that.

Postmortem: Ludum Dare 24

All done with my first Ludum Dare. You can see my game here.

So have some ruminations.

theme

I really could not have been less enthused about the theme. It was ‘evolution’, and while that’s frequently used as a synonym for ‘growth’, when I hear that word, I think of the strictly biological definition of evolution: groups of genetically dissimilar organisms dying off, and leaving the survivors to pass on their genes, slowly changing the genetic makeup of a species over time, not because the individuals themselves are changing but because the selection of individuals is changing. Growing up in an area where there was a lot of uninformed anti-evolution sentiment, I’m very particular about how I use that word; it’s impossible to have a rational discussion about evolution as a theory if you’re not precise about your terms (theory being another word that doesn’t mean to regular people what it means to science grr).

Anyway. From that point of view, evolution is an inherently impersonal concept. You’re stuck with the genes you’re born with, and you either breed or you don’t.

Which is icky since I’d set myself the goal of making something with a relatable story.

However, after much head scratching, I decided that instead of making the individual — the player — change over time, I’d make the level design evolve based on the player’s choices.

Conceptually, that seemed pretty cool, and a great solution to the problem at hand… but it needed a lot more fleshing out, as I’ll get into later.

scope

The first thing they tell you at the game jams I’ve been to is to be careful to limit your scope.

The level breeding mechanic I had was pretty limited in scope: you wandered down a skinny path with various pits and obstacles and were presented with a fork; each path on the fork would be a variation of the path just traveled. So if you hit a fork and the path on the left had lots of pits and the fork on the right had lots of trees, and you picked the left path, the next fork would present you with options with lots of pits.

From a technical point of view, this was simple enough. I had my branching, evolving paths by the middle of the first day.

The problem was, I wanted to use this to tell a love story kindasorta related to The Road not Taken.

You’d be presented with diverging paths, and while you could not ordinarily ‘travel both / and be one traveler’, as the poem goes, you could find a traveling companion. Then, you would travel together, but you could also travel separately, and share your experiences of two paths, because companionship isn’t always about being together; sometimes, it’s about your experiences apart, because, fundamentally, the only way we can experience everything is to share our limited experiences with others…

…in many ways the scope of this story is massive. Not because it’s epic or generation-spanning or has lots of locations, but because of the emotional complexity of what’s supposed to be going on. Communicating my themes verbally is hard enough; communicating them just through visuals and mechanics would be a truly herculean undertaking.

Getting this to work, I realized very late in the jam, would rely on a couple of difficult-to-express intangibles:

  • The player has to have a longing to go back and take the paths they missed before.
  • Once the player and their companion are on separate paths, the player has to have a richer experience because of it; the sort of thing that is richer than the sum of its parts.

I barely touched any of this. My one nod to the themes I was going for is the night/day transition on the zig-zag at the beginning and the end; as you’re going down the zig-zag the first time, you’re supposed to learn that, on the upcoming fork, you’re picking day or night. And while you’ll learn that you’re stuck with that choice no matter what direction you take on subsequent forks, at the end, you get a chance to pick again with your new companion and that’s supposed to be kind of rewarding.

In terms of communicating something to the player purely through the physical shape of the level, I’m actually pretty proud of this, if only as a first step. It needs many more more mechanical, visual and aural supports — a sun & moon, changing music, scenery, obstacles, etc. to work properly.

visuals &  music

I’m generally happy with the look of this. The pastel wooden blocks are playful and go with the music; the shattering path effect was a big hit with everyone else at the jam.

I also finally managed to implement a simple version of the crossfading & random music structure I wanted for my Jennifer Ann contest submission years ago. Normally the music has this wood-block sound, but when you get close to a potential companion, some chimes fade in. The music is structured in such a way that when the wood blocks are playing whole notes, the chimes are playing faster notes, and vice versa. So the companion, musically, completes you. 🙂

mechanics

I’ve only done two game jams and the one Jennifer Ann contest, but I noticed something after this jam was over: when thinking of ideas after learning of the themes, I tend not to start with existing game genres at all. Like, I don’t think about how the theme could be applied to a platformer or an RTS or an arena shooter. I think about the theme, and think about what you can do with a game engine and a keyboard and a mouse that fits the theme.

I try to reinvent mechanics from whole cloth.

While this may lead to more original ideas, this sort of thing takes a lot of time and is not necessarily appropriate for a jam. There are things in platformers and shooters that are just known to work, and perhaps more importantly, known to be fun. So even if your story doesn’t work and your approach to theme doesn’t work, well, you could still have a workable game if you start with an existing genre.

Further more, people can just look at something and know how to play it if it fits into established genres. This whole building-a-path-to-your-companion thing I was trying for just wasn’t terribly obvious or communicated very well.

I may have to try starting with a standard genre next time.

Or not. Maybe I just like high-risk experimental stuff.

technical stuff

From a technical point of view, this went extraordinarily well. I barely had to look at the Unity documentation, and only referred to code I’d written for other projects once, for a shader that didn’t even make it into the final product.

There were only two technical hurdles really.

First, I didn’t know how to get your companion to wander down a different path from you once they followed you to a fork.

The second issue was state management. There’s this whole sequence of things you have to do, to win:

  1. Create a solid path to your companion.
  2. Get close enough to a companion to get them to start following you.
  3. Keep the companion from falling while they follow you.
  4. Cross a fork while you have a companion.

And basically, the game had no centralized idea where you were in the process. If a companion started following you, new companions would still appear on new paths. If your companion fell, the game wouldn’t know something bad had happened. There was all this stuff going on, but none of it meant anything to the game. Which made it really hard to debug.

summing up

Generally, I consider the game, as a game, a failure; it’s just not clear enough what’s going on and the story just isn’t communicated to the player, at all.

However, as with most of these things, I learned a lot, had fun, and and glad I did it.

Looking forward to the next jam.

Getting Ready for Another Game Jam…

Been really out of it lately, hence the lack of posts. Not much in the way of pet projects of deep thoughts to post about.

However, I’m attending another one of those Game Jam things this weekend, and I’m hoping that will sort of jolt me back into normalcy. (That, or I’ll just get even more loopy because Marie is on vacation, I’ll be around a lot of people I don’t know too well, and I’ll descend into one of those forgetting-who-I-am episodes. We’ll see… )

For those of you who don’t know, a Game Jam is where you’re given a specific theme to work on, and have a couple days to crank out a game that fits the theme.

The jam doesn’t start for a few hours, so here are some disconnected tips for myself going into this. It isn’t so much unlike the mental prep work I used to do before TypeCons, I suppose.

Keep my other pet projects at a trickle during the jam.

I fully intend to use some of the weekend doing non-game jam coding and illustration and design and whatnot. Besides my already burning desire to get this stuff moving again, it wil probably help whatever I’m doing for the jam, to take frequent breaks.

Speaking of which:

Pick an approach to the theme that will help me sort out issues with my existing stuff.

If I find myself writing something at the jam that’s about cool mechanics for their own sake or has too-realistic physics simulations, I’m doing something wrong. Ideally, I’ll be able to pick an approach that has a little bit of story, a little bit of that commenting-on-the-the-real-world-through-the-lens-of-abstract-mechanics I want in my other stuff.

Check in with other jammers.

I could easily just hole up and work on my own stuff, and I want to make sure I don’t do that. Unlike my last game jam, I won’t be part of a team, but this is still, in many ways, a social event after all.

Sleep.

Not something I normally have trouble with. 😉 But if I do hit a point where I’m so super excited about what I’m working on that I feel the need to stay up late working, I have to remember that I wrote this: staying up late never, ever helps in the long run.

Alternate skill sets.

I’d like to try forcing myself to stick to a rigid rotation of coding, playtesting, illustration, and music composition — say, a half hour each session — throughout the weekend and see how that goes. My gut feeling is that if I can do that, it will help greatly with my productivity.

Lost and Found

I have, at long last, rearranged my web site a bit so that this blog is no longer on the front page. Sure, writing here helps me sort out my thoughts, and people seem to like this sometimes, but I really want the first thing you see here to be my stuff, not my random babbling. The blog was never supposed to be on the homepage… that was just the WordPress default.

The new menu could certainly use some cleanup, if not an overhaul, but I’m glad to have taken this step.

* * *

While I was at it, I made a proper project page for the Jennifer Ann project, complete with screenshots and music samples. While I generally regard the project as an embarrassingly incomplete failure as a game and as a story, I forgot how much I liked the overall look. And while it could use a whole lot of smoothing out, the music isn’t half bad, considering that those were some of the first things I composed, ever.

I’m lucky I still had the original project files that I could dig through to make that page. I have a really bad habit of immediately deleting things as soon as I’m done with them. I ran into an issue making the thumbnails on the new home page, where I didn’t have the original files for my favorite web site design; I lost them years ago.

I like having this stuff around, because I frequently forget what I’ve done in the past. And I forget what I’m capable of, and what I still need to work on.

Copyright © 2017 Brian Crick.