Fantastic Friends XV

I just want to eat with them.  I want to sit around a campfire and talk.  I want to run around and explore and spout witty one-liners and grab their hands just in time so they don’t fall off of a cliff.  I mean, fighting is cool too, but combat… Continue reading

Tagged , , , , , , , , ,

Nothing: The Hidden Input

_movementState = MovementStates.Idle;

I’ve been working on a side project in Unity, and I wrote that line.  You probably don’t need to know anything about programming to know what it does.  There’s a character, and it’s not moving.  It’s idle. Continue reading

Tagged , , , , ,

The Starter Code Dilemma

Humans are inquisitive beings.  We tend to question things, and that’s a quality that I’m quite proud of.  Personally, I like to know how things work.  It’s not enough that something fulfills its purpose at the moment.

The reason I bring this up is kind of complicated.  For Graphics Programming, my professor gave us DirectX 11 starter code because it would have taken too long to develop the core framework and teach it at the same time.  When he first told us this, I was elated.  Setup is often tedious, especially for lower level stuff like this.  For the first few assignments, I had no problems.  Drawing geometry was easy.  The shaders worked well.  Texturing was a breeze.  It didn’t hit me until recently that this code might have to be the basis for my team’s game.

And herein lies the issue: I don’t really know how it works.  Because of this, I lack control.  I have a solution though, and this may be the start of something very wise.  I’m going to do it all from scratch using a few online tutorials, but I’ll be modding the code as I go with my team’s game in mind.  This way, I’ll avoid the issue of blindly copy-pasting and I’ll end up with something that I understand.  It will take time, but doesn’t everything?  It’s better than being ignorant.

Tagged , , , , , ,

Lang-8 is consuming me and I love it.

If you speak multiple languages or are taking any type of language class, go check out Lang-8.  It’s a site where people essentially correct each other’s writing in order to facilitate learning among the community.  The awesome part is that there is a points system.  You get points whenever you correct someone’s writing.  More points = higher positioning in searches.  To balance this out, the site also encourages correcting posts that have yet to be corrected. Subtle, non-overbearing gamification (I feel dirty even typing that word) is fun.  Learning Japanese won’t be so bad after all.

Tagged , , , , , , , ,

Adventures in Graphics Programming

This semester, I’m working in a team of 5 to make a game using C++ and DirectX for my Graphics Programming class and I’m terrified.  Yeah, maybe that wasn’t the emotion you were expecting, but I can’t be the only person in the class who is a bit anxious about this.  But it’s a good kind of anxious.  Graphics programming is liberating.  There’s so much control, I just have to overcome the initial shock of having nothing to really start with.  This is definitely going to be an adventure. Continue reading

Tagged , , , , , , , , , , ,

Netrunner: Moving Beyond Infatuation

The title should be enough, but yeah.  Netrunner.  It embodies everything I could have asked for in a trading card game.  The distribution format eliminates the stupid randomness of booster packs that saps my wallet dry and leaves me drowning in a pool of common cards and disappointment.  The game itself isolates its core mechanics and shields them from the cards themselves.  You can always bluff.  You can always take risks.  You can always do big plays.  The cards just facilitate the action.

I haven’t been playing for more than a few weeks and I’m hooked.  The cyberpunk aesthetic is captivating and it’s woven into the mechanics so well.  It’s quite telling when a game compels you to teach it to all of your friends.  That’s the mark of greatness.

But I’m not just here to praise Netrunner.  Quintin Smith of Shut Up and Sit Down already has that covered. 😉

No, I’m writing this post because I’m a game designer, and I think that there is a lot in Netrunner that applies to video games.

Continue reading

Tagged , , , , , ,

No More Relics!

Gonna be completely honest: I’m freaking out right now.

The semester is winding down, and it’s go-time for Fortune Hunter.  My team has been working for weeks on refreshing this old game for the OLPC  laptops.  I’m the artist, which is a welcome change of pace and an awesome way to increase my game designer well-roundedness, but I’ve come to a horrible realization.

You see, when you write code, you may have your own style.  However, code is code.  You don’t perceive it in the same way as art.  If it works, it works.

Art is different.  Style is hard to imitate.  You can get close, but the point is that it’s difficult.  I would hate to leave this overhaul incomplete.  It would be a tremendous disservice to whoever decides to pick the project up in the future.  In fact, it would be worse than doing nothing at all.  It’s discouraging.  It’s taunting.  I hate finding art relics, and I refuse to perpetuate this nonsense.  It’s the least I can do.

So, tl’dr: I’m going to finish this art overhaul even if it kills me.

Feel free to peruse the repo too.  Some of my stuff is already up. 😀

Tagged , , , , , , ,

