I've not been up to doing much at all in the way of coding recently, hopefully slowly on the mend though And as such, I've been starting planning the next step in the 'Arcade Simulator' journey...
Taking Arcade Simulator as our proof of concept (that we can run a large multiplayer arcade in realtime on a consumer PC with fruit machines and video games) - I think the plan should now be to build this into a fully open source project (hosted on github), that will be broken up into sub-projects.
Just some initial thoughts on how this will be structured:
This will be a large slow project! But at least we have now seen from Arcade Simulator that it is all actually possible, I honestly didn't know currents PCs were yet fast enough to run all those machines, back when I started it all
As there will be separation between the 'apps', this will hopefully make it a bit more accessible for coders, for instance someone might be keen to work on the machine library app, but not be comfortable with 3d game coding, so that now won't be an issue.
Also, this new project will be taking on the hard issues, such as people not being able to convert a fruit machine layout of their own from MFME format to something that can ultimately run in the arcade. I will still be using the existing 'MFME window scraping' technique for the extractor, as it does work, but I will add in various safeguards to try make it as safe as possible, things like:
- scrape a layout a little slower
- if a human generated mouse/keyboard input is detected, abort scraping
- continuous 'window focus' watchdog strategies to detect desyncing during scraping
- a warning popup to be ok'd that shows at start of every extraction; "This is experimental, while safeguards have been implemented, there is the potential for data loss, use at your own risk!"
It will all take a long time to set all this up, and port the existing Arcade Sim systems into OASIS (especially assets that are licenced on a 'per seat' basis - in some cases I may be able to work with those asset creators on a solution to allow for use in open source, otherwise we need to roll our own)... but, the idea is that the project will ultimately no longer hinge on me doing it all! As now we have the working proof of concept in Arcade Sim, it makes most sense long term to build a future-proof platform - so if I were to meet an untimely demise in the future (RIP Chris) - the project could continue to grow and develop.
The name OASIS came from the book Ready Player One
"This is the Oasis. It's a place where the limits of reality are your own imagination. You can do anything, go anywhere. Like the Vacation Planet. Surf a 50-foot monster wave in Hawaii, you can ski down the Pyramids, you can climb Mount Everest with Batman. Check out this place. It's a casino the size of a planet! You can lose your money there, you can get married, you can get divorced, you can...you can go in there. People come to the Oasis for all the things they can do, but they stay because of all the things they can be: tall, beautiful, scary, a different sex, a different species, live action, cartoon, it's all your call. Yeah, that's me...well, that's my avatar, at least until I feel like changing it. Except for eating, sleeping and bathroom breaks, whatever people want to do, they do it in the Oasis. And since everyone is here, this is where we meet each other. This is where we make friends."
- Wade Watts talking about the OASIS