Wednesday, October 29, 2008

It's time to move on.

To a different website. Haha, did you see how I wrote an ambiguous title to trick you into reading the next sentence? Quite clever of me.

But as I was saying, I think that it's time to start looking for a new host. We need a site that can host files, and preferably one that will also host a repository for source control. Plus, it's about time we claim www.wombatstorm.com before someone else does.

Monday, October 27, 2008

Stabilize This!

Matt brought up some good points in his post; we should be only posting about interesting and unique things. I look forward to his future posts, even if less regular.

This past week I have started a small project, inspired by a talk given by Alan Jamieson of St. Mary's College of Maryland on self-stabilizing algorithms for graphs. Hopefully he will post an abstract of his talk soon, since I'm sure that it will explain the subject much better than I am about to.

One of the most simple example is the toddlers and cookies example: each node of the graph can either be a plate of cookies or a toddler. For a toddler to be happy, it must be next to at least on plate of cookies (connected by a vertex). Giving a random graph with a random configuration of cookies and toddlers, write a set of rules that will place toddlers and cookies in such a way that all toddlers are happy (and thus stop their incessant crying).

The rules are as simple as "if a toddler is not next to any cookies, replace that toddler with cookies." The rules may become more complicated if you would like to find a set of rules that always result in happy toddlers with the least amount of cookies. The important part is that the rules are all simple "if...then" statements.

It occurred to me that one could easily generate these rules and then a bunch of graphs to test them out on. It would then be a simple matter to find the best set of rules. For a simple example like toddlers and cookies, one could just test every possible combination of rules. For a more complicated problem this might be unfeasible as the possibilities grow quickly.

At this point, I would like to see if a genetic programming approach could lead to usable results. All the elements are there: easy to generate and modify programs (the rules) that are easy to evaluate (number of moves, is the final graph correct).

So that's what I'm doing now. This post is quite long enough as it is, so I'll save my progress so far for another night.

Friday, October 24, 2008

Meh

So I blatantly missed my Wednesday post, sorry about that folks. I think that this blog is a good exercise for myself if I actively have something interesting to talk about: I am working on a project, doing research...and not just repeating plenty of things that could be read elsewhere.

Since I am not able to really talk about my work, I feel that I don't have anything worthwhile to contribute to the blog right now, so I am going to rescinde my promise of posting every Wednesday.

I will post when I have something worthy, and interesting, for our fair readers to read. So, probably once I have the energy to do some of my own work outside of the office, you will hear from me more often.

-Matt

Monday, October 20, 2008

Titans of Steel

For those of you out there that enjoy hex-based strategy games with a heavy dose of RPG elements that just happens to be about giant fighting robots, then I have a game for you: Titans of Steel: Warring Suns! And as if giant fighting robots wasn't enough, the game is free!

I remember spending hours playing the original TOS about 8-10 years ago, and it was a blast. Since them, Vicious Byte has created another version (thus the "Warring Suns") which has the same core game play mechanics but greatly expands on the graphics and sound. The original was... well let's just say that for the time it looked okay and if you turned off the music it was alright. The following review applies to both games. It should be noted that the original is a measly 8MB compared to Warring Sun's 297MB.

The game itself is composed of three parts (which unfortunately is still confusing, although now at least tied together with a better menu system). First you have Head Quarters, in which you manage a team of Titan pilots. Here you can hire new pilots, assign them to titans, and spend their experience points on skills. This allows you to specialize your pilots to specific Titans, such as a pilot that is best with energy weapons on medium titans and is skilled in electronic warfare. We'll call him Frank.

Next up you have the Factory. This is honestly the part I love the most. Here you can build, repair, and modify titans. If we are so inclined we can build Frank a nice medium titan chock full of energy weapons. We have to balance multiple factors to create a good titan: weight, space, heat dissipation, ammunition, armor, weapons, and goodies. There is nothing as frustrating as overheating your titan after just two shots with your Plasma Rifle because you skimped on the heat regulator. The game provides some features to help you out, such as a "pinboard" that lets you quickly check the strong and weak points in your design. There are a ton of pre-made titans, but it's too much fun to make your own.

And if you build your own, you can feel a sense of pride when you enter the battle mode and demolish your enemies! The hex map, terrain bonuses, fog of war, and turn based system is nothing new or special, but it is genuinely fun. Part of the enjoyment comes from the shear amount of strategies and options that you have available to you. This game is so complex that you can spend hours playing one battle carefully moving your pieces as if it were a chess game: fast units scouting the enemy position under the cover of long range units and then linking scanners back to the indirect fire units so that they can launch rockets from the other side of the map. Or you can go a more simple route such as, "HAHA! Who would have though Frank's titan runs really fast and has two chainsaws!?! VVRRRRRRRR!!!!!"

