Untitled Space Game – Episode 3: Finding a Path Forward

There are 2 major systems in the space game I have planned: 1)a free-roaming trade simulator game not unlike Sid Meier’s Pirates or Mount and Blade, and 2) a tactical space combat game not unlike FTL. Lacking any particular reason to start with one or the other, I chose to start with the tactical ship view because hey, why not? Except… one thing has already reared its ugly head, and is making me reconsider: pathfinding.

Turns out having 2D characters navigate across a 2D grid in “smart” ways is… well, a difficult problem. Not an unsolved one, to be sure, but one that is quite a bit more difficult than I originally considered. I guess chalk this up to growing pains, and a relative lack of experience tackling programming problems. It’s one of the tricky bits with making a game solo, is having to be the one to solve all the problems, even the ones I didn’t expect to need solving. There are no shortage of A* pathfinding whitepapers available online, and even a few general-purpose algorithms and libraries available for free. There are also a handful of extensions and plugins available in the Unity asset store, which might just be what I turn to in the end, as developing an efficient, scalable, interactable 2D pathfinding system is just not that exciting to me. I recognize its necessity, and can see the tuning and calibration being of interest, but not the low-level function of the thing.

So I’ve spent most of the last day pouring over different options in my head, thinking how fundamentally I’ll need to consider the ship architecture I was considering, wondering if I should just make my own solution or if I should rearrange things to better support a pre-built solution, until I had done a whole lot of pondering and worrying and self-doubt, and nothing very tangible (except applying to some more jobs that I will probably never hear back from). In my frustration and impotence, I even did some chores around the house like hanging curtains over the stairs, such was my urge to not have today go to waste.

And then I sat down, and decided, hey, I should calm down, document this particular hurdle, and maybe take a step back. I’ve banged my head against that particular problem for a little bit now, and am not moving forward, but fortunately there is still plenty of other game to move forward on, namely the free-roaming trade rpg part I mentioned, and shifting focus might give my brain the breathing room it needs to tackle these pathfinding challenges.

The job search is an ever-present thorn in my side reminding me that, hey buddy, you aren’t making any money. There’s a lot tied up with that, and sometimes I wonder if I’m just using “searching for jobs” as an excuse to not solve the hard problems involved in this space game. On the other hand, ignoring the job search in favor of working on Unity projects also seems unwise. On the other other hand (or like, the foot?) getting more experience with the tools and workflow of Unity can directly benefit my job skills and increase the likelihood of landing another job somewhere. On the other other other hand… sometimes there just becomes too much to think about, and without someone else imposing a deadline from the outside, it can be easy to spin in circles and make no progress on anything at all.

I wouldn’t say I’ve ever fully come to terms with my motivation when it comes to personal projects, and this bout of unemployment is really putting that internal struggle to the test daily. The positive side is it gives me lots of practice in honing techniques to stay focused… or lots of time to vent on a blog that no one reads instead of working.

Advertisements

Untitled Space Game – Episode 2: More like C Dull, amiright??

Weekly update on space game project – I’ve developed the core concept a bit more in xmind format, and decided I was ready to roll on to step 3 (because who needs ordinal lists?) and begin to prototype some of the basic systems involved. I figured I would start with the ship interface, and step number one was to lay out the basic hierarchy and variables for what that even entails.

For starters, I’ve decided that the ship will essentially be laid out into a square grid, the dimensions of which are a “character” wide. The very core components I need are:

  • A ship class
    • A grid class that contains info about each grid tile
  • A character class
    • Knows how to move around between grid tiles

After much wrangling of Unity objects and planning of eventual organizational flows, I got it in some semblance of a working prototype, after many hours of struggling with even the most basic C# syntax and unity APIs. It’s definitely been slow-going, but I feel like I’m dusting off the old C# cobwebs some and starting to get back into a groove. There’s definitely a “R&D/Refresh my Programming” phase of this I’m going to need to factor in though. It’s also a good reminder that while I list scripting and programming on my resume, and do in fact have a decent amount of background in it, I am in a lot of ways quite rusty, and I should really take this as a learning opportunity if I hope to apply those skills to my next job.

