
Since the last completion update on July 15:
Wow, over 80%! I am almost completely floored by that. However, it may be a bit deceptive. Completion was about 74.4% before I finished off Sounds, which in all actuality was pretty easy but I was still putting it off nonetheless.
This is probably the last time there will be a “big” jump in completion between updates. From now on I would expect 3-7% increases overall from now on, as what remains is the really hard stuff I’ve been putting off. Well, some of the hard stuff I’ve been putting off — some of it I have conquered already.
This last 16% is basically what separates a really crappy, glitchy game from a good, fun, enjoyable one. Now is the time to buckle down and work on 4kg, more than any other.
-Andrex

Since the last completion update on May 25:
It’s apparent here that in the past eight-ish weeks I’ve touched on every aspect of development (except for music, which was already completed.) It is so close to every aspect being over the 50% mark, just have to do some art. Speaking of, that’s been primarily what I’ve been working on this past week, although I plan on switching back to coding for a little bit soon.
The backgrounds and tilesets for the first three worlds are completely done now. What’s really holding the art completion back is the enemy spritesheets, mostly because not only do they have their own animations, but they also have at least one variation (for the Virtual World) — some have more than that.
Still, it was immensely rewarding booting up a non-finished level for the second and third world and knowing it looks almost just like what it will in the final game. For the first time it feels like I’m actually past the 50% point on 4kg as a whole (the completion percentage can be a bit inaccurate, but it’s still a good measure, I think.)
Well, gotta get back to work!
-Andrex

Since the last completion update on April 20:
Things may seem like they’re crawling forward, but in actuality what I’ve accomplished since the last update has been some of the hardest stuff. Before now I’ve been basically picking the low-hanging fruit. Speaking of, I really should just knock the rest of the sound effects out… and I suppose I’ve been putting off the last level’s design long enough. I would bet that by the next completion update, 4kg will be in the high 80’s at least.
Lots of stuff I’m excited to get to!
-Andrex

Soooo close to 60%. I’ve commenced work on the first background (Art category), and I’ll be doing the second pretty soon afterwards. I’ll also be coding a couple of important mechanics over the next few days too (Programming category.) Gotta keep chugging along!

Just over half done! Time to put the pedal to the metal!!
Tomorrow: the return of development nightlies! Count on it!
-Andrex
For the next dev nightly, I promise to at least have some sprites on the screen. Count on it!
-Me on the last dev nightly
So? Can I hold my head high?

Yes! Take that, universe! (Screenshot is not representative of the final game.)
I was indeed able to render a sprite on-screen. While SDL requires some more fiddling than some of the other tools I’ve used (lots of blitting and rects… boring stuff, really), it’s not as bad as I was bracing myself for it to be. It’s really quite simple, but you have to get the hang of it.
In even bigger news (seriously, I was racking my brain for a week on this one), I’ve discovered the formula for jumping with gravity thanks to my math book! It’s something like √(3x-x2). The three is configurable of course, as is the square (though it might have to be even numbers… I’ll mess with it later.) I was really against looking this up on the internet because I wanted to find it on my own. And I’m so glad I did! This kind of formula is responsible for almost all sidescrolling games that have vertical gravity.
This is the kind of graph that function makes:

Where the x-axis is time and the y-axis is jump height. Basically, when the player jumps, he goes up for a little bit of time, then comes down. This kind of thing is important so that your player doesn’t fly into the air when they jump, or that they don’t “snap” back to place on the ground after reaching a certain height. It was also very important to find a function that didn’t cross into the negative at any point. How weird would that look? I’m having a hard time picturing it!
I suppose that if you wanted to, you could hard-code something like this by just manually checking the time values and making sure the player starts coming down after a set period of time… but I don’t really like that kind of approach. It seems very brittle.
Also! Yesterday I had lots of fun. For the early part of the evening I spent a lot of my time making sprites and animations, and I was able to finish off 8 different animations, some of which weren’t enemies but interactable scenery (aka, game mechanics.) I also did the first sprite for the virtual world portion of the game — I look forward to covering that in a future blog post.
Later in the evening I finished off the second- and third-to-last level designs (well, minus the virtual world portions, heh!) I’ve been putting them off for a while— the last time I designed a 4kg level was probably early August —because I knew they would be demanding. The other levels were a lot shorter, but for the final three levels, I knew I would have to devote everything I had into making them fun, rewarding, and long all at the same time. It was tough! But I think I nailed it. You’ll have to tell me when you finally play them!
There’s still one level design left, the final one. I want to start it soon, as it’ll probably be the only one that takes more than one day to design. I want the game to go out with a bang!
So here’s what we’re looking at so far:

Nice!
It feels like development is accelerating downhill faster and faster (see how I snuck in some more physics terms? Ha.) Even more exciting developments await!
-Andrex
PS- TinyPic is blocking international access to my previous images, so I’m making their transition to imgur as soon as possible. Thanks for your understanding.
Ah, here it is, the first dev nightly. Much of tonight was spent (wasted) trying to get SDL 1.3 to play nice with Visual Studio 2010. I know I brought it on myself by using the bleeding edge versions of both (SDL 1.3 isn’t even final yet!), but I had to give it a shot.
I ended up settling on SDL 1.2, which should be fine for my needs (especially since many of the tutorials and code snippets out there probably use 1.2.) However I was still able to use Visual Studio 2010 thanks to this excellent tutorial.
Other than that I’ve been tinkering around with other SDL tutorials. My C++ is a bit rough too, I am more at home with Java and C#. However, I think there is an air of “legitimacy” to homemade games made in C++. Plus, I’d like to see this game cross-platform eventually even though it’s targeting Windows for now.
What I have right now is an SDL surface with the video mode set to 1280x720 (720p), the game’s resolution. I plan to move past the tutorials soon though, maybe even after tomorrow, and jump right into making classes and all that good stuff.
In addition to all the coding I’ve also spent some time scouting for the game’s soundtrack on the chiptune site, 8bc.org. Since 4kg is now free, I can comply with the Creative Commons requirement on all tracks and use them in my game. I’m still going to ask each individual musician for permission, but I think it takes some of the pressure off. I have scouted out from one to three candidates for each of the game’s nine tracks, and have settled on one in particular for the first area of the game. I absolutely love every track I’ve chosen and hope I’m given formal permission to use them.
So just for kicks, here’s the latest status on the game’s completion:
Almost a third done! Even without confronting the “hard part,” I can’t help but feel some pride.
-Andrex
PS- I told myself I wouldn’t futz around with my Tumblr and just to use it as-is (I’ve been using a default theme and the WYSIWYG editor, which I never do when I have a choice.) But I had to fix two annoyances. First, the star on the left of posts was broken in Chrome (I’ve made it a music note, though there are other some interesting symbols I’d like to try in the future.) And second, the titles are now linked, which was probably my biggest pet peeve. I also took out the Ask Me page since no one was using it, and now there’s no break in the “logo” at the top. Things are a lot more streamlined now. :)
I haven’t been keeping up on the dev nightlies lately (partly because I’ve been distracted by this super-cool website idea I have), but that doesn’t mean I’ve completely forgotten about the game.
Oddly enough, I’ve been spriting lately. This is odd because I’m a coder by nature, and spritework has probably been the biggest block in the way of completing my many older game projects. I find I’m actually enjoying it, and in fact, resorting to it as a kind of “vacation” from my coding duties. Very strange.
![]()
Anyways, here’s the three I’ve finished so far. I’m not 100% done with any of these, mind you, there are still whole variations on each I need to implement (like jumping/running/climbing/swimming for the first, or the homing/virtual world counterpart to the other two.) But I’m still somewhat proud of them.
The first sprite is who you’ll be playing as in 4kg. I just call him the “player robot” — he really doesn’t have a “real” name. My creativity was too busy being diverted elsewhere.
The second and third are standard enemies you’ll encounter in the “real world” portion of the game (I’ll elaborate on this setup in a future post, but all you need to know is that every “real world” level has a segment taking place in a “virtual world” that you need to complete in order to progress.)
The aesthetics of each should be obvious. The player character is sent from the machine faction, which is predominately blue, while the enemies you encounter in the game have been built by humans and have red overtones. This is because in my mind, blue is cold like steel, and red represents blood. But that might be looking into it too much. Really, it plays on “blue = good” and “red = bad,” which are motifs used by many other stories.
As far as the coding goes, I haven’t settled into anything yet. I know I said in my last post the game will be made using XNA/C#, but I’m still seriously considering SDL/C++ and Game Maker. I promise if significant coding hasn’t been achieved by October, then the game will definitely be made on Game Maker. If I have all the spritework done by then, it really shouldn’t take more than a couple weeks to do on that platform.
Also, every so often I’ll be posting the completion table I’ve been using for a month or so to track things, the latest data on the game’s completion. Here it is for up until now:
(These are just the percentage totals for each area of development, at the bottom you can see the separate sheets that break each down further.)
Keep on keeping on.
-Andrex