Quake 25: Slime Factory

In celebration of 25 years of Quake (1996), I decided to make a spookin'-ass Quake level of my own. Years ago I played with WorldCraft (later Hammer) making my own Half-Life levels, and although I never produced anything worth playing back then, that ancient knowledge proved useful.

Hammer is strongly tied up in the Valve ecosystem now, even more than it was back then. Poking around the Quake community, it's clear that everyone is now using TrenchBroom. And wow, I sure recommend that you do, too. The 'Broom makes it simple to shape complex brushes in a way I could never before. Instead of a series of carefully crafted carving operations, painstakingly positioned within your three standard orthographic projection views, one can essentially just draw the shape in 3D.

About the Map

You had just escaped one fortress, only to find yourself in the eerily quiet eye of the storm. Surrounded by castle walls on all sides, and the door from whence you came barred shut, you have no choice but to proceed along the dilapidated boardwalk over caustic slime lake and search on for your way out.

... and where is all that slime coming from? Something is very wrong with this green pond. The answers may reveal themselves to you with time.

This being essentially my first ever Quake map, I wanted to keep it simple. The textures are all either from the WAD used by the "start" map (Quake's episode and difficulty menu level), or some gently modified/hue shifted variant created by me. I built the ominous island structure first, and the rest of the level sprang up organically around it.

If you are feeling brave, venture into Krak's Slime Factory. Let me know if you play it (@krakissi).

(p.s.: The armor you can see from the island is quite attainable, and requires nothing more than a skilled jump.)

Download and Play

You have two options for downloading. If you already have QuakeSpasm, Mark V, or some other modern Quake engine installed, download this file which includes the playable map, as well as the source files so that you can open it up in TrenchBroom yourself. Place the BSP and LIT files in your Quake directory under id1\maps\. Launch the game, open the console with ~, and type "map krak_slimefact".


If you do not have a Quake engine installed and are running Windows, download this version instead which includes QuakeSpasm and the map files. This download also includes a "Krak.bat" file which you can double-click to launch directly into the level.


New Mapper Showcase

The man himself, dumptruck_ds, featured me and my little map in his ongoing "New Mapper Showcase" series on YouTube. If he weren't making videos on Quake mapping I wouldn't have made this map. It's an honor!

KrakJack: A "Fermigamo"

You have possibly heard of NaNoWriMo, a yearly November challenge for writers to author a novel in just 30 days. Completely ignoring the expansion of the acronym, I decided I would make a NaNoGaMo... a complete game in the month of November!

My NaNoGaMo idea was simple... a text-only telnet MMO, set in some remote space station. Players connect and interact with the station, and although they cannot see other players, they can see things that have been done by other players (receive mail, graffiti, position of objects, etc). It's essentially a museum game (less charitably termed a walking simulator), where you log in to hang out. The nature of telnet is such that sound is essentially impossible, and so the working title was Quiet Space.

Writing a novel is hard. Making a complete game is hard, too. I did not complete my NaNoGaMo. My ambition was too large. I had to aim smaller... and what's smaller than a nanogamo? A Picogamo! I wanted my game to be portable to at least Windows and Linux, and so I set to work creating a game engine in C++ with SDL. Almost immediately this got completely out of control, as I realized I could probably write a software 3D renderer on top of SDL's 2D-only graphics. The project is on-going and has stretched well beyond its humble beginnings. Which is to say, I did not complete my Picogamo in a month, either.

Ok, ok, I had to reel it in. Ignore the 3D renderer, just make a simple 2D game, a Fermigamo (following the natural order of Pico, Fermi, Bagel), and that's what this post is actually about. I chose a ridiculously small resolution of 256x150, and decided to make a blackjack simulator. The graphics are cute, the sounds are bloopin', and you can download it now for free on itch.io.

SoundCloud Tracks

Over the past half year I've been uploading quick (mostly) acoustic covers of songs over on SoundCloud. It's been an interesting experience... getting into the habit of recording more often and less formally has been valuable, and I feel like every day I'm getting better at singing and playing simultaneously.

The goal last year was to cut together a little EP of songs that I thought were cool when I was in high school. Sort of a nostalgic trip to practice recording and improve my singing. Given the soundcloud tracks, I think it's safe to skip this project entirely and get on to what I really want to do: some original material.

This cover of Scars is probably my magnum opus thus far, although the Die Young cover is a close second favorite. This song is cheesy as hell, but man, it really does help me feel better when I'm down, thinking about every wrong turn I ever took, and bad decision I ever made.

Low-Res EGA Graphics Demo for DOS

I put together a little demo of DOS EGA graphics in the low-resolution 640x200 mode. It's a "playable" game of bouncing balls, where the player controls one ball that can kind of move. Check out the video:

If you want to try it yourself, or check out the source code, here's a ZIP with everything as it was in the video: GFX.zip. Note that you'll have to run the executable in DOSBox or actual DOS, and that the EGAVGA.BGI file included in the ZIP needs to be in the same directory. This file is some kind of Turbo-C++ specific graphics driver... BGI perhaps standing for "Borland Graphics Interface" or similar.

A Return to Form

New for 2018... it's 2013!! I'm taking a page out of my own old playbook, and setting the clock back half a decade. This is a return to that fresh out of university and ready to take on the world feeling!

I'm bringing back the nasty old green/black/blue/gray/white colorscheme that I've always desperately loved. It's loud and amateurish looking, but also bold. The colors are inspired by the bright tones of a beautiful late summer's day on the road.

This year I'm committing to being my truest self. I'm bringing back the reckless courage I used to be so proud of, and breaking the shackles of shyness that have in the last few years held me back.

So begins the s u m m e r o f k r a k. AWOOOOOOOO!

Fell in Love With a Girl

It's always a struggle trying to produce music by yourself. My latest project was a cover of "Fell in Love With a Girl" by The White Stripes. You can check it out on YouTube.

Most White Stripes songs are essentially three tracks: vocals, guitar, and drums. That simplicity made it the perfect song to get back into recording with. This was the first time I would be using my new old Gibson SG. In fact, the entire setup was completely different than last time with The Middle.

To get a better drum track than last time, I sequenced every hit myself in Reaper. The sequence is extremely plain, though, featuring only one interesting fill in the entire short song. Next time I'm hoping to have real percussion.

I wanted to get a more old-school sounding crunch with the distortion on this song, so I used both the SD-1 and DS-1 at the same time.

The actual recording was done via direct XLR connection from the preamp output of the Ampeg head. Given the chance to do it again, I think I would record a blend of the live speaker sound on mic and the direct connection to get some of the natural reverb of my small studio room. Altogether, though, the guitar sound is on point.


Finally Fixing that One Little Thing

Way back in 2015 I low-sided my Honda. The damage was minor enough that I fixed everything myself, except for a tiny gap between the cowl and dash surround that wouldn't close up. I could press on the cowl, and it would kind of snap together...but a few miles down the road it would pop apart.

Fixing that little gap means removing the dash surround... no big deal, you just need to remove the windshield and mirrors, and the fairings around the headlight. Of course, those fairings don't come off without removing the ones bridging the tank and dashboard... and those don't come off without removing the entire side fairings and turn signals.

With the whole machine apart, it was just a matter of bending the tube structure the cowl sits on with a screwdriver about a quarter of an inch. It took an hour to get to the point where I could do the actual one minute job I set out to do.

The End of Krakchat

After an amazing five year run, it's finally time to close Krakchat.

It's kind of unbelievable that it lasted as long as it did. The mythical "krakchat2," which seemed to be in development and Coming Soon™ for ages has now been out a year longer than the original chat lasted. KC2 introduced MySQL as a database, to replace the completely unreliable and broken sqlite3 implementation. It also introduced a chat API with crude JSON interfaces, replacing even more crude query parameters. Some may even remember the earliest KC, in which everybody was just an IP address and couldn't set their username at all.

At its heart, Krakchat was always just a science project. I wrote it in college in an attempt to learn about AJAX/XHR and web development best practices. Along with Kraknet, it helped me to get my first real job in software development.