Getting the Ball Rolling (again)

The times have been…rough, for a lot of people, I think. For a lot of reasons. Not just electoral politics, not just COVID – there is a rising fever that will not break. And I don’t think the worst is behind us. I think of a character I wrote when I was much younger, who personified the deep feeling of worry and unease I had towards the world, even when I was just entering adulthood…

A: Just taking some time to relax out here and enjoy the sunset. I don’t usually get a view like this. Better enjoy it while I can.

B: :Er…while you can?
A: You see those clouds? We’ll have a thick storm over our heads pretty soon. And it looks like it’s going to be a pretty bad one.

Alton and Darryl, talking about ~nothing in particular~

Which is the point of this – making things, writing things, is one way I have of processing what’s going on around me in a healthy way, and expressing those feelings. And as just exemplifed, it serves as a personal history too.

These quiet and chaotic years have been very challenging, and gamedev has been my biggest lifeline and support. While I haven’t released as much and have been very silent, I’ve gotten so much out of exploring different ideas without necessarily thinking all the way through to release. And very significantly, I have also built up repositories of code/assets that I can use for all sorts of things!

However, all of those projects and ideas remain untested. And behind them are even larger, more ambitious ideas – but I will never get to those if I don’t finish the work that lays in front of me. I still have a lot to learn on the execution of a concept which is gained from the direct experience of releasing things. If I want to keep making better and better things, I have to finish what I start.

…Of course none of that is new thinking in terms of gamedev, it’s very common wisdom. But a reminder never hurts. Anyway, let’s run through the backlog real quick!


Familiar

This was a game that I announced on here way back in 2018…boy, what happened?

This was going to be my next Big Narrative game, eclipsing WAIDAS dramatically in production and scope, and putting into practice everything I had learned. This put too much pressure on myself, and so I became really demoralized when I wasn’t making the progress I felt I needed to. In hindsight, of course it would make more sense to make cuts to the project and release what I could – but I lacked that clarity of thought at the time.

I froze the project for a long time, but there is still a story in there that I want to tell – so I have reworked a lot of its ideas and split them up into smaller pieces, and can happily say that I’m working on a version of Familiar that has a very realistic path to release.

As for what it actually is – it’s just a short-ish narrative game where you walk around and navigate some text trees. It leans much more into psychological horror and mystery than any of my previous work. The hope is to release smaller episodic games that add up into a larger story with lots of fun twists and turns.

Your Guide to the Afterlife

get in

Formerly called Ghost Planet. This was the project I started when I dropped off of Familiar, with the initial intention of just making something small and fast – and of course, it is now a far larger and more ambitious project than Familiar! It has become this huge open-world adventure where you navigate all sorts of different areas in search of objects of power, and try to piece together the truth of a world at a radical turning point.

Worth noting that while I wrote Familiar’s engine in C# with Monogame, YGttA is the first major project I made purely with Javascript, using CreateJS to handle the basic image rendering. I had done some small gamedev in Javascript and enjoyed it, which was why I defaulted back to it when Familiar was going through a rough patch. But as my code expanded to meet YGttA’s needs, it lent itself to writing even more projects in JS.

This project is also sort of paused as I shift my focus back to a smaller version of Familiar – but I have similar goals with YGttA, in that I would like to find a way to make the project more modular, so I can release parts of it sooner and more incrementally.

Biscotti

Which brings us to what I call Biscotti, a weird name for a weird project. This isn’t a game as much as it is a way for me to tie different games together – it’s a self-indulgent exercise in cleaning house and refactoring my code so it all works cleanly. It’s really just a collection of different small games that can launch out of the same application. Most of these games would be small game jam submissions or side-projects.

It would be nice to actually release this as a sort of anthology, but I see it more as a springboard for future Javascript projects – basically, building out an engine that is cleaner and can be used as a solid foundation for other games (and I can retrofit larger projects like YGttA with its code for better performance).

Yolk of the Wish Machine (working title)

