Flythrough Space: Beta

It’s been a couple of months since I last wrote about Flythrough.Space. It was the first time I ever got any feedback on the project from people who understood what I was going for, so it was pretty informative. I had productive discussions about perspective and (as I’d feared) overlapping 3d models are a bit weirder than overlapping sprites.

In any case, if you tried it before and thought it was rubbish, you might as well give it another try because it’s radically different, at least in appearance. Go to the settings menu and try out the different options. Message me if you want cheat codes to try different ships (or figure it out from the source!) When in doubt try resetting the settings or refreshing the page.

New Features:

  • Sound effects. Pew pew, etc.
  • Anti-tunneling collisions. Players complained that it was hard to hit stuff; this was partly because of a well known problem called collision tunneling. I bit the bullet and ported over a line collider, so now fast-moving shots should connect more frequently.
  • Implemented a settings menu so that as I started to add GPU and CPU hungry effects I wouldn’t leave people (or my own laptop) behind. It’s slightly jank so I recommend refreshing the page after you leave the menu to make sure the settings take effect.
  • Guided weapons.
  • Asteroids! Mine them for fun and profit! Blow the metal (orange) ones into very small (hard to see) pieces and scoop them up by flying over them. Then go to a market and sell!
  • Lighting effects. Though each star system could already define its own lights, now ship explosions cause a flash in addition to particles. I was reading The Dark Forest and the descriptions of space made it necessary. Also shadows are in but don’t work very well.
  • Piracy! You can now plunder disabled ships for cash and cargo. Press ‘B’ when you’re close to a disabled ship.
  • Starfield. Classic space videogame effect… it lets you see where you’re going. Got some good help on the babylonjs forum with this one. I originally tried to build it with a shader, but gave up and did it with a massive number of sprites.
  • Perspective (or, well, the camera looking at your ship from an angle) is now optional. If you prefer your space-shooters to be top down (because planets getting bigger and smaller is disorienting, for example) you can have that now. An ortho camera proved to be not quite what I wanted, though it would still be cool if combined with a vertex shader that applied perspective to individual objects, to better achieve the look of a sprite-based game but with the lighting benefits of a 3d engine.
  • Impact Physics! When you hit stuff, it gets pushed!
  • Zoom! It became too hard to debug weapon placement without it, so I added it in. Use [ and ] to zoom in and out.
  • Beams! Take an XIC Prospector or drillship out for a cinematic experience.
  • Textures. Ships have them now, including an (optional) glow effect around emissive (self-lit/glowing) bits which I think look pretty cool. Each model has multiple (per-faction) skins which are easy enough to palette swap and add more.
  • Fixed various bugs, including making the map show up right away when you pause the game (now you don’t need to drag it) and explosions now show up reliably.
  • Particle effects everywhere!
  • Every item (ship or upgrade) should be available for purchase somewhere. There’s no notion of unlocks, you just need to get enough cash and drop by the right stellar object. There’s now a test which enforces this!
  • Trade routes. The trade system is still a bit confusing, but the fluff text should direct you to some decent trade routes (or some very lucrative ones, if you are willing to brave pirate infested space!)
  • Alert text at the bottom to tell you, for example, that you’re too close to the system center to engage your sidereal drive (jump to another system.)
  • Optional ‘arcade’ mode where shots don’t inherit velocity from the things firing them. Should make hitting stuff easier. I think it matches the behavior of other genre games. I don’t like it very much myself, but that’s why it’s a setting.
  • Carriers can launch fighters! They don’t do anything particularly clever yet though, they just use the normal AI for the most part. Q to launch, (hold) R to recall, F to attack your target.
  • Saving and loading, so your progress isn’t erased every time you land on the page. Like settings, for now saves are using local storage. You can also upload or download a save file from the same menu.
  • Pause button now takes you to the main menu; press ‘m’ for map and esc to return from the map. This means I don’t need to debounce map button presses and as a result it’s less janky.
  • You can now see which systems are mission destinations in the map, even if you haven’t explored them yet. An orange circle around a system indicates that your mission is there.
  • Code changes: Entity manager is now a singleton, so I should not have to pass it around everywhere. Refactored the HUD into individual widgets. Ships can now inherit from other ships with the “extends” property, which should cut down on clutter in ships.json and make nova-style ship variants much more possible. Input is a lot less gross.
  • Control changes. Using CTL as the fire button wasn’t feasible on Mac. Same deal with +/- for zoom.
  • Data Changes: Cleaned up terminology for factions so it should be much easier to read the data files.

