Jump to content

Development Updates


johnparker007

Recommended Posts

Done the top glass, so a little closer to a full machine :) 

Made a very minimal start on the 'auto-director' idea for the camera.  Final camera pans will be much nicer (damped at start and end, position as well as rotation movement), this is just bare minimum to test. 

So the director looks for specific lit/off lamp combinations to know when to switch to different camera angles (there are only two angles in this early test - full bottom glass and full top glass).

It was pretty stingy with the nudges, but got a couple of sets in the first few credits on this vid so you can see the basic idea :) 

 

 

  • Like 2
  • Awesome 4

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

So cool - I wish Chris has been around to see this.

Stupid question - but hey, let's go with it.

What is the end goal for this ?

Will it ultimately render machines based on what layout is loaded within MFME with auto-detection doing the backend work for the glasses and the lamps.

I suppose what I am asking - is MFME the engine behind the magic you are doing with the rendering and in the future - will it be plug and play for whatever machine you load ( perhaps after some initial tweaking of settings ) ?

Sorry for the dumb questions.

 

  • Like 2
Link to comment
Share on other sites

53 minutes ago, Reg said:

So cool - I wish Chris has been around to see this.

Stupid question - but hey, let's go with it.

What is the end goal for this ?

Will it ultimately render machines based on what layout is loaded within MFME with auto-detection doing the backend work for the glasses and the lamps.

I suppose what I am asking - is MFME the engine behind the magic you are doing with the rendering and in the future - will it be plug and play for whatever machine you load ( perhaps after some initial tweaking of settings ) ?

Sorry for the dumb questions.

 

I know - it's a shame the timing :(  I only got back into this stuff as I signed up here to pay my respects in the Wizard's Rest thread, then started thinking abut FME again.

End goal wise - I don't think it could be fully automated, it would be more that there would be a 'layout format' like MFME has, so layout artists could make new ones from scratch, or convert 2D MFME ones (like I have done here).  I still have some fundamental stuff to research/code, in order to have the 3D view full screen, and MFME hidden behind but still receiving input, though I have a rough strategy for that which should hopefully work.

The rendering is indeed driven by MFME (it could also be driven by MAME, though that has far lower compatibility compared to Chris's amazing emulator).


I'm still playing to be honest ;)  ...here's another take on the camera - with the machine in an environment that can be navigated :)
 

 

  • Like 2
  • Awesome 4

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Thanks for the update.

Upon watching the video, I thought great - now you've built a holo-deck with a machine !

This is really good - perhaps one future is keeping these files within the layout directory as well for the machines that could be shared when people create them.

The future is certinally bright here.  If at some point in the future you want your own forum area for this if you choose to go all the way so to speak, consider it done.

 

  • Like 7
Link to comment
Share on other sites

8 hours ago, Reg said:

This is really good - perhaps one future is keeping these files within the layout directory as well for the machines that could be shared when people create them.

The future is certinally bright here.  If at some point in the future you want your own forum area for this if you choose to go all the way so to speak, consider it done.

 

I'm not sure what the file format would be yet, for the 3D layouts - probably text format Unity scriptable objects for various data, along with textures/materials.  But they could easily be packaged along with original source MFME layout (or visa versa) - I've honestly not thought that far ahead.  Still in the exploration stage of how what can be done, but would be totally open to what works best for the scene :)

Thanks for the offer of forum area - I'll just keep popping updates in here for now while it's just a tech demo I'm tinkering with, but if it gets past some of the other hurdles that need figuring out and starts to get to a usable platform, that'd be great :) 

  • Like 2
  • Awesome 2

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Made some progress - MFME now hidden while playing :) Also - there's a WIP cabinet model I'm playing with in the background.  Bought it, and I think I'll be able to adapt it in Max to create a variety of different cabinets, to put the working MFME 3D machines into (Family Guy is just the static demo textures it came with).

So the flow is now:
- launch Renderer exe
- it sets itself to always draw on top of everything, and hides the mouse pointer (System-wide)
- it loads MFME and the data layout
- it listens for system-wide Key input (as it no longer has focus, since MFME needs it for the key inputs to play the machine), if it gets an Escape, it kills MFME process (ungracefully) and quits

