Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Monday, June 18, 2007

CuteGod Prototype Release

The truth is, I'm probably too busy to be working on prototypes of nifty games, but don't worry: I haven't let that stop me!

I've been able to add a number of features to the CuteGod prototype:

  • Recognition of ground patterns
  • Houses (automatically generated when patterns are completed)
  • A nifty "pattern holder sidebar-thing"
  • Sounds, which I think really spiffied the whole thing up
  • Some flashy sparkling stars for effect (and more importantly, a framework for future special effects)
Here's a quick screen shot:

And, happy days for you no doubt, here's a link to download the prototype.

If you want to give it a try you'll need Microsoft's .NET Framework 2.0, XNA Framework 1.0, and DirectX 9.0c.

If you do give it a try, I'd appreciate it if you can let me know if it worked or not (if not, please email me a copy of the log.txt file in the directory you installed the prototype in -- in fact, even if it does run it would be great to see the log file, so I can get a sense of what sort of machines it's working on).

Controls are very simple: click to pickup the highlighted block when your "hand" is empty, click to drop a block you're holding on top of the highlighted block, right-click and drag to pan the map around (be careful with this -- it's not my fault if you pan yourself into oblivion!).

The list of things that aren't done in this prototype goes on for about a mile, so don't expect any miracles or anything. That said, I do think it's already pretty fun to play around with.

Monday, June 11, 2007

Not dead, just still crazy busy

So, I'm still insanely busy, so the blog continues to suffer, but I'm determined not to let it fall completely off my radar. Here's a rundown of the employment changes since my last entry:

Internship with UW
Signed up and started today. Officially I'm a temporary employee, not an intern, but this is entirely good news as it turned into a freebie per-hour pay-raise for me. There's a lot of interesting work to be done here, and huge portions of it will ultimately be open-source, which is a nice ethical upshot.

Freelance Web Development
I'm still doing work for the small Utah company, at a fairly consistent pace.

The work from my past internship is also, only just now, picking up -- I'm not sure exactly what held things up, but I'm not really complaining.

.Net Developer
I've started in on this job, but I have to admit I'm seriously on the fence about it. All my issues and thoughts around this are at least one blog on their own, so I won't get into them now. Suffice to say, I'm not sure how long-lived the job will be, especially with so much other exciting work coming my way.

Squabs
I'm seriously impressed by the convenience of developing with XNA. XNA and Windows Forms (once they started playing well together) made building a basic level editor much easier than the Java alternative seemed like it was going to be.

Twitch
As much fun as I was having with Twitch, I've decided to table it for now so I can focus on Squabs a bit more in the little free development time I have. I'd still like to get a couple of screenshots on line at somepoint though, even if only for posterity.

Cute God
Something new (like I have time)! I read Lost Garden pretty regularly, and every once and a while the author posts some free artwork and suggests a game to design with it. The most recent of these "prototyping challenges" was CuteGod, which had such an interesting and straightforward concept behind it, I couldn't resist giving it a try.

So, after a few hours of coding, here's a screenshot of the 2D presentation of the playing area:


There seems to be a lot of discussion about an orthogonal 2D display not really being very intuitive, so I'll probably try implementing full-3D when I get a chance.

Wednesday, May 9, 2007

Software Testing

I just finished my last major college project (hopefully!) for my "Software Testing" class. It was an arduous, trite, annoying 24-page assault on everything I know about "good" and "bad" documentation.

