Was this a port of the Flash app or reverse engineering it? The description on GitHub mentions that the Flash version was made by your friend, so I presume you have the original source available.
I've wanted to port an old Flash game for a long time, but I only have the .swf file, not .fla, because I'm not the original developer. I've tried several decompilers to examine the code and resources, but it would take a lot of work to make sense of the obfuscated code. Unfortunately, it can't be played in the Ruffle emulator since it is written in ActionScript 3, which is not currently supported.
It was closer to a port than reverse engineering. I spoke with Cary (the original creator) to get explanations from him on how the features and math behind it worked. He then sent over the metadata and images for all the objects. I think he sent the original flash project as well but I don't remember reading that code too much because his explanations of the functionality were sufficient.
Not sure on the original, but I spent about a year working on it on weekends here and there. Hard to find time with full time work and other projects mixed in. I would say it was around 100 hours of work in total. The majority of the was done within a couple weeks but there were a lot of performance tweaks and bugs to fix.
Loving this, really nice work. Works super smooth and even the music is quite nice!
A little bit of unrequested feedback:
- Allow me to drag the viewport somehow. A couple times I wanted see elements around to position them on my screen in perspective but couldn't do that.
- Allow me to stop the zoom out animation somehow. At the moment one move on my trackpad and I teleport from coffee bean to Rwanda. I can't stop this zoom animation. It seems that I have to go to Rwanda.
- Support retina screens. This might come in really useful. To do this (it occurs to me that you're using PIXI.js), when creating your app set resolution to window.devicePixelRatio || 1. You might be on a devicePixelRatio === 1 screen and can't see the difference right but trust me it's there. You can test and see it on any modern mac or apple mobile device.
Sending you a digital high five of size of the observable universe.
The performance is really good. Usually when I open a GPU-intensive visualization in the browser, my laptop fans start making a lot of noise, but not this time.
Thanks for mentioning that; the music does not play in Safari, so I opened Firefox in the background for the music while zooming in Safari via trackpad scrolling (which doesn't appear to work in Firefox).
The other factoid though, VY Canis Majoris fits inside the orbit of Saturn... that's huge in the other direction. Especially compared with what you said.
These things are always depressing to me regarding meaning. I know the now point is to avoid pain/exist. But the scale and scifi, traveling, will it happen, even then what's the point but yeah. At least I'm busy being poor/trying to escape that at the moment.
I do pursue things, have goals, enjoy solving problems/making things but yeah... good reminder. Same for remembering that you are a bag of meat.
It's worse falling into the state of mind that no matter what you do, you're insignificant and will be forgotten, and your existence in the cosmic scale means nothing.
OTOH, it's liberating, because you know your life is yours to live, it doesn't belong to history, or some nebulous legacy. Enjoy your life, good and bad, because it's the only one you'll ever have.
The odds lucking out as a human were slim, as most lives here are microscopic and are not conscious enough to understand living.
How many terabytes of content do you need not to get bored? My guess is that with some adjustments, it's gonna be just fine. We somehow dealt without and endless box of content at our disposal for centuries, and some of us were even happy.
I get "Please find the app on the iOS app store" and "Download the Scale of the Universe iOS app!" on my Android Samsung Galaxy S8+.
I assume there is no app that will run on my phone, and that the web version might work ok if it was allowed, as some other WebGL apps do. (I don't wish to downplay the problems with WebGL or web apps generally across a variety of mobile device though. Maybe there are good reasons for blocking it.)
I’d generally recommend not blocking mobile users. I’m not installing an app just to see if I like the idea. An “it’s even better…” pitch after using it would let me know if it’s worth the trouble.
It should be "中文 (繁體)" or "中文 (正體)" for the traditional Chinese, not just "中文". I'm confused a little bit since it has "中文 (简体)" (Chinese (simplified)).
The giant green button at the bottom is just slimy -- I fell for it. No, I don't want to install your Protecto extension, whatever the frack it is. Geez.
I had checked it out on my phone but I just spent 20 minutes playing with it on my computer. I absolutely love it! The performance is really impressive.
Given the style some of the graphics would be fairly easy to convert by hand in Inkscape. But maybe some like the Sloan Great Wall would be more difficult.
Yeah that's a good idea. The only issue is that its been translated into so many different languages that it'd be a pain to get that name/description translated to all 17 of them.
The average human height is about 1.5 meters. There are about 7.5 * 10^9 people alive, so the total height of humanity is ~1.1 * 10^10 meters.
Wikipedia says that Pollux's radius is about 9 times that of the Sun, which is about 7 * 10^8 meters. So Pollux's diameter is ~2 * 9 * 7 * 10^8 = 1.3 * 10^10 meters.
Yeah, just kind of tricky to get everything working on a phone. My collaborator Cary's brother Michael had already built an iOS app so we didn't bother getting this working on phones.
I've wanted to port an old Flash game for a long time, but I only have the .swf file, not .fla, because I'm not the original developer. I've tried several decompilers to examine the code and resources, but it would take a lot of work to make sense of the obfuscated code. Unfortunately, it can't be played in the Ruffle emulator since it is written in ActionScript 3, which is not currently supported.