Where we go from here

So what’s next? Well, I’d really, really like feedback. Yelling into the void is less than satisfying. I’d like people to give the game a spin and tell me how horrible it is. One thing I’m especially concerned with is making sure the ships feel right – not too quick, not too fast, not too slow. The weapons could also be a lot more balanced. The biggest improvements to the game at this stage will be all about tweaking the numbers. Nothing would delight me more then someone downloading the game and trying out different tweaks to see if they can find the fun. Yes, I realize that this would ideally be done in the prototype rather than the final game but hey, not all projects can go perfectly.

What do I still want to add? I’d like to fill out the galaxy with more planets and more NPC placement. If anyone wants to write planet descriptions I’ll do my best at editing. A lot of the Loyal Suns, League, and a bit of Freehold territory still needs attention. More diverse asteroids would be cool too. As far as big code features, well, fleets are a big one. More missions would be nice. A more in-depth hailing system to allow planetary domination would be cool and give the game more of an end-state. Also, the AI is full of bugs and would really benefit from the level of unit testing I’ve applied to player.js.

I may take a hiatus from development for a short while, or I might not. I keep telling myself I’ll try to work on another project, but I keep coming back to FTS.

Never will I ever (Pandemic: Week 9)

Having tons of time to fill can show you something about yourself: what will you really get around to? What, given unlimited time and boredom will you still never do or try?

Things I did do:
Painting 40k miniatures
Working on
Messing with Godot
Boardgame (especially Machi koro)
Doom Eternal
Heroes of the storm
Deep Rock Galactic
Try to run old Java games
Obsess over the Cosmic Frontier Kickstarter

Things I did not do (yet)
Painting battletech
Setting up a 3d printer
Getting into emulated games
Get up to speed on modern C++
Exploring the small internet
Hardware synths
Brewing beer
Sewing masks
Playing all the unplayed games in my Steam library

It’ll be at least three more weeks before this experiment ends, so

*Except as a home for our food horde

Pandemic: Week 8

We have a tentative back-to-the office date now: June 8th. That’s the best case scenario.

It’s finally official-we’ve got an alternate date for the wedding in October.

This has been an exhausting week, so I’ll just leave you with a smattering of links.

Pandemic: Week 7

Lucky number 7. We successfully flattened the curve in Mass, avoiding hospital overcrowding. The fight is far from over, but it seems like the horror of Lombardy will not be visited on us. As long as we stay inside. Meanwhile New York was devastated and some places are already opening up. The uncertainty isn’t over, and there is no new normal yet.

Making exciting amounts of progress on In order to get fleets into the game I’ve needed to do a bit of refactoring, but it’s actually been very nice because everything player-related goes through the PlayerSave object so as I hack it up I’m also adding unit tests. I probably should have written them a long time ago, but the second best time to write tests is right now!

We’ve had a couple of mercifully sunny weekends to bookend the dreadful rain so we’ve been making great progress on our project to clear the vines and pricker bushes out of our yard. The vines are Bittersweet (we think Orbicalatus) and have already brought one tree down. We’d like to prevent it from taking the next one down too. Be somewhat cautious when fighting with bittersweet vines-many of the scratches got alarming (though temporary) reactions. Speaking of trees, the town took down a tree in our front yard that had enveloped some power lines and that might be the most exciting thing that happened all week.

Pandemic: Week 6

Are we nearing the end? It’s a bit of a time of suspense – will the quarantine end soon, or are we in for another month or two? Uncharted territory.

Had a really fun DnD session via Zoom. I guess it’s finally time to make the jump to 5th edition. They really streamlined the Wizard class. We’ve also been taking long drives to nowhere.

