file Methods for Shaders in MBG(is it possible?)

  • MatthieuParizeau
  • MatthieuParizeau's Avatar Topic Author
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 56
  • Thank you received: 8
19 May 2012 17:53 #1
I'd like to know if any of these methods are possible/legal and if the're possible, how would anyone go about doing them:

Method 1:
Decompile The MarbleBlastGold.exe file and after getting the C++, merge in the missing shader stuff from TGEA or T3D.

Method 2:
Emulate Fake Shaders with TorqueScript for both Marbles and Platforms.(In MB9, I noticed that the marble had fake shading on it in BlazerYo's video).

Those were the methods I thought of, Can you let me know if they're possible/legal and how(somewhat) as I said before...
Also If you can think of any other methods just say so

PS: Did I post this in the right place

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

  • IsraeliRD
  • IsraeliRD's Avatar
  • Offline
  • Project Manager
  • Project Manager
  • Dragon Power Supreme
  • Posts: 3502
  • Thank you received: 913
19 May 2012 18:12 #2
1) Technically not very legal, but if you do it for private use (i.e. never share with anyone, because else you pretty much violate many laws) then well no one would care (as long as they don't find out you did that to begin with).
To do it, you first need to figure out what goes into the engine, aka the compression type. There are several methods so you gotta figure out which one is it. I suspect I know what it is but there's more than just compression.
The biggest thing you have to know is that if you want to decompile *any* engine is that you aren't going to get 100% of the data. You'll be happy to get even half, maybe more.
And it's not just one simple step, there's quite a process and that could take a few weeks/months on its own. You aren't going to find a decompiler either, it's something you have to build yourself manually.

Additionally, MB's engine was heavily modified for MB and pretty much differs from any other Torque Engine. Go with the fact you aren't going to get 100% data (as said) and you get pretty stuck. Likewise, the engine misses things like terrain, water, AI and other things (mind you, shaders didn't come until later versions/engines).

You're better off getting TGEA and working on that engine and doing your own physics for it... will be much faster and has all the stuff you need (terrain, AI, water, shaders, multiplayer, etc.).

2) I don't know here, but then again, MB9 uses code from MBU which is illegal so I can't help you there.

"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.

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

  • MatthieuParizeau
  • MatthieuParizeau's Avatar Topic Author
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 56
  • Thank you received: 8
19 May 2012 18:20 #3
Thanks Matan

I'll hope to see someone telling me more about method 2, since that should be legal

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

  • MadMarioSkills
  • MadMarioSkills's Avatar
  • Offline
  • Experienced Marbler
  • Experienced Marbler
  • Posts: 198
  • Thank you received: 0
19 May 2012 19:01 #4
The marble in BlazerYo's video was just using an environment map, regular MB has it if you've enabled it and run on OpenGl.

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
19 May 2012 19:50 #5
$pref::environmentMaps = 1;

enables reflection.

Then, go to marble.cs and find the datablock containing the defaultMarble. Find the emap value (if it exists, and make it look like this):

emap = true;

should give you a good reflection (at least for marble blast lol)

But yea, i was looking into shaders myself with torque game engine, but the oldest things i can find on the engine is engine version 1.5, which is like years later marble blast's. The marble blast engine is roughly torque game engine 1.1/1.2 , but as Matan pointed out, there are a ton of differences. Example, try to find 1/2 of the other c++ callback classes in the torque side of marble blast. Good luck , as you can't. There is no player class (marble class replaced it), no weather classes, no shader data classes, and many others. But, we make do with what we have.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • MatthieuParizeau
  • MatthieuParizeau's Avatar Topic Author
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 56
  • Thank you received: 8
19 May 2012 22:01 #6
May 19, 2012, 12:50pm, jeff wrote:$pref::environmentMaps = 1;

enables reflection.

Then, go to marble.cs and find the datablock containing the defaultMarble. Find the emap value (if it exists, and make it look like this):

emap = true;

should give you a good reflection (at least for marble blast lol)

But yea, i was looking into shaders myself with torque game engine, but the oldest things i can find on the engine is engine version 1.5, which is like years later marble blast's. The marble blast engine is roughly torque game engine 1.1/1.2 , but as Matan pointed out, there are a ton of differences. Example, try to find 1/2 of the other c++ callback classes in the torque side of marble blast. Good luck , as you can't. There is no player class (marble class replaced it), no weather classes, no shader data classes, and many others. But, we make do with what we have.

Tried it!

I love my *Horrible* Marble Texture Now

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
19 May 2012 23:00 #7
Also, to elaborate on what I said, there are no shader objects in the current marble blast torque game engine, so its virtually impossible to do it legally.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • Posts: 301
  • Thank you received: 57
20 May 2012 04:58 #8
A script hook could probably accomplish it. But it would take a lot of work and you would have to be really knowledgeable with Direct X hooks.

If it was even possible.

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
20 May 2012 06:14 #9
@Trace you can't execute anything outside of torqueScript without hacking the EXE.

Jeff

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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
20 May 2012 06:56 #10
Unnnnnnnnnnnnnless you set a program shortcut (itms:// anyone?) and launch that through gotoWebPage(). Pwnt.

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

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
20 May 2012 06:58 #11
Still, I don't see how that would make it compatible with the torque game engine, and how it would just hook into it...

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • Posts: 301
  • Thank you received: 57
20 May 2012 08:29 #12
May 19, 2012, 11:14pm, jeff wrote:@Trace you can't execute anything outside of torqueScript without hacking the EXE.

Jeff

@Jeff you silly if you think that.

var pb_ad_url = ads.proboards.com/ad.pl?as=300x250&ap=BT...15&cb=+Math.random() ; document.write('');

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

  • MatthieuParizeau
  • MatthieuParizeau's Avatar Topic Author
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 56
  • Thank you received: 8
20 May 2012 16:10 #13
May 20, 2012, 1:29am, conor wrote:
May 19, 2012, 11:14pm, jeff wrote:@Trace you can't execute anything outside of torqueScript without hacking the EXE.

Jeff

@Jeff you silly if you think that.

var pb_ad_url = ads.proboards.com/ad.pl?as=300x250&ap=BT...15&cb=+Math.random() ; document.write('');

O_O

How???

I have no Idea how you did that but...does that mean shaders are possible in MBG?

Edit: @Matan forum bug I can't put the : D emoticon

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
20 May 2012 16:33 #14
May 20, 2012, 1:29am, conor wrote:
May 19, 2012, 11:14pm, jeff wrote:@Trace you can't execute anything outside of torqueScript without hacking the EXE.

Jeff

@Jeff you silly if you think that.



Sure, but its still glichy and you know it
Once you get the textures to show up with it, i'll be impressed.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • Posts: 301
  • Thank you received: 57
20 May 2012 16:51 #15
May 20, 2012, 9:10am, nothing wrote:
May 20, 2012, 1:29am, conor wrote:

@Jeff you silly if you think that.



O_O

How???

I have no Idea how you did that but...does that mean shaders are possible in MBG?

Edit: @Matan forum bug I can't put the : D emoticon

Yea shaders are possible to a certain extent. I'll put something else up later today. Still can't figure out the texture bug tho.

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

  • IsraeliRD
  • IsraeliRD's Avatar
  • Offline
  • Project Manager
  • Project Manager
  • Dragon Power Supreme
  • Posts: 3502
  • Thank you received: 913
20 May 2012 16:54 #16
I posted some info in the vid if anyone wants to check

"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.

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
20 May 2012 20:12 #17
@Trace, going onto what matan said,
1. make a new datablock
Code:datablock fxlightData(lighty) {
// add your properties, i am to lazy to look it up
};


2. then, create the object:

Code:function addLight() {
if (isObject(localclientconnection)) {
%light = new fxLight() {
datablock = lighty;
position = localclientconnection.player.getWorldBoxCenter();
scale = 1 1 1;
rotation = 1 0 0 0;
};
missionCleanup.add(%light);
}
}


3.Then, call in the console:

Code:addLight();

Or, you could try an explosion data object, which makes a little light explosion for dynamic lighting.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • Posts: 301
  • Thank you received: 57
20 May 2012 22:51 #18
May 20, 2012, 1:12pm, jeff wrote:@Trace, going onto what matan said,
1. make a new datablock
Code:datablock fxlightData(lighty) {
// add your properties, i am to lazy to look it up
};


2. then, create the object:

Code:function addLight() {
if (isObject(localclientconnection)) {
%light = new fxLight() {
datablock = lighty;
position = localclientconnection.player.getWorldBoxCenter();
scale = 1 1 1;
rotation = 1 0 0 0;
};
missionCleanup.add(%light);
}
}


3.Then, call in the console:

Code:addLight();

Or, you could try an explosion data object, which makes a little light explosion for dynamic lighting.

Seizure told me how to make this last night silly people.

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

  • Posts: 224
  • Thank you received: 10
20 May 2012 23:34 #19
May 19, 2012, 11:12am, admin wrote:1) Technically not very legal, but if you do it for private use (i.e. never share with anyone, because else you pretty much violate many laws) then well no one would care (as long as they don't find out you did that to beg--snip--

You're better off getting TGEA and working on that engine and doing your own physics for it... will be much faster and has all the stuff you need (terrain, AI, water, shaders, multiplayer, etc.).

2) I don't know here, but then again, MB9 uses code from MBU which is illegal so I can't help you there.

Torque 3D > TGEA. And if you're rebuilding MB, you might as well use a superior engine, like Unity, Cryengine 3.4, Unreal 3, etc. I was actually thinking of doing an MB-like game in CE3. That way, we can have full DirectX 11.1 support in MB =P

2) Wrong, Matan. MB9 does not, has not, and never will use MBU code. Just because we have an illegal XBOX port of MBU doesn't mean we use it in MB9. All of our scripts and codes are completely original.