Part of what is making this tough, I think, is that I am still recovering from a flu (or some similar plague) that knocked me out for several days (including hastening my departure from PAX south – I only was there 5 hours before I had to call it quite and drive back home). Today I’ve felt mostly better aside from congestion and a cough, but I won’t claim my head is 100% in the game. That seems to be the pattern with sickness – you approach total wellness asymptotically, and there’s never a single day where you wake up and suddenly everything is back to 100%. So in the meantime you just soldier on at reduced capacity and energy. I guess in a way taking those steps is probably what gets you the rest of the way there.

So in that vein, while I am not making a ton of tangible progress, I do feel like I’m picking the pace back up and learning along the way. The next micro-step will be to refine the movement so that characters move from grid tile to grid tile, and then maybe to add a second character and make them selectable.

Untitled Space Game – Episode 1: The Drawing Board

This is the first in a hopefully many-part set of blog posts in which I will attempt to document my thought and work process in my efforts to make a game in Unity. So far, the broad strokes of the project are:

  • Strategy/rpg set in space, heavy on exploration, crew/ship building and tactical combat
    • Like Wing Commander Privateer, sorta, but more strategy-oriented
  • The ship-to-ship engagements should resemble FTL, or Dungeon of the Endless
  • Semi-realtime – player can pause/fast forward time in certain contexts
  • 2D isometric/top down art
  • Done in Unity engine
  • Moddable – because as a solo dev, content is going to be hard to do, so crowdsource that shit

I’ve had these broad strokes swimming around in my head (and in various forms of written/electronic media) for a while now, but have been looking for the best way to start. Already just sitting down and really pondering the workload and plan, there are noticeable differences in thinking this out for myself vs for a team, which is a context in which I have much more experience working. For example, part of me wants to heavily design the thing out on paper, but another side of me realizes that any design work I do is solely for the benefit of helping myself shape the eventual game, rather than communicating a vision to a team or solving for manpower and production constraints. Of course, I could similarly call into question the point of this blog, but I’ll leave that bottomless rabbit-hold of self-reflection for another time, and try and focus on creating.

So how to actually begin? It’s weird, after all this time, to have the only real constraint be my own time/ability. The drawing board is big and blank and terrifying in front of me, and as much as I want to simply paste a snapshot of the finished thing in place and just trace over it, I know I have to begin somewhere. First steps and all that jazz. So the way I see it, I can divide up my effort as if I had a 3 man team consisting of a writer, an artist, and an engineer, and focus on 3 main big-picture things, in basically this order:

  1. Designing the world, lore, and gameplay rules
  2. Defining the general art style
  3. Pick some of the core systems to start prototyping in isolated projects, to figure out the tech involved

Even as I wrote those out I edited and revised them like 10 times, and now I figure that steps 1 and 2 are roughly parallel, but step 3 really relies on the other 2. I may be able to enlist the aid of some artist friends of mine to help get #2 rolling. In particular Erik and Jon might have some good ideas, although I don’t know how much they’ll be willing to do out of charity. As for step 1… I’ve made some decent progress in outlining the gameplay basics in Xmind format. The next step, given that it’s a 2d semi-turn-based strategy, might be to model out some of the mechanics in physical cards and paper. I bet I could enlist the aid of my tabletop RPG buddies in playtesting and tuning the core mechanics, even. I have to admit to a certain disdain for actually producing physical things, as I try and live my life as much digitally as possible, but I have to acknowledge a certain ease of creation and editing when the thing is just comprised of index cards, and it bypasses the tendency to get buried deep in the idiosyncrasies of a particular algorithm or section of code, and lost sight of the whole in the process.

So there we go. Step 1 – make a card game. Actually, I guess step 1 is get some cards. That’s my first goal for tomorrow. I should have some free time to do that I think.

New-ish Year Re-resolutions

On Jan 2 I wrote:

“I want to make some resolutions for myself for 2015:

  1. Write at least once a week on here, even if it’s nothing major.
  2. Spend at least 1 night a week working on side projects, likely in Unity. (Bonus – combine 1 and 2 by writing about the side projects)
  3. Work out at least twice a week. This is a habit I’ve really gotten out of after my son was born, and I notice a difference in just general energy levels and evenness of mood.
  4. Take my son to some activities, at least a couple times each month, now that he’s getting old enough to go out and do things.”

Let’s see how I’ve fared 18 days later:

  1. Well, this one’s obviously a bust. This is my first post since then. So call it… 33% successful so far, I guess.
  2. Batting 50% on this one. I have monkeyed around with Unity and spent some time formulating a project, but not very much. My excuse has been I will have plenty of time for that after I no longer am going into work…
  3. I’m batting closer to 80% on this, I have had several good workouts. Room for improvement still, but not too bad overall.
  4. We’ve been going to the park on days that it’s nice, so that’s something. I would still like to do something a little more special at some point. I’d give myself a 75% on this.

I guess the unspoken 5th resolution of “find a damn job” is also unfulfilled so far. But with all these there is still concrete steps to be taken, which is the important thing. Layoffs are a weird rollercoaster of emotion and motivation, and finding consistency in all that feels difficult, but I can continuously recommit to my plans – after all, the only one grading me is myself.

Going forward, I want to make an amendment to the first item – write at least once every 2 weeks specifically about my forays into Unity, and my design process as I progress in my projects. It seems like half the time I sit down to write, there’s just so many divergent topics I could cover I don’t know where to begin, and the blank page is creatively stifling. So I’m aiming to write about the more narrowly constrained topic of development.

Welcome 2015

2015 will most certainly be, for me at least, a year of many changes. The most obvious, and at the moment worry-inducing, change is that I will need to find a new job. I have until January 22nd to be officially employed at Edge of Reality still, at which point me and another 10 employees are left to fend for ourselves. The timing of these layoffs has been… less than ideal, the news coming as it did a few days before Christmas. It’s certainly cast a shadow on the end of an otherwise very good year, and in a way I wish I had been able to remain ignorant through the holidays and be able to actually relax and enjoy myself more, since I already sorely needed a vacation.

I’ve done a little bit of preparation to search for jobs, including putting word out on the twitbooks, and updating my resume. The timing is awkward as well because I’ve been unable to contact anyone I know working at studios around town, since all their offices are closed for the holidays, but that’s something I intend to pursue in earnest starting next week. Also on the mental checklist of things to do is update this site to include links to my resume, linkedin, etc. I might try and put together some form of demo reel or portfolio, although showing the design process is difficult to to visually, and might just amount to me describing problems I faced and how I tackled them, in a sort of post-mortem style here on this blog.

In the end I think this layoff will be a good thing for me, since it will allow me to finally work elsewhere. I’ve been at Edge over 7 years now, which is frankly too long to be a designer at a studio which relies on ports and has little proclivity or need for good design. I understand that designers always face constraints, and working around those often leads to more creative outputs, not less, but it would be nice to work for a place where one of the constraints it not “convince everyone constantly that designing things, as a concept, is even important”. It seems clear looking at successful studios that they put a heavy emphasis towards the player engagement, and have a constant eye towards how to craft fun and deep experiences. I want to be somewhere like that, and while I’ve been on a kind of slow-burn search for a while now, this layoff has really forced my hand and caused that search to take a much higher priority. Of course, I still have to go in for the next month or so…

One final note, seeing as how it’s a new year and people tend to do these kinds of things, I want to make some resolutions for myself for 2015:

  1. Write at least once a week on here, even if it’s nothing major.
  2. Spend at least 1 night a week working on side projects, likely in Unity. (Bonus – combine 1 and 2 by writing about the side projects)
  3. Work out at least twice a week. This is a habit I’ve really gotten out of after my son was born, and I notice a difference in just general energy levels and evenness of mood.
  4. Take my son to some activities, at least a couple times each month, now that he’s getting old enough to go out and do things.

