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:
Music
Painting 40k miniatures
Working on Flythrough.space
Messing with Godot
landscaping
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
Lego
Walks
Rowing
Blogging

Things I did not do (yet)
Soldering
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.

https://www.theatlantic.com/magazine/archive/2020/06/underlying-conditions/610261/

https://www.npr.org/2020/05/07/851712311/u-s-field-hospitals-stand-down-most-without-treating-any-covid-19-patients

https://www.newyorker.com/news/us-journal/how-the-coronavirus-pandemic-has-shattered-the-myth-of-college-in-america?utm_source=pocket-newtab

https://local.theonion.com/man-not-sure-why-he-thought-most-psychologically-taxing-1843004933

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 flythrough.space. 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.