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.

Atomic PI emulation setup notes

I mostly game on PC, but at one point I set up a retropi for emulated console multiplayer. Mario Kart ran pretty well (sprites and all!) but BattleTanx wasn’t performing. That’s the N64 game that I probably played the most of, and it’s cracking good multiplayer, even at the 9FPS that the Pi could manage. That was sort of the experience I was after though, so I went looking for something a bit more powerful.

Enter Digital Loggers. There was a kickstarter for a board called the Atomic Pi. It’s about the size of two Raspberry Pis and has an Intel Atom processor rather than the Pi’s ARM core. It’s still smaller than any one of the various consoles I plan to emulate on it, which is a nice bonus.

For this setup I got the Atomic PI with the small breakout board that provides a (more or less) standard adapter plug. I’m using this power brick and this multi USB hub (because there is only one USB port on the board.) It comes with a soldered-in EPROM you can boot from and write an OS to, but OSs on the eprom are painfully slow so I would recommend installing your OS to a MicroSD card like you would with a RasPi. I’m using Lubuntu, and it’s performing pretty well considering the big screen it’s on, I’m sure your favorite lightweight distro will also do well. You’ll want something that ships with a desktop for emulation though

Back to Battletanx: To get it running in Mupen64Plus (which you can install with apt along with a barebones GUI for opening ROMs and managing settings) with Rice video you need only change the config in one way:

ScreenUpdateSetting = 7

There are some glitches (the button that makes the flame tank fire sideways and makes the FLP-E tank flip get stuck) but it’s mostly playable. And Mario Kart still runs great.

Best Episodes of Reply All

Reply All is an excellent podcast, but it can be hard to figure out what a given episode is going to be about, because the descriptions often have nothing to do with the episodes themselves. These are my favorite episodes and a quick take on each, which hopefully serve to explain what you’re getting into if you want to listen to them.

Boy In Photo

Perhaps the quintessential episode of Reply All, this investigates an internet community’s obsession, and bridges the gap between online shenanigans and real, meatspace people.

The Takeover

Classic hobby drama in podcast form. While just a story about someone’s facebook, it’s also a microcosm of human organization. This story represents a well-known failure mode for online communities. Behold the eternal September.

At World’s End

This episode features the illustrious DanC, which alone is enough to earn a place in this list. It’s also insight into the world of Flash games and what it was like to have a piece of yourself tied up in something that is both ephemeral and engaging. If you’ve ever tracked down something that you remembered from a long time ago, this will be a fascinating story for you.

The Case of the Phantom Caller

This one is about solving a telephonic mystery. The chase is as exciting as the reveal. If you’re interested in Phone Phreaking or enjoyed Exploding the Phone (or read any textfiles.com) then this will be an enjoyable episode. It also presses a bunch of ARG/Creepypasta/Internet Mystery buttons as well.

An Ad for the worst day of your life

A fairly deep exploration of internet Chum Boxes (the often disgusting ads that appear under articles) including where the content comes from.

The Man in the FBI hat

Reply All’s take on the BBS world, or: the story of an enigmatic ISP founder and the vast gulf between his double lives.

Long Distance and Long Distance, Part II

In this episode, the hosts go above and beyond to track down a phone scammer. Serious journalism is on display here. Not to give anything away, but I’m not exactly sure how they funded this endeavor, but I’m glad that they did.

Worldstar

Worldstar Hip Hop is an important site from the perspective of public freakout material, to the point where some freakout videos are punctuated by onlookers yelling “worldstar!” at the videographer. This episode touches on the cultural impact, but is mostly about the founder.

Friends and Blasphemers

A mini documentary about LiveJournal, how it was used in the early days, and how its usage changed with the years.

Ogrodzieniec Castle

 

Ogredzienic castle is a bit of a drive outside of Krakow. It’s quite the experience-you can walk around it and inside it and it’s a goddamned castle.

There are many huge limestone monoliths around the site, some incorporated into the keep and walls. We thought that this one looked like a dragon.

