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.

Fail Fast…And I Forget The Rest

Just a quick post about my Ludum Dare 25 experience.  The theme this round was “You are the villain”, which pleasantly surprised me, since I was almost positive people would vote in “End of the World”, given the timing.

I really started to fall in love with my interpretation of the theme.
I really started to fall in love with my interpretation of the theme.

I can say, at least, that I came up with a solid game idea and implemented it in the space of 48 hours.  Unfortunately, as with last time, I don’t think that I can say I created a fun game in the space of 48 hours.  In this case, I created a text-based game that was too open-ended and didn’t have a strong enough text-parser to accept nearly enough player input.  The result was a game that basically asked you to guess a small set of key-phrases to proceed, and threw back most everything else with a standard “…I don’t understand.”

You can play the game here, if you at least want to know what I’m talking about below.

This was partially the result of an over-ambitious subversion of typical text-adventure design, as well as a failure to get any play-testing in before the deadline.  The typical text-based game involves issuing commands to the player involving physical objects.  The commands that are acceptable nearly always have to do with those objects that the designer introduces.  For instance, if the text game puts you in a room with a door, the designer may reasonably conclude that the player will try to interact with the door, in which case there are a small set of commands that can be anticipated.

In my game, you do not issue commands; you simply make statements, and with very little context.  The breadth of different inputs that can (and did) come to the players’ minds obviously dwarfed what I could predict by my lonesome, and as a result, the game was unfortunately more frustrating than fun.

Some of the very few commands that my game actually DID react to.
Some of the very few commands that my game actually DID react to.

The one nice thing about all of this, though, and the reason behind this post’s title, is that I got to botch this idea in only 48 hours, when I could easily imagine myself taking weeks to botch it.  I would have spent time creating all sorts of different levels for the game and different endings to the levels, and way more graphics, but would have still completely overestimated my ability to create a text-parser flexible and broad enough to be fun to interact with.

If I continue working on this, I’ll be able to go at it from a totally different and way more productive perspective, and I think the result will be far better.

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.

A post in which there are no images

In the future, I should really try to make smaller but more frequent posts.  Instead, it seems like I wait until enough has happened that I end up making a post that’s really way too long and a pain to read through!  I’ll try to speed through this one.  Also, no images.  I’m not very good at this blogging thing…

So, today marks the one month mile-stone for the unnamed side-project that I brought up in my last post.  I’ve made some considerable progress on it, though not as much as I had hoped; when does it ever work out that way?  I’ve gotten the basics of the game mechanics down and am working my way outwards, but it’s still not really something that would be fun to play yet.  Perhaps in the near future I’ll make a demo video to show what I’m talking about.

My hard deadline is Nov 1, though.  By that point no matter where I am, I’ll post the prototype online and move on to something else.  My goal isn’t to have a truly commercially viable game, but instead a feature-complete prototype that can do the idea some justice.  After Nov 1, I’ll most likely be fixing up and expanding my Ludum Dare submission.

Outside of working on that, I spent some time tuning up my little triangulation doodler and put it on my website for the heck of it.  It’s not a game, but hey, I spent time on it and it’s kinda neat.  You can mess around with it here.

Lastly, I sold my last game Why Am I Dead!  I’m now working on doing the final finishing touches for the sponsor.  For the first two weeks after release it’ll be exclusively on the sponsor’s website, after which it can be put anywhere.  It’s weird, since outside of my LD submission, I technically haven’t released a game to the public this whole time!  I’m looking forward to that experience.

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.

All’s well that ends well

Today, “Why Am I Dead”  is locked in at 100% complete.  It isn’t currently online because I’m trying to get a sponsor for the game, and releasing it to the public would totally defeat the point of that; however, it means that I can totally shift my energy onto other projects and endeavors.  I can also say that I’ve completed, from start to finish my first real game!  Mandate was a far more involved project, but at the end I can’t really say with confidence that it’s a game; at least, not in its current state.  So this is an important step for me.

I’ve spent the past month or so polishing the game, fixing things that bugged me or (more often) problems that I heard from player feedback.  Even so, I feel that there’s tremendous room for improvement; in the writing, in the gameplay, in the music, and so on.  And while part of me is tempted to spend more time fixing all the flaws I can see, the lager part of me is just tired of working on the game, to be honest.  Really, some of the issues are simply the result of the fact that on the outset, I wasn’t planning on making a game of this quality; I was doing a quick experimental game, and so I didn’t use a great amount of foresight with the game mechanics and writing.  So, if I want to satisfy my impulse to fix these things, I’d rather simply create a more well thought out sequel than endlessly postpone this game.

So, while I can’t put up a link for the game, here’s a trailer that I made mainly for fun!

Some other stuff I’ve been doing.  I took part in the 24th Ludum Dare competition!  It was my first one, and given that fact I feel that I held up pretty well overall.  If you aren’t familiar with it, well first of all, why not, and second of all, it’s a competition to create a game based on a given theme in 48 hours.

For my submission I made the weird and stubborn decision to just go on a clean slate.  No frameworks.  No old code from WAID.  While it definitely hindered my progress overall, I have to say that I actually enjoyed this decision.  Surely, I ‘wasted’ a lot of time programming simple things like collision detection, but I got to return to doing these basic tasks with a lot more experience in AS3 than when I first did them, and so in some cases did them more cleanly or efficiently.  There’s also something oddly satisfying about knowing that I physically typed out every little thing in the game in only two days.

The end product is admittedly ugly, obtuse, and unforgiving.  I literally did not open a single other program outside of FlashDevelop; it’s all just code.  No bitmaps, no tilemap editor, no sounds, just code.  And no instructions either.

You can play the game HERE, but if you actually want to try and enjoy the experience I would highly recommend looking at my LD page first, which attempts to make what’s going on in the game a bit more clear.

And lastly, about a month ago or so I had mentioned starting up a strategy game.  While a lot of my spare time has gone to finishing up WAID, I’ve chipped in here and there and have progressed a  little ways.

The first main thing that I want to do is create a map-editor for a polygon-based map.  This is something that I’ve seen people suggest for Risk-style web games constantly, but rarely see implemented.  And as a feature it holds a ton of promise.  So, I decided that I’d make it the first thing that I do.

A boon which I hadn’t actually anticipated for the project was this: I have escaped the TYRANNY OF TILES!

I’m done with tiles for now

Now that I think about it, the last three games I’ve worked on have been dominated by tiles.  In WAID’s case it isn’t quite as visually obvious since I go out of my way to break the grid and use some non-tile collision detection, but it’s still dominated by tiles.  With the move to this strategy game, I get to program a whole different set of stuff and challenges.  For instance, last week I spent some time coding a triangulation algorithm so that you could draw any shape you wanted and then have a 100% accurate hit-test for clicking and dragging that shape around.  The result:

Not tiles!

I’m pretty happy with how the editor is coming along.  The fundamental concept of drawing provinces, moving them around, and creating links between them is done.  My next step is to add other functionality like deleting shapes, selecting multiple ones at once by clicking and dragging, and so on.  Then after I’ve gotten the editor to a more satisfactory place, I’ll be working on writing the map into a file stored locally on the player’s computer, and being able to read that map back into the 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.