Pandemic: Week 2

This article does a very good job of pointing out what we should have seen coming, but I disagree with the conclusion. I don’t think it takes any sort of specialized ‘complex systems’ thinking to observe the actions China was taking and realize that soon everyone would be in the same situation. I think the problem was simpler – people have a hard time imagining that the world is going to change very quickly, or that something will affect them. You see the same thing with a lot of risk taking.

https://weather.com/coronavirus/l/41.8934,-70.9117

This tweet chain: is a good summary of what it was like to experience the evolving situation at Slack, a company we and many others use for chat and videoconferencing. There is competition at Hopjump between Slack and Zoom. There are a few macbooks that won’t run Slack calls with a mic, and Zoom offers hilarious backgrounds. But we all already use slack and it removes the overhead of notifying people that the call is starting, distributing the link, etc. I suppose this is the sort of problem an IT department would solve by A) mandating it’s favorite be used and B) fixing everyone’s computer, but we where caught at an especially inopportune time when we’d just engaged an IT services provider. Let’s keep this theme of articles going. This hefty think piece puts the whole situation in an interesting perspective.

is there any benefit to reading all of this, at this point? We’re already doing what we can by avoiding all human contact. We don’t need further convincing. At some point there have to be diminishing returns. I can’t believe this week is already over.

Let’s instead talk entertainment. Nine Inch nails released new Ghosts this week, can’t wait to listen to it. Tiger King (Netflix) is absolutely bonkers, like /r/unsolvedmysteries meets /r/hobbydrama. It’s got a cast of zany, homicidal characters who are all accusing each other of larger than life crimes. I finished the cover for an EP-type thing and I’ll probably drop it next week. I finished painting another 40k miniature.

Playing a 90s web game in the 20s

The first videogames I recall playing where applets on the early web. I’ve decided to explore what I can find of these games on the Internet Archive. I’ll leave notes on how to run them yourself and where to find them so you can follow along.

The Pantheon of game sites was, more or less Alfy.com, Ezone.com, and MoFunZone.com. When the flash era hit, we got Newgrounds, Addictinggames, and ArcadeTown.

This is the earliest capture of alfy.com, from 1999. It’s not the screen I’m most familiar with, but I’m curious to see which games are present already. It appears to be constructed entirely of image maps, so we need to inspect it to find any of the links.

Tail Gunner, Javanoid, Missile Commando, Urbanoids and Asteroids I definitely remember, and we’ll certainly get to them later. This landing page from May 2000 is closer to what I remember:

I’m sure the layout is somehow janked up by my up-to-date browser, but that is the gist of it. Some websites used to be like this. The different clickable sections are sharply rasterized images. There are probably a bunch of things on here which I’ll explore later, but most of my time was spent in the arcade tab.