Those other ideas start with this – an action/adventure/platformer with a style in the vein of early Kirby/Sonic/Bomberman games, an “all-ages” story that still has teeth, and modern design ideas taken from all sorts of platformers throughout the decades, both 2D and 3D – from what I would call spectacle platformers like Assassin’s Creed or Spiderman, to sandbox platformers like Tony Hawk. I’m aware that the platforming genre is incredibly saturated, so if I’m going to make yet another one it better be worth peoples’ time!

Currently not in active development, but steps have been taken to build out some of its systems. I released an action-platformer as freeware (Jidan Havoc) which is meant to be a starting point for this.

about-face-plus (working title)

I originally wanted to re-release about-face in Javascript just to give myself something to do, and as the first major inclusion in the Biscotti collection – but then of course I had all sorts of things I wanted to add in, which have become their own separate idea that would be fun to work on. about-face being very minimalist means I get to focus much more on design and coding. I would still like to re-release the original about-face, but I have some ideas for a spiritual successor that I think are promising and substantive.

Octoscopy

I made a game jam submission many years ago (Invisible Maniac) that I got some pretty positive feedback on, and I had wanted to expand it and make it a full game – this was actually one of the first things I started using Javascript for (the original submission was made with Haxe/OpenFL). It’s a game where your character is invisible and you have to navigate around hazards using only environmental visual/audio clues to figure out where you are. It’s a simple and effective idea, surprisingly fun to play, and just incredibly fertile for all sorts of mechanics.

The title is a portmanteau of octopus and autoscopy, since you play as a camouflaged octopus from a 3rd person perspective. I think it’s neat.


Well…that’s a big list of projects!

Too big, some might say. Unrealistic, maybe? Indecisive? No, couldn’t be.

Currently, I’m only actively working on two: Familiar and Biscotti. I like having two projects going at once for the sake of variety – I give myself the chance to work in two different languages and code-bases, which keeps me a bit sharper, adds more variety to my work, and stops me from getting too tunnel-visioned on the particulars of one project.

In the defense of having a lot of inactive projects, I see it as an additional motivator to finish things – knowing that I have lots of other games I want to make helps prevent me from getting too attached to any one idea. So long as I’m just attached enough to see it through!

On a more granular level, I’m working on putting together a vertical slice for Familiar – it’s all written and designed and the engine is there, but it has to be produced (art, scripting, action!). This weekend I want to finish making rough-drafts of all the art assets I will need – I’m reusing a lot of art from previous drafts, but there’s a bunch of new stuff that I still need. Once I have those, I can work on the scripting logic for all the cutscenes and cutscene-adjacent elements to get it playable.

Hello World (again)

Why hello there, person currently reading my blog!

It’s been so long since my last update, and since I was updating this regularly, that I feel like I need to make a second introduction, and a renewal of the purpose of this blog.

If you’re reading this, you’re probably someone who searched me on a search-engine, probably after playing one of my games? Or you’re a bot. If you played my games and liked them enough to search me up, there’s a good chance you’re a bit younger than me. Because my game and its target demo remains the same even as I age. When I started this thing, personal dev-blogs were a much bigger deal – social media wasn’t what it is now, sites like Twitter hadn’t completely taken over public discourse (and the idea of The Discourse didn’t exist). Big and small indie game devs had their own dev-blogs where they would regularly provide updates on their projects as well as their thoughts on games and maybe even some life stuff. And then people had these things called “RSS Feeds” that would compile these blog posts and give you all the updates, and that was how you experienced the internet – it was like an electronic newspaper. Now we have things like Twitter and Twitch that are super centralized platforms where you can get a much more direct connection with your creators, and you can see them interact in a much larger forum. Or semi-public things like Discord and Patreon that allow for a more dialogue-based format.

Except, I really hate how centralized and connected a lot of that stuff is. I will link a talk from someone more knowledgeable and articulate than me, if you want to do some extra reading (and I do encourage you to, time willing) – which goes much, much deeper and more pointedly into the history of flash games and web tech – which I bring up mainly to avoid falsely attributing any of the following ideas as coming purely from myself: that the internet was intentionally consolidated into different monopolies that are indifferent or hostile to art, creativity, even our mental or physical health. While all the traffic and interest behind personal blogs is basically gone and has moved on, none of the reasons that I might create or maintain one are.

