file Marble Blast Haxe Port (64bit windows/mac/web/android)

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
19 Jul 2021 08:25 - 24 Dec 2023 08:28 #1
Marble Blast Haxe Port

This is a Haxe port for Marble Blast Gold, Platinum and Ultra with identical physics that runs on 64 bit computers, browsers and mobile.
The marble physics code was taken from OpenMBU along with my own collision detection code, game logic was partially from scratch and taken with permission from Marble Blast Web Port . You can also play all the custom levels that have been made so far without any manual installation!
It is basically as close as I can get to vanilla Marble Blast.

Play
The browser port supports touch controls, meaning it can be played on mobile devices.
Web Browser:
Marble Blast Gold
Marble Blast Platinum
Marble Blast Ultra
Native Windows and Mac:
Marble Blast Gold
Marble Blast Platinum
Marble Blast Ultra
Mac Install Instructions - Important:
Put the .app in either ~/Applications or /Applications. You will have to bypass Gatekeeper and run the app anyway since it is not signed.
Android:
Marble Blast Gold
Marble Blast Platinum
Marble Blast Ultra
Source Code:
Here: Github

Why Haxe?
I chose Haxe because its a good language that can target other languages, meaning any Haxe code can be converted and used in Python, C++, Java very easily so that nobody has to take effort in porting the code to different languages, atleast thats what my mindset was when I started it, but unfortunately because of the 3d engine I used, it only compiles to C and Javascript. You will have to isolate the engine specific features yourself if you want to use this for other programming languages.

Differences
  • Traplaunch physics are slightly different but work more or less, just harder to do
  • Physics delta t is lower, requiring more computation power
  • Minor graphical changes throughout
  • There's no guarantee every single level from the CLA works on this port
  • No torquescript so no mis mods and shit
  • No Online/Leaderboards/Multiplayer support in Marble Blast Platinum and Ultra(until OpenMBU 1.0)
  • Shaders used for Ultra levels are a lot closer to MBU than the MBP version of MBU

Additional Features
  • Replay System: You can record your run using the built in replay system and watch it later.
  • Rewind: You can rewind your marble by enabling rewind in the Options and holding down the rewind key (defaults to R).
  • Controller Support: Full controller support is added to Marble Blast Ultra, with incomplete support for the rest.
  • Touch Controls: Available in the web (mobile) and android versions.

Screenshots
















Support
Buy Me a Coffee at ko-fi.com


FAQ

Help I am able to reproduce a crash!
If you are on browser, please send the browser console log to me
If you are on native, please run marbleblast-debug.bat and reproduce the crash, send the resulting stacktrace that occurs during the crash to me.

How accurate are the marble physics?
Very accurate with up to 1% deviation from the original physics. The deviations are due to traplaunches being slightly different and occassional internal edge collisions, and the lower delta t values for physics simulations.

How do I change my resolution?
In browser, you can just resize your window. You can use the browser zoom feature (ctrl + scroll) to change the UI size.
In native version, you can just resize the window if windowed or use the resolution options in the menu or just directly modify settings.json

How do I change my FOV?
Edit settings.json for native version, edit the MBHaxeSettings key in LocalStorage in browser

How do I unlock/lock FPS?
You cannot unlock fps in the browser, it is forever set to vsync.
In the native version, edit settings.json

Hey can you please add this new feature?
If this new feature of yours already exists in MBG but not in this port, then I will try to add it, if I get time to do so, otherwise chances are, I won't add it since I have other things to do and would rather not waste my time on this any further. You are free to do pull requests if you have already implemented said feature.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
Last edit: 24 Dec 2023 08:28 by RandomityGuy. Reason: new ver
The following user(s) said Thank You: Blasted, Enigma, NF, thearst3rd, Nockess, Weather, zachman99323, Yoshicraft224, RossDarker, Enzone, yasin

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
16 Oct 2022 15:32 #2
Version 1.1.0 has been released with notably Mobile/Touch Controls support (android only for now) for the web version, along with the following changes:
- Added touch controls and its settings in the web build.
- Improved level loading speed on web version and reduced WebGL crashes.
- Improved font rendering.
- Fixed tornado rendering bug.
- Minor performance and stability improvements overall.

Known bugs in mobile:
- Alignment issues when rotating the screen while in the game, fixed by exiting and reentering fullscreen.
- Bugs regarding not able to enter fullscreen after inputting your name. Rotate your screen and back to fix.
- Safari/iOS not supported.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: NF

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
04 Dec 2022 15:58 #3
Version 1.2.0, Marble Blast Platinum Edition has been released.
This version ports the offline part of Marble Blast Platinum 1.7.42:
- Marble Reflections support.
- More lazy resource loading for web browsers.
- Performance improvements for rendering.
For screenshots and download links, please check the main post.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: HiGuy, NF, thearst3rd

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
14 Dec 2022 15:10 - 14 Dec 2022 15:13 #4
Version 1.3.0 for Marble Blast Platinum Edition has been Released.
This version adds the Marble Blast Ultra levels that were ported to Platinum along with the shaders that match closely with MBU than that of MBP:
- MBU marbles and its shaders.
- Fixed a lot of internal edge collision bugs, pipe and curved surface physics should be much smoother now.
- Minor performance improvements.
- Added Restart button to touch controls.
- Updated replays to support Blast.
- Various bugfixes.