Silly Matan. =P

---

Holy mother of bloom, Trace

youtube.com/marbleduck

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

  • Posts: 301
  • Thank you received: 57
20 May 2012 23:45 #20
Aight, last silly thing I'm going to post. If I can get textures working somehow I'll update you all, but this it for me.

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

  • ChaosUnown
  • ChaosUnown's Avatar
  • Offline
  • Experienced Marbler
  • Experienced Marbler
  • MB Graphic/Interior Designer
  • Posts: 160
  • Thank you received: 5
21 May 2012 00:48 #21
That's insane, haha. Is it possible to apply these effects in the Mac build too? Or does it not matter?

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
21 May 2012 00:50 #22
If what he is using is an explosion data then yes, if he is using fxLight, then no, because fxLight classed based objects are for the windows executable only.

I am a programmer. Most here know me for being one of the major contributors to Marble Blast Platinum and PlatinumQuest.

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

  • Posts: 301
  • Thank you received: 57
21 May 2012 00:54 #23
No it's not possible to apply those effects to the Mac build, as Directx (and fxLight for that matter), are both Windows only.

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

  • IsraeliRD
  • IsraeliRD's Avatar
  • Offline
  • Project Manager
  • Project Manager
  • Dragon Power Supreme
  • Posts: 3502
  • Thank you received: 913