Bonus Round: Let’s Talk it Out

This is still kind of part of my series on fighting game problems, but since this post isn’t really about a problem, I’m considering it a Bonus Round.

I was inspired by a guest lecture in my FOSS class given by Cissi Ovesfotter Alm, a professor here at RIT.  She was speaking on the topic of Natural Language Processing, and the early bits of the lecture caused the strangest chain of events in my brain.  She said that conversations are cooperative, with both parties working to advance the conversation.  She also broke down language into its elements.  This initially got me thinking about dancing, particularly tango, mainly because of a friend of mine.  The artistry of partner dancing comes from cooperation, but on a technical level, everything a dancer does is a series of moves that can be broken into component parts.  But, how far is cooperation from conflict?  After all, can’t a conflict appeal to the eye in the same way as a piece of art?  I think so.

And besides, we’re not here to dance.  That’s not what this series is about. Continue reading

Tagged , , , , , , ,

RocPy 11/19/13: The Day My Brain Melted

I thought I could program.  After a few years of studying games and writing code, I assumed a bit of competency on my part.  Call it pride if you want, but it is what it is.  Yesterday, I went to the Rochester Python user’s group meeting: RocPy.  Python isn’t my forte, but on that day it really wasn’t my forte.  The topic was database management in Python.  I’m not particularly good at database anything, so it was already difficult.  Throw on an explanation of ORM’s and my head starts to hurt.  Finish it off with a comparison between SQLAlchemy and Django and you can consider me humbled.

I needed this.  I was too big for my britches.  The true programming masters are the ones who know what they don’t know, and I learned exactly what I don’t know: a lot.

Tagged , , , , , ,

Thoughts on Evgeny Morozov’s “The Meme Hustler”

Here it is, if you’re interested:

Published 2013

This article is entitled “The Meme Hustler,” and it’s all about Tim O’Reilly, founder and CEO of O’Reilly Media.  The articles serves to analyze O’Reilly through the lens of his published work.  Morozov tears deep into O’Reilly, as he attempts to show that O’Reilly is actually a bit of a self-perpetuating monster with flawed ideals and too much power.

The Good

  • Clear and consistent voice, an easy read.  Not super-academic or dry.
  • Stays focused on picking apart O’Reilly’s actual words instead of simply attacking him out of opinion
  • Provides context by mentioning the people around O’Reilly (friends, foes, and influences), like Richard Stallman and Alfred Korzybski

The Bad

  • Progresses chronologically and conceptually, which can be confusing
  • Ends abruptly
  • Not a clear indication of a specific point to be made other than “This guy is kind of awful”

I’m still wondering…

  1. What does Tim O’Reilly think of this article?
  2. Just how much influence does he realistically have in government and politics?
  3. Who is O’Reilly’s main, current opposition?  Is there an anti-O’Reilly with a similar amount of power?

What I think…

I liked this article.  It stuck to the facts, and Morozov is clear about exactly what he doesn’t like.  Every section of paragraphs serves to show something clear and focused, with plenty of quotations from the man himself.  Morozov thinks that O’Reilly is a bit of a madman, but in Morozov’s defense, O’Reilly isn’t doing himself any favors.

Morozov attacks his topic from multiple angles, and while I would have love a better organizational scheme for these angles, they are there nonetheless.  I learned about O’Reilly’s philosophical roots, his vast self-marketing resources, and examples of self-contradiction abound.  Clearly, this author has done his homework.  Actually, he does talk about that a bit in the author’s notes at the bottom of the page.

Anyway, I wouldn’t take this article as the definitive guide to Tim O’Reilly.  Everyone has bias of course.  What I will say is that Evgeny Morozov has done a wonderful job of saying his piece without sounding like an angry, bitter old man with a grudge.  Even if you disagree, and you totally love Tim O’Reilly, give it a read first and be salty later.

5/5 for doing your homework and delivering an enjoyable read.  Good job, Mr. Morozov.

Tagged , , , , , , , , , , , , ,

Round 1 – The Opression of Being Dominated

This is the continuation of my campaign for better fighting games, hopefully culminating in a project of my own.  I’m making this up as I go along, and trying to be transparent with it all.

Nobody likes losing.  I know I don’t.  Even if you are of sound mind and calm countenance, losing is still a negative experience.  But does that mean it can’t be fun?  Losing is simply a matter of mechanics.  You lose because the rules say you lose.  The rules don’t say you shouldn’t have fun.



This means that the mechanics of the game have to be crafted such that there are still meaningful choices to be made while losing.  Basically, if I’m getting beat down, do I still have stuff to do?  Continue reading

Tagged , , , , , , , , ,

Time to Stop Complaining and Fight

