02 Dec 2012

Last2Die (that zombie survival game) isn’t going to happen. To make a long story slightly less long, a badly put together engine is going to buckle under the weight of expansion, and too many errors are going to amount to a pile that can only be fixed with a restart. Basically, Last2Die was not efficient as far as multiplayer games go. By the time I had implemented the player objects (without even attempting zombies or weapons), it had begun to slow down horrendously on my machine and wouldn’t even work in some browsers.
Development came to a halt. After numerous attempts to optimize pieces of code, I realized that the only intelligent way to move forward would be to scrap the project and start from scratch. I most likely could have kept going and found some way of speeding things up, but it just wouldn’t have been smart. Trying to design something on top of the sloppy foundation I had created was like asking for nightmares later on. It just wouldn’t have worked. As such, I made the decision to shelve the project for the time being. I still like the idea, but I just don’t have the resources for the Last2Die I want to create at the moment.
Why this is awesome: (more…)

25 Nov 2012

Alright, so I might have forgotten about this blog*. That’s alright though, because I’ve made the pre-New Years resolution to maintain a continuous stream of updates. At least once a week**. It isn’t so much for readers as it is for me; I realized that a lot of stuff I’m doing now is going to get forgotten at some point, so it might be really interesting to try and document my progress. Maybe I won’t ever go back to it again, or maybe I’ll cherish the fact that I’m always going to know where I started.
On that topic, I thought that there couldn’t be a better way to begin than to go back to GravX and explore what happened between my finishing of the game and its publishing on AddictingGames. I’ve already talked a little bit about the actual development process, so I figured it would be more interesting to discuss the marketing part. (more…)

19 Dec 2011

… What’s prevented me from making this post is the very same thing that has stopped me from having any reason to do so. Knowing that isn’t enough information to leave readers anything other than confused, I might as well* elaborate. Fortunately, I’m able to summarize this ever omnipotent and all powerful force into a single, 10 letter word. In fact, the more clever people out there are already quite aware of what I’m talking about. And, if you’re not, you are obviously not a very close reader. Still, if for some reason you can’t quite decipher** the word, let me spell it out for you.
M-O-T-I-V-A-T-I-O-N (more…)

06 Oct 2011

GravX, while not the first game I programmed from scratch, is—perhaps—the most impressive as of yet. The game itself is a simple puzzle platformer with a gravitational twist, but that’s not what makes it so important to me. GravX is the first game I sold and licensed. It’s the first one that really went through a whole development cycle—from the “hey, I really want to build this thing and build it right” to the finished product. The code itself, I’ve come to learn through more and more experience, is hideous. But it gets the job done. More important than the spaghetti code underneath, however, is the fact that the engine is all mine. I might be able to do it better now (and Fource, I hope, is proof of that), but for what it was, when I did it, GravX was a pretty impressive feat. And I learned a lot along the way.
All that, coupled with the upwards of 200,000 plays and the profitable sale of two non-exclusive licenses (one to MaxGames and one to AddictingGames, where GravX was published May 11, 2012) and, overall, I’d mark GravX as a pretty strong success. Here it is:

28 May 2011

I got most of the physics done now*. The player moves smoothly and at a variable pace (as opposed to the constant speed from before) and jumping is MUCH more realistic and smooth. Unfortunately, because the game is finally starting to come into shape, I’m going to stop posting live demos. Even though that doesn’t mean much now, since the site has <2 views a day, it’s probably a good idea to get into the habit of not releasing too much gameplay until the game is finished. Apparently, games are much more successful if they’ve had little exposure prior to release, so rather than learn that lesson the hard way, I might as well just follow it from the beginning.
Anyway, next up: bad guys. Basically, they’ll be little circles (final shape yet to be determined) that move forward on their platform until they reach the edge. At that point, they’ll turn around and walk the other way until they reach the other end. Hopefully, I’ll be able to integrate these guys with the dynamic/falling blocks you saw before in order to make some timed puzzles that force the player to switch gravity at precisely the correct moment in order to squash the bad guys (or just make them fall). At this point, I’d say the engine’s completion is about 50%**, but don’t you dare ask for an ETA of the finished game.
*: Emphasis on most… I think I’ve still got a few bugs to squash. Or I could just call the occasional falling through blocks a feature?
**: Things left to do as far as the full game goes are bad guys, exit portals, infinite level support, splash screen/preloader, level editor, full campaign with hi-scores (lowest time), and anything else I can think of.

24 May 2011

I fixed it! Better yet, it didn’t even require a major change to how collisions were detected. Just like before, there are four ways to see if there is a block colliding with the player. You can ask the game if there is noBlockAbove, noBlockBelow, noBlockRight, or noBlockLeft. However, I made several changes. For one thing, before now it would only test a single block on the grid*, now it tests 10 blocks in each direction. So, it loops through 10 separate cells on the grid, and if  a cell is occupied, then it does a normal(ish) hittest of making sure the player is not passing that block. If the player is trying to move up, and its y position is higher than the y position of an occupied cell (and its x position is the “same”**) then it won’t be allowed to move. Try to fall through the blocks in this updated prototype: (more…)

23 May 2011

Optimization is a big thing in games. Today, it seems like every single millisecond counts, and a moment of computing that could’ve been cut in half is considered completely and totally wasted. Along those lines, the standard code behind an ordinary tile-based platformer is incredibly unoptimized. Games tend to waste time by comparing the location of more tiles than needed to the position of the player. With my current project, I figured I would try and optimize it in a way that I thought had never been done before.

08 May 2011

DreamScape was a game I started working on a while ago. It was never truly complete, always buggy, and largely lacking in levels; however, since the source files are lost, there’s not much I can do short of starting it over. Not that I’d continue it even if I had the files. It was a neat idea. A fun prototype. But it was also 3 years ago. I’ve grown a lot since then, and I doubt I’d be able to bear wading through the code and Flash IDE work that went into this. Still. I can’t say it was entirely trivial. It was certainly the most independent work I’d done up until that point (that is, more assisted by posts to Stack Overflow than by step-by-step tutorials I found online), and the outcome is even, for all its shortcomings, kind of fun to play around with. So, what the heck. Here’s DreamScape. (more…)

19 Jun 2010

Perhaps the first games of my modern programming adventures. Before this point, my coding knowledge was incredibly limited. At this point, my coding knowledge was still incredibly limited, but that’s beside the point. These were the first games I made wherein most of the code was typed directly by me (compared to copy-pasting code from tutorials or using “game-engine” programs that do most of the back-end tough work for you). As such, it’s invariably an important step. I can’t say I’m proud of them, but they’re also from a solid 4 years ago. I was hardly 13, and yet I still knew how to program. And this was what I programmed. Not bad, I think.