Category Archives: Development

Nothing: The Hidden Input

sonic_bored_9701
_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 , , , , , ,

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 , , , , , , , , , , ,

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.

Losing

Losing

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 , , , , , , , ,

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 , , ,

Making 2D Dogfights Interesting

Oxymoron?  Yeah, probably.  Basically, I’m noticing yet another issue with my current project, Project Fly.  The issue: aerial dogfights seem to suck in 2D.

In Ace Combat, aerial dogfights are awesome.  In 3D, you have so many options for movement and getting the enemy off of your tail becomes much more interesting.  In 2d, it’s either left or right.  Boring.  That’s what I thought at first anyway.  Then again, why can’t left and right be interesting?  In Ace Combat, you can move in MANY directions, but only in ONE way.  All you do us shift your angle by altering pitch and yaw.  Weak-sauce, this is 2D-Town and we do whatever we want.  Heck, this is a fantasy game, we can take whatever liberties we want with anything.  The player has an energy bar used for firing weapons, why not let the player use energy to make movement more interesting?  There are quite a few options.

For example, the player can use energy to execute an instant 180° turn.  This totally takes an enemy by surprise, and works well if the player sees an incoming enemy on the map.  Of course, this maneuver also requires some guts and determination to be used well.

There could also be a side-shift maneuver like in the newer Wipeout games.  This allows for tighter turns or quick adjustments to avoid enemy fire.  It wouldn’t cost very much either.  I can envision players constantly side-shifting while being pursued by enemies.

Thinking about the possibilities just makes my brain giggle. Anything from quick boosts to backward teleportation. I’m sure that these maneuvers are the spice that 2D dogfights need.

THIS IS RELEVANT

Tagged , , , ,

Desire-Based AI

So I’m learning that none of my previous video game AI work is relevant anymore.  Project Fly (my team’s current project) is in real time, so I need to approach AI in a new way.  I pulled out a lot of hair, and finally had a thought.

Yes, one thought.

“What does an enemy want?”  Before this game, I always worked with turn-based AI.  It was all very “computer-y” in the sense that the enemies were interesting to compete against (sort of, but they achieved this state in a way that is very non-human.  For example, in The End Begins, my previous game, the enemies categorize player actions and react based on their running list of player tendencies.  This fails in real time and isn’t how most humans play.  On top of that, the AI in The End Begins doesn’t really change much between enemies.  There’s hardly room for variety.

So back to my epiphany-question.  Why is it important?  Well, I think that humans play this way.  See, I had the issue of enemies in Project Fly either being useless or too perfect.  They either had hardly any AI or followed the player perfectly, so I thought “what makes it so that I can shake a human player off of me?”  It has to do with conditioning.  No, not the hair kind.  If I let my opponent pursue me and get close (assuming they want to be close), he will become complacent and his reaction time will become dull.  Then, I pull a sharp turn.  My opponent is taken by surprise and I escape pursuit.

By this logic, an enemy has its own unique set of things that it likes and dislikes.  For example, the Kitsune is an enemy in the game.  This enemy loves lower speeds and keeping its energy low (constant attacks).  Kitsune are easily agitated but also prideful.  This means that the way to beat one, you must play with it a bit.  Engage in a slower chase and let the Kitsune feel good, then pull an advanced maneuver and surprise it.  Its reaction time will suck and it will start to flee.  Now, this means it will go fast, which it hates.  This will cause it to become sharper and eventually go on the offensive again.  And so, the cycle continues. 😀

Reaction time will also scale slightly with health, so some enemies just naturally become duller (or sharper) as health declines.

I’m hoping that this system will be both effective and easy to implement.  Thoughts???

Tagged , , , ,

Enter: Project Fly

Ikaruga got Ace Combat pregnant, and my team is delivering the baby.

Top-Down-Fantasy-Flying-Dogfight-Action

Vampires+Mythical Beasts+Ghosts and Spirits+Eastern Mythology

AND Customizable ships

Oh yeah, we made a Prezi about it 😀

Tagged , , , , , , ,

Current Project: The End Begins

It recently dawned on me that I haven’t actually posted anything that has to do with my academic life.  It’s not that I feel like I have to prove that I’m a student or anything, but I do think that some of the things I do in my classes qualify as relevant content.  For example, I happen to be working on a game in my Game Software Development class.  I call it The End Begins.

Continue reading

Tagged , , , , , , ,