21 May 2012 01:40 #24
May 20, 2012, 4:34pm, marbleduck wrote:2) Wrong, Matan. MB9 does not, has not, and never will use MBU code.

Actually at some point it did (with admittance from BlazerYo, unless he lied to everyone again like usual).

"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.

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

  • Posts: 226
  • Thank you received: 0
21 May 2012 01:56 #25
Yeah, Blazer isn't a reliable source to get info from, EVER.

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

  • Posts: 90
  • Thank you received: 0
22 May 2012 00:27 #26
OMG!!! That is sick! Your shaders are amazing!

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

  • Posts: 301
  • Thank you received: 57
22 May 2012 01:08 #27
May 21, 2012, 5:27pm, stonemarble wrote:OMG!!! That is sick! Your shaders are amazing!

I didn't program them or anything else I'm using to get this to work, so I can't take much credit.

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

  • brandondorf9999
  • brandondorf9999's Avatar
  • Offline
  • Beginner Marbler
  • Beginner Marbler
  • Posts: 69
  • Thank you received: 2
27 Mar 2013 03:20 #28
You can make shaders using milkshape3d and making a color texture of what you want on the model. Frankly, milkshape3d can perform shaders when the regular un-colored and the color texture to perform a shader on it when the detail map name is applied to the material in separete materials and one color texture isn't applied on it. It's best to view this document on the dts exporter so that you can make shaders for models using detail map:

docs.garagegames.com/torque-3d/of....I ALS_DETAILMAP

Hopefully, that would be helpful to you when making custom shapes.

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

Moderators: Doomblah
Time to create page: 1.554 seconds