4 Hugues Ross - Blog
Hugues Ross

5/2/13

Looking back: A year of college game programming

Sorry for the late post. I hope the length makes up for that.

It's been a very long time since I last got much work done on a personal game project, and I must say it's a bit sad. Singularity has consumed my dev time, and when that's done I still need to work on my level builder. Since I can't really work on a game much right now, I thought I'd take some time to write about all of the school projects that I never really mentioned in detail. I guess this is going to be sort of like a postmortem for them. I'll write about them in the order that I made them:

1. Game History and Development - Planets of the Plant
This was my first game project for school, and it was a bit of a trainwreck. The original design was for a light-based puzzle game/waiting for crops to grow combination game. However, this being before Chainsaw Deathrace, I had absolutely no idea what I was doing. It certainly didn't help that I was stuck as the sole programmer, AND also ended up making all of the art assets. A few days prior to the deadline, I gave up on figuring out the light mechanics and threw together a quick demo of the growing mechanic in love2d, which actually ended up looking quite nice(because I put in a couple of simple but impressive seeming effects like parallax scrolling).

2. Game History and Development - Octocow: Reckoning
This was our second(and final) project of the first semester. The idea was to make a multiplayer arena shooter that started out cooperative, but could swiftly transform into a human v. human cagematch. In that aspect, we kinda failed. As it is, players never really run into a situation where it makes sense to attack their comrades. I primarily blame the fact that development took slightly longer than I had anticipated, and I think I could've added that in given a few more days. This project was also a bit more challenging because I had to deal with two less experienced programmers who didn't understand how my code worked, but my grade depended on getting them in on the action as well. In the end, I took the easy way out and tossed a couple of easy functions at them, like getting the direction from an enemy to the player.

3. Game Tech I - Untitled maze game
The very first flash game that I had to make, though unfortunately not the last. The general idea was that we had to make a maze game where the player followed the mouse and touching various obstacles, like walls, would kill them. I decided to go beyond that by adding items that you could grab for points, and switches that would open/close trapdoors and blockers. I also tossed in a 'boss' at the end(the wizard guy), and made toss fireballs around. It was a hard game, but I think it turned out to be rather fun.

4. Game Tech I - Untitled Vertical Shmup
For our second project, we had to make a vertical shooter. By the way, you may notice that most of these Game Tech projects are just thinly veiled 'standard tutorial projects.' Technically speaking, we weren't expected to be capable of programming games properly at this point, so this was supposed to be an intro to that. Anyway, I was a little too ambitious with this project, and had to cut back a bit to get it in on time. Instead of a proper level, the game just had an infinite loop of enemy formations. It was also quite hard. Seriously, it was really hard not to die. Remember this entry for when I discuss my final...

5. Game Tech I - Untitled Horizontal Shmup
Horizontal now?
I try to avoid putting memes in this blog, but the opportunity was too good to pass up
To be fair, we weren't supposed to have scrolling in our last game. The thing is, though, I did. That made this project feel a bit redundant. Anyway, this was notable for being my first Flash-less flash game. Instead of relying on that program, I just compiled .as files with Flex, which made this project difficult but simplified future projects. This was more on the bullet hell side of the spectrum, but it was actually winnable unlike the last one. It also featured randomly generated terrain that you could in fact collide with, although the collisions were a bit weird.

6. Game Tech I - Defender!
This was a fairly open project, where the only real requirement was that we had to use Flash's drawing api to make our graphics. I created a defense game where you control a large turret situated a planet and must destroy incoming... red triangles. I also messed around with a very basic menu of sorts, which came in handy for later projects. After every wave, you could buy upgrades for either your health or your damage stat using points gotten in the level. However, health was always a bit useless, since you wouldn't get points from enemies that hit you. To be honest, it was rather poorly balanced.

7. Game Tech I - Hexerpent
Oh god, this game. This one and the next were a nightmare and a half to make. The goal here was to make a simple snake game, so I decided to do something unique by placing it on a hex grid. Somehow, what should have been a fairly simple game became riddled with bugs, and generally sucked.

8. Game Tech I - Leave Black Alone DX
A limited, partial remake of my first ever game jam game, Leave Black Alone. I still can't believe how hard it was to get some parts of this one working. In any sane programming language, this would've been fairly simple. In Actionscript... Well, I still get nightmares about this stuff.

9. Not a game, and not interesting.