I’ve been making really rapid progress on I expect to do something resembling a release soon. I’m not sure when I should call it done. There’s certainly more space to fill out, more balancing, and, like, sound. But Plunder, shot impacts, and other real game features are in. And I seem to be nearly done with ship models, leaving only some tidying up and shot models to go.

Digital Native: workflows

Made in Renoise with a Monologue sample, the same Cheetah drumkit I used for BattleMETAL, and an Ob-Xd. Mastered in Reason.

I wrote the melody in Reason (sequenced on some ABL-3s, played on Manis Iteritas), exported each measure as a separate file, then imported them all into Renoise and painstakingly sequenced them back in order so I could write drums on top. Then I exported the tracks, put the drums back into Reason, and finished the track. This took quite a bit of time but the results speak for themselves.

Sequenced entirely in reason, with mouse-edited drums and mostly ABL-3’d synths (starring the TAL-Bassline 101).

ABL-3s driving Manis Iteritas again, except this time the sequences where random! I let the machines go and automated the whole thing in one epic train ride into Boston.

Pandemic: week 5

The Culprit

This week got interesting. 60mph winds took down power lines and left our street (along with hundreds of other people in New England) without power. I remember how safe we’d felt when we stocked up. Having to throw away so much meat that had spoiled was painful, as was having to go out again, as was having the illusion of security shattered.

This week we, bizzarely, saw protests demanding an end to the lockdown. They appear to be AstroTurfed.

Pandemic: Week 4

We’re in the shit now. People I know and family of friends are starting to test positive. I imagine that this will be a difficult spring. Horror stories are coming out about what it’s like to be on a ventilator. Send a letter to your grandparents.

I can only speak for myself, but any attempt to suppress my vote this November by disrupting the USPS will be unsuccessful.

Pandemic: Week 3

This is where we started the week, giant tent hospital in the middle of central park. Vigilantes locking people in their homes. Some are still flagrantly violating the quarantine order but as evidenced by video of empty streets, it seems that most are complying. More people in the US have died of Covid then died on 9/11.


Scott Aaronson wrote a very strong Mean Culpa regarding his initial reaction to the outbreak. I’d like to see more of these. Here’s mine: I totally bought into the propaganda that masks don’t help. They obviously do and I’m a contrarian idiot for arguing even the most watered down version of the anti-mask position.

In the context of private industry being praised for it’s response to the pandemic, this article is very interesting, showing how the medical device industry utterly failed to produce the ventilator stockpile that we now so desperately need. We needed a Manhattan project, we got a OICW program. Speaking of utter failures, this opinion piece by the Boston Globe clearly lays out the case against the trump administration.

We’ve run out of Bananas, beginning our slow crawl towards needing to go out and get food again. My worry is that we’ll be unable to stock up for longer then a week again and be forced to return to the grocery store too frequently. I’m hoping that the panic will have turned to a grim march by that time. We shouldn’t need to go out and get food until next week.

I can’t believe we’re three weeks in. It feels like just yesterday that I was back at the office. I keep telling myself that I’ve adjusted well, but I’m not so sure.

But hey, I released Digital Native, a collection of tracks I’m extremely proud of. I also published (on this blog) my essay laying out the case against fan remakes.

Don’t remake an old game

I’ve seen this way too often. A flashy trailer, some assets, a community project, a feverish dream at reclaiming the glory of games when they seemed new to you. I have made this tragic mistake, but you don’t have to. No matter how much you want to, do not pick up a 20+ year old video game and start trying to make a remake (in Unity! In Unreal! In Godot!) I’m not saying that you will fail, but I’m saying that you probably won’t get what you want.

You won’t get the IP

