Sweating the Small Stuff #2

Today we finish our look into the projects that didn’t quite make it to the finish line. Given that some of them are pretty old and didn’t take especially long to finish, you might wonder what else I’ve been doing.

For one…life.  It’s pretty intense, and this past year most of all.  But I’ve also done some work patching/updating Why Am I Dead At Sea with small features and fixes, and will continue to as much as I am able.  Lastly, among all the craziness I’ve started prototyping an idea that I’m really interested in. I don’t say that lightly, as the last idea I was really “interested” in turned into Why Am I Dead…and we all know how that ended up. So, hopefully, I’ll have some progress to show in the near future, and this can become a real dev blog once again!


#3: Invisible Maniac

Winter 2015 – 24 hours of development

This was another game jam submission for the Philly Game Forge, and this time we had 24 hours to complete a game from scratch! I’d done a couple of Ludum Dares in the past, but this would be my shortest jam ever, so I was pretty excited to enter it. It was 24 hours onsite, so we were able to stay overnight at the Forge and work through those magical hours where your body goes through the seven stages of grief as it slowly realizes that you aren’t going to give it any rest.

I came up with a little 2D stealth game where enemies can’t see you, and can only catch you via direct contact. But there’s a catch – you can’t see yourself either! Using only contextual audio/visual cues, you have to navigate through the game’s levels and past enemies.

IM1

As the levels become more expansive, losing track of where you are becomes more of a threat. To assist the player, there are objects that react to when the player walks over them, and sounds for when you hit a wall. There is also the ever-present sound of your foot-steps, which change based on the surface you’re walking over.

IM2
Thick grass will help you keep track of your location, and you don’t even have to worry about running into wild Pokemon!
IM3.gif
It gets pretty hectic later on, but using water and rock paths to “hear” your location will help!

Truth be told as much fun as I had working on this game, by the time 24 hours was up, I was quite sick of the thing, and had grown bored of the concept. I even considered not submitting it. But it’s good that I did, because people seemed to really like it! In fact they liked it so much they elected it the winner of the jam and gave me a nice wooden plaque for the occasion.

Subway
You can also pick up hoagies and use them to murder people, you’re better off not knowing why.

Despite my misgivings at the eleventh hour, I got a huge charge out of creating this little game. You can play it in-browser or download the whole thing on my site, but note that the download will let you play at a better resolution.


#4: about-face

January 2016: ??? weeks of development

This was a little platformer that I had the idea for way, waaaaay back, over a year ago. I did a tiny amount of coding for it eons ago, which I ultimately re-purposed for the other platformer I talked about in the last post, but finally picked it back up in Jan 2016. Given the haphazard way I worked on it, I really couldn’t say how long it all took me.

It’s a minimalist retro platformer – really genre-breaking, I know. I wanted to make something small and neat, so I did just that. It’s a platformer where every time you jump, the world inverts, and previous…oh, well, a GIF will explain it faster than I can.

aboutfaceintro

So, the world switches between white/black every time you jump. Platforms, spikes, and obstacles will phase in/out based on which color you’re in.

The idea was pretty simple – what is the core mechanic of platformers? Jumping. On platforms. What if I made it so that every mechanic was tied to jumping – every mechanic was tied to your decision on when and how to jump. The result was a game with very few mechanics but many interesting scenarios to design. This was probably the most fun I’ve had designing game environments by far!

doublejump.gif
Twice the jumps = twice the complexity in design!
Sentinels
Chasing enemies were added to turn the game from a slow puzzle-platformer to a faster paced action-platformer.
almostThere
It gets really hard.

I’m pretty happy with this thing, and at this point it’s basically done. The only thing it lacks is an ending (as of now you’ll just run into an incomplete level that can’t be beaten), but once I pop that in there I’d love to upload it to any channels I can. Until then, you may not be surprised to find out that you can play the current version on my website!


Well, that concludes this mini-series. At some point I’d like to redesign my website and include a section for these kinds of things – it doesn’t feel right putting them up side-by-side with something as large as Why Am I Dead At Sea. But I would like for them to have a space of their own.

Sweating the Small Stuff #1

Hello again internet.  Quick life update: I’m in the process of moving (again) and have gotten a full-time position as a software developer, so I’m back to the develop-on-the-side life like I was before.  Which I’ve been enjoying so far.  That whole full-time indie thing was more successful at burning me out than anything else.

I think I could’ve written 5 long-winded blog posts around that, but I like condensing it down into one sentence better.

It occurs to me that I’ve worked on a bunch of stuff since At Sea that I haven’t published or really talked about (at all).  This is either because they were jam submissions, or because I simply didn’t complete them.  In gamedev, we place a premium on full, finished games, and for good reason – it’s kinda important to be able to finish completed games (and really hard!), so it’s a skill everyone wants to cultivate.

However, the small experiments, the unfinished prototypes…these are valuable too. So I thought I’d take some time to talk about the smaller stuff that hasn’t been shown to the masses.


#1: Bzzz Out

Spring 2015 : 1 week of development