It's all pretty hacky, nature of the beast really - hopefully with another day on it I can resolve the various issues, and minimise the hackiness.

It is nice to see it launch full screen though with no MFME window on top obscuring stuff :) 

 

Edited by johnparker007
  • Like 5
  • Awesome 6

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

4 hours ago, A:E said:

Yeah, echoing others comments mate.  This is looking superb, can’t wait to try it out... if you get to that stage, no rush but this is pretty out there.

Can materials have reflective surfaces like real glass etc JP?   This is so cool dude ;)

J

Still too hacked together for try out builds just yet I'm afraid, though it will get more stable.  Currently it's pretty aggressive, forcing itself on top of all the other windows among other things, and there's more hacks to go in yet to make it all hang together properly (for machine switching etc).  I have a plan though - once I've got all the hacks stable enough, I'll work on some lifecycle management which should hide all that hacking away :) 

And yes - you can do reflections/lighting - though the reflection would probably be more of a 'cheat', like a prerendered cubemap rather than realtime - I'll experiment in due course ;) Also on the Family Guy above, I'm using some specular shading to 'catch the light' on the yellow trim.

Edited by johnparker007
  • Like 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Another update - I've generalised the emulator handling a bit, allowing me to add a hacky version of MAME support.  There's a slight input lag, that will be fixed with compiling a special version of MAME that outputs it's graphics directly in a way I can display on the same frame without the slight delay.  Here's a demo, I didn't do very well, but I'm pretty tired, that's my excuse anyway :)  

Further improvements would be a CRT shader and of course I would clean up the cabinets so they are clean/sharp/properly lit.  Fun early proof-of-concept though :)  

 

  • Like 5

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

This is really cool. As a suggested future use, could it be used for a 3d tracked virtual cabinet like the vpin stuff ?

In case you have no clue what I am on about, there's a guy demoing his vpin with head tracking off/on, which would be great on a bottom screen of a 2 screen vfruit cab. You can get a ps3 camera for £4 from cex and the rest looks like lego and some cheap leds.

 

  • Like 2
Link to comment
Share on other sites

36 minutes ago, DrB said:

This is really cool. As a suggested future use, could it be used for a 3d tracked virtual cabinet like the vpin stuff ?

In case you have no clue what I am on about, there's a guy demoing his vpin with head tracking off/on, which would be great on a bottom screen of a 2 screen vfruit cab. You can get a ps3 camera for £4 from cex and the rest looks like lego and some cheap leds.

 

I am indeed up on the 3d tracking vpinball stuff, I did a couple of bits on the standard vp code many moons ago :)  

You could render the top/bottom glass panels & reels into say two monitors - one for top glass, one for bottom glass - to use this renderer in a standard cab-optimised scenario, and get good looking results (due to the upscaled texture stuff, reel/lamp physics etc).

However the problem would be the head-tracking part.  If you wanted to get in close for a reel peek, Kinect/eyetoy etc wouldn't be able to track your position accurately, as it needs a good unobstructed view, with some distance between it and the front of your face.  Some people have also rigged up things like sunglasses frames with LEDs and Wii sensor bars, but again the tracking wouldn't work with your face so close to the glass.  If you tried using a Wiimote very close to a TV you'd run into similar issues, due to the sensor bar receivers not being able to track the Wiimote led emittors.

This'll get good results in VR with a headset - however primarily I'm just making it to be playable on a standard PC as that's what most people have (the VR stuff you practically get for free programming-wise, once you've made a 3D environment).  So people can walk around the arcade and play/watch machines, and if they have the VR headset then it's almost like being there, apart from the smell of stale cigarettes!

Also - the only real benefit from the eye-tracking would be the subtle shifting of the 3D reels, and the slightly raised buttons.  As most of the machine front is usually flat glass panels (with some notable exceptions like the excellent Pyramid), it wouldn't change even when tracking your head position correctly.

Edited by johnparker007
  • Like 1
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Not so much eye candy in this video update, but a good milestone for me at least, after a few nights of battling with Unity!  I have a glimmer of at least some beginnings of automated 2D -> 3D layout conversion... :) 

 

  • Like 5
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