In order to use the name “Your Favorite Game” you will need to purchase it from the existing owners. If nobody is producing sequels it’s probably because the IP holder has chosen not to. You will not be able to contact the IP holder and if you manage to, they will not sell it to you. If they do offer to sell it, it will be at a price way outside of your price range. If you wanted to purchase it at that price, you’d need to take out a loan, you’d need a business plan, and the project would very quickly not be fun anymore. You could also just sort of not quite use it and hope that the IP holder does not decide to shut you down. But getting the name is extremely important, because the path is littered with other semi-remakes that didn’t use the name, and you didn’t like any of them. Somehow, none of them had “it” because you’re still looking at remaking the old one, not playing someone else’s remake. Will you fare better?

The myth of fans

But I have a ready-made audience! You cry. Except you don’t. Videogames are massively more popular now than they were when Your Favorite came out. The audience for games has increased in size but the number of fans of Your Favorite has remained constant. It might be because genres have moved on. It might be because other franchises took up the banner. But the number of people who potentially enjoy The Remake is actually much smaller than the original fanbase was. Some people will have drifted away and don’t care anymore, some have probably moved on from gaming. Some may never have existed, because you don’t know what the sales figures are for Your Favorite and it was released before social media and steam statistics so you can’t really be sure what the size of your audience is. What about the number of active posters on the discord/reddit/forum where people desperately wish someone would finally come out with The Remake? That seems like a reasonable proxy. Go find this number (I bet it’s less than 100, but you may have better luck.) This is likely to be the maximum number of people who will care about The Remake. If you still want to embark knowing that you’re working for that audience exclusively, read on.

The myth of memory

So your intended audience is the people who are still online right now clamoring for The Remake as they have been since Your Favorite didn’t get the sequel it so richly deserved. But these will also be your harshest critics. Like you, each individual who played Your Favorite had an idea of what the game was, but they’ve each had twenty plus years to elaborate on that idea, and these imagined games have diverged. There will be a multitude of conflicting expectations which will mean that you cannot possibly satisfy them all, or even most of them. Indeed, because they (and you) have had years to embellish this imagined sequel and for their expectations to diverge, it’s possible that no game will satisfy them-no game will ever live up to what they want. The Remake may not have a ready-made audience, but it does have its first and harshest critics. But surely new technology will allow you to wow them, right?

The myth of progress

Making games is so much easier now! Surely if I take modern tools such as Unity, Unreal, Godot, Source, Lumberyard, etc, I will be able to rebuild this old obsolete game with minimal fuss. This may be true for arcade games like Space Invaders or Asteroids, but Your Favorite is only about 20 years old, so this is a misguided attitude. The tools of game creation are very good at making modern games. If you are building a sophisticated but off-the-beaten-path project, you are as much on your own as the original creators of Your Favorite where. Which is not to say that you can’t create original titles with modern tools-just that by constraining yourself to an archaic design, you may not be winning yourself any saved effort. You’re not a wizard from the future, coming back to build a castle with magic spells… you’re pounding in nails with a cordless drill. Modern game engines have primitives for things like “guy walking around” and “wheeled vehicle.” Trying to mimic the behavior of weird bespoke setups from the time before physics engines will result in very little off-the-shelf stuff to use. Same goes for a million other quirky modes of interaction with games that have ultimately been replaced with stuff like “reasonable defaults” and “realistic physics.” You’ll be reinventing the wheel constantly. You might be able to make it look nice, but many (most?) such projects stop there.

The Right Move

What should I do? If you really want to share the joy that Your Favorite brought you, you need to figure out what it is about the game that you found enjoyable. Consider the cargo cult; to recapture the bounty of cargo drops, people (so the story goes) built elaborate fake airstrips, thinking that if they created the right conditions, cargo would appear. I see the same in remakes – “if we take the art assets (or clone them, or redo them but off-brand-enough that we don’t get sued” and keep the gameplay exactly the same, it’ll be awesome!” Don’t do this. What you need to do is break down the design of Your Favorite, and figure out what it was that made the game compelling. “Everything” is not an acceptable answer, you need to be critical. You need to think about what you can reproduce in $CURRENT YEAR and what’s an artifact of its time, like compromises due to affordances of the platform, or time constraints. You must translate those compelling aspects into your future projects, and discard the anachronisms and sacred cows and genre conventions that belong to the past. Make your own game.