At just the right resolution, the utterly noisy but correct layout is evident (this is the space games section. I recommend checking these pages out; static screenshots don’t do it justice. Everything is animated. I already recognize a ton of classics just from the little portal views.

Let’s try some games. You’ll need to install the JDK so that you have appletviewer available as a command. To do that in Ubuntu, use

sudo apt install openjdk-8-jdk

In order to make these games run in appletviewer, you need an HTML file that calls them. When I run appletviewer, I get

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.audio")

Good to know that this was discussed on Usenet in 2001.

Ok, so let’s install virtualbox, download windows 98, and give it a shot!

I needed to enable virtualization in my BIOS to make virtualbox work. Also I set up the good display driver because when I tried it initially the colors weren’t right.

That old familiar sting

But the display driver wouldn’t work! The radio button sets it to the driver, but it still thinks it’s disabled. Bummer. I also tried installing ie6 with winetricks, but it was too unstable to use

I triple dog dare you

Let’s try windows XP! We’ll apparently need the JVM. In order to get that on there, I burned a virtual cd which seems to be the easiest way to get files into your virtualbox PC. And it works! At least for some of the games. Check out this one on the author’s site: http://www.javaonthebrain.com/java/warp15/

Level 1: Mean Green Virtual Machine

This had the best graphics and probably made the strongest impression on me. The green/purple stuck with me enough that it’s the base color scheme for my 40k army now.

I probably haven’t played this game in twenty odd years. Does it hold up?

Well, the graphics are amazing. The author used POV Ray to make vibrant raytraced sprites that look great even in 2020. But the gameplay… Well, it’s impossibly hard. The controls don’t work quite right, you can only have two shots on screen at a time, collisions are wonky, and it’s very easy to accidentally slam into a wall and die.

Maybe I’ll return to get some other games working, maybe I won’t. I suspect that the problem with other games is that the assets aren’t in the archive, and if a more current source could be found they’d work just fine. Also some may require newer versions of Java. I’ll leave that as an exercise to the reader. May I recommend SuperKid.

Pandemic: week 1

This is the biggest french toast alert (run on eggs and bread) I’ve seen in my lifetime.

The foundation for the lie that Covid-19 was an inevitable disaster is already being poured, and I despise it. All you had to do was watch the news and believe for one minute that we weren’t somehow special and immune to tragedy. This Op-ed does a better job of tearing down the black swan lie, so I’ll just link it.

A mass video call, now a familiar sight. It was for a friend’s birthday, but we spent most of the time talking about the pandemic.

Italy was the game changer for public perception. Last week I felt a bit like chicken little, but now everyone I know is at least beginning the process of readjusting their expectations for the short term. It will take more time for people to realize that this has changed the course of history, and pre-pandemic predictions of the future will need to be adjusted. That’s what the markets are saying, really. Our once clear picture of the future is now clouded.

I wish I’d grabbed more Goya. Anything with black beans in it was gone.

Sabrina and I are now both working from home and avoiding leaving the house as much as possible. Walks along our street are a decent outlet – I’m trying to replace my usual trips back and fourth from Kendall.

I’ve been making FTS content at a record rate while stuck at home

MELT (ELM Collective)

MELT is an anthology, and as such each track is pretty distinctive. It really pays to listen to each track closely here, as each individual artist has done a lot to make tracks memorable. The overall impression is an IDM treat with lots of delicious drum machine rolls and synths you can really sink your teeth into.

Dracul starts off the album on a strong note with metallic beats and an iconic synth melody.

This track has a couple of particularly well-executed change-up. It plays in a bunch of space that you usually wouldn’t hear in an IDM track. Lots of different sounds playing short sections of a melody in turn, chopped vocals, and other excitement.

Not only is this track great, but it introduced me to Iconic Black Suit who has a deep catalog, including Bionic Eyes Won’t Cry.

Ridebreak absolutely nails the Hangable Auto Bulb drums, but just as you think that’s all it’s going to be, it launches into this awesome soaring videogamey melody that carries the rest of the track. It took me a few listens to get into it.

Pandemic: Week 0

We watch and read the news, so to some extent we knew it was going to be bad. The people who tell you not to worry about things told me not to worry, but this time, I ignored them. We stocked up on food, cough medicine, electrolyte-water, and yes, all-important Toilet Paper.

On Wednesday night, our CRO called it on slack-Hopjump is now working from home. This was in advance of the threshold that E-Staff had previously set, and a very welcome proactive move to flatten the curve. This will be an adjustment for all of us though. I’m going to try and maintain my routine-when I would be on the train I’ll keep working on projects or music or what have you.

State Street still still hasn’t called mandatory WFH yet.

Over the course of the week, the state of mass rolled out measures. In the span of a week we got a state-level state of emergency, a national state of emergency, schools closed, gatherings limited to 25 people. You can get details here. Food is take-out only. It’s been odd to see policies evolve so quickly. I wonder if the idea is to slowly introduce the policy to avoid a panic or if the situation is really evolving this quickly. We knew since the Biogen conference that it was here; why not take a crisis stance immediately?

The biggest difficulty is accepting that this isn’t a blip, this is something that will be with us for a long time and is going to change the course of human events. The futures we each envision for ourselves and our families need to be revised, and I worry that we’re paralyzed by that process. A slow-motion version of the deer-in-the-headlights effect.

So don’t wait. Don’t wait. Distance yourself from others. Flatten the curve. It seems risky and uncool to defy those who would tell to just keep going like nothing is wrong, but this is one of those moments where you need to listen to the doomsayers.

PAX East 2020

On the eve of the Covid-19 Pandemic, with the stock market tumbling, hundreds (thousands?) of game fans breezed into a convention center to try some new stuff, purchase apparel, and frequently use hand sanitizer. It was everywhere.

Image
There’s something sinister about the rise of Discord, but I can’t explain why yet

Thursday was far better than Saturday, so definitely go then if you can. I was able to play far more games, and the boardgame tables where much easier to navigate.

Exciting New Games

While speaking to the creator of BlazeSky, I name-checked Escape Velocity and he knew what I was talking about. But the more I look at it, the more it looks like Empty Epsilon/Artemis. The different styles of play (rescuing people, combat, exploration, etc) are represented by different characters who give you quests, which is a neat approach to writing storylines. I found the banking camera made it difficult to reason about where my shots where going, and I hope that at launch there’s an option to keep the camera steady while the ship turns, but even if there isn’t I’ll probably play the hell out of it.

Another game that was physically demanding just due to its camera was Sludge Life. After you fight through its extremely elaborate recreation of a 90s desktop interface you’re dropped in a colorful, heavily distorted 3d environment. Very Getter: Headsplitter. The distortion (I think the vertical FOV was unusually high or low or whatever) was jarring and slightly dizzying. I predict that this game will be a stoner-hit of Rez proportions. Devolver is playing in the same space as Adult Swim here.

Watched some people play Dunk Lords. The world is ready for strawberry-headed athletes. You could dismiss it as Space Jam: The Videogame but stripped of its bizzare branding, the concept of cartoony basketball feels pretty novel. Sports games that attempt to simulate a sport (like EA’s catalog) or Be a sport (like Rocket League) aren’t my jam, but using the basic rules of a sport to do something unique or new definitely is.

Watched some Panzer Paladin play. There was an enormous reproduction of the cover art, standing out against the crowd. Makes me wonder what the differentiator is. It looks like a Gameboy Advance game (specifically, it looked like Metroid) to me, and though the mechanics where cool and smooth, I wonder who’s buying enough copies of this to justify an enormous booth at PAX. What’s the differentiator. Are they just striking at the right moment? Is it the great Anime art? Am I not enough of a sidescroller fan to understand what the difference between it and AVGN Adventure (which we also demo’d) is.

A radically different sidescroller with very clear differentiation was Carrion, a game where the avatar resembles the blob monster from The Thing. I’m not sure what the gameplay is besides sliding and swinging around an industrial environment and eating (?) the little NPCs that run from you.

If you’re itching to play Star Citizen but don’t like social interaction or having to hire an entire clan to operate your large spaceship or pass flight training to join an org, and also want a game that’s finished, I unfortunately can’t recommend Everspace II yet, because it isn’t finished either. But what I did play compared favorably to Star Citizen, and I venture to say that it’ll be done far sooner. The vision of space was colorful and dense with things to explore and tractor beam into your ship.

I also got a chance to demo Brigador Killers. In addition to the stompy robots seen in Brigador, you get to play as an infantry suit or a giant floating wrecking ball. The controls are also slightly different – rather than absolute direction, your WASD controls are now relative to the mouse. It took some getting used to, especially with the wrecking ball.

Parting Thoughts

Check out the screen attached to this expensive of a gaming PC. I’m not sure words will do it justice, but if you’ve been here, you know.

Image
The dreaded launcher update.

I also demo’d a Cookie Clicker clone which I won’t name to protect the guilty. It pitched itself as being about the development of life from molecules to technological singularity. However, in reality it is a cookie clicker clone, the meta of a game (buy stuff on a tech tree to augment your abilities) without the actual gameplay (you score by just tapping the screen. Anywhere on the screen. I wondered again what the filter was between successful games and trivial games. Was presence at PAX a marker of success or a desperate gambit? I told myself I was done with the game, but then I reached down to the tablet and tapped it a few more times.

Unrelated image of a book that was on sale at the convention

Notes on the BattleMETAL soundtrack

BattleMETAL, the big-stompy-robot game was recently (finally) released! It’s been in development for quite a while now, and most of my involvement (beyond repeated testing and sharing opinions about gameplay) has been doing the soundtrack, so here are some fun behind the scenes facts. I wrote these tracks between 2016 and 2019 starting with Predator and ending with The Matock. Unless otherwise noted, I did the tracks in Reason.

This is probably the best track on here, owing to something resembling a coherent melody. Sort of reminds me of something The Knife would write (not that it’s as good as theirs!) That line is one of the few places where I actually used a bitcrusher… under all of that, it’s a u-he Tyrell. I never did get that synth to work properly in linux, and you have to download it from a German magazine to get it, but it’s nice. The rest (and by that I mean the phaser’d Monopoly, the default synth for this project) are heavily influenced by Frank Klepacki’s classic Bigfoot.

This track was written in a fairly meandering way, I had a pretty good idea the opening (the initial delay’d up drumbeat and bass) and ended up just sort of adding pads and sequences to the end of it until it was long enough. The lack of music theory really shows on this one. Like most of the tracks here, it uses Cheetah MD16 samples and (believe it or not) the 3rd demo preset for Reason’s builtin convolution reverb.

This is my first attempt at a synthwave track (if you don’t count Conniver, which I don’t, because that was more of an industrial thing.) There are a lot of preset arps going on here, and it’s the only track that isn’t using the signature drum palette. A version got re-purposed from its original form to serve as the trailer track when BattleMETAL was in its early stages (complete with samples of the EarthSiege trailer boasting of “Exquisite Texture Mapping.”)

I know this track isn’t the most musically challenging, but I actually still find it pretty compelling. It’s one of the early ones. The lead is a Charlatan, which was one of the synths I was most excited to explore when Reason finally added VST support. You can hear me tweak the settings over the course of the track-I love doing that sort of thing. Unfortunately, this was the only track I’ve managed to complete with the synth, because it keeps crashing now. For the pad, which I think I did an especially good job on, I used eXpanse which was the first wavetable synth available in Reason as a Rack Extension (about a year before we got VST support) and enabled a whole new world of sound design for us Reason diehards.

One of the more recent tracks. It’s using Viking for the bass again (which means, oddly, it sometimes skips a beat… listen for it, you’ll hear it in Predator too) but reflects my newfound confidence in making melodies in step sequencers. In fact, I think I did most of the sequencing in this track with the ABL3. The funky sequence that comes in at the end is especially fun. The Balakett is all about speed and the Monitor is all about raw power, to win with the Matock you need to dance. I also want to call out the ES-01 rack extension as an extremely underrated and great sounding softsynth. Love that thing.

I’d like to say that the lack of a melody in this track is meant to reflect the soulless nature of the PSC character and its total monomania around the extinction of the planet, but then I’d be giving myself way too much credit. This track is “meh” and I should feel “meh” about writing it.

The patch for this started out as the “Acres Of Glass” preset for Europa. I’ll always enjoy tracks that are just me playing chords for five minutes, really puts you in a good place, even if the chords are gloomy. The voice talents here include Pete (“Punching out!”), Sabrina, The Conet Project, and Techno Ejay (if you can find that one, I owe you a cookie.)

The Balakett (Bonus, so no embed apparently)

This didn’t make it into the game, so it stays as a bonus track. It’s also the only track I made with Renoise (you can probably tell from the drum wankery in the middle.) It was intended for the post-mission screen, but it’s altogether too cheerful for the apocalyptic tone of BattleMETAL. It’s using the ob-xd synth, which I’ve found to be excellent. Also, in classic Renoise beginner fashion, it ends with an extra block of the last note just stretched out forever. oops.

Overall, the experience was a fun one, and I expect I’ll do something similar again someday.

Tracks of the year: the 10s

End of the decade which we never did agree on a good name for. Time for some reminiscing through the lens of music! A millennial coming of age story.

2010: Arcade Fire – Deep Blue

One of the first bands I learned about from friends in college. One of the first albums I burned to a disc and blasted while driving around on my own for the first time. When I feel like listening to a single song from it, more and more I’ve been drawn to this track. I think it shows off the melancholy and nostalgia of the record best. Arcade fire often sings like something very bad is about to happen, and this track is a great example.

2011: Power Glove – Nightforce

While the EP was released in 2013, this track was definitely out in 2011. It was my introduction to the neon-drenched world of Synthwave, and really holds up in a way that I’m not sure a lot of early Synthwave does as far as production goes.

2012: Carpenter Brut – Escape from Midwitch Valley

For me, this is what took Synthwave to the next level. The EDM/Dubstep noises, including that heavy bass, made it feel fresh while staying in the realm of retro. I ended up seeing Carpenter Brut in concert in Cambridge at some point, and it was a wild show. The first three EPs by CB are a different style though – more studio-y, less band-y. Notice the use of samples in this and the Power Glove track.

2013: Megadrive – I Am The Program

I was well into Synthwave at this point, so in this period I was listening to a lot of Mega Drive et al. I probably spin 198XAD more, but that was partly informed by how much I listened to Mega Drive in 2013! However, after I graduated and found myself in a quiet office and needing more tracks to spin, I found myself reaching out to find something new.

2014: Aphex Twin – XMAS_EVET10 (thanaton3 mix)

I got into Aphex Twin shortly before this record was announced.* His cannon was established and all we could hope for where maybe old tracks (like Caustic Window) being dropped someday. 2007 was the end date, the pinnacle of the artist’s career. So imagine the hype when you’re not only getting into IDM but now the big name is going to drop something new and bizarre? The hype was matched only by how good the actual record was. The whole thing is brilliant, but when I reach for one that exemplifies it, I tend to pick Xmas Event. The way it progresses through different melodies and moods really shows off RDJ’s skill as a composer.

2015: Squarepusher – Exjag Nives

Squarepusher spent most of the ’10s mixing modern EDM electro and dubstep sounds into his jazzy dnb. Some of it can be challenging to listen to, but in Exjag Nives he hits it way out of the park. The intricate layers over a simple melody, the epic feel, and of course the really cool use of breaks (befitting a longtime break-master like Squarepusher) make this track stand out over similar works. Also, 2015 is when I started my ongoing game project, flythrough.space, though I didn’t publicly post about it until 2019. I started the thing with babel so I could use ES6, but now browsers have caught up. How long is too long for a dream?

2016: Brainwaltzera – marzipan rhombus [birthday eDit]

Back in 2015, Aphex started posting a bunch of tracks on Soundcloud. Like crazy IDM dominoes, this brought people out of the woodwork to post there too, and that continued for a while afterward. One account that ended up getting posted on WATMM threads was one Brainwaltzera, and that’s where I heard this absolute gem of a track. It’s emotional and quiet and enigmatic without sacrificing the cool factor of a big fat synth line cutting right through the middle of it. 2016 was an exhausting year, and this was the perfect track to unwind to.

2017: Rognvald – R.O.G.N.V.A.L.D

I’ve been listening to Jungle/DnB since I was introduced to Pendulum back in the 00s, so this tickled my fancy. It’s got less of a modern Methlab type sensibility though, and more of an IDM sensibility. Plus it just jams really, really hard. It was a favorite for spinning at the gym back when I would walk all of the way from the Kew office in Cambridge on the river to Watertown. A few times I even walked all of the way home to Brookline. We took one last walk there, up down Beacon street, all the way from Cambridge, through Boston, to Brookline. It was bittersweet.

2018: The Sword – Deadly Nightshade

This one takes me back to making night trips from our apartment, carrying a wagon-full of stuff down to Millis when we left the city. I spun this in the car and even one time in a U-Haul Pickup which had bluetooth and a speed governor of some sort. Sabrina surprised me by driving us down to a concert by these guys without saying who was playing. They absolutely rocked it!

Bonus: 2018 is when I released Axe Factory, here’s my favorite track from that:

2019: Ruby My Dear – Babil (Alternate Take)

This is one of my most played tracks of 2019, and with good reason. After an ep of mostly spooky ambience and the occasional jump scare, this track takes you for a ride with its driving bass almost immediately. When selecting a track for 2019 though, I found myself asking “what did Analogical force release this year? Analogical force has been absolutely killing it with a string of releases in ’18, ’19, and now even one in ’20. The same can be said for Ruby, My Dear – top notch stuff on Altair and Basic as well as Phlgem. This track is heavy and dancable, but contains plenty of the fiddly little details that I love so much, so I’d call it my overall pick from RMD’s ’19 releases. Maybe the focus on labels and artists I already know is a sign that I’m becoming set in my ways, that I’ve narrowed my focus to variations on similar themes. I sure hope not. Happy new year!

* my first exposure was Flim as used by the WNPR show Where We Live. I probably watched CTD and Windowlicker when I googled that, but those didn’t make such a big impression. That would have been sometime in the early 00s, so out of scope for this article! I listened to WNPR quite a bit back then so it was deeply embedded in my head. I’m sad to hear that John Dankowski recently left the station.

Feedback for the JIRA team

I got JIRA’s automated customer satisfaction quiz today. I got carried away with my response, and I thought I’d share it. Out of seven, I called Jira’s “ease of use” 1. I’ve cleaned it up (slightly) slightly for wider viewing.

Jira’s fundamental flaw is its awkward user experience. It gives you enormous power to customize your workflow, but all in the form of discrete, non-uniform and definitely not orthogonal tools. Each customization tool needs to be discovered/found and learned separately – except for a few (very good!) shared notions like JQL you have to teach them to yourself from scratch. The mass-edit stories flow is a great example: it in no way relates to the rest of your interactions with the board, it’s just a bunch of menus. I mean seriously, you guys are one of the biggest names in Software Development right now. You’re making professional tools, but that does not mean they have to be a drag to use! Overall the interaction with each bit of Jira feels independently evolved rather than designed. I’m not saying that you should replace every flow, but as you add new ones (and you are adding new ones – Jira is totally different now from when I first used it in about 2015, and it’s much better!) try to have a uniformity so that knowledge of how to use one can transfer to the others.

Unlike, say, Grafana, where you can save, load, share, version-control and ask intelligent Stack Overflow questions about your graphs because they are actually saved in text form, Jira is entirely (as far as I can tell) UI driven and Database-backed. It’s very hard to google how to do things or find instructions because the things you’re looking for aren’t always labeled, or are very small text somewhere hiding in a menu. Having ‘source code’ for all customizable features (and I don’t mean writing extensions, I mean, for example, the configuration of our board or card layout!) even if it was reams and reams of gross XML, would be preferable to the current state of affairs. JIRA’s customization is its strong suit, but these customizations are difficult to share and communicate even with other teams within our organization, to say nothing of finding good tutorials.

At one point I was like “I want to make a new graph” so I go to the graphs page. No “new” button. I want to add a custom filter, so I go to the custom filters and didn’t find a new button. I’ll admit – I’m a total neanderthal when it comes to modern web UX. However, it seems to me that if you’d like to change or add a thing, the option to do it should be right next to the existing things. This principle applies to the backlog view, for example – if I want to create a story, I can click on the end of the backlog. Or inside a sprint. Or also the “+” icon which is inexplicably located in the navigation menu on the left. If you need a video to communicate how to use a thing on a computer, the thing isn’t easy enough. I would suggest that to broaden your reach, you should do most of your UX testing with people who haven’t become acclimated to Jira’s way of doing things. Jira is 100x more powerful than Trello, so why do I still see people using Trello? Because although you can’t customize Trello to do everything, everything it does do, it does fine.

Don’t just be Pivotal with more customization or Trello with more features. There should be a right way to accomplish things, the right way should be obvious, and it should be easy to communicate what the right way is to others, or apply that right way to other things. I’m counting on you fine folks.

FlyThrough.Space: Alpha Release

I’ve been sitting on this project for way too long. Doomed the project by not soliciting feedback early enough. Failed to heed the warnings of Agile. Kept coming up with reasons not to tell anyone about it, promising that I’d make it public after I added just one more feature. But I think there’s enough that people will be at least intrigued. Or annoyed. The point is that they’ll feel something. I’d be interested to hear any feedback on what’s there and which planned features you’d find most compelling or what would make you likelier to make a mod.

TL;DR: Code Here: http://github.com/eamonnmr/flythrough.space

Play Here: http://flythrough.space

Neat Features:

  • It’s written in Vanilla ES6, only depends on one library (the Babylonjs engine) which is included, so you can hack away on it to your heart’s content without setting up any sort of development environment. Just open up the files, edit them, and host them (locally)
  • 2.5d perspective in a full 3d engine with 2d sprites for planets and projectiles, and a 2d overlay on top.
  • EV/Endless-Sky-esque with the ability to trade cargo, purchase a new ship, add weapons, and do battle in asteroids-style high-stakes space combat. Arrow keys to move, left control to shoot. The default weapon may run out of ammo though!
  • Visible weapons on ships. It’s a capability, even if I haven’t added bones to most of the ship models to take advantage of it. If done right I expect it will be super immersive.
  • Original, handcrafted (unfinished) universe to explore. For all of you fans of non-procedural-generated worlds.
  • Open architecture allowing for radical gameplay changes and a totally data-driven model.
  • Press ‘Escape’ to see the star map (bug: drag it around if it does not show up right away). Select a system, exit the map, and press ‘J’ to jump to that star system. You can only see explored systems and systems linked to them, which won’t be very many at first, but there’re lots out there to explore.
  • Press ‘L’ to select a nearby planet and ‘L’ again to land
  • press ‘`’ to select the nearest other ship
  • Select “open contracts” after landing for random cargo missions

Planned Features (don’t count your features before they ship):

  • More missions/storylines.
  • Save and restore game. I’ve got it set up to save and load from local storage, just need a menu to select your save. I didn’t set out to make a roguelike.
  • Secondary weapons. Right now when you pull the trigger, everything goes off at once. Also a prerequisite for stuff like carried ships.
  • Beam-based weapons. Need to add a beam collider to the collision system. Explored adding a real physics system but they’re mostly overkill for this type of game; writing a beam/circle collision system may change that. It would also let me implement anti-tunneling for projectiles (collide a line segment between the previous position and the current position.)
  • Decide what to do with ai leading. You can switch leading on and off with querystring ?ai_leading=basic which will make the AI try to lead its shots. But it uses a basic approximation so it still misses a lot.
  • Turrets. Getting the math, blender export/in-engine-use toolchain set up to make visible turrets on ships has proven frustrating. Some of the code is there but it would take a not insignificant amount of work to finish. Which is probably why I keep putting off…
  • Starfield. Will have to probably do this by hand with star sprites.
  • Nice ship models with textures! I’ve been cranking out kinda lousy models as programmer art (thinking that the final art will maybe have different constraints – visible turrets being a big one), but someday it would be cool to put some more effort into it. Hampered by the fact that I mostly work on this on a train so I don’t usually have room to use a mouse.
  • Sound. There isn’t any. I just haven’t gotten around to it, I can’t imagine it’ll be too hard to throw in there.
  • Escorts/Carried Ships. The AI and collision systems are set up for it, and some recent refactoring has probably opened the door to it. Just takes some doing.
  • Board/Plunder/Capture-this just needs some doing, but shouldn’t be a huge technical hurdle.
  • Demanding tribute/galactic conquest/planetary destruction – would require a bit of additional work, but not much. Unclear to me if this is a feature people really want.
  • Zoom in / out: Just needs the controls rigged up to do this, but it’d be kinda cool (right?)
  • The GUI could definitely look a lot nicer, and the code could probably be cleaner. I’m not a graphic designer.

I plan to keep hacking away on it at the slow-but-mostly-steady pace that you can see from the (lengthy) commit history. If you want to play a complete game now, this isn’t for you. But if you’ve always wanted to hack on an EV clone but the other ones where too intimidating or weren’t 3d enough, maybe this is your ticket. Will definitely check out any Pull Requests (or, for that matter, emailed diffs) that come my way, and I’ll try and do a walk-through of major interesting bits in the code in future blog posts. If you’re still reading this far down, you are the target audience! Let me know what features you would like to see most, what would make this project compelling for you to use/fork, or what utterly repulses you about it. I’m all ears.