The phrase “The very living rock” comes to mind. The builders where taking advantage of the natural stone to its fullest potential here. The keep has the majestic profile of a ship’s prow.

Most exciting of all, perhaps, is being allowed inside. The view from the castle is awesome. Really hammers home how powerful you’d feel behind these walls in, say, the 1400s when it was first built.

The modern safety additions mean that anyone able to brave the height (and ascend several flights of stairs) can get up high into the keep. I think that they mostly replace the wooden elements of the castle that do not survive into the present day.

 

You get a pretty good view of the nearby town from up here. Again, I’ll leave constructing a panorama as an exercise to the reader.

Up another floor, and I again felt compelled to photograph the inside of the castle. With many of the intended walls missing, it takes on a sort of MC Escher quality with windows nobody can look through and doors to nowhere.

The view from the higher turret of the castle is breathtaking. Careful on the ladder up the last story though.

From up here, the limestone looks even more like a dragon, with a few brave trees at the top giving the impression of a spiny crown.

More monoliths in the southern corner of the wall give the impression of a gate house.

The light was perfect for the photos after we did a tour of the interior, I’m particularly proud of this next series.

View from behind the castle.

Cars of Zakopine

This was our view of the Tatras on the road to Zakopine from Krakow:

Not a car:

I promise we’ll get to the cars-though this is of the rail variety. It’s a funicular railway which takes you up the slope of the mountain called Gubałówka.

Ok, back to automobiles. Another Polski Fiat. I’m pretty sure this is the same one twice. How many gorgeous green Polski Fiats could be running around one town?

Our neighbor had a cool black 90s P80. That car has the coolest profile.

This one was on Morski Oko (which isn’t technically in Zakopine) but here you go: Sizuki Jimny. A very popular car that you never see in the US.

This one is actually from Zakopane. I can’t tell if that’s a Nissan badge or an Opel badge, though I’m sure I saw more Opels than Nissans. I wasn’t able to track down the model.

People in Zakopane seem to enjoy off-roading. I’d never noticed snorkels before, and I still see them around New England from time to time, but they where everywhere in Zakopine.

One last vehicle from the top of Morskie Oko.

LEGO Shop At Home Scans: 95-99

A while back, I was trying to find a specific Lego catalog that I’d looked at as a kid. However, when I tried to find the specific one I was looking for, I realized that very few of these catalogs from the 90s had been immortalized by the internet. However, many of them where on sale for reasonable prices (and Sabrina wanted a Scanner for old family Photos anyway) so I got to work.

? 1995

Holiday 1995

January 1996

Holiday 1996

Spring 1997

Summer 1997

Holiday 1997

January 1998

Spring 1998

Summer 1999

Fall 1999

The raw files are here on my archive.org account, if you find my (largely imagemagick-powered) PDFing of the files inadequate. If the PDFs appear small just zoom in, they’re about as high-res as they can be without creating artifacts on the screens I tried. I plan on also scanning the ones that I personally saved when I was a kid, and will post those here too.

And the specific catalog I was looking for? Turns out it was Holiday 1997. Twenty one years ago. The page I was looking for in particular turns out to be this one.


Morskie Oko: The Ascent

Morskie Oko is a lake high in the Tatra mountains in Poland. While you can take a horse-drawn carriage up the hill, we preferred to walk. There isn’t (and wasn’t) much to say, so like us (Sabrina, Tiernan, and myself) please enjoy the scenery.

At some points, we became impatient and decided to take sections at a run. This became a dicey proposition when we reached an altitude where snow remained on the ground.

There where some avalanche warning signs, as well as evidence of previous avalanches. This added an element of danger to an otherwise casual (if exhausting) climb.

There was a base camp building at the top with hot soup and drinks. Once I warmed up a bit, I dipped my hand in the lake, just to say I had. It was extremely cold.

I’ll leave constructing a panorama as an exercise to the reader:

OS9 on Ubuntu

The first thing to know about emulating macs from The Before Time is that if you where using Classic Mac OS at the turn of the millennium, you probably used an iMac G3. This machine was ubiquitous-at least at schools in my area. This machine used a PowerPC chip rather than a 68k, so the emulator you want to use is SheepShaver. If you want to use a 68k there’s Basilisk II, which has a very similar setup, and just needs to be installed via apt.

In order to run SheepShaver you’ll need to download some additional stuff, so you might as well do it up front. Redundant Robot has become the de-facto distributor of these files (email me if this ever goes down, I’ll host’em.) Specifically you’ll want the New World ROM and A pre-made bootable OS9 install.

Next you’ll want to compile a copy of SheepShaver. This is thankfully very easy thanks to StackOverflow:

Install dependencies:

sudo apt install build-essential libgtk2.0-dev x11proto-xf86dga-dev libesd0-dev libxxf86dga-dev libxxf86dga1 libsdl1.2-dev osspd git

clone the macemu repo from github:
git clone https://github.com/cebix/macemu.git

Build SheepShaver:

cd macemu/SheepShaver
make links
cd src/Unix/
./autogen.sh
make -j3

Install the binary into your path

sudo cp SheepShaver /usr/bin

Run Sheepshaver with

sudo padsp SheepShaver

This will get you to the setup menu. In the Memory/Misc tab, add the new world ROM file. Then, back in the Volumes tab, add the .img file you downloaded, and create a new (big) empty volume to store your apps. Next add a valid directory that you do not care about because it will be consumed by sudo-enabled fire as “unix root.” Now you should be able to boot into the machine by hitting “start.”

In order to get apps working, you’ll generally want to first get them out of your unix folder and only then unpack them (most vintage mac files are in Stuffit format, so you’ll want a copy of Stuffit Expander to be your first install.)

Unfortunately, the Redundant Robot image is too small to fit many apps. What you’ll want to do is make your own image. Make a blank disc with SheepShaver’s interface download  this disc (you’ll need an account.) In order to boot from a file, it needs to be read-only (in fact it will render any writable file that it tries to boot from unbootable.) But you need to run SheepShaver as root. So to render the file unwritable to root, you need to make it immutable with

chattr +i ~/Downloads/Mac_OS_9.0.4.toast

Then add it to the boot list and it’ll boot to the installer.

Cars of Krakow

The dramatic but friendly outline of Wawel castle greets you when you get to downtown Krakow.

But of course, what you’re here for is that Ford Focus at the bottom of the frame right? Foci where the only Big Three cars that I saw in any signifigant number, and they where the early-model foci from before they could be had in the US.

Apparently the Polish word for Loratadine (as in, the drug that makes allergies go away) is “Loratadina” as luck would have it. On the way to the drugstore, I saw this beautiful Skoda Felecia. As you might guess from my love of 80s and 90s Volvos series cars, I’m a huge sucker for sharp angles, and this has so many of them.Front of a red car

You don’t see a lot of Italian cars in New England, but Fiat is all over the place in Poland, and people drive around in Alf Romeo 159s.

Inside Wawel castle there’s a bell tower with a view of the city. A harrowing climb just due to how dark it is and the knowledge that if you fall, there are plenty of stairs to go down. Schoolchildren prod at the enormous bell for good luck-I just hope to be lucky enough not to be around when someone manages to ring it. The view is, of course, very nice.

Immaculately maintained Polski Fiat. A classic car with a ton of history. We saw this while out eating in Krakow. I can’t overstate how delicious the food was.

A Volvo serving as a taxi. And I thought the Subaru Outbacks I was seeing in Cambridge where out there. Usually the plastic line you see on these is long faded, someone here knows how to get the original color back, which is nice.

Most of the police cars we saw where Kias, but there where also Toyotas. The rental car was a manual Kia which lead to several burnouts as our driver re-learned how to operate a manual.

Row of Kia police cars