Broken Connections is a short old-school RPG adventure inspired by some of the life events of Glenn Wichman, one of the authors of the original rogue and hence one of the fathers of the roguelike genre. It was made for IndieCade’s Hidden Heroes Jam. You can play online at https://slash.itch.io/broken-connections
Glenn Wichman and Michael Toy, students at the University of California, share an apartment in Santa Cruz, California.
The development of the first versions of rogue, a game that decades later would spawn an entire genre, and whose design would influence video games in general, is taking place here. Using a video terminal and a 300 baud modem, the two young friends connect to a computer located in a basement at the university, long nights of coding and design before the rise of the videogames industry.
And then, the unthinkable happened. The connection to the computer is broken, and the work done during the weekend is at risk of being lost. There is only one way to fix it: Glenn should venture into the depths of the communications center, and restore the connection before it’s too late.
But on his way to the computer: humans. And within the interaction with them the opportunity of being a kind, honest person, or just brush them away. What will you do?
The first time I met Glenn was when he participated in the 7DRL challenge in 2007 and I interviewed him for Temple of the Roguelike. Years later, he would give a spin to my professional life as he trusted me with ever-growing challenges that finally allowed me to become a professional full-time game developer.
Beyond the historical significance of the work he did in rogue, he is a great inspiration to me as he continues his journey in videogames even as of 2023, maybe not as a celebrity but definitively as a hidden hero bringing joy to thousands of people all around the world with his work.
But even putting that aside, through the years I’ve found in Glenn a person that is kind, no matter what life throws at him, and he is always there when you need him to share his wisdom and help in any way he can. At the same time, you can also count on his words to be honest even if that means there will be a disagreement.
It’s tricky to make a game about being kind, and that’s why in this game it will be your choice. You might find that most of the time, being kind has no immediate retribution, but what do you feel in your heart when you are kind? I hope this game evokes that feeling if even a little bit.
Following JSRL migration to typescript, I thought it would be a good idea to create a tutorial for it so that it could be used by some developers for the upcoming 7DRL Challenge, but I struggled with the theme for it. At the same time, I found out about this jam organized by IndieCade via email newsletter, I thought maybe it would serve as guidance for that missing JSRL tutorial.
The tutorial never happened because I already struggled to complete a worthy entry for the jam, and at the same time I found the template is still lacking in functionality and documentation, however, I left this game in an open-source repo, in hopes it may be useful for someone willing to go through it as an example.
I don’t really remember why I took the final decision to participate in the jam; maybe the theme was just compelling or challenging, or I just wanted to warm up mightily before the 7DRL Challenge, but when I less thought about it I was already deep on thinking how to best approach it.
The jam ran from February 24 to March 5, and thus had a two-day overlap with the 7DRL challenge timeframe. No problem though, I planned to release my entry on March 4, rest for one day, and then start the 7DRL full-steam on Monday, March 6.
This jam’s theme was tricky; you were to choose someone, alive, who had left a mark on your life. Of course, you could pick a family member, but then it became too personal for me to share intimate affairs that were the only ones worth telling. So the other option would be picking a friend, but I found it hard to do this in a non-awkward way, portraying the person as human but still having a story that could make a good narrative for a game.
Another complex aspect was how to make a game about wisdom without falling into oversimplifying it into good/bad choices. Of course, there’s always Ultima IV as a reference, but a straight too-similar approach to it might not cut it in 2023 (and doing it well would require more time than a gamejam like this allows).
After considering one or two persons, I decided to go for Glenn, because he is cool and also because I saw on this a chance to share a little bit about the history of rogue (following that tip about “fascinating stories that you would like to share”)
My idea was to make a roguelike themed on the times when Glenn and Michael were creating Rogue. The main quest would be to go into the university labs to plug back the computer because someone shut it down when they were developing the game at home (connected to it),
Codename for the project is “Rogue without a cause”.
I went back in time and researched conversations I had with Glenn from 2020 and 2021, to get some ideas about the temporal and spatial context of the game (i.e. what it was like when Michael and Glenn created the game in 1980)
It was still not very clear what the game was going to be about, so I decided to give up a bit of the surprise and asked Glenn:
What was your biggest fear in 1980?
Good Question. Probably that I would never find true love. By ‘84 it was unemployment.
That was interesting, but not enough, so I also sent him the questions that were suggested by Indiecade to explore the game.
I also contacted Michael Toy, whom I know but I’m not as close as I’m with Glenn. It was a blind shoot hoping I could get some useful info since I know he’s a busy person.
I got some answers from Glenn!
If your life were to be a short film or game, what would it be like?
If it was a movie, it would be a road trip movie. One of those comedies where lots of funny stuff happens but there is a poignant lesson to be learned.
If it was a game, it would be a cooperative game where no one has to lose, and where exploration is rewarded.
If you could pass on some of your wisdom to future generations in a time capsule, what would it be?
In the end, only kindness matters.
What would you say is the most important lesson you ever learned?
Whenever I say anything, my goal should be to communicate information. It should not be to elicit a particular response.
If I am choosing my words carefully, it should be with the goal of being understood, not with the goal of either causing or avoiding an outcome.
If I am trying to cause a particular response, then I am being manipulative; If I am trying to avoid a particular response, then I am allowing myself to be manipulated.
How others react to what I say is not my responsibility.
and how did you come to learn it?
Well… the short answer is “the hard way” 🙂
I would say that, without malice or cunning, I fell into a habit of doing the opposite of what I state
above, without being conscious that that is what I was doing.
This ended up causing significant heartache for myself and for some others that I cared about, and once
I realized what I was doing I set about trying to live my life as described above. It requires
constant mindfulness, it does not yet come naturally to me even after many years
Lots of food for thought!
I also got an initial response from Michael Toy, to whom I had let know just the idea of the game and nothing more.
I want to exaggerate the UCSC basement where the computer is into being a dungeon… Not sure what to populate it with, maybe rats? 😃
Definitely Banana Slugs somewhere in the dungeon, UCSC mascot animal.
Maybe they’ve become hyper-intelligent and are trying to take over the world?
After refreshing his memory with a picture from Glenn’s archive, he revealed even more useful info
That’s an 8080-based microcomputer on the left (that I built myself from a kit), and a UCSD Pascal P-System in the middle, and then the ADM-3A which is how you’d access the UCSC computers. I don’t remember why or how I had the P-system.Michael Toy
So, with all this info and still confusion in my head, I went ahead and cloned the JSRL template, it was time to start coding.
I got development rolling at last, creating some static maps of Glenn and Michael’s apartment in Santa Cruz, California, the Streets of Santa Cruz, and the UCSC Campus. This included creating the first tiles for the game, based on Kenney’s 1bit tileset.
Glenn is curious about what I’m going to do with the answers he gave me, but it’s not yet time for the reveal.
Since I figured I would be adding some non-trivial static maps, I decided to invest time in tooling and create a workflow to plot the maps in tiled and then load them into the game (candidate for inclusion in JSRL).
This allowed me to improve the existing maps greatly. I also included an additional level for the “dungeon” (actually the basement of the communications building in the university) and made some changes to lighting and line of sight range, so it felt a bit more “nightly”
Michael also let me know the computer they used for rogue “was originally an 11/70. There was a VAX but it wasn’t in general use.“
The biggest challenge, however, was still to devise how to make a game about being kind. I reached out to Slashware Castle’s discord, where I got some useful info from friends on the topic, as well as some references to games that have threaded this path already one way or another.
I would take inspiration from ultima 4 for kindness. If the objective is to show the impact kindness has and comunicate that, the player MUST have the ability to NOT be kind
The player MUST be tested, to see if they can be kind.
Dialogue can guide the player to be kind, and talk about its benefits, but the player must be tested.
Choose not to attack aggressive enemies, choose to take debuffs and permanent negative effects in favor of an NPC (like in knight of the nine for Oblivion) are good examples.
I remember this quest a lot. I struggled as a person: ruin my perfect character permanently for an NPC?Stoltverd, on Slashware’s discord
The quest was eaaaaasy. making the choice? not so much
One problematic thing about kindness mechanics is that kindness is not really kindness if it’s not intrinsic. If you’re only being kind for mechanical benefit, it’s not really being kind – it’s being selfish. Not sure what to do about that in a game but I guess I would say that the pleasantness of the game should follow naturally from your own kindness, rather than being artificial, but how exactly to achieve that, I don’t know.
Maybe it would be sufficient to simply provide opportunities to be kind, with content behind them when you go that route. So many games only provide violent and selfish options that it might be refreshing just to find a robust plot line behind being good to people.LoneSpelunker, on Slashware’s discord
I decided to add events to the game where you could pick between different options, but none of these would really have an impact on the player’s in-game performance (some of them would actually make you waste time, which was the only resource you were managing to reconnect the computer on time).
The rationale behind this is I wanted the players to have virtual opportunities to be kind, to sacrifice small bits of time for other people to have a slightly better day, hoping that some of their actions in the game would make them feel good in the real world. Some of these events will also make you question whether you should be honest with the person even if you are not being nice, and how being always nice and being kind are not the same thing. Some times being nice actually has negative effects.
At least, it’s an attempt at that which I found interesting.
Some of these were pretty basic and served to introduce the player to the system (like, helping or not an old lady across the street, or reacting to a girl that splashes you with mango juice), others were based on how I thought Glenn’s life would be in the university in that moment of time when rogue was being discovered and played by many people there (like some local celebrities).
I was also contacted by VGMushroom, an audio artist, who responded to my request for audio support in the discord of the jam. He did an outstanding job in a very short time! I had to respond to his agility and proceeded to integrate the music and sound effects into the game so we could see how they felt.
There was some iteration with some of the tracks and he mentioned he was not 100% happy with the results (we wanted some that sounded MORE 80ish), but there was just not enough time 🙂
End of the day I decided it was time to let Glenn know about the project as his input would be crucial to make the final touches, that was useful since I got to add some details to NPCs.
The initial plan failed, of course, and I ended up doing some Sunday work to put the final touches on it and submit, so that I could start 7DRL the next day.
It was a family Sunday, so my time was super limited. Early in the morning, I decided to prepare the submission page including deciding on the cover image; early on I had the idea of adding something “80s California”, like some beach or neon stuff. But later I thought it’d be great to have some kind of “vinyl album cover”.
After looking a bit for inspiration, I decided to use an old self-portrait Glenn had made; sadly I only had a very low-resolution copy from the interview I did with him back in 2008 (!), but I figured it would add to the theme of lo-fi.
Late in the night when I was able to get back to the computer, I added a couple more events, contextual instructions so that it was more playable, and details such as the description of Glenn’s car from back then.
I was driving it to the shop with my last $50 to get the brakes fixed when it started to rain, and a car stopped right in front of me. Brakes failed and I rear-ended it, crunching hood and fenders. I had no money to fix it.
I had one friend who knew someone with an old yellow “Baja Bug” with fibreglass fenders. I had another friend who traded for the hood from a red ‘62 bug (mine was a 68, different style hood but I managed to make it work)
That’s why it has 3 colors. The car was called BizmarkGlenn Wichman
I also revamped the basement filling the empty spaces with fun stuff following info sent by Michael (“there was also a Control Data mainframe in the computer room, punch cards and line printers and the whole deal” ), and trapped banana slugs that were causing havoc there.
And that’s the story so far! I hope you enjoy the game, learn a bit about videogame history, and experiment a little bit with being kind.