Posted by: Jeremy Reimer on Mon Aug 10 09:42:44 2015.
In this episode, we reboot the entire podcast! Well, not really. We’ve come back to our favorite wedge-shaped Starbucks to rediscover what we really loved most about the podcast: the relentless acceleration of technology and the convergence of many technologies into fewer, more powerful ones. We talk a little bit about our writing project, the short story We Choose To Go, and discuss the future of human civilization. You know, just random stuff.
Direct link to podcast
Posted by: Jeremy Reimer on Mon Jun 8 13:41:42 2015.
When I first met Zoe she was in bad shape. She was sitting in the back of a cage at the Vancouver SPCA. Her fur was matted and stringy, and she looked like the saddest creature I had ever seen. I put my fingers through the bars and she rubbed her chin on my hand. I fell instantly in love.
Zoe had been a stray as a young cat. She was rescued by the SPCA, then lived with a young family until her eighth birthday. At that point the family had a baby and bought another cat, and Zoe didn’t handle it well. Her card warned that she had issues with unwanted urination.
I watched as other people came into the shelter, petted Zoe, then read her card and walked on. Nobody wants middle-aged cats, and they certainly didn’t want one who had problems with peeing. I was going to pick her up right then, but I had to return the next day with proof that my building allowed pets. I vowed that if Zoe was still there when I got back that I would adopt her. Of course she was still available.
My friend Tzhe was with me and he drove us both home. I opened her cardboard box in the guest bathroom and she immediately jumped out and fled into the hidden depths of our walk-in closet. I had been a pet owner for thirty seconds now and already I felt like a failure. Fortunately Tzhe was able to coax her out and she slowly started to familiarize herself with her surroundings. She was incredibly nervous, but to my relief she did understand what to do when I repeatedly placed her on the litter box. Zoe had found her home.
Views: 2131 Comments: 2
Posted by: Jeremy Reimer on Thu Apr 2 09:41:00 2015.
Software developers are notorious for underestimating how much time their projects will take to complete. It’s not borne of ignorance or maliciousness, but rather optimism: one always thinks that everything will go as well as it possibly could. Reality has different ideas.
My initial estimate for completing my first visual novel was an optimistic six months. I’m now thoroughly stuck into development, and my revised estimate is about double that figure, although if I’m in line with estimates made anywhere else by anyone else ever, that figure will probably end up tripling.
Nevertheless, I’m really enjoying the development process. I started (as writers might) with the character outlines and then the script, but I found that keeping track of all the branching paths for the dialog in Scrivener was awkward and looked sort of like pseudocode. So I saved a step and moved into writing the game code itself, in a text editor, using the Ren’Py engine.
As I was essentially writing the game itself at that point, I needed art assets, and I was writing faster than I could create them. So I whipped up some really rough backgrounds and character sketches in Photoshop and used them as placeholders. They look terrible, but they get the job done. At the same time, I started in on some of the 3D assets using Blender, as you can see from this first look at the Furious space carrier, the seat of all the action in the game.
There are eight main characters (not including yourself and the Furious’ Captain) in the game, and six primary locations on the Furious. I’ve outlined the main arc of the plot, and it features eight flight missions with an “intermission” between each one where the player does most of the interaction with the characters. In theory, this should lead to a fairly simple game, but the number of interactions and branching paths can quickly get out of control.
To avoid getting into infinite branches, the primary plot elements are fixed. The main thing the player has control over are dialog options with the various pilots in between missions. Depending on what options the player chooses, pilots will gain or lose points in various internal characteristics, like affection (towards the player), confidence, or skill. These variables will affect the outcomes of future missions.
I’m trying not to make the dialog choices black and white, “you are great/you suck” options. My primary inspiration are the Telltale game series, like Game of Thrones, where you are often presented with two options that both seem bad in different ways. The hard part is making sure that these decisions affect the outcome of the game in a meaningful way. A recent game that does this really well is Dontnod’s Life is Strange, where the player can make significant changes to the plot by paying attention to small details in the environment and dialogue.
For me, writing this game is a huge learning experience, and I’m bound to make some mistakes along the way. Fortunately, my fears about doing a bad job are outweighed by the sheer fun of actually doing it. It’s just about the optimal balance for me of writing, storytelling, programming and artistic design. So stay tuned!
Posted by: Jeremy Reimer on Fri Jan 30 11:32:25 2015.
I have a collection of old computers that seem to be approaching the end of their natural lives. The specs on one of them will seem familiar: a Core 2 Duo CPU, Windows XP, 2 GB of RAM, and a 19 inch 4:3 LCD monitor. Lots of people have computers like this. They are about eight to nine years old, and there is nothing particularly wrong with them, but these days they seem sluggish and ancient. They often get confined to closets or the recycling bin. However, there is a way to revive computers of this era, and it doesn’t cost that much. This is a story of how I gave my wife essentially a brand new computer for just over $50.
The first stop was Memory Express to pick up a brand new SSD. I asked the store clerk for a recommendation, and he told me about the Kingston SSD Now 300 series. The low-end, 120 GB version was just over $50, so I picked it up. It has good reviews and I like supporting a company that also supports professional Starcraft teams.
The next choice I had to make was what operating system to install. Windows 8 was right out, because my wife (like many people) has seen and dislikes the new user interface. Windows 7 might be a good choice, but getting a legal copy is expensive, and it’s an old and outdated operating system at this point. In the old days, Windows was a necessary choice because not many apps were web-based, and Linux distributions were still a bit finnicky to get going. Things are different now. But the most popular Linux distro, Ubuntu, has a very unusual user interface, so it wouldn’t be a good choice either.
I settled on Linux Mint 17, with the Xfce interface. It is the most lightweight clone of the standard Windows desktop, so it runs really well on older computers with limited amounts of RAM. It’s also familiar to anyone who has run Windows XP or 7. In fact, you can customize the bitmap image for the start button (and add the word "Start" to it). This makes it look a lot like good old XP, while simultaneously being a modern, secure operating system.
Linux Mint 17 comes pre-installed with Libre Office, which is a great clone of Microsoft Office and has an interface that is similar to Office’s standard menu and toolbar layout from 1995 through 2007. It also reads and writes Office documents seamlessly. Aside from using web applications, being able to write documents and spreadsheets was an important use case for my wife. She likes Libre Office better than the new Office "ribbon" interface that was introduced in 2007, and was using it on Windows XP before I upgraded, so this was a pretty seamless transition.
The only missing element for moving this computer to Linux would be gaming, but as my wife isn’t a gamer (apart from a few apps on her iPad) so that wasn’t an issue.
To install Linux Mint, I disconnected the existing two spinning hard drives and plugged the Kingston SSD into a single SATA port, then burned the .ISO to a DVD-R (I could have used a USB thumb drive, but it would have been a bit trickier, plus it’s been ages since I burned a DVD!) and booted from the shiny new disc. I let the installer format the entire SSD and install the operating system. Only once it was completely installed and running did I plug in the two drives again, setting them as secondary drives in the BIOS. Mint detected them instantly and I was able to copy over all the old documents on the drives to the new SSD. Having done this, I was able to disconnect the drives again to save power when running the computer.
It’s amazing how much faster this machine feels now. Launching LibreOffice takes less than half a second, compared to the half a minute it used to. It looks and feels like a brand new machine, and the price ($50 for the SSD and $0 for Linux Mint) couldn’t be beat.
Views: 3256 Comments: 8
Posted by: Jeremy Reimer on Tue Dec 9 09:13:12 2014.
After playing Christine Love’s amazing games Digital: A Love Story and Analogue: A Hate Story (which I reviewed here) I became obsessed with the possibilities of visual novels. They reminded me a bit of the Choose Your Own Adventure books that I adored as a child, but with many new possibilities and experiences that those books couldn’t offer.
I also loved them because they combined my two great loves: writing and gaming. Unlike with most games, where the story served as mere window dressing, visual novels put the writing front and center. So as I was casting about wondering what to write next after completing my science fiction novel trilogy, it struck me: why not make a visual novel myself?
The idea seized hold of me and wouldn’t let go. Unlike the effort required to make a full game (or even an extensive game mod), creating a short visual novel seemed like it was within my grasp. Usually these games are made with a writer and an artist collaborating together, but I love dabbling in basic 3D rendering and 2D drawn art, so why not do both? In fact, the first idea I had for a visual novel was a story I called "I only want to do everything", based on an AI that slowly learns how to live in a virtual world of its own creation. That idea turned out to be too open-ended and complex for my first visual novel, but I might return to it at a later date.
The story I ended up deciding on is a prequel to my trilogy of sci-fi novels. It is set on the Jaguar-class light carrier Furious during the first Earth-Zruthy war. This war is mentioned in Edge of Infinity by the protagonist Jack Davidson, whose parents were killed during that conflict. I never got a chance to delve more deeply into the war before now. Why were the Earth forces and the Zruthy fighting? What was the war like? How did it end? This visual novel gives me a chance to answer these questions.
The player portrays the fighter commander of the Furious, who was injured in combat and slowly recovering his or her memories. The player must talk to six different pilots on the ship, all of whom have very different personalities, likes and dislikes, and interests (I asked my wife, who is very interested in Myers-Brigg personality types, to help me with the character creation). By talking with the pilots before and after they fly out on missions, the player can subtly influence how they will perform under pressure. This will become more and more important as the missions get increasingly dangerous.
I’m having a blast creating the game in the Ren’Py visual novel engine, which is written in Python. Creating a visual novel is just the right combination of art, programming, and writing. I have no idea how long it will take to complete, but I’m estimating about six months right now. I can’t wait to finish it and show it to the world!
Views: 2636 Comments: 2
Posted by: Jeremy Reimer on Wed Dec 3 09:47:05 2014.
It’s hard to believe that William Gibson’s seminal book Neuromancer was first printed thirty years ago in 1984. Neuromancer gave the world the term "cyberspace" and created an entirely new genre of fiction known as cyberpunk. I remember reading this book as a young boy and being utterly entranced by this vision of the future that was so new and yet so utterly believable.
Neuromancer was a bestseller and its overwhelming success painted Gibson into a bit of a corner. After finishing two sequels, he felt he wanted to explore the more immediate future instead. In the mean time, the world was catching up to Gibson’s original vision. At some point the two converged, and Gibson wound up writing very interesting novels about the present while the world raced on to an uncertain future. On one hand, it was fascinating to note that we largely live in the world of Neuromancer (in broad strokes if not in actual details) but on the other hand I missed having Gibson’s view of what was to come.
With the release of The Peripheral, Gibson has jumped strongly back into speculative fiction, and the result is spectacular. As if to make up for lost time, The Peripheral includes not one but two futures, one set in the 2030s and the other about half a century later. A group of people in the far future manage to find a way to communicate digitally with the near future, and through advanced "peripheral" technology (essentially a biological avatar) they manage to bring people from the past to their present.
I almost didn’t want to write that much in this review, because knowing too much spoils some of the fun of reading it. I had deliberately avoided all reviews before buying my copy, so I went into it completely unprepared. Gibson doles out information in tiny morsels as the story goes along, which gives the reader a delightful sense of slowly coming to an understanding of both worlds. Initially, I wasn’t even certain that there were two realities, but I did feel like one set of characters were living in a world not too far from our own, whereas the others were living in some crazy world that made no sense at all. I loved piecing all the clues together at about the same rate as the characters were doing.
Speaking of the characters, the young heroine Flynn Fisher is one of Gibson’s most well-realized and relatable protagonists. While she is caught up in a whirlwind of shifting forces that she has little control over, she also manages to take initiative and make her own choices. The protagonist in the far future, Wilf Netherton, is a wonderful bundle of contradictions who accepts that his role as a Public Relations agent is really to be a professional liar.
The story itself, like the best science fiction, is a cautionary tale for our current society. It shows us two worlds that could very well arise from our own, and the inhabitants of both worlds long for things to be different than they are. The Peripheral is Gibson’s finest writing to date, and I can’t wait to read it again.
Views: 3299 Comments: 1
Posted by: Jeremy Reimer on Tue Nov 18 09:47:20 2014.
I remember the exact moment when I realized I was over World of Warcraft. I had been trying to get the "What a Long, Strange Trip It’s Been" achievement on my Mage character, which involved completing multiple "holiday" achievements that had to be completed within a certain time frame. I had only one thing left to go, which was to capture the flag in a Battleground during Children’s Week while I had my orphan tagging along.
World of Warcraft contains a lot of stuff that is basically nonsense, like this quest. I guess you could call it a "take your kid to work day" for heroic fantasy adventures. But I couldn’t do it. I kept dying over and over again, and I missed the window. I realized that to get the main achievement I would now have to wait an entire year until the next Children’s Week came along.
There were a lot of things leading up to my leaving the game, but that was the last straw. I cancelled my subscription.
I had been playing World of Warcraft for about five years at that point, and I felt I’d done everying I could do in the game. I’d quested, levelled up professions, explored the world as a Death Knight riding a goblin motorcycle, did player-versus-player combat in both the open world and in ranked battlegrounds, ran dungeons and a few raids, and lastly tried to get all the seasonal achievements. I had over a dozen characters strewn across multiple servers. It felt like it was enough. At some point, all games have to end, even MMOs.
But Blizzard managed to suck me back in with their latest expansion, Warlords of Draenor. It’s chock full of Warcraft nostalgia-- the main plotline involves going through a new Dark Portal to a Draenor that hasn’t been destroyed, thanks to some time-travelling intervention by the outlaw orc leader Garrosh Hellscream. The weird thing is that if you still have some lower-level characters (like I do), the old destroyed Draenor from Burning Crusade is still there, accessible through the old Dark Portal, as if time had never been altered. Maybe it’s a quantum thing. Trying to figure out all the lore of the game over its ten-year span is enough to make your head hurt.
The biggest and best new feature in the game is the garrison. This is a base that you get to construct on the new Draenor that is evocative of the old Warcraft Real-time Strategy games: you start with a Town Hall and build a Barracks, and even though the building time is stretched out over many days, it still feels a little bit like Warcraft III.
Blizzard has this amazing ability to keep refining tiny little details that improve the player’s quality of life. For example, you always used to have to hover over junk that you retrieved from dead monsters to see if it was, in fact, junk. Now, anything that can be sold to a vendor and has no other use is marked with a tiny little gold coin on the icon. In the past, you had to group up with other players even if you just wanted to kill a single elite monster in the open world. Now, if you happen to be fighting the monster and someone else joins in, you both get the credit and get the loot automatically.
It’s like coming back to a country that you last visited three years ago, and finding that everything is just a little bit nicer and a little bit easier to get around in.
I’ve missed being here. It feels nice to be back.
Views: 2899 Comments: 2
Posted by: Jeremy Reimer on Mon Nov 10 22:38:50 2014.
Last week I read an abolutely amazing article on retro computing. The author took a trip through the world of emulation, making stops at significant signposts in computing history such as the Amiga, LISP machines, and the NeXT computer. In doing so, he also found a way back to his childhood. I was deeply moved by this article and it inspired me to do a little emulating of my own.
But first, a little backstory. My father introduced me to computers for the first time, teaching me the basics of BASIC when I was just six years old, sitting on his knee in front of a terminal connected to the VGH mainframe. But it was my uncle, Allan Symonds, who provided a portal to personal computers. He had a mysterious all-in-one machine called a Heathkit H-89, and I fell in love with the big grey beast. I remember, with perfect clarity, one morning in December of 1979. We had celebrated Christmas at Uncle Allan’s house, and I had spent most of my time on the computer. My father tried to tell me we had to go. I pleaded for more time-- when else would I ever get to use this computer again?
"You can use it again when you get home," I my father said. "That’s not Uncle Allan’s computer. That’s your computer."
My jaw dropped. My seven year-old brain couldn’t even comprehend it.
But it was true.
I had that Heathkit between the ages of seven and seventeen, and I absolutely loved it. It was an oddball sort of computer, running an operating system called CP/M by this tiny company known as Digital Research. There weren’t that many games for it: my uncle gave me copies of Space Invaders, Missile Command, Space Pirates, and a Pac-Man-like game called Munchkin. Those were almost all the games that existed for that machine. I wanted more, but I figured I would have to write them myself. This was hard. I tried to learn assembly language, the only language fast enough to write games for such a slow machine, but I didn’t have the patience. I tried to learn C and Pascal, but compiling a simple "Hello, World" took about twenty disk swaps in the single floppy drive. There was only one language that I felt I could work with, and it was one that I already knew. It was from a tiny company as well, an outfit known back then as Micro-Soft.
Micro-Soft’s BASIC, or MBASIC for short, was an interpreted language that only took up about 25 kilobytes out of a 95 kb floppy. That left plenty of room for a game, but there were drawbacks. Being interpreted meant it was slow. Extremely slow. Fortunately, the manual had all sorts of helpful hints for increasing speed, such as typing DEFINT A-Z to force all variables to be integers. Who had time for floating point?
I figured out other optimization strategies over time. The Heathkit was a monochrome machine, and it had no bitmapped graphics. Instead, you could use a special escape code, CHR$(27);"F", to go into "graphics mode". In this mode, lower-case letters were displayed as a series of shapes: "y" was a diagonal line, "p" was a small rectangle, and so forth. You could use "reverse video" to flip the shapes’ pixels between light and dark. Other escape codes let you position the cursor anywhere on the 80 column by 25 line display. It wasn’t much, but it was enough to make crude games, and that’s all I ever wanted.
I asked Uncle Allan for help with writing my games in BASIC, and he taught me all about the Main Loop, the basic structure of all game programming that is still around today. Thanks to him, I was able to move on from just drawing pictures and start writing actual games.
I started many games in those years, but I finished relatively few. One of the ones I did finish was a Star Trek game where you commanded the USS Enterprise through a galaxy full of angry Klingons. It was insanely difficult. You had to time your commands perfectly to raise and lower shields, maneuver at impulse and jump to warp speed. Klingons would swarm you and could hit you from any direction, whereas you could only shoot forward. Even with your shields up, if you got hit you would lose energy, and if you ran out of energy you would die. If you tried to quickly warp out without knowing what was ahead of you, you would probably run into a star.
I remember beating it with great difficulty back then and feeling quite proud of myself. I can’t beat it today without modifying the code to make it a little less insane.
One of the last games I ever wrote on the Heathkit was based on the TV show Max Headroom, a series that I was completely in love with back then and still am today. I only ever completed the first stage: a daring helicopter run to Network 23. I wanted this game to have the best graphics I’d ever seen on a Heathkit. I wanted three-way parallax scrolling, so the buildings in the foreground would scroll more quickly. I wanted the helicopter to be superimposed on these scrolling buildings, and gunfire on top of that.
This was completely impossible and insane to even think about doing in interpreted BASIC on a 2 MHz 8-bit computer that was driving a 9600 baud terminal as its display. To the best of my knowledge, nobody ever did graphics like this on a Heathkit, not even using assembly language.
But I found a way. I used the terminal’s "delete" functions to scroll as fast as the display was able. I stored the buildings and the helicopter in string arrays, and defined them at the beginning of the program so they would be faster for the interpreter to recall. I only repainted bits of the helicopter that were broken by the scrolling boundaries. I cheated a bit and paused the action when the gun fired, then repainted the building bits.
It was a bit slow, but it was a fully functional game. You would want to stay at a high altitude to avoid the guns, but nearly-invisible barriers forced you to fly lower. Your best bet was to wait for the gun to fire, then fly up and right as quickly as possible. The gun would move in an arc, so you could anticipate where it would fire next.
Not long after I wrote this game, my Heathkit died. The company itself went out of business, so repairs were impossible. I moved on to PCs, running an operating system called DOS that to me looked strangely familiar. All my old games were stored on decaying floppy disks, and I thought I would never get to see them run again. Decades passed, but I hung on to those floppies out of nostalgia if nothing else.
A couple of years ago, I found a H-89 emulator written by Mark Garlanger. I emailed him and he told me he had some success recovering images from floppy disks, so if I would like to mail him mine he would try to save what he could. I didn’t hold out much hope. I remembered my Heathkit would have problems reading disks after a few years, and it had been decades. But I mailed them out anyway.
Mark was able to recover almost 95 percent of my data.
My grandfather died in 2001, and I saw my uncle at the funeral. My father died a year later, and I didn’t see Uncle Allan there, or any time since. I have been unable to get in touch with him. The Internet and even close family members have come up with nothing. He might still be alive, but with each passing year I start to doubt it more and more. All these important people in my life are disappearing one by one, and there is nothing I can do about it.
But thanks to Mark, those years of my life, the results of all the things my father and my uncle taught me, are preserved forever with perfect fidelity. It is as if no time has passed at all. My awkward teenaged self is calling out to me, wanting to show me this cool game he just made. I wish I could call him back and tell him that everything is going to be all right, that he’ll find his way eventually, that he’ll find the love of his life and he’ll get to write novels and work for game companies and have a good life.
But maybe, somehow, he knows.
Views: 3027 Comments: 1
Posted by: Jeremy Reimer on Tue Nov 4 09:03:53 2014.
I was watching some of the PAX Australia panel footage on Twitch this weekend and caught a great stream with the BioWare team. These guys have made some of my favorite games, such as Neverwinter Nights and the Mass Effect trilogy. But as I was watching the panel I noticed something: these guys were definitely guys. Every single panel member was a white male in his mid-to-late thirties. I thought back to a panel at VCON that I had attended about Diversity in Sci Fi and Fantasy. The discussion was about how much richer life could be if we heard from a variety of different voices. Was there any diversity to be found in video games?
As if the BioWare team had heard my thoughts, one member replied to a question about his favourite gaming storytelling with a list of indie games, including "Analogue: A Hate Story". The title immediately intrigued me, and when I found out it was about a deep-space exploration mission to uncover log files from a dead, centuries-old generation sleeper ship, I was already hooked. I couldn’t get on Steam fast enough to plunk down my $10.
The gameplay in Analogue: A Hate Story switches between a Unix-like command-line interface, a log-file retrieval system that pulls out old email messages, and click-based interaction with a sentient artificial intelligence, represented by a young woman drawn in an anime style. The AI appears to be helpful, but she won’t show you all the emails at once. Instead, you have to sort through the ones that do appear and "present" them to the AI. She will then fill you in on the background details of the people inovlved and in most cases will open up additional emails by the same author.
I won’t give away the ending, but I will say that it presented a society gone horribly wrong in a completely different way than I’ve ever seen in a video game. The standard plot for these "dead ship survival horror" games is that either an AI or a mad scientist (or both) decided to play God and unleashed a technological or genetic horror that destroyed the society. Nothing like that happened here, but what did happen was more personal and far more shocking.
Having completed the game in a marathon setting on Sunday, I found myself craving more. I found the author’s website and it took me to one of her earlier games: Digital: A Love Story. This had a hook that got me instantly. The game is played in a simulation of a 1988-era computer (a mash-up of a Commodore 64 and an Amiga called the "Amie") and the player interacts through dialling up a modem (complete with historically accurate connection sounds!) and connecting to various BBS (Bulletin Board Systems) to uncover a story involving a woman named Emilia. The use of historical events, like the Arpanet worm, grounds the story in reality at the same time as it ventures off into the fantastical. The use of message board posts and private messages adds an immediacy to the game-- sometimes a character will reply to you as soon as you navigate to another part of the BBS! I can’t say much about the ending other than the fact that I actually cried, and it has been a long time since a video game has moved me that much.
The author of these games, Christine Love, is a young woman who is a gamer and who identifies as queer. Her writing is informed by her background, but her voice is so powerful that she is able to create brilliant works of art that have profound emotional impact for anyone who plays them. She is a shining example of how diversity in creative voices enriches us all.
Analogue: A Hate Story is available for $10 on Steam for Windows, OSX and Linux.
Digital: A Love Story is a free download and is available for Windows, OSX, and Linux.
Posted by: Jeremy Reimer on Fri Oct 3 21:17:53 2014.
If you’re in the area tomorrow, why not stop by at VCON, the Vancouver Science Fiction, Fantasy, and Gaming convention?
VCON is an incredibly fun little convention that is celebrating its 39th yearly event. It’s held at the Sheraton Guildford Hotel in Surrey on Friday, Saturday, and Sunday (October 3-5).
I’m going to be on two panels on Saturday: The Future of Gaming (at 12:00) and Secrets of the Game Masters (at 2:00). This is the first time I’ve ever been on any convention panels, and I’m really excited! It’s going to be very cool.
Hope to see you there!