file Where exactly is all of Marble Blast's functionality described?

  • Vanilagy
  • Vanilagy's Avatar Topic Author
  • Offline
  • Intermediate Marbler
  • Intermediate Marbler
  • Posts: 87
  • Thank you received: 49
24 Sep 2020 16:13 #1
Hey guys, long time no see.

I was looking around the Marble Blast Gold folder and found many TorqueScript files seeming to be describing game functionality (I know next to nothing about how Torque games work) However, I can't help but notice that some info is missing? Take powerup.cs for example. In it, only the Gravity Modifier and Time Travel are fully described (what they actually do); all the other powerups' effects are not described. Where does it say what a SuperJump does on use? I can't find it anywhere in these files. Is it encoded into the .exe somehow? Am I missing some files? Do people who create sophisticated mods (such as PQ) manage to decompile the .exe somehow, back into a Torque project, or do they do all the work in these .cs files?

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

  • Weather
  • Weather's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • Posts: 491
  • Thank you received: 270
24 Sep 2020 16:58 #2
Yes, I believe the missing stuff is all in the EXE and DLL files. The EXE stuff was written in C++ I believe, whereas all CS files are in TorqueScript. PQ was made largely through CS files but also through engine injections (note the additional DLLs). Derpking did most of the reverse engineering, I think.

A complete decompilation would be too difficult to bother with, and no one has even managed to decompile the weird and mysterious physics engine. Whirligig has made a CS file version (posted on the forums) of MBG's powerups, so that can be used to modify them. He used it in MBPU.
The following user(s) said Thank You: Derpky

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

  • Vanilagy
  • Vanilagy's Avatar Topic Author
  • Offline
  • Intermediate Marbler
  • Intermediate Marbler
  • Posts: 87
  • Thank you received: 49
24 Sep 2020 17:38 #3
Could you link me that forum post?

Also, mh. It's strange. Big chunks of MBG are written in TorqueScript; take game.cs for example. Why would some parts be implemented in C++ and others with TorqueScript? Where's the logic in that?

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

  • Posts: 194
  • Thank you received: 401
24 Sep 2020 21:07 #4

davidskanal wrote: Big chunks of MBG are written in TorqueScript; take game.cs for example. Why would some parts be implemented in C++ and others with TorqueScript? Where's the logic in that?


TorqueScript isn't powerful enough for implementing the marble physics. It's very slow, among other things.

"You know you've spelled something wrong when the only search results are Jeff convos" - HiGuy

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

  • Vanilagy
  • Vanilagy's Avatar Topic Author
  • Offline
  • Intermediate Marbler
  • Intermediate Marbler
  • Posts: 87
  • Thank you received: 49
24 Sep 2020 21:33 #5
Alright, I get that. I actually wonder how much of Marble Blast's physics relies on native Torque physics functionality and how much of it was hand-written specifically for game's needs.

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

  • Weather
  • Weather's Avatar
  • Offline
  • Professional Marbler
  • Professional Marbler
  • Posts: 491
  • Thank you received: 270
25 Sep 2020 01:10 #6

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

  • HiGuy
  • HiGuy's Avatar
  • Offline
  • Lead Developer
  • Lead Developer
  • PQ Developer Emeritus
  • Posts: 1334
  • Thank you received: 605
25 Sep 2020 01:16 #7
See also: Marble Blast Powered Up, in which Whirligig made a whole mod reimplementing various parts of the game in script.

This signature is real code
Code:
function clientcmd12dothepq() { commandToClient(LocalClientConnection, '34onthedancefloor'); }

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

Moderators: Doomblah
Time to create page: 1.399 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.