bai0
For a sampling of some of the worlds people have built, check out https://vesta.janusvr.com/
I joined Janus in 2016, after Facebook bought my previous employer and fired my team. I'd added support for loading Janus worlds within my engine, which opened it up to normal web browsers, and the team at Janus was excited for the possibilities. It was a great story of how I was able to turn an open source project into a paying job, and people were EXCITED about what we were building! We had investors and users, everything was great!
Fast forward to today. The team is broken and burnt out. Many left when we couldn't secure another round of funding and the paychecks dried up. The code is in a poor state because we kept chasing what platform gatekeepers and potential investors told us THEY wanted to see. The founder and myself both had kids within a month of each other and can no longer work like we used to. One guy's wife left him because he was spending so much time travelling and promoting the project. We have less users than ever, despite our tech being years ahead of what people think is possible. We still pretend like we're a normal healthy happy company, because we still believe in the idea and nobody's going to invest in a company of depressed burnt out people. But now even that fantasy is unsustainable, it's probably time to just give up and get a regular old job.
Of course success was never guaranteed, but what we didn't expect was how we'd just end up shunned and ignored. When A-Frame first launched, they listed Janus as an inspiration, but once they reached some level of success and saw us as competitors, they wrote us out of that history book - literally just removed us from the list of inspirations, but kept other projects like SceneVR (whose author also credits Janus as his inspiration). We've got literally thousands of interconnected worlds people have built which nobody visits or links to, but if someone makes a similar world with A-Frame or Babylon, we're sure to hear all about how great and new and innovative it is.
Modern open source is not the same scene it used to be. I don't know what's next. It's pretty depressing.
Pretty depressing how open source projects by individuals can at best hope to "inspire" devs at FAANG companies to just do the same thing and then use their company's immense resources and developer relation teams to promote their project over the ones that existed before them. I wonder how many talented devs have had this happen to them only to give up and stop trying.
We are all alone together.
I've also added a download link to the player, so it's easier to get at the original mp3s now. However, it'll still have the obfuscated hash filename - I tried using the "download" attribute on the download href, but unfortunately it runs into issues with CORS.
I took a bunch of notes as I was developing this too, I'm planning on publishing it as a post soon. Keep an eye out for the follow-up!
The technology stack is DOSBox compiled to WASM using Emscripten, https://github.com/dreamlayers/em-dosbox/ This is running in a world built using the JanusVR http://www.janusvr.com web client, JanusWeb, which is built on top of Three.js.
This instance dials into fully virtualized ISP using Winsock. The network backend is a pppd server running in AWS with a WebSocket proxy in front of it. This setup is fully detailed in a blog post here - http://blog.vrcade.io/2017/03/setting-up-a-visp-using-pppow/
It's like a 7-layer burrito with extra helpings of sour cream and guac - a bit mushy, but still a burrito.
Might need to print this and tape it to your keyboard though http://bit.ly/1zDZrjk
1) HTTP 1.0 vs 1.1 and lack of the Host: header, as you've all deduced
2) Additional encoding info tacked on after the Content-type causes parsing issues
3) Many sites now redirect to HTTPS by default. While Netscape 1.0 and Mosaic 1.0 both support HTTPS, it used SSLv1, and well, remember POODLE? :P
Newer versions of these browsers tend to work in native DOSBOX but present problems when running on the web. We're working on it.
Biggest problem right now is that the virtualized dial-up ISP is a bit flaky. For some reason PPP over TCP over Websockets via Trumpet Winsock isn't as rock solid as it should be :P