All of this is to say that even if I am writing only to myself, I believe that having a written history of what I’m doing where I can go deeper into my ideas, my thoughts and feelings, and even what is happening around me in the world, has value. I will keep my old, old posts, even though I might cringe at them, even if they are written by a younger person that does not reflect who I am today, because I believe that this history, even in its most granular and personal aspects, has value. I hope that anyone who is so motivated to find and go through this blog is able to glean something authentic about a person endeavoring to make impactful games for an ever wider audience – not just a curated public image that I would use to try and market myself and build a personal ~brand~.

Fuck that.

I believe that these things have value because they were and remain the things that I have read that I feel are actually instructive and substantive; when I am able to see where people have come from, what drove them to make art and what allowed them to, the challenges they have faced and how they did or did not overcome them. What little information I have to share needn’t be handed over to the destructive impulses of tech corporations where it can be spewed into the world like wood-chipper dust to maximize engagement and ad revenue. Here it remains whole, and coherent, and you can just go through the entire thing in an afternoon.


Woops, it looks like I went on a bit of a tangent. I’m not really editing this post, I’m just gonna hit send and go out to do some grocery shopping.

With all of that out of the way – hello, one last time. My name is Patrick McGrath and I want to make games that are, like, really good at articulating things that words cannot, and making you feel stuff. My main interests include game design, programming, history (the older the better!), visual art, language, and the general pursuit of telling stories. I will probably only post about game stuff, but who knows.

Taking a Breather

Hi internet!  It’s been a while – let’s catch up again.

Let’s see.  A while ago I launched my first commercial game on Steam.  The game was in development for far longer than originally intended, and its release was much overdue.

Unfortunately, though I say I “launched” it, I don’t know if that’s really the fitting word, as most of the traffic the game received (maybe 90%?) is purely due to its place on the Steam storefront, meaning I did not succeed at publicizing the game or getting it the exposure I think it deserves.  And overall, it has garnered a small fraction of the views that its much smaller and cruder prequel had (not talking about sales here, just hits), which is pretty discouraging.  After all, the main reason I decided to work on this sequel was because of the apparent interest that was shown in the original.

But now the game is out there, and I can say that I finished and shipped a product with a pretty substantial play-length, considering the game consists 100% of scripted content.  There has been a lot of positive response from the people who have played it, and some really glowing user reviews that have just been a joy to read through.

I haven’t been as productive after release as I thought I would be.  I had all sorts of ideas for projects that were crowding my head, which I thought I would just speed through after being caught up on such a large undertaking.  Nope, turns out I was completely burned out from development and all of the stress leading up to release.  I have been working on several projects and have participated in local game jams, but so far haven’t been as possessed to publish something else with my name on it as I had been with At Sea.

get it?  possessed?

Partially I feel like I’ve proven to myself that I can see a project through to its end, so I don’t feel the pressure or need to finish every little idea that I come up with if it turns out that it isn’t really as interesting as it seemed at first.  Which is usually the case.  The fickle developer who can’t complete anything is a cliche, but in truth I think it’s important to also know when to leave a project.  Yes, you can learn a lot by completing a project, and it is an important skill to be able to “finish” something.

“Art is never finished, only abandoned” – some dude

There are definitely diminishing returns however.  The skill of “finishing” is only one of many, many skills that are required in game development, and it may not even be the most important one in this era of early access and open betas and development live-streaming and twitter GIFs and oh man, things change really fast don’t they?

But one thing I have definitely noticed is that my productivity and general ability to make stuff is so much greater than before I had originally set out to ship a premium game.

When working on other things, it kinda feels like the training weights have come off.  I’ve just spent some time catching my breath.

Western Peace

Since graduating, it’s been my desire to travel abroad and teach English.  This has been something in the works for a while, as I’ve approached it with a large, perhaps excessive amount, of caution.

Which is why I’m very excited to say that just over the past month I accepted a job teaching English as a second language in the beautiful city of Xi’an, China.  Obviously, the work needed for this came before my work on my game project, which was a large part of why I had trouble holding to my development schedule for last month.  If that means I don’t feel comfortable submitting to Indiecade, I will consider it a small blip on the screen compared to this news!  I’ll be leaving the states at the end of this summer, and it can’t come fast enough.