Humor me for a few lines, reader.  Imagine a game.  Not just any game, a highly-nuanced, complex game; a competitive game.  This game has next to no tutorial yes requires large amounts of precision and timing for even moderately skilled play.  At high levels, this game necessitates using glitches and exploits to combat its own complicated systems.  The game has no internal progression and makes no effort to teach the player, even through a simple challenge-curve.  Are you disgusted yet?  This is a problem, no?  I mean, the controls could be tight.  It could be a pretty game.  All of the window dressing could be perfectly in order.  And yet, here we are, with a frustrating game because it does nothing for the player at all.

“But Jon,” you say.  “This game isn’t even real.  Who would make a game like this?  Who would play it?” Continue reading

Tagged , , , , , , , ,

Solarus: Open Source Re-Arting Without Pissing People Off

Open source software is great.  Well, great for programmers.  As a new artist (I volunteered to do art for my current FOSS project with my team), I’ve found the environment to be strange for artists.  Are patches really welcome?  Isn’t that like ambushing someone and giving their child a makeover?  Isn’t that insulting?

Well, I’m gonna give it a shot.  Meet Solarus.  It’s an open source Zelda game.  I’m gonna re-skin the thing, and more importantly, I’ll document the experience to help future open source artists.   There’s gotta be some methodology for creating “texture packs” or re-imagining a project in your own eyes..

Tagged ,

RocPy Again!

Last week I went to the Rochester Python Meetup again with my FOSS class.  This time, we were on a mission.  We were pitching our One Laptop Per Child game projects to the group (which was like 90% us but whatever).  The meeting was weird because most of the projects were only related in that they are going to be coded in Python, keywords here being “going to be.”

Awkwardness aside, the other projects were pretty cool.  I was in a weird position as the artist of my group, but there were still things worth saying.  Fortune Hunter needs a visual update badly.  Balance issues abound.  There’s tons to do and very little in the way of upstream mentors.

Talking about it made Fortune Hunter feel real, it was inspiring.  Now we just need to get it to run on the XO…

Tagged , , ,

The Tandem Bike Theory: Guild Wars 2 X Mathematics

Train boarding

Aaaaaall aboooooooooard!

Have you ever been on a long train ride?  If so, what about it do you recall?  What were you doing?  Perhaps you were talking to a friend, reading a book, or eating a sandwich.  Maybe, after those options were exhausted, you briefly looked out the window because there was nothing left to do.  Were you concerned at all with the intricacies of the train?  Did your glances outside provide you with meaningful information about your location?  Did you speak to any other passengers?  For me, train rides are passive experiences.  I just find it hard to care.  You get on, try desperately to amuse yourself, make a transfer or two, then you’re done.  All the while, you follow the instructions of some disembodied conductor who you probably never see.

So, why all the train talk?  Well, to understand where I’m going, let’s talk about MMORPG’s.  I’m not being specific, so just think of the most generic one you know.  In my experience, these games are boring.  No matter what role you choose, group play boils down to a chore.  If you heal, you spend your days staring at bars and trying to keep them full.  As a DPS-er, you spam hotkeys for damaging skills.  For such a seemingly team-oriented activity, it ends up lacking interpersonal interaction and more importantly, fun.  These types of games are trains.  You hop on, do your menial task, and somehow end up at the end.  Continue reading

Tagged , , , , , , , , , , ,

Board Games and Thingifying

Board games are kind of awesome.  They are pure, complete packages of game design that communicate an idea in a beautifully accessible way.  Don’t believe me?  Check out Shut Up and Sit Down.  It’s an awesome show that sheds light on some great game design gems.

Realizing that I love board games was easy.  Coming up with a concrete reason why was the hard part.  Luckily, I think I’ve done it.

Board games, by their very nature, tend to represent aspects of the game as physical objects.  Obvious, right?  In play, this isn’t that special because it’s pretty much a necessity.  But, as a part of the design process, it’s fascinating.  In order to design a board game, you have to identify what aspects of the game should become “things.”  For example, in a game about Roman conquest, should carriages be “things?”  Can players get them?  Yes?  OK, make some carriage tokens.

Board Game Tokens