The game does have a major drawback: it is confusing. The user interface for the battle mode is excellent and takes only a modest amount of tool tip reading to understand, but the rest of the interface is difficult to use. The problem is compounded by the lack of a back or save / load feature. If you make a mistake, there is no going back, if your pilot dies he's gone (remember that your titan has an eject button!). Overall all though, this is still a great game.

Just to give you an idea of how fun this game is, I came home from work today and played it for four hours straight. And I just bought Rock Band 2 yesterday. Well, so the real reason I'm not playing Rock Band right now is I was kindly reminded yesterday that I have downstairs neighbors. And by reminded I mean they were knocking on my door five songs in. So until I figure out how to play the drums quietly, I have to keep my rocking out to a minimum.

Anyway, here is a short interview with the four members of Vicious Byte: Interview

Wednesday, October 15, 2008

So . . .

Damn straight you don’t speak for me son! Heh I just wanted to say that. So, now we all know why James writes here, and I can say that I don’t think I fall quite within the same parameters. I don’t necessarily feel that I need practice writing, though it definitely does not hurt at all. I think for me it forces me to think about stuff that I would not necessarily ponder otherwise, or at least think about them at a deeper level. However, that still leaves me with another problem.

I don’t really think this blog is useful, at all, for anyone other than James and me. At least in terms of me, I know I am not making any amazing headways in computer science, or awesome new finds in solving problems. I am just not that sort of person. The main reason this blog started was for James and me to be able to document our process while we were designing simple games in school, and hopefully one day part of that will return. I know that right now I am often not in the mood to do much of any project in any way involved with computers (not counting playing games). But that will probably change in the future when I am not so frazzled and mentally strained from being at work.

But back to the main point of that last paragraph, I don’t believe that anyone else can take anything away from this. That might not be true, and will hopefully change as James and I get more experience in the computer world, and actually start to solve complex and meaningful problems. But in the short term, James, I will be happy to criticize your writing (just kidding, it’s not nearly as monotone as your voice).

In other news, I have solved four ¬– count them, FOUR problems from the Euler site. Go me! And I didn’t use any silly super math-y shit either. I brute forced those fuckers in Java, how much more could I be wasteful? Probably not that much.

Monday, October 13, 2008

Why should anyone read this blog?

I have been questioning the merit of several computer science related blogs that I read. Well, actually just the two that I read on a regular basis: Coding Horror and Joel on Software. I mean, do I really need to read yet another blog post about how awesome source control is (Check in Early, Check in Often)? Is it really worth trying to glean some tidbits of wisdom from the writings of a single person whose only qualification is that they can make a blog?

Well, I'm being hasty here, Joel Spolsky and Jeff Atwood each have impressive resumes, and I am hoping that their joint project Stack Overflow lives up to expectations. And I can't say that my time reading their blogs have been a waste of time as many of them have introduced me to something new. I often find that their posts send me of on tangential searches and I often learn quite a bit about something that I would have never looked up otherwise.

So that's why I read their blogs, and I suppose I shouldn't question their merit given the authors experience and expertise in their respective fields. But there are a ton of computer science blogs out there, many of which are nothing more than a neophyte or two rambling on about whatever happens to cross their mind that is related to computer science but broad or simple enough to cover in four to six paragraphs. Like this one.

So why do we write it? Well, I should be careful with the "we" as I can not speak for Matt. My reason for writing are selfish: I want to become a better writer and I enjoy talking about computer science (or writing about it when I run out of people willing to listen to me). But I don't know all that much and often times my understanding of a topic is tenuous at best, so I doubt that one can learn from my writings.

It's probably sounding like the conclusion of this post is that no one should actually read this blog, as readers seem to have little to gain, but I have so much to gain from them (I told you I'm selfish). I need user feedback to find out what I need to improve about my writing, and it also helps my inflated sense of self-importance.

So please keep reading my posts, and together we can make me a better writer.

*I should reiterate that the opinions expressed here are mine and mine alone. I do not presume to speak for Matt or future collaborators.

Wednesday, October 8, 2008

Software Development: a Super Broad View (this title sucks btw)

Just to get this settled now: I am sure James will beat me at the Euler contest. Considering that I am having trouble remembering how to properly compute Fibonacci numbers, I feel that my chances are doomed. Add on top of that that I am going to be pretty damn busy for…well the rest of the month (shipping a version release), well…whatever.