10. Game Tech I - 1DP: The 1-Dimensional Platformer
Now THERE'S something fun! This game turned out to be a blast to make, and it felt more complete than most of my other games. As you might've guessed, the project this time around was to make a platformer. I went for a pseudo 1-dimensional look, just to make it a little bit different. All of the action took place on a line, where 'height' was represented by something's brightness. The visual aesthetic made it hard for other people to play, but it was still pretty cool.

11. Game Tech I - Untitled Final Project
Man, I love this game a little more than I should. The professor gave us complete control over what we wanted to make, so I chose to go with another bullet hell game. This one, however, was much better executed. It has sound, music, lots of enemy variety, 2 levels(with 2 unique bosses), and enough difficulty that I might be the only person on the planet who's actually competent at playing it, and even I'm stuck on the final boss! Anyway, I'm somehow drawn to playing this game even after  finishing it. I'm considering  remaking it sometime, and putting the result up on the blog. The downside: I'm still wicked burned out from making this, and I may have temporarily messed up my hand from all of the testing.


So, that's all of the crap that's prevented me from working on personal projects! 11 games(plus 4 from game jams) in only 8 months seems like a pretty good result. Next year promises to bring even more with it, and I'm considering posting about the next game projects(and maybe putting them up). As a final unrelated note, I'm trying to finish the next version of Singularity before going back to other projects. After that, I'll get version 1 of LevlEd up and running, finish AMAZE, and hopefully have time left to work more on Chainsaw Deathrace. Someday, that game will be back in production! I hope.

4/28/13

Singularity: Progress and Goals

One of the biggest accomplishments of the past 3 weeks was completing version 0.1 of Singularity. It took a while, but I've gotten rid of most of the major bugs, leaving it in a stable, working state. Here's what I've added:
  1. Singularity also automatically checks for updates every once in a while, displaying a system notification when you have unread items
  2. Slight graphical improvements to the feed view
  3. Entries now display their author(if provided)
  4. Most feeds ought to be correctly parsed now, even the ones that are improperly formatted
One big issue remains, however. It takes an absurdly long time for Singularity to start up. This is because imports aren't done in a separate thread at the moment, and the program must wait until they're finished to continue. I have a solution in mind, but it's not showing up until the next version. I'm also planning on restructuring both the code and the interface for v0.2. In the meantime, though, it works well enough.

4/7/13

Singularity: Progress!

So, I mentioned last week that I was working on database integration. Since then I've made massive strides in the development of the application! Here's what's new:

  1. I added the ability to subscribe to feeds. When the program starts up, it quickly checks for updates to any subscriptions you have. It also displays a list of subscriptions, and this lets you quickly access them.
  2. Subscribed feeds store their entries offline in the SQL database. When checking for updates, the program also downloads new feed entries. The main advantage of this system is threefold: First, it lets you read feed updates offline(though content like pictures and video won't load). Second, it makes loading up a subscribed feed(which you'll probably be doing all of the time) lightning fast, since it doesn't need to get the data from a server. Third, it allows the program to store old entries that would otherwise be impossible to get.
  3. Some bad news: Feed data eventually leaves an rss feed, and there's no way to access older stuff. That's one of the main reasons I decided to make my program download feed entries. The final version will also update regularly if left running, although I haven't added that yet. Of course, it may be possible to miss updates if the program isn't run for a long time. However, it ought to be able to detect this, and direct you the site that the feed is associated with. This is the best solution, considering that I want to keep the program independent of any web services. After all, it only exists because of one ending.
  4. You can now see when an entry was posted, and entries *should* be displayed in chronological order.
  5. I've begun work on parsing Atom feeds. It's a gigantic pain, and I really wouldn't mind punching whomever designed it, to be perfectly honest. Still, it sort of works. I can't get the content displaying right yet, but at least I can provide a link and post date.
All in all, it's been a very productive week. The next three weeks probably won't see that level of work, but it's still great to see progress on something.

EDIT: Oh crap. I just remembered my little sprite quota. I think I may have missed it last month. This month should be different, though; I have a ton of spriting to do for my Game Tech final project.

3/31/13

Update - Feeding the Reader

So, I mentioned something coming up a little while ago. That 'something' was Google letting go of Google Reader. That's right, around 3 weeks ago Google announced that they'd be dropping Reader come July. Unfortunately for me, I use Google Reader quite heavily. In fact, I have a few hundred subscriptions that I follow. After looking around at other services, I decided that none of them really suited my taste, and I decided to create my own. Behold...

3/16/13

Finally, Some Progress!

So, it seems that I've missed another date. I was going to post early this week with a fun little sprite I made, but then I actually started getting work done on my map editor. Thus, I figured it was best to wait until the end of the week and post everything together.