So the year is not starting on a high note, but I feel confident I can make the best of it and in the end 2015 can be my best year yet!

On Free to Play and Competitive Games

Something I’ve been thinking a lot about, mostly because of my work on Loadout, is the nature of free to play games and the nature of competitive games (in this case, arena shooters) and how those two natures might be fundamentally at odds with each other. Before I go on too far, full disclosure, it is entirely possible that my own financial livelihood depending on these two things has given me a biased perspective, and I may be guilty of rationalizing failures. I hope not, but there it is.

First off, I’d like to point to the fairly significant list of games which tried to be f2p pvp and failed to remain viable. In the last few years these have been games like Tribes Ascend, Hawken, Super Monday Night CombatNosgoth, and of course Loadout. I am using the steamcharts links here as a proxy for revenue, which while inaccurate in ways and not a perfect correlation nonetheless at least provides some basis of comparison. The common trend-line in the playerbase of all these games is an initial spike, then rapid decline, with minor spikes when updates occur. To be fair, this is also the trend-line in players for most pay-to-play (i.e. “normal”) games. The big difference of course with those is that the money is collected at the time of playing, meaning it doesn’t matter as much that players keep playing for long amounts of time, the developers already have their money. Of course extending that tail end of sales is always nice, and there are ways to prolong that, but the financial viability of the product as a whole is far less dependent on an ongoing player base that continues to monetize.

Compare now the steam charts figures for games like WarframePath of Exile, to say nothing of Valve’s own titles like TF2, CS:GO, and the juggernaut Dota 2, although given their ownership of the marketplace itself, that’s not exactly a fair comparison. All of these have steady (and generally growing) playerbases.

So what do I think the keys are? What do the successful ones do right, and the failures do wrong?

  • Something to offer players at all levels of competition
    • You wouldn’t expect a middle school football team to hold their own against an NFL team. If you want your game to be competitive, there should be something in the game that appeals to players of all skill, and ways to help players bridge any gaps. For us, on Loadout, that bet is PVE (though it remains to be seen how that strategy will pan out).
  • Frequent Updates
    • Players have to feel like the game is alive, whether through content updates, sponsored events, or even a mod community. League of Legends has this down well, as there are constantly new heroes, and constant shuffling of the available free heroes. Crowd-sourcing some content might be a good option for studios that lack that resources to quickly make their own stuff. Valve champions this production model quite well.
  • Reasons to stick around
    • This should be built into the game’s core design, as much as possible. It speaks to the fundamental pacing of the game, and when you expect to award new powers, ability, and content. A lot of this is just retention 101, which seems obvious, but my point is to embed these things into the core of the game. I think it’s a mistake we’ve made attempting to shoe-horn the f2p model into a game that wasn’t really designed for it, and I think if you’re going for that you have to start with that in mind.

I have more thoughts that I might post on this theme later.

The Best Use Of Time

Something that I struggle with a lot, right now in fact, is the constant worry that I’m not maximizing my time, and that whatever I’m doing has no guarantee of being the most productive thing. For example, should I take the time to write this blog? To what ends? Who do I even expect to read this, aside from myself? Is that time that could better be spent designing and implementing small games in, say, Unity? Are those games worth pursuing, or are they dead ends? If I do complete them, will they ever be seen or played by anyone?

It is of course silly to dwell too much on this, because almost no matter what I’m doing, that time is better spent doing *something* instead of wringing my hands in indecision. That doesn’t stop the incessant buzzing in the back of my mind though. Every second feels valuable, every moment not spent realizing full potential (or at least full leisure) feels like a waste.

I suppose some of that is spillover from the tightly budgeted workload I find myself having to deal with at work, where every wasted hour is viewed with a certain degree of panic. Some of it too is probably indicative of my need for a vacation, which I realized a week or two ago I haven’t done any of in like… this year. To that end, I do have some travels planned coming up, which I look forward to.