xian-chinaI’ve known since before graduating that I wanted to travel outside the US in some capacity; I had studied abroad in China for a semester, and found the experience eye-opening and fulfilling.  And although I would love the idea of going to other foreign countries besides China, I’m just too tempted to continue studying the Chinese language (老实说,我也想吃中国饭,哈哈)!   The decision to teach ESL in conjunction was a practical one as much as a personal one.  Most ESL jobs allow the kind of flexibility that would allow me to actually see China, and there are many more openings across all of China, allowing me more freedom in the location I work.

That the job is located in Xi’an is no accident — it is in the dead center of China, and loaded with ancient history for which I am an unapologetic romantic.

xi_an_china_photo

Teaching ESL also dovetails with my interests in education.  Although I don’t often mention it in this blog, I’m extremely interested in what games can do for education, and I believe that the art of game design and the art of teaching are very similar at their core.  Both require one to design a system with the intent of conveying information to an audience by guiding them through it.  The game designer uses code to convey emotions and information to the player, while the teacher designs lesson plans and exercises to convey information and patterns of thought to the student.  In both games and education, interactivity is vital — the game designer must use mechanics other than walls of text or cutscenes, and the teacher must have exercises other than mindless drills.  There are still other, more specific similarities, but I’d rather not ramble on about this too long!  Suffice it to say that I feel there is a connection between gaining experience as a teacher and improving as a game designer.

And I would also love to continue my independent development while in Xi’an.  I obviously will be more restricted with development time than I am now, but I will still have more than enough time and resources to do work on the side!

More WAID2 art and news to come shortly!

Oh by the way I’m in another country now

So at the end of my last post I mentioned that I had to put my li’l prototype on hold to “handle some real-life stuff”.  Well, by that I meant travel to Shanghai to attend GDC China.

Some “real-life stuff”

Since I haven’t talked even a little about the things going on in my life, aside from the results of me slamming on the keyboard over and over, this may seem a bit unusual.

In reality, it’s been my hope for some time to get a job in China, outside of the obvious path of teaching English; I’ve received very, very mixed feedback on how feasible this goal is (ranging from “it should be extremely easy”, to “are you out of your mind”), so I’ve decided to just, well, dive in, and see for myself what happens.

Over the next several days, things are gonna be real hectic and crazy.  Suffice it to say I won’t be blogging then.  Even past GDC, though, I won’t really have time to work on my side-stuff for a while, as I’ll be in 100% networking/travel mode.  So, I thought, instead of being just another boring ol’ dev-blog, I’d fill up the time by actually having opinions on things.  And then writing about them.

I know, I know.  It’s a big step.  But I think I’m ready.

A Hopefully Intriguing Prototype

First off real quick, after work with a graphic designer I know, I have a new logo which you’ll see emblazoned at the top of this blog.  I’m quite happy with the result!  With this new logo in hand, I redesigned my home website once again.  The results, before and after:

The result is a brighter design with way more space, and a quite sexy logo if I do say so myself!  I also used a bit of JQuery in this version of the site, which was nice to dabble in.

The main thing I’d like to talk about in this post, though, is that I put up a game prototype on my website.  I’ve been working on it for about a month and a half alongside preparing Why Am I Dead for its release into the wild.

You can find it here!

Of course the big issue with it is that there’s no tutorial, so it may take some patience to actually understand what’s going on.  I wrote at length about the rules and how they work in that page, so I’ll not do the same thing here.  Instead, I’ll talk more about the technical side of things, and why this prototype took over a month to make.  Sure, it doesn’t have immediate visual appeal, but that’s not what prototypes are about.  And frankly, I did some stuff that I’m quite satisfied with.

1: Menus in menus in menus in menus

The game is turn-based, and, as with most turn-based games, it centers around picking from a range of different options which are on a menu.  Some actions may have further options related to those options, which require some other menu.  Think about typical RPGs.  You can attack, defend, cast a spell, and use an item.  But if you select Spell, what spell do you pick?  And then, who or what is the target of that spell?