There's a lot of hacky stuff here, so it looks further along than it is ;) - but all the lamps were automatically positioned/scaled/textured/indexed.  This was done from an 'unpublished' layout that enables a 'Lamp Export' option.  This doesn't give much, but gives enough to make a start for basic converter development without getting too sidetracked.  

For the future I plan to 'automate' MFME so that it loads up the layout, goes in edit mode and saves out each resource along with its data - allowing for more conversion options (reels, vfds, button mappings, transparent reel windows etc).  But that will take a while to put together, so I may carry on testing with some 'unpublished' layouts for the moment with the manual 'Lamp Export' option, plus I need to write some kind of shader that I've no idea how to do as this is rendered very inefficiently, so a helluva lot to figure out yet... :) 

 

  • Like 4
  • Awesome 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

6 hours ago, Big J said:

Fantastic JP but what I want to know is do you get any sleep? This looks one hell of a task that you make look quite easy (obviously far from). Loving the updates and so looking forward to the end result:D:)

I'll be honest I only get around 6 hours a night tops these days, what with my day job and working on this new project! 

The 'end result' is a very long way off though to be honest, road map is currently something like (in only an approximate order):

- R&D stencil shader or some similar approach to allow 1x compressed masked texture per MFME light layer + 1 bit common mask texture, excluding common redundant Off layer

- semi-automate 2d layout -> 3d perspective-corrected sub-panels

- automate AI upscale layouts once shader implemented

- R&D new LOD techniques to allow 8k when close, standard rendering at distance so graphics card requirements stay modest

- recording lamp/reel/other output data to capture efficient attract mode loop per machine, optimise for only frame deltas - to allow machines to run in attract without MFME instance

- R&D automate MFME complete layout extraction to open format, via send clicks, send keys, and OCR for screen-scraping.

- automate reel creation, gradient removal, alpha window cutouts, cylindrical band mesh with interiors, symbol offset, scale+position

- automate creation of associated (more compact, accurate) data layout 

- R&D alpha vfd/dmd capture/modelling/rendering approaches (use quick n dirty screenscrape initially to keep things moving)

- potential automate direct capture of data layout via memory signature (to bypass ASLR) instead of window scraping, to save GPU bandwidth and perhaps reduce latency

- creation/cleanup of 3d cab models (may be able to get a 3d artist to help on this)

- Networking R&D: server vs P2P?  potential mixed solution, perhaps use twitch API for video screen element broadcasting?

Good grief, that is awful lot of work now I've written it out! ;)   And there's always like 2.5-3x more stuff to do than you anticipate on something like this...  Ah well, I'm just gonna keep chipping away at little corners of it, see where I end up :)

  • Like 3
  • Thanks 1

[ Arcade Simulator ] Pre-alpha installer: http://arcadesimulator.net  |  Known Issues: https://tinyurl.com/yz4uom2e  |  Donation info: https://tinyurl.com/yzvgl4xo
[ Community Drive ] The drive: http://tinyurl.com/yckze665
[ Fruit Machine Database ] Initial google sheets (WIP): https://tinyurl.com/2c5znxzz
[ Fruit Machine ROM  Archive ] The archive: https://tinyurl.com/3jhzbueb

[ MFME Launch ] Source code: https://github.com/johnparker007/MFMELaunch
[ Oasis ] Source code: https://github.com/johnparker007/Oasis
[ Sound ROM Editor ] Source code: https://github.com/johnparker007/SoundRomEditor

Link to comment
Share on other sites

Will the end result look like a virtual arcade with more than one machine running in attract mode, like a few dozen with pinballs and video games like a proper arcade maybe a coin pusher and grabby machines thrown into the mix. Now I’m getting ahead of myself lol. Of course I’m the distant future it could have some online aspect to it where you choose a avatar join the arcade and play with other avatars/people online 

this looks very VR too excellent news and great to see mfme being added onto and developed further even if it’s not updated internally yet???

  • Like 2
Link to comment
Share on other sites

  • Reg changed the title to Development Updates
×
×
  • Create New...