Tokens: Endogenous Value in physical form (source:

Now here’s where things get interesting.  With board games especially, designers often make “things” at will.  In my Roman conquest example, I could have made “glory” a thing.  I could have made “appeasing the gods” a thing.  Then, I’d just make some kind of token and toss it in the box.  It’s not that video games don’t do this, but this is often one of the first thoughts when crafting a board game.  Video game designers can learn from this.

The theme of a game can be very different from what matters in a game.  Jesse Schell touches on this topic (“Endogenous Value”) in his awesome book.  I see so many video games that seem to tackle only the obvious facets of their theme.  When you’re considering what your game is about, try to be specific.  It’s about ninjas?  OK, what about them?  Stealth?  Fear?  Day-to-day life in Japan as an assassin for a daimyo? Board games are good at taking these often-ignored aspects and constructing entire games around them.  There’s no reason why video games can’t do the same.

I see all of these games about “modern warfare” that end up being about shooting.  What about survival?  Why do racing games have to be about driving?  The crazy thing is, these concepts have been explored successfully in games like Reccatear and Football Manager.  They took an overlooked/sidekick-ish aspect of a larger idea (RPG’s or Football/Soccer) and expanded on it.  In a world of clones and “safe” big budget titles, this is the way for small developers to really grab the interest of players.  By existence alone, these types of games make you say “Oh wow, I never thought of playing a game like that before.”

Don’t be afraid to play with what matters in your game.  Push the envelope.

Tagged , , , ,

Community Achitecture: MonoDevelop

MonoDevelop is an idea so cool, I swore I thought of it.  Basically, it’s a cross-platform IDE that initially caught my eye because of another product made by Mono: MonoGame, which is basically XNA reincarnated.  But this isn’t about singing Mono’s praises or even chastising Microsoft for how they handled XNA (that’s another article).  No, this is all about the the people behind MonoDevelop and the code itself.  That’s right children, FOSS strikes again.

As a body of code, MonoDevelop is a beast.  But honestly, shouldn’t it be one?  I mean, it’s an IDE.  It got a few points on Callaway’s Coefficient of Fail for being humongous and I guess I have to be OK with that.  Outside of being huge, I must say that it’s quite a hospitable body of code.  That is to say, I feel comfortable perusing it.  Comments abound, and I’m always confident that I know where I am.  Maybe that’s just me being a guy, but kudos to the people keeping tabs on internal documentation.  Also, every file has the licensing info right there.  Normally I don’t care much about that but for this monster of a project, it’s a big deal.

In the interest of ending on a happy note, I could just stop, but I won’t.  I want to emphasize what went wrong when analyzing this community.  Namely, the community itself.  The IRC chat was so dead, a tumbleweed would have felt awkward.  Nobody said anything for the longest time.  I’d like to think that I just got unlucky.  On top of that, the community seems to be like five people.  The more I delved into MonoDevelop, the more it seemed like a secret club of five dudes in their tree-house hacking away at a project for fun.  The whole thing kind of soured the experience, even though I personally love Mono.  As an outsider, this makes me want to shy away from working on it, and that alonethe perception of a project’s communityis sometimes more important than the actual community.

I know I sound like a hater now, but I’m being critical because I love this team and this project.  Besides, all things considered, it only got a +25 on the CCOF.  Not that bad really.

Here’s a link to the report.

You’ll need the questions too, brah.

Tagged , ,

Easiest Bugfix Ever?

Why do we not fix bugs?

Before you spout out your answer, focus on what I didn’t say.  I didn’t say “Why do we not find bugs.”  I specifically asked about fixing them.  Yes, there is a story for this one.

I was semi-frantically looking around the cramped, crowded alleyways of GitHub for a small bug to fix.  I’m no code-vigilante, it was an assignment for my Free and Open-Source Software class.  Intentions aside, I stumbled upon the strangest phenomenon.

In the Issues section was a bug observation that actually contained the solution.  Now, I’m not simply applauding my own luck for finding a fixed-but-not-actually-fixed bug to easily complete my assignment.  Rather, I’m quite puzzled.  This person seemed quite competent, so why didn’t he fix it?  It was literally a single line of code.  That was all it took to fix this issue.  In fact, to even notice the problem, he had to have been looking at the code.  I didn’t see a pull request.  Was he waiting for the core team to fix it?  Do a lot of people do that?

If not for FOSS, would I have done that?  Hmm…

Tagged ,

Reflections of My First RocPy Meetup

RocPy was interesting, but don’t take that statement at face value.  It wasn’t the subject matter, although it helps to know how getters and setters work in Python.  Still, that wasn’t what was magical to me.  See, this was my first programming-related meetup.  If you’re a seasoned meeter-upper, pardon my ignorance.

For me, there was something about meeting up with people who are passionate about programming.  Something about the meeting’s existence itself transformed it from a group of nerds talking about descriptors and servers to a room full of craftsmen.  I think this speaks volumes about programmers.  We are not simply the lone code monkey in a corporate cage.  When we choose to, we can band together and teach ourselves.  We can be a force for good or evil.  That’s what meetups are all about.

Maybe it’s something in the air that’s got me all introspective.  Maybe it was threebean’s epic beard.  Who knows.

Also, meta-classes hurt my brain.