So on to my topic for this week –

Software Development: a Super Broad View.

That is probably a horrible title for what I want to talk about, but it’s the best you are going to get right now. My project is supposed to drop in roughly the next four weeks. Our System Integration and Test team still have over 600 test cases to go – these things are anywhere from 20-80 pages (maybe more). We also have a multitude of bug fixes and new features to test, re-fix the ones that break still, and retest. I think System I&T has around seven, maybe eight people working for them. Our software team has nine, including myself. That’s a fuckton of work that needs to get done fast!

My co-worker, K, (on a different project) blames poor project management. “We should not have let ourselves make promises we couldn’t keep”. My other co-worker, C, says “Well, we have to make promises we hope we can keep so we can get the contract”. This game the industry plays depresses me. Here comes the big, bad contractee (in our case the Military, HAH) and so of course we say “Yes oh high and might master, we shalt deliver unto thee supreme software” (hm so I just hovered over the squiqqly in word under thee, expecting an explanation. I am too used to Eclipse). Anyway…we say something like that. But who gets fucked over by this? The workers! They need to bust ass in order to fix the bugs, implement the new features, fix the new bugs that the new features produced, etc.

I understand this is how the industry is; it just makes me sad on the inside. I truly wish for a better world, where people don’t get fucked over by the higher ups, and everyone trusts each other, and is fair and honest, and you can actually be informed of the presidential candidates and still feel good about voting. I know those things will never happen. So we do the best we can regardless. All I know is that I am going to be very busy until December.

-Matt

Monday, October 6, 2008

Euler!

Have you ever read the webcomic XKCD? Well, you should. Even if you aren't a fan of computer science and mathematics, there are plenty of comics that you will be able to relate to. And don't forget to read the alt text for each comic, it's like two jokes in one!

The other day, I was informed that the author keeps a blag (that is, a blog. It's from the comic. You should really read it). And after reading an interesting post about jet planes on tread mills, I stumbled across a project that Randall Munroe (the author) is involved in: Project Euler. Unlike the comic, you would probably only care about this site if you are interested in computer science and mathematics.

The idea is simple: there are a bunch of math problems, and the site tracks which ones you have answered correctly. Each problem is well suited to being solved using a computer, and there is an accompanying forum in case you get stuck. The problems range from very simple (10 lines easy) to very difficult (I have no idea how to even start some of these). It's a great way to brush up on coding and math skills.

I've only done the first two so far, and it's nice to be able to work on small, yet interesting problems. After modifying other people's code in a huge code base all day at work, it's nice to sit down and write a small program myself. It also gives me a chance to brush up on my command line skills. I've been too pampered by fancy IDEs for to long!

And now, for the big news: I CHALLENGE MATT TO A EULER OFF!

That's right, I went there. If he accepts, the rules shall be as follows: the person who has completed the most problems by the end of the month with no outside help wins. So what do you say Matt? It's a great chance to brush up on your skills and the problems are all pretty short. You've got to ask yourself one question: "Do I feel lucky?" Well, do ya punk?

Wednesday, October 1, 2008

Oh the MMOs

The thing about updating this weekly, and not really working on any games right now, is that I don’t often have a very complete topic that I want to post on. If I could post about work I would, but I can’t. One little thing which has been wandering around in my noggin the last couple of days has been classes in MMOs. I recently got a friend at work to “rez” my account, meaning I get ten free days of gameplay (designed to lure me back in; it may be working).

Anyway, if you look at the numerous MMOs that are currently on the market, they are all alike in under laying gameplay (except a few, Eve Online comes to mind (I think, I have not played it much)). What you have are tanks, healers, and nukers. It can be in a fantasy setting: WoW, Warhammer Online, Everquest, Age of Conan, just to name the big ones, or it can be in a comic setting: City of Heroes / Villains. What I would like to see is a true break from this core component of someone taking the damage, someone healing the damage, and someone dealing the damage.

I love MMOs because of their social aspect. I really enjoy grouping up with a bunch of people to defeat a hard puzzle or opponent. But this does not need to mean fighting. Rock Band, while not an MMO, teams up four people to defeat a song, per se. What if a game play mechanic was designed that required ten people to solve some sort of puzzle through teamwork in an entirely new way? Someone who was good at math, someone who was good at art, someone who knew how to program…etc. would be required to get to the final solution. What if it actually allowed you to practice your trade, in a team setting, and made it fun? I have not though much about what type of game this would be. Perhaps I shall continue to ponder it. Please give some input if you have any ideas!

-Matt