file Advancements in the Field

  • IsraeliRD
  • IsraeliRD's Avatar Topic Author
  • Offline
  • Project Manager
  • Project Manager
  • Dragon Power Supreme
  • Posts: 3502
  • Thank you received: 913
03 Jul 2014 21:14 #1

Being able to see the development of our knowledge of Marble Blast in the past few years, especially from the standpoint of Platinum and PlatinumQuest, has been a rewarding experience. At the very beginning we had only the knowledge of making levels in the level editor. That soon followed with QuArK, and later on, Constructor and Map2Dif and its various errors. When Alex told to Phil how to make Moving Platforms it was absolutely ground breaking for us, and when we managed to change code so that we could customize Marble Blast it was the beginning of an era.

Since then many things happened: we learned how to modify the GUI (level select was a really tough one), Spy47 created the checkpoint and then the leaderboards and even gave a shot at multiplayer. Many other people then made mods and we’ve seen many community things happen, such as a speedometer, .mis modes and games (tic-tac-toe, minesweeper, and more). PlatinumQuest added even more features and game modes and every time something new comes it just blows my mind. Now with 1.50 having so many new features and multiplayer it is just amazing to see how far we came.

As of recently we have done what was previously thought to be impossible;
Modify the Marble Blast engine.
In Marble Blast Platinum 1.50 Release Candidate 1 we will be adding new files to the root directory of Marble Blast, as well as a new executable. Launching it will overwrite parts of the code of the Marble Blast engine. Be warned: if you’re on Mac, you will need to enter a user/pass to give it access, but only for the first time you run it. Windows will not even need to run it as Administrator.

The modifications implemented are written by the Platinum Team and modify very specific parts:

  • Change the camera in-game so it allows us to fix radar bugging out on gravities which aren’t “normal” i.e. anything non 1 0 0 0.
  • Client container searching (client-side collision)
  • Attempt to fix transfer speed (download/upload levels) and underlying issues in the way the Torque Game Engine handles TCP/UDP objects.
  • Attempt to fix some instances where the game would crash

As of current there are no additional plans, but if we do add anything, we will inform you.

In addition to that there has been some progress in updating the Marble Blast graphics engine, but it is very likely not to be ready in time for 1.50. We are more likely to see it for PlatinumQuest.

We are excited that this is possible and are looking forwards to further modifying the Marble Blast engine.
- Matan and the Platinum Team


"matan, now i get what you meant a few years back when you said that "the level in mbg is beyond me" after the last rampage i noticed things were insane, and now i truly feel that too" - Dushine, 2015.
The following user(s) said Thank You: Jeff, StewMan46

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

  • StewMan46
  • StewMan46's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • i dont play anymore.
  • Posts: 370
  • Thank you received: 46
03 Jul 2014 23:26 #2
Great work that the Platinum Team has done. How did you guys modify the engine anyway?

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

  • Jeff
  • Jeff's Avatar
  • Offline
  • Elite Marbler
  • Elite Marbler
  • PlatinumQuest Programmer
  • Posts: 1680
  • Thank you received: 205
03 Jul 2014 23:33 - 03 Jul 2014 23:37 #3
lots of advanced algorithms used. Also, we could not have done this on the windows side without the help of amd42, who wrote a majority of the ground work to get it up and running. HiGuy and I were working on the osx one, but he did work on the windows one. Say thanks to him guys.

Also, regarding performance on the update. Performance should be about the same as in default MBP. There should not be a loss in performance. The current specifications are implemented at the moment, and possibly will change:

Windows: Windows XP or later
Mac: OSX 10.6 or later (intel macs only!)
Linux: <none>

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.
Last edit: 03 Jul 2014 23:37 by Jeff.
The following user(s) said Thank You: StewMan46

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

  • Perishingflames
  • Perishingflames's Avatar
  • Offline
  • Senior Marbler
  • Senior Marbler
  • Posts: 882
  • Thank you received: 21
04 Jul 2014 19:36 #4
This is really exciting. Can you go into more detail about the client container searching?
The following user(s) said Thank You: Jeff, StewMan46

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

  • Jeff
  • Jeff's Avatar
  • Offline
  • Elite Marbler
  • Elite Marbler
  • PlatinumQuest Programmer
  • Posts: 1680
  • Thank you received: 205
04 Jul 2014 22:36 #5
Sure PF!

This will only allow for client container ray casting, which is used for detection of collisions on the client side. It can help collision prediction as well as making ghost marbles not fall through the interiors like they sometimes do when they are having movement prediction.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.
The following user(s) said Thank You: Perishingflames, StewMan46

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

  • Regislian
  • Regislian's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • Posts: 406
  • Thank you received: 255