I have a recollection (of the sort that might be real, or might just be something that seems like it ought to have happened, and so now, as far as my brain is concerned, it's a real memory) of my mother asking me after I finished some homework when I was younger if I didn't feel better now that it was out of the way... the answer then is the same as the answer is now after this software testing paper: No.

I feel more like this: Imagine you're being raped in the ass by the pointy end of a rhinoceros and then I shoot through your groin with a high powered rifle and kill the rhino. Do you feel better? Maybe. But not for long. Technically, it's "better" now that a giant horn isn't ripping your intestines apart any more, but in a couple of seconds you're going to really wish it hadn't happened at all. So that's how I feel: like I've been raped up the ass by a rhino and shot in groin. I want my 4 hours back you son of bitch!

More than that, this testing class has really terrified me. Is what we saw in class really representative of the current state of testing in the software world? The "W Model"? My god: that's like taking pipes covered with asbestos (the "V Model" of software development), which already gives people cancer, and wrapping them in fiberglass insulation that's full of holes so that people both get cancer and get lots of little glass splinters.

It's archaic.

Worse yet, it was a class of badly taught archaic methodologies. We never saw a real, concrete example of a test case put together and explained in detail. We didn't experiment with jUnit. We didn't do a static code review in class. We didn't review a requirements document to see if it was even in the realm of "testable" and "accurate". We had a professor who dodged legitimate questions and didn't ever seem to have any good facts at hand to back up his statements.

We had 3 hours a night for what, 12 weeks? As a group we had, essentially, one full work week worth of time. We easily could've broken into groups, written a complete (albeit very very short) software design document, done a static review of the document, prototyped the application, written test cases, configured an automated build and test process with Ant and jUnit and gone through a complete testing cycle.

I know, it seems like so much work... it isn't. We didn't have to code a new operating system from scratch, or build a movie-production quality 3D rendering package. We could've written Tetris, or Space Invaders, or a fucking calculator, or Minesweeper, or a program to draw happy faces depending on the time of day or the weather, or goodness knows what else.

So why didn't we? Simple: we suck. We all suck. The students are bored and unmotivated (justifiably so, perhaps), the professors are overworked, underpaid, behind-the-curve, and consequently getting pretty damn lazy in their personal ruts, the school doesn't support technology nearly to the degree it should (the CS department has no wireless network -- the dining center does though), and there's now three and a half years of lazy teaching and lazy learning behind everyone in this class.

Write a program in 40 hours with specs and tests and all that??? It would take 30 hours just to lookup how to start the program from scratch! We've never done anything like that before!!! ::panic ensues::

The whole lot of us needs to grow up.

I'm not mister follow-through -- I've always had a hell of time ever finishing anything; it's a big problem for me, but at least I work on it -- but I wrote iTunesBiggieView in about an hour. You can write a supporting tool in a day -- a "work day" -- eight hours. With 36 hours of class time that leaves 28 hours to write docs and build tests and learn shit.

I really wish we'd spent those 36 hours learning shit, instead of getting fucked in the ass by the rhinoceros named boredom.

Tuesday, May 8, 2007

Vista: Bad with Turtles

So, it turns out that the reason for Vista's incessant Explorer crashes was TortoiseSVN -- the very nifty application that extends Explorer to handle Subversion source code repositories. Problem solved with a minor upgrade.

Now Vista is as stable as a... slightly wobbly but well set Jello mold. Today Explorer crashed as soon as Vista started, but it hasn't done it since. I guess that's "better".

I gave Ubuntu Linux a shot as well, after a job interview asked me why I didn't use Linux, since I am a self-proclaimed geek. What I found out (err... remembered) is that while I am a geek, I'm a utilitarian geek, and Linux just doesn't seem to offer me much over Windows. Sure, stability and programmer friendliness is nice, but obnoxious configuration files, holy-war-style communities, and out-of-the-mainstream applications don't help me get shit done fast(tm) which is, after all, the point. At least, it's my point.

I almost signed up for Flickr, but remembered I already had a photo album at Picassa, so that won. I'll probably regret that, but Google either scares me less or does a better job of scaring me into submission than Yahoo.

I also took the time to write this little C# app:


It's pretty rough around the edges right now, but all it really does is display the album art and title for the track I'm listening to iTunes... but it displays the title in BIG TEXT. I don't know why I can never get this functionality right out of the box with a music player -- WinAmp didn't do it either.

I like to be able to read the track title from across the room. Sometimes I'm doing stuff when the music is on -- why should I have to get close to the computer to see what I'm hearing?

Moreover I use my TV as my second monitor in a dual view setup (I know this is weird, but I only have one monitor and sometimes you really need a second screen to debug DirectX / XNA apps) -- and a standard TV has a resolution of crap x shitty, so I can't even read the standard size font in iTunes on my TV.

I should probably sell iTunesBiggieView... but it just doesn't seem like I put enough work into it to ask for money :b

Oh, and Zelda in a browser: totally reasonable. I'm tinkering with the map editor now.