In my case, the details get way, way more complicated.  For instance, the actions you can choose from are often restrained by temporary effects.  Get hit in the legs, and now you can’t pick Move or Dash.  Even more, you can select two actions per turn and sometimes these effects will go away in between those two actions, thus freeing up new actions mid-turn.  So, the result is that there will be menus in menus in menus, appearing and disappearing, switching around and changing all the time.

One of my main priorities was to make this as easy and intuitive to program as possible, so that when game mechanics inevitably get changed as the game is refined, actually implementing those changes is painless and straightforward.  To that end, I think I’ve succeeded; just about any change in the player menu, no matter how big or small, can be accomplished in several lines of code on the client-side.

Good thing none of this is confusing!

2: Customization!

After I got the basic game mechanics in, I decided to implement something I’d only been toying with beforehand; full equipment customization!  That is to say, every piece of equipment or weaponry would be represented on screen in battle, and move alongside your character when he attacks and defends, and so on.

The thing that made this a bit more ambitious for me is that I don’t use Flash Professional, or really any tools that might make this easier; I am working in FlashDevelop 100% of the time.  Still, it was pretty straight-forward for the most part, if more time-consuming.  One of the most vexing issues, to be honest, was making sure that the equipment had the correct rotation and positioning when I flipped the bitmap for the opponent.

And again, I’m pretty satisfied with the results.  The work behind making new equipment, as well as swapping between pieces of equipment, are trivial.  And though the prototype doesn’t have flashy animations, the poses behind each action are convincing enough to make this effect, at least to me, visually impressive.

Yes, it’s kinda choppy. Yes, vectors would rotate better. But bitmaps have more charm!

So that’s about it.  I’d love any feedback on my li’l prototype, since it’s still in an early and flexible stage.  I’ll actually be taking a break on this project in order to handle some real-life stuff and other things I’ve been juggling around, but I definitely like the direction this is going in, and fully plan to return to it in the future.  With a tutorial, an equipment screen and some kind of metagame, I think this could be a really deep and fun game.

Website work, and a new project

For the past two weeks I’ve been doing a mix of website work and programming.  My site at peltastdesign.com was quite rough looking, so it was about time that I put more effort into it.  This involved more seriously learning HTML/CSS than just the previous dabbling, which turned out to be extremely straight-forward.  The result is a cleaner and snazzier, if still minimalist, layout.  If you check the site out and have some feedback on it, feel free to shoot me a message.

As is though, the website feels a bit bare under the “Projects” section.  That’s because I’ve spent my time working on only a few very time-consuming projects; Mandate was/is a hugely ambitious project, and I spent more time polishing Why Am I Dead than I did programming it.  And I can see the strategy game that I’d mentioned beforehand becoming just such a huge, time-consuming project, so I’m putting it on the back-burner.  I may still work on it here and there for fun, but it won’t be the focus of my attention.

Instead, I’d like to shift tracks and work on smaller projects which take less time, are inevitably less polished, but still demonstrate a game concept successfully.  Not only will this make it easier to keep momentum, but it will be far better practice for me; while there is something to be said for really polishing and smoothing out a game, it doesn’t teach me as much about the artful design of game mechanics.  When an artist is starting out learning the human anatomy, do they spend their time inking and coloring their studies, or do they just sketch it out and then move on?

So, since last Wednesday I’ve been working on a smaller idea.  It’s a bit of a blend between lots of different things, but could be summed up as a turn-based action game, I guess?

Terrible placeholder graphics, ho!

As you can see, it centers around two people duking (or stabbing) it out by selecting different actions during their turn.  It draws influences from games that in my opinion make turn-based combat work, such as the Persona series, a Flash game called Sands of the Coliseum, and Pokemon.  My brainstorming also involved some very non-intuitive sources, such as Dark Souls, the fighting game genre in general, and Poker.  I find that this format (which is usually seen in RPGs) is satisfying because it’s good at abstracting action and making it purely an exercise of decision-making; but usually it ends up hiding behind number-crunching rather than making actually interesting decisions.  So my goal was to make a game somewhat reminiscent of back/forth RPGs, but with underlying mechanics more akin to fighting games, which can stand on their own.

