Conversation
oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content

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

4
1
2
re: oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content

i guess im technically remaking world machine edition

2
0
1
re: oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content
@kemona_halftau is it emulating an entire multi-user unix-like system? (the /home/user/... path)
1
0
1
re: oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content

@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)

0
0
1
re: oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content

@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

1
0
1
re: oneshot early-game spoiler (nothing too interesting), im remaking oneshot
Show content

@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

1
0
1
infodumping, link to github, re: oneshot stuff
Show content

@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)

1
0
0
late-game oneshot "spoiler"
Show content

@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

1
0
0
re: late-game oneshot "spoiler"
Show content

@kemona_halftau ohh right i forgot about that part

1
0
1
actually a spoiler, re: late-game oneshot "spoiler"
Show content

@fish also the part where niko walks off of the game window

0
0
0
re: infodumping, link to github, re: oneshot stuff
Show content

@kemona_halftau oooh interesting stuff

0
0
1
vague oneshot spoilers, re: im remaking oneshot
Show content

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

0
0
0
no alt, im remaking oneshot
Show content

huge progress: stuff actually works now

1
1
0
(no spoilers) im remaking oneshot
Show content

still a lot of stuff missing from this engine, and a lot of bugs, notably:

  • all bgm and me sounds have a 1-second delay before starting and stopping/fading
  • theres no autosave at all, you have to manually close the game before closing the tab otherwise you lose everything
  • you cant remap the controls yet
  • crossfading between pictures still looks incorrect in the 2d canvas renderer (but looks fine in the webgl renderer) (crossfading happens a lot during cutscenes)
0
0
0