I’ve heard before that existential fretting is a sign of your ego resisting change. It is easier, after all, to embrace vague ennui than to face the painful recognition of one’s own lack of agency. Sometimes that embracing looks like fretting over time, or writing vague philosophical bullshit to avoid taking action…. Sometimes it comes down to not having well-defined goals, or metrics for success towards those goals. I should know better, as someone who for a living designs player goals and attempts to provide feedback towards those goals.

So with that in mind, my intentions are:

  • To come up with some basic designs for a pc game
  • To start sketching out concepts – while I am no professional artist, I would like the option of lateral thought in times where I am stuck on the game logic
  • To begin scaffolding the designs in code, picking core concepts and developing them in isolated test-beds
  • Once these pre-production steps are done, to plan out what a final version might look like
  • At some point during this, think of marketing, pulling in other resources…

I worry that this is ambitious for one person to do with scant free time divided between caring for a baby and maintaining a house and a marriage. I am also very unsure how much freedom I even have to pursue this in a way that won’t violate some clause of my employment. Some day I still hope to pursue this full time, but the pragmatist (and responsible father) in me won’t consign my family to the uncertainty of unemployment on a whim, so in the meantime I bide my time and wait for the opportunity to show itself. All I need now is to randomly stumble upon a bag of money…the great american dream of undeserved riches.

Fatigue

There are a lot of topics I find myself wanting to talk about, but am too fatigued lately to really muster up the effort to say much of anything on here. There are a couple reasons for this, probably the largest of which is having a 10 month old who wakes up anywhere between 5:30 to 7:30 AM every morning. So sleep is a thing of the past, but such is life as a parent, as I hear it told.

Baby-induced sleep deprivation aside, however, I do feel a bit caught in a rut lately. Work on Loadout continues at its usual breakneck pace, where we are doing our best to salvage the game into something money-earning, but are given incredibly short timelines and a meager team size. Even aside from the overtime and late nights working from home, this ordeal has been exhausting simply because we constantly are required to make design compromises/sacrifices to get it done, but after enough sacrifices it starts to feel like what we’ll end up with won’t be what we need to make the game work. It’s a shame, too, because done right I really have strong hopes for what the last 3 months effort has started. I just hope we get the chance to more fully realize that promise.

Perhaps I’m being too hard on myself, given the constraints on my time imposed by working overtime and caring for a baby, but another aspect of that feeling of exhaustion is the sense that I’m stagnating in terms of self-betterment. My gym trips have dwindled to almost non-existent, my personal projects have sat in limbo for months now, and I’ve picked up no new skills or hobbies in what feels like a very long time. Hell, even my leisure activities have languished, and I’ve barely had the chance to play games anymore.

I suppose all of this is just standard “getting older, having kids” complaints, and maybe some day soon I’ll push through these doldrums. There are still things to look forward to, after all, the anticipation of which can itself be a salve against stagnation.

Moved the Site

After a lengthy hiatus, and a habitual tendency to not update the site I was paying hosting fees for, I decided to keep the domain and move over to a free wordpress blog. This will be where I collect thoughts about games, industry, politics, life. Whatever strikes my fancy, I suppose.

I’ve gotten out of the habit over the years of writing regularly, except in my capacity as a designer at Edge. I’m hoping to reverse that trend and collect my thoughts on a variety of subjects, both for the practice and also to help reduce my tendency to drive my wife crazy by talking about the same things over and over again with a zeal which she might not always share.

I will probably shy away from the more existential and meandering posts from my previous blogs, in part because I feel like I’ve found a worldview that works out alright for me and I’m not quite so desperate to find my way, and also because I would like to focus my efforts more on issues relevant to my life and my work. Long term, I would like to point this site out (or have those in search of me find it) as a repository on my design processes, thoughts on games, and general design “portfolio”, inasmuch as such a thing even makes sense. Wishful thinking isn’t terribly impressive, though, so the only way to flesh this out is to begin somewhere. So here we are… baby steps.