My previous job was almost entirely C++; my new job is almost entirely Java. I think I answered an interview question recently by saying that I like both languages equally, and the one that I choose depends on the needs of the situation.
Of course, I said that having not actually used Java for quite a while. Getting back into Java again reminded me that I do really prefer it to C/C++; that when I first got to use Java, it was liberating, exhilarating; that I couldn't believe I'd dealt with the hassles of C/C++ for so long when Java had been out there, waiting for me.
Say what you want about the relative benefits of both languages; for me, I could make quite a long list of the things that make me prefer Java, but I'll just mention two: one annoying, one more critical:
1. Header Files. Having to maintain header files alongside your source code files in plain C is bad enough. Having to maintain a header file for every class file in C++ is just tedious. And then add how you have to put #ifdef blocks around the content of every header file because C++ can't figure out how to resolve the situation where the same header file is included multiple times. Listen, if I have to add the exact same #ifdef structure to every header file to cope with a reasonably common situation, this ought to be solved by the compiler somehow so I don't have to type the same hacky solution over and over again. Sure, a modern tricked-out IDE will autogenerate all of this code for me, but this is just the IDE glossing over inadequacies of the language.
2. Memory Leaks. As a C/C++ programmer, you cannot ever focus entirely on the desired function of the code, because at least part of your attention always has to be on memory management. Sure, it's possible to write applications that never ever need to explicitly delete or free, but in my experience this is more of a theoretical paradise than a real-world result. I always seem to wind up having to get my hands dirty with pointers and with memory that's my responsibility. It's a profound relief to be able to say "new" in Java without having to immediately make sure that there's a matching "delete" somewhere that will absolutely positively execute.
So goodbye stdio.h, goodbye cout, goodbye char*. You'll always have a special place in my heart.
Tuesday, June 21, 2011
Monday, May 30, 2011
Why Vampire Hunters Aren't Cool Anymore
Well, not the modern stereotypical vampire hunters, in any case. I didn't even realize there was a stereotype until I saw it on television this morning. We were watching the beginning of some vampire movie (I don't recall the title) and there was a scene of the vampire hunters discussing some upcoming raid, and I realized that I'd seen all this before. Here's the checklist:
- A bunch of edgy, misfit, gung-ho loners, dressed in t-shirts and tank tops
- A clandestine meeting location, cluttered with the tools of the trade
- The "tools of the trade" mostly consist of a mixed collection of firearms and medieval weaponry
- A prevailing attitude of "the cops/public can't deal with this, so we have to"
- Bonus points if there's a misunderstood vampire on the team, helping the good guys
And it struck me: why should this be the winning mix of ingredients? If there are enough vampires hidden around the world to give a small pack of vampire hunters a constant stream of work, is the "garage band" model really a model for a successful team?
First problem: if there are that many vampires, and it's possible for a pack of underemployed twenty-somethings to find them on a regular basis, the vampires really can't be that well hidden. Which means that the proper authorities would have found them by now, and that teams with proper government funding would be working the problem. Unless, of course, the government is "in on it" or something.
Second problem: what these DIY vampire hunting teams seem to be involved in is a continuous series of special forces raids against a foe that's highly resistant to conventional weapons. It seems to me that this team would require serious combat training (as opposed to on-the-job training, which would be suicidal). You need to be able to handle weapons and maintain discipline and coordination under the worst possible conditions. You also need to be able to give and receive bloody injuries on a regular basis without losing your sanity, which requires serious mental training. Yes, history has shown that rag-tag teams of rebels can make an effective fighting force. But what kind of losses do these real-life backyard commandos experience? Out of a team of a half-dozen or less individuals who gave up their barista jobs to fight vampires, how many of them would take themselves out of action from fumbling their weapons in the first few months? And how many lost to friendly fire ("Wow, sorry, Joe")?
It seems to me that a more effective team would look like a team of special forces operatives, with iron-clad discipline and chain-of-command, with standardized and well-maintained modern weapons and by-the-book tactics, supported by a substantial team of surveillance agents, doctors, intelligence experts, and so forth.
What I'd really like to see, though, is a return to the Peter Cushing style of vampire hunter. The intellectual hunter with a deep and well-rounded education, who went into a fight with nothing more than a few doctorates, a sharp stick, and impeccable manners. I'd like to see the kind of guy who has the fight won through strategy and preparation before he even steps into the vampire den, and who doesn't need five minutes of slo-mo gun-fu martial-arts action to defeat his foe. Vampires are typically represented as stronger, faster, and more durable than human beings. It seems to me that you want a hero who can out-think the nosferatu. That's the movie I'd like to see.
Sunday, May 29, 2011
Playing With a Full Deck
Recently I've become addicted to an online card game called Tyrant. I've been playing it on Kongregate, though I assume all the cool kids are playing it on Facebook instead. In any case, it's a collectible card game (CCG) similar to Magic: the Gathering (MTG), but streamlined for more casual play.
I'm interested by some of the design decisions they've made with Tyrant. First of all, they've removed a lot of the choices a player of MTG might have to make, leaving the player with only the decision of which card to play from his or her hand at the start of the turn. All other game rules are deterministic or randomized. So the strategy is simplified, which I expect makes it easier to write an algorithm to allow for computer-controlled opponents. The algorithm just needs to pick one card out of three to play, on every turn.
Also, they've made some cards measurably more powerful than others. In theory, this is balanced sometimes by increasing the activation time of the more powerful cards (in other words, it takes longer for these cards to become active after they're played). But even when comparing cards with the same activation time, some cards are definitely more powerful than others, which leads to the player eventually retiring some cards as "obsolete" in favor of newer, stronger cards.
I don't know how prevalent this is in MTG, but I would think that this would be undesirable from the point of view of a traditional CCG that's used for competition. After all, the point of a CCG is that the strategy is in deck-building and intelligent play. All cards are supposed to be good in certain circumstances, and some combinations of cards can create a synergy if played at the correct time. So, ideally, each card when taken in isolation should be just as powerful as any other, so that just having card X does not automatically give you an advantage over players who don't have it. Having intrinsically overpowered cards makes the game less about strategy and more about acquiring cards.
This aspect of the game actually works more or less fine in Tyrant, since it's not a tournament game. The idea is to complete single-player missions in order to acquire more powerful cards, and thus improve your deck so that you can beat harder missions. There is a player-vs-player aspect, but in situations where one player has collected more of the advanced cards, that player will have a strong advantage.
You can pay real money to buy cards in the game, but you can also just get new cards by playing the game and beating missions, so you can accomplish quite a lot for free. As a result, I've been on this game every day since I found it, opening booster packs and assembling decks and such. I do have a weak spot for this kind of game; it's a good thing I never really got into Magic, or I'd probably have a much lighter bank account by now.
I'm interested by some of the design decisions they've made with Tyrant. First of all, they've removed a lot of the choices a player of MTG might have to make, leaving the player with only the decision of which card to play from his or her hand at the start of the turn. All other game rules are deterministic or randomized. So the strategy is simplified, which I expect makes it easier to write an algorithm to allow for computer-controlled opponents. The algorithm just needs to pick one card out of three to play, on every turn.
Also, they've made some cards measurably more powerful than others. In theory, this is balanced sometimes by increasing the activation time of the more powerful cards (in other words, it takes longer for these cards to become active after they're played). But even when comparing cards with the same activation time, some cards are definitely more powerful than others, which leads to the player eventually retiring some cards as "obsolete" in favor of newer, stronger cards.
I don't know how prevalent this is in MTG, but I would think that this would be undesirable from the point of view of a traditional CCG that's used for competition. After all, the point of a CCG is that the strategy is in deck-building and intelligent play. All cards are supposed to be good in certain circumstances, and some combinations of cards can create a synergy if played at the correct time. So, ideally, each card when taken in isolation should be just as powerful as any other, so that just having card X does not automatically give you an advantage over players who don't have it. Having intrinsically overpowered cards makes the game less about strategy and more about acquiring cards.
This aspect of the game actually works more or less fine in Tyrant, since it's not a tournament game. The idea is to complete single-player missions in order to acquire more powerful cards, and thus improve your deck so that you can beat harder missions. There is a player-vs-player aspect, but in situations where one player has collected more of the advanced cards, that player will have a strong advantage.
You can pay real money to buy cards in the game, but you can also just get new cards by playing the game and beating missions, so you can accomplish quite a lot for free. As a result, I've been on this game every day since I found it, opening booster packs and assembling decks and such. I do have a weak spot for this kind of game; it's a good thing I never really got into Magic, or I'd probably have a much lighter bank account by now.
Sunday, June 6, 2010
The Horror of the Flooded Basement
Back in the twentieth century, I think many of us assumed that by the time we reached 2010, household disasters such as flooded basements would be dealt with by house-cleaning robots, or by miraculous self-cleaning and self-drying carpets, or would simply be a moot point because we were all living in flying cities or lunar colonies or something. As it turns out, we deal with flooded basements in 2010 much the same way we would have in 1960, except that now we blog about it afterward.
Mary Lynn and I have been at war with our basement since we moved into this house. The basement isn't exactly a basement; it's the lower half of a split-level section, and is about half underground. The previous owners had converted this lower level into a master bedroom, and this was acceptable to us, except for one thing: the exterior stairwell.
Outdoors, behind the house, behind the split-level section, a concrete stairwell descends half-a-dozen steps to a doorway that leads into the bedroom. We never really use this door, except to open it in the summer to let fresh air drift through the room. The problem with this stairwell occurs when it rains. Water flows downhill, of course, which in this case means downstairs, into the stairwell. There is a small drain in the center of the bottom of the stairwell, but if this drain is blocked by leaves, the stairwell begins to fill whith water, and when the water rises to a level of about six inches, it's high enough to flow over the door sill and into the bedroom.
There have been several occassions where we have walked into the bedroom after a good storm to find that it has become a swamp. The carpet down there is fairly thick (or, to be accurate, *was* fairly thick; but I'll get to that later) and absorbs all the water that flows into the bedroom, so we've never really been looking at standing water, just a thoroughly soaked carpet. The days after this occurs are filled with wet-dry vaccuums and Rug Doctors as we attempt to get all the water out and clean the carpet as best as possible.
Just one of these floods was enough to encourage us to try to keep the drain clear as much as possible. We're not always successful; sometimes we're not home, or just forget. We went and purchased a small drain cover, a plastic cylinder with slots that is supposed to stand over the drain and block the leaves, so that the drain itself remains clear. However, if the drain cover itself becomes entombed in leaves, then nothing can flow through it and we're looking at a flooded basement again. Still, the drain cover provides more surface area that must be blocked, which means that a total blockage is more difficult, and we've gotten good enough at keeping the stairwell clear that we've been dry for a good while.
Until this week, when all of our preventative measures failed. What appears to have defeated us this time is that a number of small trees and bushes have grown up around the stairwell, extending branches with very small leaves over it. The rain and wind pulls down the small leaves, which are tiny enough to slip through the drain cover, but just large enough to bunch up in the slots of the drain itself. The leaves, combined with the dirt flowing along with the water, cements the drain slots close fairly quickly. Just sweeping the leaves off of the drain isn't enough to clear it; we must actually dig into the drain slots and scrape out the dirt and leaves.
As a result, we had two floods this week. The first flood was about a 4 out of 10 on our basement-flooding scale; the water only spread out a couple of yards from the doorway. However, this appeared to be one too many floods for the poor carpet; after we got it dry, it stank to high heaven. It's been musty-smelling ever since our first flood; now it was atrocious. We paid some folks to come buy and pull up the carpet and trash it, leaving us with a badly-painted (but reasonably dry) tile floor.
Then we had another flood. And this time there was no carpet to absorb the water. Mary Lynn woke up at about 2 AM, put her feet down next to the bed, and found a few millimeters of water.
In terms of surface area flooded, this one is about a 10 out of 10. The water got into the bedroom closets, the corridor, the downstairs bathroom and laundry room. Everything that was on the floor was soaked, and since we'd just moved a bunch of furniture around to pull up the carpet, there was plenty on the floor. Which means that we are now spending our Sunday running around the lower level and dividing all of our worldly belongings into "dry" and "wet" piles.
Some investigation during the second flood showed us one contributing factor we've never noticed before; on the exterior of the house, at ground level, on a wall facing the stairwell, there is something like an air vent or grate. During the rainstorm - in fact, even after the storm had ended - there was water gushing out of this vent. I have absolutely no idea where this water is coming from. Mary Lynn believes it's coming from a crawlspace under our living room, which is filling with water that seeps out of the sodden earth. If that's true, then there's an unseen subterranean chamber under our living room that must be positively brimming with water after a good hard rain. Who knows what else is down there? Skeletons of Prohibition gangsters? Deep Ones?
This isn't going to be cheap. We'll need an expert to come by and figure out this whole situation and propose a workable alternative. And in the short term we're going to have to be double-plus vigilant as regards the stairwell drain; we'll need to start checking it hourly or so during a rainstorm to make sure it doesn't clog. I've hacked out all the little trees and bushes that had sprung up around the stairwell, and that should cut down on the fallen leaves, but at this point we have to be ready for anything.
All in all, it's a good house. 999 days out of 1000, it's good to be here. But on that thousandth day, it's no fun at all.
Mary Lynn and I have been at war with our basement since we moved into this house. The basement isn't exactly a basement; it's the lower half of a split-level section, and is about half underground. The previous owners had converted this lower level into a master bedroom, and this was acceptable to us, except for one thing: the exterior stairwell.
Outdoors, behind the house, behind the split-level section, a concrete stairwell descends half-a-dozen steps to a doorway that leads into the bedroom. We never really use this door, except to open it in the summer to let fresh air drift through the room. The problem with this stairwell occurs when it rains. Water flows downhill, of course, which in this case means downstairs, into the stairwell. There is a small drain in the center of the bottom of the stairwell, but if this drain is blocked by leaves, the stairwell begins to fill whith water, and when the water rises to a level of about six inches, it's high enough to flow over the door sill and into the bedroom.
There have been several occassions where we have walked into the bedroom after a good storm to find that it has become a swamp. The carpet down there is fairly thick (or, to be accurate, *was* fairly thick; but I'll get to that later) and absorbs all the water that flows into the bedroom, so we've never really been looking at standing water, just a thoroughly soaked carpet. The days after this occurs are filled with wet-dry vaccuums and Rug Doctors as we attempt to get all the water out and clean the carpet as best as possible.
Just one of these floods was enough to encourage us to try to keep the drain clear as much as possible. We're not always successful; sometimes we're not home, or just forget. We went and purchased a small drain cover, a plastic cylinder with slots that is supposed to stand over the drain and block the leaves, so that the drain itself remains clear. However, if the drain cover itself becomes entombed in leaves, then nothing can flow through it and we're looking at a flooded basement again. Still, the drain cover provides more surface area that must be blocked, which means that a total blockage is more difficult, and we've gotten good enough at keeping the stairwell clear that we've been dry for a good while.
Until this week, when all of our preventative measures failed. What appears to have defeated us this time is that a number of small trees and bushes have grown up around the stairwell, extending branches with very small leaves over it. The rain and wind pulls down the small leaves, which are tiny enough to slip through the drain cover, but just large enough to bunch up in the slots of the drain itself. The leaves, combined with the dirt flowing along with the water, cements the drain slots close fairly quickly. Just sweeping the leaves off of the drain isn't enough to clear it; we must actually dig into the drain slots and scrape out the dirt and leaves.
As a result, we had two floods this week. The first flood was about a 4 out of 10 on our basement-flooding scale; the water only spread out a couple of yards from the doorway. However, this appeared to be one too many floods for the poor carpet; after we got it dry, it stank to high heaven. It's been musty-smelling ever since our first flood; now it was atrocious. We paid some folks to come buy and pull up the carpet and trash it, leaving us with a badly-painted (but reasonably dry) tile floor.
Then we had another flood. And this time there was no carpet to absorb the water. Mary Lynn woke up at about 2 AM, put her feet down next to the bed, and found a few millimeters of water.
In terms of surface area flooded, this one is about a 10 out of 10. The water got into the bedroom closets, the corridor, the downstairs bathroom and laundry room. Everything that was on the floor was soaked, and since we'd just moved a bunch of furniture around to pull up the carpet, there was plenty on the floor. Which means that we are now spending our Sunday running around the lower level and dividing all of our worldly belongings into "dry" and "wet" piles.
Some investigation during the second flood showed us one contributing factor we've never noticed before; on the exterior of the house, at ground level, on a wall facing the stairwell, there is something like an air vent or grate. During the rainstorm - in fact, even after the storm had ended - there was water gushing out of this vent. I have absolutely no idea where this water is coming from. Mary Lynn believes it's coming from a crawlspace under our living room, which is filling with water that seeps out of the sodden earth. If that's true, then there's an unseen subterranean chamber under our living room that must be positively brimming with water after a good hard rain. Who knows what else is down there? Skeletons of Prohibition gangsters? Deep Ones?
This isn't going to be cheap. We'll need an expert to come by and figure out this whole situation and propose a workable alternative. And in the short term we're going to have to be double-plus vigilant as regards the stairwell drain; we'll need to start checking it hourly or so during a rainstorm to make sure it doesn't clog. I've hacked out all the little trees and bushes that had sprung up around the stairwell, and that should cut down on the fallen leaves, but at this point we have to be ready for anything.
All in all, it's a good house. 999 days out of 1000, it's good to be here. But on that thousandth day, it's no fun at all.
Sunday, January 10, 2010
The Death of Sydney
In defense of the assertion that video games can be art, I offer the game Fallout 3, and in particular, one story element in the game that hit me unexpectedly:
In my trip through the world of Fallout 3, I found myself on a quest to rescue the Declaration of Independence from the ruins of the National Archives. I stalked my way through the streets of post-apocalyptic Washington D.C. slipped into the shadowy building, and started prowling around the wreckage.
I ran into a character named Sydney who had fortified one particular room and was holding it against an assault of hulking Super Mutants. We fended off the siege together, and afterwards I asked her what she was doing here. She informed me that she was a treasure hunter, also looking for the Declaration, and offered to pool efforts with me for mutual safety.
Together we descended into the maintenance corridors under the Archives. We dodged robots and security systems, and she offered suggestions about which way to go and where danger might be lurking. She was capable, confident, and strong-willed. I started to wonder whether or not she was going to continue in the story after the raid, and whether she might become a companion of my character, and whether they would stomp around the wastelands together, recovering the treasures of the old world from amidst its wreckage.
And then we got pinned down in a narrow room, with lethal automatic turrets in front of us and a pair of fairly determined robots coming up from behind. It was a frantic, graceless firefight, and I spent most of it huddled in a corner, blasting away at nerveless metal monstrosities, praying I wasn't about to run out of ammunition.
Finally, the robots toppled, and the echoes of gunshots died in my ears. I stood up and took a quick inventory of myself. I'd survived, somehow, but barely.
And then I saw Sydney's body draped over a railing.
Out in the real world, I stared at the screen. I couldn't believe it. We'd worked our way down here together, and in the end, she'd been killed by a couple of machines, over nothing more important than a scrap of paper. And it was probably my fault. I'd offered to go with her down into the tunnels. I'd claimed to be competent enough to handle myself in a dangerous situation. I was supposed to be watching her back. And here she was, in a forgotten subterranean tunnel, her treasure-hunting career cut tragically short.
From the beginning of the game, I'd set myself a "no reload" policy - I wasn't going to reload the game and try again for anything short of getting myself killed. I was going to take the good with the bad and experience the story more as a roleplaying game than as a shoot-em-up exercise. I almost broke that rule right then or there.
Eventually I was able to talk myself into moving on. I blasted through a couple more robots, and got to the room where the Declaration was. I found that there was a master robot in charge of the whole operation, a robot with some level of intelligence, who had come to believe that it (he?) was one of the Founding Fathers and was defending the Declaration against the British.
This is why Sydney had died. Because some ancient piece of machinery had delusions of grandeur. My finger hovered over the trigger of my rifle for several seconds.
In the end, I played along with the robot's delusions, and eventually got the Declaration. I could have blasted it to scrap. It had a few automated gun turrets in the room with itself, and probably would have given me a good fight. But I had enough firepower to turn the entire room to slag. I could have destroyed it. But Sydney would still have been dead.
She had a custom submachine gun with her, a particularly potent weapon. She'd told me she was good with fixing weapons, that it was a talent she'd learned from her dad. I took the weapon from her body and found that, yes, it was pretty damn effective. And I still feel dirty every time I pull its trigger. Because it's Sydney's gun. And she deserved better than to have her favorite SMG taken from her by the man who'd led her to her death in some utility tunnel.
Plenty of people have played this game. There's probably players who were able to finish this mission without getting Sydney killed. There's players who probably put two rounds into her head the moment she appeared, stripped her weapons from her and moved on without a thought. There's players who never even ran into her, never knew she existed.
But in my game, Sydney is dead, and it sucks.
In my trip through the world of Fallout 3, I found myself on a quest to rescue the Declaration of Independence from the ruins of the National Archives. I stalked my way through the streets of post-apocalyptic Washington D.C. slipped into the shadowy building, and started prowling around the wreckage.
I ran into a character named Sydney who had fortified one particular room and was holding it against an assault of hulking Super Mutants. We fended off the siege together, and afterwards I asked her what she was doing here. She informed me that she was a treasure hunter, also looking for the Declaration, and offered to pool efforts with me for mutual safety.
Together we descended into the maintenance corridors under the Archives. We dodged robots and security systems, and she offered suggestions about which way to go and where danger might be lurking. She was capable, confident, and strong-willed. I started to wonder whether or not she was going to continue in the story after the raid, and whether she might become a companion of my character, and whether they would stomp around the wastelands together, recovering the treasures of the old world from amidst its wreckage.
And then we got pinned down in a narrow room, with lethal automatic turrets in front of us and a pair of fairly determined robots coming up from behind. It was a frantic, graceless firefight, and I spent most of it huddled in a corner, blasting away at nerveless metal monstrosities, praying I wasn't about to run out of ammunition.
Finally, the robots toppled, and the echoes of gunshots died in my ears. I stood up and took a quick inventory of myself. I'd survived, somehow, but barely.
And then I saw Sydney's body draped over a railing.
Out in the real world, I stared at the screen. I couldn't believe it. We'd worked our way down here together, and in the end, she'd been killed by a couple of machines, over nothing more important than a scrap of paper. And it was probably my fault. I'd offered to go with her down into the tunnels. I'd claimed to be competent enough to handle myself in a dangerous situation. I was supposed to be watching her back. And here she was, in a forgotten subterranean tunnel, her treasure-hunting career cut tragically short.
From the beginning of the game, I'd set myself a "no reload" policy - I wasn't going to reload the game and try again for anything short of getting myself killed. I was going to take the good with the bad and experience the story more as a roleplaying game than as a shoot-em-up exercise. I almost broke that rule right then or there.
Eventually I was able to talk myself into moving on. I blasted through a couple more robots, and got to the room where the Declaration was. I found that there was a master robot in charge of the whole operation, a robot with some level of intelligence, who had come to believe that it (he?) was one of the Founding Fathers and was defending the Declaration against the British.
This is why Sydney had died. Because some ancient piece of machinery had delusions of grandeur. My finger hovered over the trigger of my rifle for several seconds.
In the end, I played along with the robot's delusions, and eventually got the Declaration. I could have blasted it to scrap. It had a few automated gun turrets in the room with itself, and probably would have given me a good fight. But I had enough firepower to turn the entire room to slag. I could have destroyed it. But Sydney would still have been dead.
She had a custom submachine gun with her, a particularly potent weapon. She'd told me she was good with fixing weapons, that it was a talent she'd learned from her dad. I took the weapon from her body and found that, yes, it was pretty damn effective. And I still feel dirty every time I pull its trigger. Because it's Sydney's gun. And she deserved better than to have her favorite SMG taken from her by the man who'd led her to her death in some utility tunnel.
Plenty of people have played this game. There's probably players who were able to finish this mission without getting Sydney killed. There's players who probably put two rounds into her head the moment she appeared, stripped her weapons from her and moved on without a thought. There's players who never even ran into her, never knew she existed.
But in my game, Sydney is dead, and it sucks.
Monday, December 21, 2009
Sandman Slim
I recently finished the novel Sandman Slim by Richard Kadrey and liked it a lot. When I step into a bookstore, it looks as if "urban fantasy" has come to be synonymous with "stories about women falling in love with vampires/werewolves/mummies/angels/ghosts/whatnot." This is not one of those stories. It's about a former magician who was betrayed by his allies and sent to Hell, and he's escaped and returned to the world of the living to get some payback. In some ways it's a typical revenge shoot-em-up with a mystical edge, with a strong resemblance to The Crow in places. In addition, the main character is not necessarily the nicest guy in the world, and there's some profanity and gore, which might put some folks off. Still, I thought it was a diverting action story, with some cool setting elements and some humor, and I'd recommend it to anyone who likes their urban fantasy crossed with some hardboiled crime fiction.
Thursday, December 10, 2009
WIP Screenshot
Here's a screenshot of a game I'm building:
It's at a very early stage, as you can see by the fact that the USS Blocky Untextured Ship is in a pitched battle against the Indistinguishable Blobs just outside the orbit of Boring Gray Planet. Still, I'm having fun writing it, and if I keep at it, maybe something will come of it.
It's at a very early stage, as you can see by the fact that the USS Blocky Untextured Ship is in a pitched battle against the Indistinguishable Blobs just outside the orbit of Boring Gray Planet. Still, I'm having fun writing it, and if I keep at it, maybe something will come of it.
Subscribe to:
Posts (Atom)