05 Jul 2014 20:16 - 05 Jul 2014 20:17 #6
Sounds awesome! Good to hear something about the progress that has been made.

Thanks to all the people that put so much of their free time in this, with a special thanks to amd42!
Last edit: 05 Jul 2014 20:17 by Regislian.
The following user(s) said Thank You: Jeff

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

  • StewMan46
  • StewMan46's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • i dont play anymore.
  • Posts: 370
  • Thank you received: 46
05 Jul 2014 21:11 #7
Huge thanks to amd42, Jeff, and HiGuy for the MB engine modification. The Release Candidate should be better than the Beta builds.
The following user(s) said Thank You: Jeff

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

  • Gary
  • Gary's Avatar
  • Offline
  • Intermediate Marbler
  • Intermediate Marbler
  • Hi all
  • Posts: 80
  • Thank you received: 8
06 Jul 2014 01:23 #8
Good news. Really happy to hear the progress of MBP and PQ. Thanks Platinum Team.

HappyRoll Mod Leader
C++ Beginner
The following user(s) said Thank You: Jeff

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

  • Marblemaster1
  • Marblemaster1's Avatar
  • Offline
  • Advanced Marbler
  • Advanced Marbler
  • Custom Code Enthusiast
  • Posts: 237
  • Thank you received: 8
06 Jul 2014 01:59 #9
This is great news! Hopefully now that it's possible to modify the engine (Incidentally, how did you guys even do it?) we'll be able to make levels that are more awesome than ever.

Also, PQ WHERe

QuArK is still a good map editor

You know what's boring? Opaque marble skins. You know what's not? Glass Marbles!
The following user(s) said Thank You: Jeff

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

  • StewMan46
  • StewMan46's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • i dont play anymore.
  • Posts: 370
  • Thank you received: 46
06 Jul 2014 11:02 #10
They used a custom program (which I can't show you) that would basically modify some lines of code of the MB engine. There's also to be a new executable which will overwrite these lines of code in the MB engine the first time you use it.

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

  • Posts: 787
  • Thank you received: 123
06 Jul 2014 15:27 #11
Actually, as I recall, the staff have used 3rd party libraries to inject code into the engine's memory space at runtime.
The following user(s) said Thank You: Jeff, StewMan46

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

  • StewMan46
  • StewMan46's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • i dont play anymore.
  • Posts: 370
  • Thank you received: 46
06 Jul 2014 17:28 #12
Thanks for the extra information Promarbler.

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

  • CheepFishMBP
  • CheepFishMBP's Avatar
  • Offline
  • Experienced Marbler
  • Experienced Marbler
  • I am currently inactive.
  • Posts: 173
  • Thank you received: 14
06 Jul 2014 18:35 #13
I can't wait for MBP 1.50 and PQ. PQWhere

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

  • Posts: 165
  • Thank you received: 3
08 Jul 2014 03:49 #14
I'm dying to get RC1!!

with the music and the lights and everything :P

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

  • Posts: 194
  • Thank you received: 401
08 Jul 2014 04:23 #15
Hi everyone,

I'm the guy who's working on the code for extending the engine. You might not really know me too well unless you go on Skype a lot, because I never post here much. Since there seem to be some misconceptions floating around about how this whole thing works, I'm going to clarify a few things.

The Windows version of the extender (currently named "MBExtender" because I suck at naming) is plugin-oriented. (The Mac version should be as well, although I have to yell at HiGuy first and make him stop being lazy.) Developers with access to its C++ SDK (I plan to make this available upon release) can write plugin modules which extend the engine through a very simple interface. Any function anywhere in the engine, regardless of whether or not it's exposed to script, can be overridden or intercepted with a single line of code, and it's also possible for plugins to declare new TorqueScript functions which are implemented with native code. The plugin SDK is cross-platform, enabling a plugin written for Windows to also work on Mac as long as the plugin doesn't contain any OS-specific code in it.

Conceptually, the extender works through an EXE and two DLL files that you have to place in the game's folder. You launch the new EXE, and then it loads the game into memory, freezes it, and then loads the two DLLs on top of it before the game has a chance to do anything. One of the DLLs is a plugin loader which provides the plugin API and loads the plugin modules mentioned above from a "plugins" folder. The plugin loader delays plugin initialization until after the engine fully initializes and immediately before main.cs is called in order to enable them to add TorqueScript functions correctly. The other one is the Torque math library, which was compiled from the code on GitHub, and it allows plugins to use the full Torque math library without requiring me to reverse-engineer the functions in the game's executable.

The Windows loader was almost completely written by me alone and only uses a third-party library to assist with handling certain edge cases when overriding functions. The Mac loader makes use of something called mach_inject . (I hope I got that link right.)

Also, it was mentioned in the announcement that you don't need administrator access on Windows. This is actually incorrect - you do need to run it from an account with administrator rights in order for it to work properly. There is no way around this, but if you can't acquire admin rights, the game will still be playable without the extender (albeit any features added by the extender will be missing). I assumed based upon some early testing that it wasn't necessary, but it turned out that I didn't notice anything since my account on my development PC was set to be an administrator and because CrossOver didn't require superuser access.

Finally, since Matan briefly mentioned improved graphics, I'm in charge of that and I might as well show what I have so far. In order to avoid pulling an Ubisoft, I'm going to be very clear about this: THIS IS DEVELOPMENT CODE AND DOES NOT COMPLETELY REPRESENT WHAT THE GAME WILL LOOK LIKE WHEN THE MODIFICATION IS FINISHED.

Warning: Spoiler!


Keep in mind as well that this is running on my development machine, which is a desktop with an overclocked AMD Radeon R9 270x in it. (For you NVIDIA people, this is around a GTX 760.) If you're running on a laptop or a lower-spec machine, YMMV.

Anyway, hopefully this allows us to do some cool things. And hopefully I actually find the time to finish all of this.

"You know you've spelled something wrong when the only search results are Jeff convos" - HiGuy
The following user(s) said Thank You: Perishingflames, Jeff, StewMan46

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

  • Posts: 643
  • Thank you received: 198
08 Jul 2014 06:53 - 08 Jul 2014 06:56 #16
OMG! :woohoo: The shaders looks AWESOME!!
And what's YMMV?

lee is awesome
Last edit: 08 Jul 2014 06:56 by Lee.

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

  • MatthieuParizeau
  • MatthieuParizeau's Avatar
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 56
  • Thank you received: 8
08 Jul 2014 14:00 #17
That looks awesome! :D

Great Job!

Does the utility also work on other programs and not just Marble Blast? That could be useful for modding other games too :)

