Snowball Effect
•April 7, 2011 • Leave a CommentIt’s funny how one feature leads to another.
Qake began as a small joke project. I churned out the code as fast as possible knowing that if I got something playable it would live longer as a project. Thus, the code behind it is utterly horrible and I was almost ashamed to throw it out there during a previous Quake Expo. In fact, part of the reason I’ve made Qake releases is to get people looking at and playing the game. Prydon Gate got a lot of energy poured into it because we used to play cooperative games of it. Knowing my own psychology as well as I do, the tricks I played on myself worked and the project has stayed alive all this time.
At first I made a push to have all monsters and all weapons from Quake represented. This I termed an ‘alpha’ state for the game, which I’ve still not reached. All of the weapons have been done for a while but the monsters still remain a thorny issue. Firstly, it takes me about a full day to craft the sprites for a single character. This is due to a lot of pixel pushing and iteration and me just being generally bad at it. Art and animation is not really my strong suit and I struggle making hell knights not look like they are prancing about (though that animation is hilarious and will make it into an upcoming release). Additionally, it requires a rather extensive noise making session into a cheap $0.99 computer mic I bought back in the 90s. Unfortunately, the microphone didn’t survive my move out to Wisconsin, and was completely crushed at the bottom of a box. Sounds that I have since generated with my 5000% more expensive Microsoft headset just don’t have the same quality.
Add on to all of this the fact the Deej never drew a Spawn, Vore, or a Rotfish, which means I have to take some of my own artistic license, which usually for me means making characters closer to the Quake originals (e.g. Qake’s Scrag). It’s no wonder with the mounting challenges of creating the art I have instead shifted my focus elsewhere. One of the things I have recently been focused on is multiplayer.
Qake began with a pseudo-multiplayer architecture behind the scenes, which sheltered me from a lot of headaches when I began the process of making it less pseudo. Side Note: I greatly sympathize with what Notch went through, but 30 million dollars would definitely ease my pain. As predicted, without the client/server separation being completely enforced, some annoying violations of it sprang up. Most notably among these was a bunch of rendering options being set in an entity’s spawn function. In Quake these would really be part of an entity’s model (particle trails, size of the sprite, number of frames), but as Qake is still using raw bitmaps for the sprites the client needs to know this information in order to correctly display the sprite. The two options to resolve this was to either send it over the network or have the client know about it in some way.
Sending it over the network is just a waste of bandwidth, as the values are entirely constant. My ultimate choice was to extract those values into a new ‘definitions file’. From that file, the values needed by the client can simply looked up. That solved the only remaining issue outstanding for me is coming up with ways to get around the thing Forest Hale warned me about, modifying the tilemap to allow player progression. Each of those doors and platforms that use modification of the tilemap to allow the player to continue are now completely broken. Sending tilemap deltas is just an awful solution. Work on this problem continues.
An interesting thing happened with the introduction of the multiplayer code though. I found myself wanting to deathmatch with it. Problem was the old aiming system just wasn’t well suited for a high action deathmatch. In truth, I had designed it for a dpad so the game could be played on a GP32. However based on the incredibly horrible performance of the Nintendo DS port of Qake, I think that may remain a dream. What was needed was a sort of Soldat style aim system and that’s what I added. It should still work well with an analog stick, so console / iOS ports aren’t ruled out.
But now there was this mouse crosshair flying all around the level, it now felt jarring to go back to cursor key controlled menus. In my opinion Quake has this problem too and I wish there was a decent mouse driven menu alternative for Quake. That aside, this lead me to look into GUI libraries I could use. One I stumbled upon is guichan. So now I’m working on redoing all my menus using this new library. I’m torn on the topic of bringing in library solutions – the old Qake code, apart from SDL was all mine. Now I’ve got this alien code making a beachhead.
All because of my microphone getting crushed.
Prey 2
•April 3, 2011 • Leave a CommentWebsites
•April 3, 2011 • Leave a CommentSo in the process of trying to create a page for this, my personal site, I explored what sort of sites there are out there and what exactly my options are. What exists on the web today I’ve broken it down to this:
1. There are blogs. Most of them aren’t interesting.
2. There are sites for content creators/manufacturers. These are typical “About Us” “Download/Where To buy” “FAQ” affairs. Web comics also fall under this.
3. There are sites that operate as a compendium of one of the above. In this I include things like Newgrounds, Amazon, etc.
4. Web applications.
To further clarify all of these kinds of sites will have ‘blogs’ also, but they tend to be less about what a typical blog is and more like a continually updated advertisement for whatever their content or product is. Of the above list, 4 and 3 are basically off limits for me. A web application requires so much more time and effort than I can provide and anything like that requires infrastructure and purpose that cannot already be found in some other area of the vast web or realm of desktop applications. Such things are not usually one-person projects either. A site of type 3 is appealing to me because I have a rather strong ‘collector impulse’. However these kinds of sites, by their very nature, need to feed off of content providers, and that makes me feel deeply evil.
My previous sites have all been Number 2s (make your poop jokes here). And indeed, my initial plan for frikac.com was to continue with yet another type 2 site and provide information and downloads of some of my previous projects here. My hesitation with site type 1 has always been I don’t think blogs are really great ways of exposing information to people. Often blogs are cluttered with irrelevant personal information. The content they do provide is often organized by date, which is usually not well suited for whatever the content is, unless that content is by it’s very nature timely.
I also find that most blogs are really only interesting to the people who wrote them and their immediate circle of friends and relatives. Very rarely, the blogger has some great opinion or exclusive information that draws an audience. To be perfectly frank I don’t think that will be the case here, I am neither grandiloquent enough in my opinions to draw that kind of attention nor am I connected or original enough to have any real exclusive information. So why am I here? Well, the site I ultimately wanted to create is somewhere between a 1, 2, and 3. If I find something interesting out on the greater web, I wanted to add it to my compendium here. If I produce something worthwhile for the world to see, I wanted a central place to host it and pimp it. From time to time, I wanted to espouse my opinion on a particular topic. So, in thinking about it finally, all of those things that I wanted to do can fit well under the umbrella of a (*wretch*) blog.
Quite likely, my blog here will turn into something resembling my facebook page, which consists entirely of one sentence non sequitur jokes.
All that said I guess I should introduce myself for those of you who do not know me:
I am a programmer working for Human Head Studios. I live and work within the city of Madison, Wisconsin. I’m left handed. I like bacon.