The core mechanic is something of a rock-paper-scissors; attacking beats dashing, parrying beats attacking, and dashing beats parrying.  Unlike a lot of turn-based games, the results happen simultaneously, so there’s no situations where the first person to move wins.  You also submit two actions per ‘turn’, so you have to guess what your opponent’s two actions will be.  For instance if I feel pretty confident that my opponent is going to attack me the very next turn, I would submit a “Parry” action to counter his attack, and then submit an “Attack” action to take advantage of my parry.  But there’s also the possibility that he waits for his first action and attacks on the second!

You’ll notice the graphics of a body at the top left of my prototype screen; there are five different parts of the body that are separate targets: the head, torso, left arm, right arm, and legs.  When you take damage, rather than simply losing “health”, one of these parts of your body is damaged.  And if one part of your body gets damaged too much, you lose.  Likewise with the opponent.  And depending on which part of your body is damaged, certain actions will be restricted.  For instance, take too much damage to the legs and you can’t move.

You also have to keep track of stamina, which automatically regenerates and is used for physically taxing actions.  You can put down as much stamina as you want on an attack, for instance, and in the case that you and the opponent attack similar targets, the attack with the higher stamina investment wins out.

There are more details about the exact rules of the game, but you get the idea.  I expect some of the mechanics to change as I finish the prototype and see which ideas work and which don’t.

Brief Update

Jeez, I’ve been meaning to update the blog for a while but I’ve been distracted recently.  These distractions mainly fall into three categories:

1 – Driving to see family / Seeing family

2 – Job searching / applications

3 – Diablo 3

So unfortunately I haven’t been able to work much on my poor pet project.  But I’d say at least two of those three diversions are more important than the pet project itself, so hopefully my pet project will forgive me.  I would like to say that I’m now about to really buckle down, put the cliche to the cliche, and finish this thing soon, but I’m actually going to be spending the next 3-4 days attending the 9th annual Games for Changes Festival in New York!

Which I am REALLY excited about.  I had my eye on the last one but wasn’t able to attend due to time/place considerations.  A lot of the speakers that are scheduled have really influenced my outlook on game development.  I’m one of those people that think games will, in the future, pervade society in a much more fundamental way than it does now…and most importantly that this is a good thing.  Anyway, it’s a star-studded festival and I can’t believe that the timing works out so that I can attend!

Getting the Ball Rolling

Things have been pretty hectic for a while but now that they’ve finally started to settle down, I’ll be able to really get stuff going here.  Some disparate things that I’ve been up to which will almost definitely pop up in the future:

– I’ve nailed down the concept/outline of my first Flash project, which is meant to be a small and unambitious game just to get my feet wet in Flex production.  As a result my timeline is pretty short as well; I hope to get all the programming and writing finished by June 1.

– I’d really like to start getting into the world of open-source programming, and so my first step in that is schooling myself in version control.  Basically, I’m reading Pro Git.

– I’ve been polishing and fine tuning a previous project of mine, called ‘Mandate’, to the point where I feel comfortable putting it online for all to see and try out.  No particular timeline for this outside of ‘very soon’.

Hello World

Why hello there, person currently reading my blog!  This, if you had not yet noticed, is the first post out of hopefully many others to come.

Let’s talk about what these hypothetical future posts will contain for a second.  My main interests include programming, game design, the study of history, and to a much much more limited extent, art.  So, you can expect a lot of posts to be about what I’m currently learning and trying out in programming.  You can also expect some to be about what game pet project I’m working on, at which times this will mirror an indie dev blog.  Some posts may just be me remarking on history that I’m reading, or wondering aloud about the study of history in a meta sense.  And some may be me posting illustrations and trying to make progress in that area; eventually I’d like to migrate to digital art, but at the moment I’m content with sketching basic anatomy.  Baby steps, and all that.  And most importantly, somewhere in all of this I might actually do or say interesting things.

So, if any of that sounds up your alley, stick around!

I’m not yet sure what the schedule will be as far as updates go; for now I’m just going to post everything whenever I want and we’ll see what sticks.  Alright, let’s do this thing.