Known Bugs:
- MBU shaders are known to cause lag on mobile devices.
- MBU textures don't have the correct filtering/no mipmapping on web version. (don't know how to fix).

Additionally, Version 1.1.3 Marble Blast Gold has also been released, backporting the various performance improvements and physics bugfixes.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
Last edit: 14 Dec 2022 15:13 by RandomityGuy.
The following user(s) said Thank You: NF

Please Log in or Create an account to join the conversation.

  • Posts: 900
  • Thank you received: 405
17 Dec 2022 04:44 - 17 Dec 2022 18:14 #5
Wow! I finally got to play this—a friend of mine on the internet made Universal binary applications for both the Gold and Platinum versions today! They will work on both Intel-based Macs and Apple Silicon-based Macs, but if you are not running macOS Ventura 13 and are instead running macOS Big Sur 11 or Monterey 12, you will have to manually run it through the Terminal for now. As of now, it will not work on macOS Catalina 10.15.

But since I have Ventura, I am able to actually play the game—and I have some thoughts.

Everything about the fluidity of the game on my M1 Pro laptop is miles better than running the Windows version through WINE. I can't check the frame rate in MBG, but in MBP I consistently get between 230 and 250 FPS, compared with usually about 35–40 when running PQ on WINE, and occasionally, as was the case with Exoplanet, 3. So that part makes a world of difference. The other huge improvement I noticed was the high density resolution of the game—when I run PQ, it looks gross and pixellated on a Retina display, but the Haxe versions of MBG and MBP look so much better and it really enhances the quality of gameplay. I also noticed that the graphics don't blur out at a certain distance like they do in MBG. It's kind of weird at first, because it did produce a bit of a strange effect where you're able to see the individual rows of pixels that the texture outlines occupy if your camera isn't perfectly aligned, but I'm sure I'd be able to get used to it. Either that, or it could blur just slightly enough to prevent that from happening (not as much as vanilla MBG though). Also, coming from WINE, it's great to be able to tab out without having the game crash every time! I forgot what that felt like! And maybe it's just my imagination, but the sounds seem much crisper and higher quality than they are in MBG.

The first issue, which is game-breaking, may have to do with the .apps I've been using. When I run Marble Blast Platinum.app on my M1 Pro MacBook Pro running macOS 13, the finish pad is completely still (not flashing around the edge like normal) and when I step on it, the game softlocks. I finish the level, but the results screen doesn't show up, so I have to Command + Q and relaunch the game, and my times aren't saved.

But when I run the game directly with the executable, by doing
Code:
./Contents/MacOS/marblegame
the game functions as expected, and I can actually finish and save levels. This problem doesn't happen with either of these two methods of running the MBG app.

My second problem again may be due to the way the Universal binary was made, but when running the executable through Terminal on Intel (since I don't have an Intel Mac that supports macOS 13, that's the best I could do), when you're on the start pad, the game lags slightly, and it compensates by speeding up time after you get a certain distance away from the start pad so that the amount of time passed in real time is close enough to what the timer says (at least, this is my best guess at what happens). For the start pad, that certain distance seems to be less than a jump height, so that whenever you jump on the start pad, the game speeds up, and whenever you stand still on the start pad, it slows down slightly. This kind of messes up my intuition for fast starts—not that that's very important, but it's a lot of what I do in vanilla MBG.

But what's even worse than the start pad lag is the finish pad. If you hit the finish pad without getting all the gems, the game lags significantly, and if you stay on the finish pad, the game lags more and more until it reaches less than 2 FPS. So you can just build up more and more lag on the finish pad and stay at 2 FPS for several minutes if you want to, and then as soon as you leave the finish pad the game will go through all that lost time so quickly that I couldn't even tell what was happening and I was instantly shot out of bounds. This didn't happen on the M1 machine, just on the Intel one.

EDIT: This is also the case when running the game on M1, but there the game runs so well (350 FPS on some levels in MBP) that it doesn't lag enough to be a problem. However, in MBP, I can see the frame rate, and I tested this on the MBU level Tree House. Normally I would get around 280 FPS on that level. When I was on the start pad, it dropped to about 220, and when I was on the finish pad, I got it to drop to 144 FPS by moving the camera as close to the (non-flashing) edge of the finish pad as I could. Also, on the level end screen, the frame rate dropped even more, to around 115 FPS.

EDIT: Speaking of the end screen, there's another potentially game-breaking problem here. You can still interact with the Replay, Continue, and in MBP, Next Level buttons before you click "Okay" (or "Yahoo!" in MBP). Since your time is only saved once you click Okay, you can continue, replay, or go to the next level without ever saving your name or your time on the level you just finished. This also happens if you click "Yahoo!" and "Next Level" at the same time, which is possible in the Platinum version. Also, when you first finish a level, and it prompts you to put in your name, you have to click in the text field to be able to type in it, there isn't a cursor there automatically for you like in the original game. Furthermore, the same thing happens if you already have a name saved in there, so that instead of having your name highlighted by default (which looks terrible because the highlight color and text color are both either very dark or black), you have to click in the text box to put a cursor there, then delete (or highlight and delete) your name, then type a new one, then remember to actually click Okay. In the original game, it simply highlights your name by default, allowing you to type a new one and press Enter to save it, all without ever moving the mouse. And it saves your time before you even click Okay or press Enter.

Another game-breaking problem: In both Gold and Platinum, when I collect a powerup and then restart the level when the marble is still where the powerup usually is, I will have that powerup immediately at the start of the Ready-Set-Go sequence. This is how I got a time of 00:00.000 on Time Trial, by going to where the time travel is and restarting the level, then beating it under five seconds in real time.

EDIT: I found another game-breaking bug. If you roll off a level very slowly, and then hold S to go backwards and stick to a wall that's "supporting" the platform, and hold the mouse button to bypass Out of Bounds as soon as it happens, you will respawn at approximately the same place where you fell off. This works for starting the level and for respawning at checkpoints.

Now on to the less annoying but still noticeable differences. The enter key doesn't work at all to select Yes to exit a level, Continue after finishing a level, or Okay to enter your name for the top times. That would be really nice, because I'm not used to having to click everything with the mouse. Also, the cursor moves with your camera when you are playing a level, so that if you press Escape to pause, your cursor will be in a different place every time (unless you didn't move the camera) instead of being in the same place it was the last time you opened the pause menu.

When the marble hits the finish pad, it stops much more abruptly than it does in the original game. This is not very important unless you're really going for 100% accuracy (which I hope you are), but it's very jarring to see after well over a decade of playing the original game.

Natural bounces work, but they don't have quite the same properties that they do in vanilla MBG. When you have a lot of spin relative to your speed, natural bounces make you go slightly faster than just rolling does. This is the principle behind the natural bounce starts in speedrunning, and they don't work in this port—they have no effect on the speed of the marble where they should be speeding it up slightly.

EDIT: Phil's four-trim wall trick also seems to not work on this version of the game. I played through Mastering the Marble, and the three-trim wall trick does work, although it feels like you don't bounce as much after getting up to the three-trim-high platform. Actually, now that I think about it, it feels like you don't bounce quite as much in general, especially if you're rolling slowly and bouncing slightly. It's subtle, but noticeable.

EDIT: Trapdoors seem to give you a lot more collisions when you roll over them than they do in the original game, especially if you roll over them quickly. I was trying to do that wall hit thing in Mastering the Marble, where you roll on the trapdoors to get the 19th gem and then wall hit backwards, but I couldn't do it because the marble would get edge hitted up for some reason, rather than just rolling on the trapdoors as if they were normal floor. Weird.

After playing this for a bit, I figured I wasn't imagining this next inconsistency—I think the marble hitbox must just be a static cube around the marble. That's the only way I can rationalize how much harder it is to pick up gems and powerups in this version of the game. Whereas in normal MBG I would practically always pick up a gem within a certain distance, in this version you have to come much closer to the gems (and other items) in order to pick them up. In the vanilla game, the hitbox that actually matters—the one that makes you pick up items—grows and shrinks as you roll the marble, as HiGuy explains here . This would be a really welcome change to see in the Haxe port.

There are other minor glitches too, like how if you finish a level in Gold and then press Replay, it will stop the finish sound immediately instead of letting it play out over the start of your next attempt like in the original game. Or like how if you click on a level category in Platinum (Beginner, Intermediate, etc.), it will play a clicking noise both when you start clicking and when you release the mouse button, which is kind of strange. And how if you finish a level in Platinum, the timer doesn't turn green like it should. The particles when you use super jumps and super speeds are also way denser than in the vanilla game, and they stop coming off your marble almost instantaneously, which isn't necessarily a bad thing, it's just different. Also if this is modeled after the latest release of Platinum, 1.7.42, it should have the little text saying stuff like "−5s" or "+3s" when you pick up a time travel, since that was added in Marble Blast Platinum 1.60. Also, Hypercube, the last level of Ultra, had the standard Platinum marble size and no blast in the original MBP.

EDIT: I just realized that the sound of the marble rolling and sliding is... produced differently I think? Because in levels like Tube Treasure and Pipe Dreams, where there are a lot of segments on the surface on which you're rolling (in a tube, for example), every time you go to another little segment of the tube or half-pipe, the rolling or sliding sound will stutter slightly, and if you're going fast enough, the effect is much more noticeable.
Last edit: 17 Dec 2022 18:14 by NF. Reason: Found some more bugs!
The following user(s) said Thank You: RandomityGuy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
18 Dec 2022 07:12 #6
Thank you for the feedback, glad to hear that it runs very smooth on Mac.
Regarding the graphics blur issue, it seems that its an engine bug since it blurs well on Windows and Web(but not on Ultra levels, also a bug). I'm also unable to fix the highlight color of the highscore name input box due to engine bugs as well. The differences with rolling on trapdoors and wall trim jumps is due to the different collision detection code.The rolling sounds is a weird bug, I have noticed it too.

As for the rest of the bugs, I have released MBP 1.3.1 and MBG 1.1.4 containing the following fixes:
- Fixed Pad animations not working
- Fixed bugs relating to powerup pickup on respawn.
- Fixed marble not using the hitbox of the rotated hitbox for item pickups.
- Marble finish animation now matches more closely with the original.
- Fixed camera keys not working.
- Added keyboard shortcuts to certain buttons on certain dialog boxes.
- Timer now becomes green on finishing, to match original.
- Fixed double click sound on selecting level category.
- Hypercube now uses MBG gameplay logic.
- Added Time Travel Bonus messages to HUD.
- Fixed lag caused by GJK/Startpad/Endpad.
- Fixed being able to press the end game buttons while typing the name. The input box will be focused.
- Fixed option sliders not updating values

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: NF

Please Log in or Create an account to join the conversation.

  • Posts: 900
  • Thank you received: 405
18 Dec 2022 22:33 - 19 Dec 2022 00:51 #7
Thanks for your hard work! The frame rate of this build is significantly better on M1—I'm getting up to 1200 FPS! I have a couple more bugs now.

First, I don't think the hitbox issue has been fixed—the hitbox of the marble should be the "outer" hitbox that doesn't rotate, but oscillates in size and always is exactly the right size to contain the smaller, rotating box, whatever the orientation of that box is.

Also, time travels are supposed to say "−" for time travels that stop the clock, and "+" for time travels that add to your final time, but the ones in the Platinum build are reversed.

For some reason, when running on an Intel Mac, I got unbearable lag (2 FPS) sometimes on Battlecube, and I could not figure out why that was, but it seemed to happen when I was on different gravity, so I'll see if I can work out a specific cause of that. It doesn't happen on M1 though.

The hitbox of the finish pad is much too large now. You can finish without even getting close to the pad, but approaching it from a corner:

When you have to enter your name, before you click "Yahoo!", even though you can't press the other buttons, it still plays ButtonOver.wav or whatever it's called when you hover over the buttons that you can't press. Also more stuff about the end level screen:

– It should say "You didn't pass the Par Time!" (Or is it "beat" instead of "pass"? I don't remember.)
– Rounding error: I got two 6 second time travels, but clock bonuses says 11.999 instead of 12.000, and time passed − clock bonuses = 2:52.203 − 11.999 = 2:40.204 ≠ 2:40.203, so the actual time is correct, it just shows the wrong number for clock bonuses.
– The frame rate drops a lot when you finish a level. In this case it dropped from about 350 FPS to 144 FPS. In the case of Collect the Gems above, it dropped from about 920 to 144 FPS!

And something I forgot to report last time: If you finish a level while the Par Time alarm is happening, the alarm will never stop until you click Replay, Continue, or Next Level. With a time travel, it will keep ticking after you hit the finish pad until the time travel runs out. Both of these sounds should just stop as soon as you finish the level.

EDIT: Also, when you fall out of bounds and don't press the powerup button to respawn, it should wait 2.5 seconds before respawning you automatically, but in your version it only waits 2 seconds.
Last edit: 19 Dec 2022 00:51 by NF. Reason: Out of Bounds timer
The following user(s) said Thank You: RandomityGuy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
08 Jan 2023 14:14 #8
After thorough testing with NF. The Marble Blast Haxe Port now has Mac builds that run on 64 bit Intel and M1 Macs.
The versions 1.3.2 for MBP and 1.1.4 for MBG have been released with the following changes:
- MBU interior shaders now match more closely to those of MBU in Xbox.
- Added Console for debug purposes. Press Tilde ~ to bring it up. (MBP only)
- Added replay browser for native.
- Reduced lag caused by end pad.
- Fixed inactive button hover sounds.
- Fixed OOB animation timings.
- Added HighDPI/Retina support.
- Fixed the color bugs regarding text input.
- Minor graphical changes to match original.
- Minor performance and physics improvements.
- Fixed tornado rendering.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: HiGuy, NF, thearst3rd, RossDarker

Please Log in or Create an account to join the conversation.

  • Posts: 900
  • Thank you received: 405
05 Feb 2023 05:56 - 05 Feb 2023 06:06 #9
Thanks again for all your hard work! I have some more comments about resolution, and some questions/unrealistic hopes and dreams at the end.

In vanilla MBG, the default aspect ratio is 4:3, which are what the only options are. The Haxe port defaults to 1280 x 720 I think (or maybe it's 2560 x 1440 on a Retina display, but still 16:9). These images are from vanilla MBG with the Earth marble and Haxe port (on macOS 10.15, non-Retina display) with the regular marble. They were taken without moving the camera at all from the default position when starting the level.

2560 x 1440



At 2560 x 1440, the field of view on vanilla MBG and the Haxe port has the same width, but on vanilla MBG you can see less vertically than you can in the Haxe port.

1024 x 768



At 1024 x 768, the vertical field of view in vanilla MBG seems to match very well with the vertical field of view in the Haxe port, but in the Haxe port you can't see as much horizontally as you can in vanilla MBG.

Pushing this to the extreme:
720 x 1280 (approximately)


The vanilla MBG screenshot is 720 x 1280, and the Haxe port screenshot is as close as I could approximate (730 x 1271), but it's close enough to illustrate what's going on here. Vanilla MBG takes the width of field of view at a 4:3 ratio and keeps it constant across resolutions, adjusting the height of field of view as needed. The Haxe port, on the other hand, takes the height of field of view from MBG at 4:3 aspect ratio, and varies the width to fit the resolution, although the default width of MBG is only used at a 16:9 ratio in the Haxe port. Therefore, none of the aspect ratios of the two versions of the game actually look the same between them. I hope this can be fixed, and that the Haxe port can precisely resemble vanilla MBG in this aspect as well.

Other things
I noticed that the bug is still there where on a Retina display, in MBG, if you exit the Options menu at any point (except for right after you select one of the resolutions in the menu, in which case it will change to whatever you selected), the resolution will double the width each time, starting from 2560 x 1440 and working up. This doesn't happen on non-Retina displays. Is there any way to set a custom resolution like there is in MBG with the setRes(1280, 720); command?

The "full screen" button simply does not do anything at all on Mac, and the only way to put it in full screen is to maximize it with the full-screen button in the upper left of the window title, which is fine and which I prefer to do anyway. The other options of OpenGL/Direct3D and 16-bit/32-bit color don't do anything either.

In the MBG Haxe port, Marble Playground is intermediate level 13 and Hop Skip and a Jump is intermediate level 12, when in fact Marble Playground should be level 12 and Hop Skip and a Jump should be level 13.


Some questions
If we were to hypothetically obtain the MBG source code at some point in the future and compile it as a Universal binary for macOS, I wonder how different it would be from the original. Would it be different in the sense that .recs recorded on that version might work and might desync on other versions (Windows, 32-bit Mac), just like what we get now between Windows and Mac? Or would it be too different to even speedrun on? I imagine there's no clear answer without actually having the source code itself.

That brings me to my next question: could this Haxe port be perfected to the point of 100% identical physics? Is that even possible? I don't know how that could be verified without having the .rec system in this version, too, and then playing back thousands of .recs recorded on other versions to see if the times are the same between both versions. How hard would it be to have the .rec system in this version? Maybe it's a pipe dream, but I'd love to see this version of the game replace the version we have now, and even be acceptable for speedrunning. I'd be willing to pay if that could ever happen.

The biggest physics changes I notice now are the massively decreased hitbox of the marble (still, for some reason), the marble not bouncing at very low heights (i.e. there should be three bounces before coming to a stop on the start pad instead of two), natural bounces/starts not taking friction into account (fast starts don't work), sticking to the wall while falling is slightly faster (got 6.607 on Free Fall pretty easily in the port), the edge recovery thing, and there are random tiny bounces when rolling on surfaces, especially if you're sliding or changing from one incline to a different incline. Whenever you land from a jump or on an incline without bouncing, there will be a tiny sliding noise and the marble will slide very slightly even if you're going too slow to slide (i.e. jumping before the start of a hill, rolling around a tube or pipe). That would have to get fixed. And obviously traplaunches and edge hits, but I don't even know if it's computationally possible to make traplaunches exactly match the original.

An even pipe dreamier version would involve moving from PQ to a port like this entirely (if the physics are ever exact), with full Marbleland integration and online play and multiplayer, and the ability to play multiplayer from either in your browser or in-game if you want better performance. But I fully expect something like this to never happen. Still, I can dream.
Last edit: 05 Feb 2023 06:06 by NF. Reason: The hitbox of the marble or the hitboxes of items are still way too small

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
05 Feb 2023 17:20 #10
As for the resolution mismatch, MBHaxe used vertical FOV instead of horizontal which is what MBG does. I have pushed an update for both MBG and MBP versions to make it match. However this may cause it look weird on very wide resolutions.

I noticed that the bug is still there where on a Retina display, in MBG, if you exit the Options menu at any point (except for right after you select one of the resolutions in the menu, in which case it will change to whatever you selected), the resolution will double the width each time, starting from 2560 x 1440 and working up. This doesn't happen on non-Retina displays. Is there any way to set a custom resolution like there is in MBG with the setRes(1280, 720); command?
In the MBG Haxe port, Marble Playground is intermediate level 13 and Hop Skip and a Jump is intermediate level 12, when in fact Marble Playground should be level 12 and Hop Skip and a Jump should be level 13.

Bugs fixed, as for setting a custom resolution, you will have to edit /Library/Application Support/MBHaxe-MB[G|P]/settings.json and change it from there, or you can resize the window itself from the edges.

The "full screen" button simply does not do anything at all on Mac, and the only way to put it in full screen is to maximize it with the full-screen button in the upper left of the window title, which is fine and which I prefer to do anyway. The other options of OpenGL/Direct3D and 16-bit/32-bit color don't do anything either.

Nonfunctional full screen button seems to be a Mac only engine bug, which I'm not really sure how to fix but the maximize button works. As for the other options, they are only there for the sake of completeness and don't actually function (Even though the engine does support Direct3D, its sort of buggy).

If we were to hypothetically obtain the MBG source code at some point in the future and compile it as a Universal binary for macOS, I wonder how different it would be from the original. Would it be different in the sense that .recs recorded on that version might work and might desync on other versions (Windows, 32-bit Mac), just like what we get now between Windows and Mac? Or would it be too different to even speedrun on? I imagine there's no clear answer without actually having the source code itself.

Yes it would be different in the same way that Windows and Mac versions have slightly off physics due to floating point calculations.

That brings me to my next question: could this Haxe port be perfected to the point of 100% identical physics? Is that even possible? I don't know how that could be verified without having the .rec system in this version, too, and then playing back thousands of .recs recorded on other versions to see if the times are the same between both versions. How hard would it be to have the .rec system in this version? Maybe it's a pipe dream, but I'd love to see this version of the game replace the version we have now, and even be acceptable for speedrunning. I'd be willing to pay if that could ever happen.

It could get closer and closer but not always identical because some of the underlying functions for collision detection and the game loop being completely different. I'm not really sure how worth it would be to spend my time on that. As for the .rec system, I have attempted to create an input based replay format but however even that apparently desynced instantly but its probably due to programming errors. However, generating MB compatible .recs is an interesting suggestion but it would probably desync as well due to floating point imprecision and the timer only being millisecond precision in MB while the timer on MBHaxe has double precision (up to 15 decimal digits).

The biggest physics changes I notice now are the massively decreased hitbox of the marble (still, for some reason), the marble not bouncing at very low heights (i.e. there should be three bounces before coming to a stop on the start pad instead of two), natural bounces/starts not taking friction into account (fast starts don't work), sticking to the wall while falling is slightly faster (got 6.607 on Free Fall pretty easily in the port), the edge recovery thing, and there are random tiny bounces when rolling on surfaces, especially if you're sliding or changing from one incline to a different incline. Whenever you land from a jump or on an incline without bouncing, there will be a tiny sliding noise and the marble will slide very slightly even if you're going too slow to slide (i.e. jumping before the start of a hill, rolling around a tube or pipe). That would have to get fixed. And obviously traplaunches and edge hits, but I don't even know if it's computationally possible to make traplaunches exactly match the original.

I have noticed those bugs and they are enigma to me and I'm not really sure how would I even begin to fix them. I have compared the physics code many times and its basically identical so it is very strange.And yeah traplaunches may not exactly match the original since moving platforms behave very differently from how Torque does them.

An even pipe dreamier version would involve moving from PQ to a port like this entirely (if the physics are ever exact), with full Marbleland integration and online play and multiplayer, and the ability to play multiplayer from either in your browser or in-game if you want better performance. But I fully expect something like this to never happen. Still, I can dream.

Yeah this is not something I can do alone just because of how much time it would take for all of that. Only basic leaderboards and Marbleland integration is something that is doable for me in the future at some point.

[hr]
MBHaxe Update (1.1.6 MBG, 1.3.3 MBP):
- FOV is now based on horizontal FOV instead of vertical, matching with original MB.
- Fixed the marble getting stuck in the corners.
- Fixed broken resolution after pressing the back button in Retina display.
- Fixed wrong level order in Intermediate. (MBG)
- Fixed black screen on opening the game for the first time on MacOS (MBP)

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: HiGuy, NF

Please Log in or Create an account to join the conversation.

  • Posts: 15
  • Thank you received: 6
20 Feb 2023 00:52 #11
I've been keeping an eye on this project for a while, it's good to see how it is evolving and getting more and more accurate.

I've got a few points to raise, though they are all related to custom levels, so it's understandable why there may be issues here. I have been seeing lots of commits to the github repository recently, so maybe some problems have been fixed since the last release, but I'll mention them in case.


First, some physics related things:

From custom levels I have played in the past, there have been dozens with scaled interiors. These seem to have problems with collisions here, either the marble can go straight through, or there is an immense frame rate drop.

Perhaps a bit of a vaguer problem is that one basic level I made in Constructor, 'The Mug' is very difficult in this version - I can't get a very good grip on the grass that surrounds the main interior, so I always fall off which makes this very tricky indeed.


Other related issues (some minor):

Custom levels where the Mission Type is not explicitly stated cause the main Play button not to function. It was an easy fix, just by adding
Code:
type = "Custom";
into the MissionInfo.

I have a few levels like this, which may have just been bad practice from me when I made these levels years ago, since they do load in the original MBG when placed in the custom directory. However, it's possible there are other custom levels without this line in, and so it could be assumed that levels without a type are custom, allowing the Play button to work.

Another one of my missions did not load when the static marble was present, that is, I had to remove this from my mission:
Code:
new TSStatic() { position = "-44.0637 0.0648257 43.3379"; rotation = "1 0 0 0"; scale = "1 1 1"; shapeName = "~/data/shapes/balls/ball-superball.dts"; };

For me, if a custom level takes the 'Level 1' place, the finish GUI doesn't seem to appear at the end, so the time is not recorded.

Original MBG allowed subfolders within the custom folder, and they would still show in the Custom tab in game. This was handy for organising custom levels on the computer's file system. It would be nice if this could be implemented here.

Another thing was coloured skies. For example, the level 'Pipe Nightmare' by marbleman should have a completely red sky, but it loads to the classic sky here. This level also has two suns, causing it not to load unless one of the suns is deleted. I believe there are a handful of, but not many, custom levels with multiple suns.

Here's a comparison of Pipe Nightmares between the Web port and the Haxe port with the first sun deleted, so it loads. Unfortunately I don't have the original MBG to hand, but from what I remember, the Web version looks to be like the original.



Again, these are indeed custom levels, and as you've mentioned, not every level from the CLA is expected to work, and the physics can only get closer, but what I hope is that maybe some issues presented here can help more custom levels be supported, given that there are so many, narrowing the gap between this and the original game.

Thanks once more for making this port - I always loved quickly launching up Marble Blast on the occasion; this is the closest it gets on macOS now.

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
20 Feb 2023 08:51 #12
Thank you for the feedback. Customs support has always been flaky in the MBG version of this port. However I've been working on integrating the CLA in the MBP version (pre-release web version accessible here: mbphaxe.netlify.app , won't work in Safari).
As a result the bugs relating the interior collisions, skies and static shapes have been fixed. I will be backporting these fixes to the MBG version in case someone wants to manually install custom levels offline to play, however the preferred way would be to utilize the CLA feature of the MBP version (when I release the new version) to play them all, similar to how Vanilagy's web port works.
Will fix the other issues.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: RossDarker

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
21 Feb 2023 18:16 #13
Version 1.4.0 Marble Blast Platinum has been released!
This new version brings Marbleland/CLA integration allowing you to seamlessly play all the supported custom levels without any hassle!
- Added controller support. (Thanks thearst3rd)
- Improved replay saving flow.
- Improved marble physics a bit.
- Cleaned up some UI.
- Fixed collision detection bugs.
- Fixed various graphical bugs.
- Fixed item hitboxes being too small.

Version 1.1.7 Marble Blast Gold has been released!
- Added controller support.
- Added support to load and play custom levels. (Native only)
- Improved replay UX flow.
- Improved marble physics a bit.
- Fixed Tornado rendering.
- Fixed some collision bugs.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: NF, thearst3rd, RossDarker

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
01 Jun 2023 18:47 #14
Marble Blast Haxe Port now runs on Android devices natively!
Download links of apks are on main post.

Version 1.5.0 Marble Blast Platinum has been released!
This update brings the following big changes:
- Added Rewind capabilities. Open options to configure it.
- Added capability to play locally installed custom levels. Install your customs in platinum/data/missions.
- Improved traplaunches, now they should be much more easier to do.
- Buffed nuke a bit, hold jump key to make it blast much stronger.
- Minor physics improvements.
- Minor performance improvements.

Version 1.1.8 Marble Blast Gold has been released!
This update adds the following features and bugfixes:
- Adds Rewind capabilities. Open options to enable rewind and configure its settings!
- Improved traplaunches, they should now be more easily doable.
- Minor physics fixes.
- Fixed broken finish pads.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
04 Jun 2023 17:42 #15
Version 1.5.1 Marble Blast Platinum has been released!
This update fixes the following bugs:
- Fixed a bug concerning moving platform collisions.
- Made moving platforms rewind correctly in case of traplaunches.

Version 1.1.9 Marble Blast Gold has been released!
This update fixes the following bugs:
- Fixed bugs caused by rewinding past the level start.
- Fixed crash caused by traplaunch.
- Removed the ability to rewind if you finished the level.
- Fixed a bug concerning moving platform collisions.
- Made moving platforms rewind correctly in case of traplaunches.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
05 Jun 2023 16:56 #16
Version 1.5.2 Marble Blast Platinum has been released!
This update fixes the following bugs:
- Updated marbleland integration (custom levels) link to the new site.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
22 Jul 2023 16:28 - 22 Jul 2023 16:37 #17
Marble Blast Ultra Haxe Port has been released!
Featuring identical graphics and shaders with Marble Blast Ultra but runs on Mac, Web and Android as well.

Differences from OpenMBU/MBU Xbox:
  • No Multiplayer support, for the forseeable future.
  • No leaderboards support yet, not until OpenMBU gets leaderboards.
  • Replay recording and watching support, even for Gem Hunt.
  • Rewind TAS support.
  • Minor shader differences.
  • Options may differ slightly.
For screenshots and download links, please check the main post.

----

Version 1.1.10 Marble Blast Gold and 1.5.3 Marble Blast Platinum has also been released to fix some minor bugs.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
Last edit: 22 Jul 2023 16:37 by RandomityGuy.
The following user(s) said Thank You: thearst3rd, RossDarker

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
23 Jul 2023 19:21 #18
Marble Blast Ultra version 1.0.1 has been released fixing the following bugs:

- Updated the skyboxes for specific levels.
- Fixed a softlock caused by exiting a level to main menu while recording.
- Fixed achievement popup at wrong times.
- Fixed camera orientation bug when changing gravity.
- Fixed moving platform timings.
- Fixed some UI issues for higher resolutions.
- Fixed a softlock caused by running out of time while OOB in Gem Hunt.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: TaylorMinecraftGaming

Please Log in or Create an account to join the conversation.

  • Posts: 900
  • Thank you received: 405
01 Aug 2023 13:44 #19
Playing the Haxe port of MBU has been my first experience of MBU at all, and I love the gem hunt mode especially. It feels smoother even than PQ's gem hunt (although maybe that's just the 120 FPS from my MacBook Pro) and it's really fun to play for something mindless—I used to have to boot up PQ through WINE, host a server, and then struggle through the lag and bad frame rates, but now I can just do this!

I especially love the rolling and bouncing sound effects for the mega marble, and I wish those could be in PQ too, because it just makes them so much more fun to use. The hitboxes for the gravity modifiers in particular seem much smaller than the PQ version, but I guess that's because they are actually corresponding to the shape of these specific gravity modifiers, whereas I'm pretty sure in PQ they use the MBG shape, but just make them look like MBU, so the hitboxes are still from the MBG versions. And the blast being less powerful than it is in PQ will take some adjusting to, but I'm sure that's how it was in MBU, so thank you for preserving that. However, I can't use the powerup button to skip the Out of Bounds animation like I can in MBG, so I can't just click the mouse to skip it, and have to wait 2.5 seconds or however long it is every time I go out of bounds, which in gem hunt is a lot!

Finally, you know I wouldn't leave this post without saying I hope there's a small chance that this can actually function as gem hunt multiplayer. PQ's multiplayer is such a hassle, especially on modern Macs running Catalina or newer, where WINE is required and crashes all the time. This just performs immensely better, isn't 3 GB, doesn't crash, the sounds actually function correctly (because audio packs are broken in PQ multiplayer anyway), and is more true to what MBO would have looked like, which was the best multiplayer experience this game has ever offered, or so I've heard. This + custom level support + option for platinum gems + marbleblast.com accounts/leaderboards would be incredible, but I'd be very surprised if it ever happens. Just thought I'd mention it.

But really, thank you again for all your hard work with this project. I seriously never thought I'd be able to play this game fluidly and natively on any 10.15+ macOS, let alone on an Apple Silicon Mac, but you've proven me wrong many times, and I'm so grateful. Thanks!
The following user(s) said Thank You: RandomityGuy

Please Log in or Create an account to join the conversation.

  • Posts: 1
  • Thank you received: 0
11 Aug 2023 20:16 #20
Is it just me, or is there something wrong with the current .zip file for the mac port of MBP? I can't get it to decompress.

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
11 Aug 2023 20:55 #21
The zip file opens up just fine for me. Try a different archiver.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • Posts: 17
  • Thank you received: 8
12 Aug 2023 09:24 #22
I'm having the same issue as poopstache: I downloaded the mac version of platinum and can't get the file to unzip. I tried "archive Utility" and "The Unarchiver" to unzip/decompress. Can you check it again?

Regardless, thank you so much for creating all of these versions!!! Such a life saver.

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
12 Aug 2023 11:33 #23
Try now, reuploaded the zip file at the same link. There was indeed an issue due to which complete extraction was not possible.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • Posts: 17
  • Thank you received: 8
14 Aug 2023 23:26 #24
Wow, amazing!! Thank you so much! Is there any way I can donate to you?

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
15 Aug 2023 03:55 #25
You can click on the support link in the main post above or ko-fi.com/H2H5FRTTL

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
10 Oct 2023 18:49 - 10 Oct 2023 18:50 #26
Marble Blast Gold 1.1.11, Marble Blast Platinum 1.5.4, Marble Blast Ultra 1.0.2 has been released bringing the following bugfixes and changes:

This update fixes the following bugs:

- Updated Marbleland support. New levels will now automatically show up. (MBP)
- Implement "Latest" and "Alphabetical" sorting for Marbleland customs. (MBP)
- Optimized rewind to use memory better.
- Fixed a handful of memory leaks.
- Match a little better with MBG Collision code.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
Last edit: 10 Oct 2023 18:50 by RandomityGuy.
The following user(s) said Thank You: HiGuy, NF

Please Log in or Create an account to join the conversation.

  • Posts: 1
  • Thank you received: 1
03 Dec 2023 09:29 #27
I have bug reports for Marble Blast Gold. I finished the whole game and only saw bugs in these two levels.
-Advanced Level 22
-Advanced Level 51

In Advanced Level 22, half of the ball goes into the ground, I can't move correctly.
On Advanced Level 51, the platform wobbles on the way down
Attachments:
The following user(s) said Thank You: RandomityGuy

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 258
  • Thank you received: 61
24 Dec 2023 08:27 #28
Thanks for the bug reports.

Marble Blast Gold 1.1.12 has been released fixing your reported bugs:

- Fixed marbles phasing through interiors when going too fast
- Fixed jittery interactions between marble and moving platforms
- Fixed moving platform velocities not being correct when they reach their destination

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
The following user(s) said Thank You: yasin

Please Log in or Create an account to join the conversation.

Moderators: Doomblah
Time to create page: 1.022 seconds
We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.