~ Matt

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

  • Posts: 194
  • Thank you received: 401
08 Jul 2014 19:12 - 08 Jul 2014 22:52 #18

Lee Zi Xian wrote: OMG! :woohoo: The shaders looks AWESOME!!
And what's YMMV?

Sorry for not being clear - it stands for "your mileage may vary." Basically, if you're on a slow computer, don't expect the game to look as good. It will still probably look better than default MB, though. I'm not very good at optimizing OpenGL code, but I plan to try and make several different quality levels that you can choose from. I have a laptop with Intel HD 4000 graphics that I can test with.

Matthieu Parizeau wrote: That looks awesome! :D

Great Job!

Does the utility also work on other programs and not just Marble Blast? That could be useful for modding other games too :)

~ Matt

It's highly tied into how the MB engine is set up. A similar concept could be applied to other games, but this extender in particular won't work with anything other than MBG out-of-the-box.

I'll talk to some of the other developers and see if I can maybe get a sample together for the launcher that adds a new TorqueScript function or something.

"You know you've spelled something wrong when the only search results are Jeff convos" - HiGuy
Last edit: 08 Jul 2014 22:52 by Derpky.
The following user(s) said Thank You: Regislian

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

  • Jeff
  • Jeff's Avatar
  • Offline
  • Elite Marbler
  • Elite Marbler
  • PlatinumQuest Programmer
  • Posts: 1680
  • Thank you received: 205
08 Jul 2014 22:35 - 08 Jul 2014 22:35 #19

I'm not very good at optimizing OpenGL code, but I plan to try and make several different quality levels that you can choose from. I have a laptop with Intel HD 4000 graphics that I can test with.


amd42, at least it isn't fixed function gl 1.1 calls for setting each triangle vertex :P

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.
Last edit: 08 Jul 2014 22:35 by Jeff.

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

  • Posts: 53
  • Thank you received: 10
14 Jul 2014 23:19 #20
very excited for the future of marbleblast. and pq where
a smoother collision will make multiplayer even more enjoyable.

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

  • StewMan46
  • StewMan46's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • i dont play anymore.
  • Posts: 370
  • Thank you received: 46
15 Jul 2014 01:09 - 15 Jul 2014 11:22 #21
Oh yeah. Windows will need admin rights to run it though you can still run the game without the extender (some parts of the extender may be missing).
Last edit: 15 Jul 2014 11:22 by StewMan46.

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

Moderators: Doomblah
Time to create page: 1.527 seconds