This was a small project that I worked on almost immediately after releasing Why Am I Dead At Sea – about a week after its release, I believe.  It was for a game jam that I was (lovingly) pressured into participating.  It was part of the Philly Game Forge‘s Dev Night – basically, a game-development-oriented shared space that runs lots of jams, and has a weekly meet up.

This jam in particular was called the “Juice Jam”, and the idea was simple and interesting – give everyone a template for Breakout in Unity, and make them create the “juiciest” version of it that they can.  If you’re unfamiliar with the concept of “juice” in a gamedev context, I would highly encourage you to watch the Juice it or Lose it talk.

Bzzzout

I teamed up with local artist Carley for the jam, and we had a week to create something with this Breakout template.  It was an interesting challenge, since I had never done anything in Unity prior to this.  From a development standpoint, I got to tinker with a lot of things I hadn’t previously used, such as tweening and particle effects, and I was able to laser-focus on a really interesting design challenge – juice it!

Although I could critique my work on this jam submission for several pages, ultimately I’m happy with what we came up with (especially the art!) and had a ton of fun working on it.  You can see or play our jam submission on either Carley’s site or my site.


#2: Dandan Man’s Super Dream Place

Autumn 2015 : 3-4 weeks of development

It’s a bit hard to evaluate exactly how much time I put into this project, as it was scattered over a longer period of time, but I was most productive, and did most of the work, in a period of about a week.

InDevCapture2

This game was meant to be an experiment in fourth wall breaking.  The idea goes like this: there’s a super cute and colorful platformer reminiscent of SNES games (especially Kirby) – but it’s not quite finished.  The writing has typos, there are little bugs in the game…and even one of the main levels is missing.  Then you get to the end and see a “warp zone” feature which can take you to that missing level you saw earlier but couldn’t access – huh, I wonder what’ll happen?

Well, now you’ve gone and done it…the game takes a darker turn and you have to navigate through an increasingly broken/glitchy/horror game to get to the bottom of the implied narrative.

Or that’s the idea anyway.  I mostly implemented the actual platformer, felt that nice sense of accomplishment, and called it a day.  The game as-is does already exhibit a bunch of different action/platforming mechanics with lots of different levels: you have a stomping attack that can be used to steal certain enemy’s abilities, and use those to get through various predicaments (like I said, reminiscent of Kirby).

InDev Cap Dash Level.gif

Although I didn’t finish the game, I found the work to be really fun.  This was the first platformer I worked on, and the most level-design-intensive project for me.  And while the art style is still not really very unique to me (it still wears its influences on its sleeve), doing the pixel art was fun and I like how it turned out.

InDev Cap Projectile

So why didn’t I finish it?  Well, to be honest, I still find the idea fun – but “fun” doesn’t cut it for me.  There was a particular feeling I was trying to express with the game when I originally came up with it, but without getting into specifics…I don’t really have that feeling anymore.  Maybe if that feeling returns I’ll happily return to this and finish it in one swoop!

You can try out the prototype here!

I know that in order to finish projects, you can’t depend on silly things like feelings – trust me, I very often didn’t “feel” Why Am I Dead At Sea when I was working on it.  But as this was a side-project that I just wanted to do for fun, I think it’s okay to recognize that my motivations for starting it are no longer present and move on.

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.

WAID Progress, and Mandate is Online!

Okay, so first, I’ve missed the rather arbitrary deadline I set for myself on Why Am I Dead.  The reason could be summed up pretty well in this XKCD comic:

XKCD's The General Problem
I spend so much time saving time

Earlier, I just wanted to have something — anything — done in Actionscript.  For that, a week was plenty of time.  But now that I’ve gotten something (anything) done in Actionscript, the programmer in me wants to make everything general, elegant, and reusable; and that takes more time.  For instance, the non-procedural content in Why Am I Dead is 90% dialogue trees; so I thought why not program things so I can simply write all of the dialogue into text files and parse them into Actionscript objects to handle my dialogues?  If I get it right that would mean I could create, for the most part, an entirely different game without touching the code.  I could hand it off to a non-programmer and have them write their own stuff.

Alright, so it might be a bit overzealous of me to try and use data-driven programming on something this abstract, but I want to try it anyway.  A 100% modeling of the data is impossible; I won’t be able to account for everything.  But actually, I’m almost done as it is.  And that’s a major step in completing this game.

But I’ve been doing other things as well.  Part of the delay with WAID is that I’ve also been trying to piece my website together, and tie up a few loose ends on a past project.  That past project is “Mandate”, a senior integrative project that I finished last month.

A screenshot of my last project, Mandate
The seven major factions of the Warring States Period

To sum it up really quickly, Mandate is a historical simulation that takes place in ancient China.  It’s a multi-agent system, meaning that there are lots of AI-driven characters running around independent of any central rules, making decisions that impact the simulation’s strategy.  In addition, it makes use of fuzzy logic to try and emulate the internal politics of the factions at that time.

You can find it available to download here.  Be warned, though, this is not an exercise in commercial game design or UI design; it is first and foremost an academic project.  So its visuals are quite rough and its interface may not be clear to those who are not already familiar with it.

And that’s what I’ve been up to recently!  Now that I’ve tied all of that stuff up, I can concentrate a bit more on Flash.