(kemona_halftau)
html popups arent flexible enough for oneshot’s engine, and most browsers will block popups by default (and it got very annoying very quickly)
…so i made a html5/javascript desktop environment
yeah
(kemona_halftau)
i guess im technically remaking world machine edition
(kemona_halftau)
@noisytoot no, just /home/user and /system, although the game does load all of its resources from the filesystem (i mainly did this so i could run the game from a html file without hosting a server, because browsers impose very strict cors policies on file urls for some reason, so it was easier to just import all of the files into indexeddb and then access them through that)
@kemona_halftau i mean you could look at the window management api if youre feeling adventurous. not baseline though unfortunately :(
https://developer.mozilla.org/en-US/docs/Web/API/Window_Management_API
@kemona_halftau how are you doing the actual game port btw? if you're reimplementing the game logic yourself you might want to look at decompiling the world machine edition with ILSpy if you want to get specifics nailed
(kemona_halftau)
@fish oneshot’s engine is mostly written in c++ and ruby. most of the c++ code is just api bindings for the ruby code, with a little boilerplate for graphics/sound/input/timing/etc, and the ruby code (compressed as zlib in xScripts.rxdata) is interpreted at runtime. i ported all of the c++ code to javascript, and im using a very hacky version of ruby-wasm combined with a custom from-scratch ruby interpreter and just porting ruby code to javascript to get game functions working, and im rendering everything to 2d canvas and webgl contexts
the original game’s engine is actually open source: https://github.com/elizagamedev/mkxp-oneshot
(by original i mean the 2016 remake)
(kemona_halftau)
@fish sadly that is not enough for what the game does. it would also need a way of removing the browser toolbar and wm titlebar from popup windows and making the background transparent, in addition to knowing where windows are on the screen and positioning them after theyve opened
@kemona_halftau ohh right i forgot about that part
(kemona_halftau)
@fish also the part where niko walks off of the game window
@kemona_halftau oooh interesting stuff
(kemona_halftau)
just need to add a text editor and an image viewer to this and then the whole game will be fully playable start to finish
(kemona_halftau)
huge progress: stuff actually works now
(kemona_halftau)
still a lot of stuff missing from this engine, and a lot of bugs, notably: