Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
API User Wishes
Author Message
Chiantii Offline
Member
***

Posts: 121
Joined: Feb 2013
Post: #21
RE: API User Wishes
(28-06-2013 08:29 AM)Topper42 Wrote:  
(27-06-2013 08:21 PM)Chiantii Wrote:  
(27-06-2013 09:19 AM)Topper42 Wrote:  Hi,

I think the first one isn't used.

These files shouldn't be on the servers anyway ^^, i will let them remove asap.

Cheers

Ha! So you're going to tell your bosses they should hire me now, right? Smile You're welcome! So far I've exposed this to you, and the fact that GAMEDATA.buildings is still being downloaded when it shouldn't Smile

I've gone over ClientLib.js, webfrontend.js and all of GAMEDATA[] from top to bottom - there is a LOT of redundant data which could significantly improve the loading time of the game. For instance, some files are being downloaded twice, and other developers have been lazy so things like "webfrontend/baseview/neutral/res_tiberium_01_fx - Copy.xaml" are still there.

But the worst performance hit of all is the forums if you're an officer+ in an alliance with a lot of diplomatic relations. You really need to do something about that Smile

So should I sent you my resume? Smile

It is actually really frustrating that such stuff is still happening ^^, and only comes to day light by the users.

That buildings are still in the gamedata is a relict from Lord of Ultima ^^, i already removed it our dev version.

Of course we can do a lot of improvements but our producer have other stuff that comes first Wink. So it is not always the developers that are lazy Wink.

If you want to sent in your resume feel free: http://www.phenomic.de/jobs.php

so who you are you in this picture: http://www.phenomic.de/img/site/kopf_team.jpg ? Smile
29-06-2013 05:42 AM
 Search   Quote 
Topper42 Offline
Developer
***

Posts: 248
Joined: Dec 2011
Post: #22
RE: API User Wishes
(29-06-2013 05:42 AM)Chiantii Wrote:  
(28-06-2013 08:29 AM)Topper42 Wrote:  
(27-06-2013 08:21 PM)Chiantii Wrote:  
(27-06-2013 09:19 AM)Topper42 Wrote:  Hi,

I think the first one isn't used.

These files shouldn't be on the servers anyway ^^, i will let them remove asap.

Cheers

Ha! So you're going to tell your bosses they should hire me now, right? Smile You're welcome! So far I've exposed this to you, and the fact that GAMEDATA.buildings is still being downloaded when it shouldn't Smile

I've gone over ClientLib.js, webfrontend.js and all of GAMEDATA[] from top to bottom - there is a LOT of redundant data which could significantly improve the loading time of the game. For instance, some files are being downloaded twice, and other developers have been lazy so things like "webfrontend/baseview/neutral/res_tiberium_01_fx - Copy.xaml" are still there.

But the worst performance hit of all is the forums if you're an officer+ in an alliance with a lot of diplomatic relations. You really need to do something about that Smile

So should I sent you my resume? Smile

It is actually really frustrating that such stuff is still happening ^^, and only comes to day light by the users.

That buildings are still in the gamedata is a relict from Lord of Ultima ^^, i already removed it our dev version.

Of course we can do a lot of improvements but our producer have other stuff that comes first Wink. So it is not always the developers that are lazy Wink.

If you want to sent in your resume feel free: http://www.phenomic.de/jobs.php

so who you are you in this picture: http://www.phenomic.de/img/site/kopf_team.jpg ? Smile

Nobody Wink, this is a very old picture, i guess it was taken while battleforge development.
29-06-2013 12:13 PM
 Search   Quote 
Chiantii Offline
Member
***

Posts: 121
Joined: Feb 2013
Post: #23
RE: API User Wishes
(29-06-2013 12:13 PM)Topper42 Wrote:  
(29-06-2013 05:42 AM)Chiantii Wrote:  
(28-06-2013 08:29 AM)Topper42 Wrote:  
(27-06-2013 08:21 PM)Chiantii Wrote:  
(27-06-2013 09:19 AM)Topper42 Wrote:  Hi,

I think the first one isn't used.

These files shouldn't be on the servers anyway ^^, i will let them remove asap.

Cheers

Ha! So you're going to tell your bosses they should hire me now, right? Smile You're welcome! So far I've exposed this to you, and the fact that GAMEDATA.buildings is still being downloaded when it shouldn't Smile

I've gone over ClientLib.js, webfrontend.js and all of GAMEDATA[] from top to bottom - there is a LOT of redundant data which could significantly improve the loading time of the game. For instance, some files are being downloaded twice, and other developers have been lazy so things like "webfrontend/baseview/neutral/res_tiberium_01_fx - Copy.xaml" are still there.

But the worst performance hit of all is the forums if you're an officer+ in an alliance with a lot of diplomatic relations. You really need to do something about that Smile

So should I sent you my resume? Smile

It is actually really frustrating that such stuff is still happening ^^, and only comes to day light by the users.

That buildings are still in the gamedata is a relict from Lord of Ultima ^^, i already removed it our dev version.

Of course we can do a lot of improvements but our producer have other stuff that comes first Wink. So it is not always the developers that are lazy Wink.

If you want to sent in your resume feel free: http://www.phenomic.de/jobs.php

so who you are you in this picture: http://www.phenomic.de/img/site/kopf_team.jpg ? Smile

Nobody Wink, this is a very old picture, i guess it was taken while battleforge development.

Shame! They need to update it! The community see's you as the man behind Phenomic, so you should be in the picture!

On another note, I'm happy to have gone through the exercise of learning how to assemble all the layers and offsets (took a very long time to get a grasp of the pivot numbers!) and animate the various objects, but I still don't understand how you couldn't create a wrapper to allow others to add animated objects to their scripts.

For instance - give the current obfuscation:

foo = new $I.AVAVGZ();
foo2 = new $I.JGQFPZ();
foo3 = new $I.UXUIZA(); <-confusing

set foo3

.AMGVEL
.YGZQCA
.ILYRPB
.DOIRFY

foo2.LSGJWU(foo3);

and finally

foo.KWKIGF(foo2,ClientLib.Res.ResMain.GetInstance().GetGamedata().effects[51],x,y,ClientLib.Res.ResMain.GetInstance().GetGamedata().effects[51].a[0].d)

Returns the object with all data required (in this case GDI construction yard) for animation... and a lot more, but that's irrelevant for the basic scripters needs.

You could just simplify things so all a person has to do is call a modified version of the last statement, so it returns the object on a canvas already in motion. Which means the x,y parameters would have to be removed, since the player will just add the object anywhere.

Again, not saying it should be a priority, but people are coming up with some really awesome scripts lately, and this could be Very valuable to scripters!

Cheers!
(This post was last modified: 01-07-2013 08:56 AM by Chiantii.)
01-07-2013 08:51 AM
 Search   Quote 
Topper42 Offline
Developer
***

Posts: 248
Joined: Dec 2011
Post: #24
RE: API User Wishes
(01-07-2013 08:51 AM)Chiantii Wrote:  Shame! They need to update it! The community see's you as the man behind Phenomic, so you should be in the picture!

On another note, I'm happy to have gone through the exercise of learning how to assemble all the layers and offsets (took a very long time to get a grasp of the pivot numbers!) and animate the various objects, but I still don't understand how you couldn't create a wrapper to allow others to add animated objects to their scripts.

For instance - give the current obfuscation:

foo = new $I.AVAVGZ();
foo2 = new $I.JGQFPZ();
foo3 = new $I.UXUIZA(); <-confusing

set foo3

.AMGVEL
.YGZQCA
.ILYRPB
.DOIRFY

foo2.LSGJWU(foo3);

and finally

foo.KWKIGF(foo2,ClientLib.Res.ResMain.GetInstance().GetGamedata().effects[51],x,y,ClientLib.Res.ResMain.GetInstance().GetGamedata().effects[51].a[0].d)

Returns the object with all data required (in this case GDI construction yard) for animation... and a lot more, but that's irrelevant for the basic scripters needs.

You could just simplify things so all a person has to do is call a modified version of the last statement, so it returns the object on a canvas already in motion. Which means the x,y parameters would have to be removed, since the player will just add the object anywhere.

Again, not saying it should be a priority, but people are coming up with some really awesome scripts lately, and this could be Very valuable to scripters!

Cheers!

You mean something like this:

Code:
var effect = ClientLib.Vis.VisMain.GetInstance().get_City().StartEffect(id, posX, posY, startParameters);
01-07-2013 10:15 AM
 Search   Quote 
Chiantii Offline
Member
***

Posts: 121
Joined: Feb 2013
Post: #25
RE: API User Wishes
(01-07-2013 10:15 AM)Topper42 Wrote:  You mean something like this:

Code:
var effect = ClientLib.Vis.VisMain.GetInstance().get_City().StartEffect(id, posX, posY, startParameters);

Smile That isn't much help to the scripting community wanting to add an animated object (building or unit) in a window or a grid or simply place it anywhere on a custom canvas. However, something like this would:

Code:
var m_animatedObjData = ClientLib.Effect.BaseEffect.get_AnimatedTechObj(51);

// the ClientLib.Effect.BaseEffect object that is returned (m_animatedObjData) contains a LOT more data than we would need, but it would be more work on your part to return a stripped down version of the object, so the redundant information can just be ignored.

foo.add(new webfrontend.gui.AnimatedTechObj(m_animatedObjData).set({
    scale : true,
    startAnimation : true

// Or leave scaling out for now and add it later when and if you have more time. I know how complicated it is, given all the layers and offset images and keyframes and  and , so leaving it out would likely speed up delivery of this API. However, perhaps allow something like 'size : 50%', so the object doesn't always have to be at full resolution, but dynamic re-sizing can be left out for a later date.

});

Where 51 is the tech id, so it could technically be

Code:
var m_tech = ClientLib.Base.Tech.GetTechIdFromTechNameAndFaction(name, faction);

var m_animatedObjData = ClientLib.Effect.BaseEffect.get_AnimatedTechObj(m_tech);

foo.add(new webfrontend.gui.AnimatedTechObj(m_animatedObjData).set({
        size : .67,
        startAnimation: true
    }), {
    left: ##,
    top: ##
});

...

You know you can do it! I have complete faith in you!
(This post was last modified: 01-07-2013 08:19 PM by Chiantii.)
01-07-2013 08:17 PM
 Search   Quote 
Topper42 Offline
Developer
***

Posts: 248
Joined: Dec 2011
Post: #26
RE: API User Wishes
(01-07-2013 08:17 PM)Chiantii Wrote:  
(01-07-2013 10:15 AM)Topper42 Wrote:  You mean something like this:

Code:
var effect = ClientLib.Vis.VisMain.GetInstance().get_City().StartEffect(id, posX, posY, startParameters);

Smile That isn't much help to the scripting community wanting to add an animated object (building or unit) in a window or a grid or simply place it anywhere on a custom canvas. However, something like this would:

Code:
var m_animatedObjData = ClientLib.Effect.BaseEffect.get_AnimatedTechObj(51);

// the ClientLib.Effect.BaseEffect object that is returned (m_animatedObjData) contains a LOT more data than we would need, but it would be more work on your part to return a stripped down version of the object, so the redundant information can just be ignored.

foo.add(new webfrontend.gui.AnimatedTechObj(m_animatedObjData).set({
    scale : true,
    startAnimation : true

// Or leave scaling out for now and add it later when and if you have more time. I know how complicated it is, given all the layers and offset images and keyframes and  and , so leaving it out would likely speed up delivery of this API. However, perhaps allow something like 'size : 50%', so the object doesn't always have to be at full resolution, but dynamic re-sizing can be left out for a later date.

});

Where 51 is the tech id, so it could technically be

Code:
var m_tech = ClientLib.Base.Tech.GetTechIdFromTechNameAndFaction(name, faction);

var m_animatedObjData = ClientLib.Effect.BaseEffect.get_AnimatedTechObj(m_tech);

foo.add(new webfrontend.gui.AnimatedTechObj(m_animatedObjData).set({
        size : .67,
        startAnimation: true
    }), {
    left: ##,
    top: ##
});

...

You know you can do it! I have complete faith in you!

I'am afraid it's not that simple, the whole effect is highly dependent on our egine system. It creates the needed images itself via our factory and attaches them to the scene and than updates is depending on the storyboard you choose. Not even we can simply display such effects in another canvas that is not from our engine.

The only way i currently see is to build the whole effect classes from scratch to support other canvas objects.
01-07-2013 09:24 PM
 Search   Quote 
Chiantii Offline
Member
***

Posts: 121
Joined: Feb 2013
Post: #27
RE: API User Wishes
(01-07-2013 09:24 PM)Topper42 Wrote:  I'am afraid it's not that simple, the whole effect is highly dependent on our egine system. It creates the needed images itself via our factory and attaches them to the scene and than updates is depending on the storyboard you choose. Not even we can simply display such effects in another canvas that is not from our engine.

The only way i currently see is to build the whole effect classes from scratch to support other canvas objects.

No problem! So where can I download the unobfuscated ClientLib? Smile
02-07-2013 06:22 AM
 Search   Quote 
Topper42 Offline
Developer
***

Posts: 248
Joined: Dec 2011
Post: #28
RE: API User Wishes
(02-07-2013 06:22 AM)Chiantii Wrote:  
(01-07-2013 09:24 PM)Topper42 Wrote:  I'am afraid it's not that simple, the whole effect is highly dependent on our egine system. It creates the needed images itself via our factory and attaches them to the scene and than updates is depending on the storyboard you choose. Not even we can simply display such effects in another canvas that is not from our engine.

The only way i currently see is to build the whole effect classes from scratch to support other canvas objects.

No problem! So where can I download the unobfuscated ClientLib? Smile

Yeah that is not possible, but i will try to create these classes in an eaxmple script.
02-07-2013 08:05 AM
 Search   Quote 
Chiantii Offline
Member
***

Posts: 121
Joined: Feb 2013
Post: #29
RE: API User Wishes
(02-07-2013 08:05 AM)Topper42 Wrote:  
(02-07-2013 06:22 AM)Chiantii Wrote:  
(01-07-2013 09:24 PM)Topper42 Wrote:  I'am afraid it's not that simple, the whole effect is highly dependent on our egine system. It creates the needed images itself via our factory and attaches them to the scene and than updates is depending on the storyboard you choose. Not even we can simply display such effects in another canvas that is not from our engine.

The only way i currently see is to build the whole effect classes from scratch to support other canvas objects.

No problem! So where can I download the unobfuscated ClientLib? Smile

Yeah that is not possible, but i will try to create these classes in an eaxmple script.

You know I was joking about the unobfuscated ClientLib Smile However, what you're doing is incredible. Whatever they are paying you, it's not nearly enough.
02-07-2013 08:15 AM
 Search   Quote 
Topper42 Offline
Developer
***

Posts: 248
Joined: Dec 2011
Post: #30
RE: API User Wishes
(02-07-2013 08:15 AM)Chiantii Wrote:  
(02-07-2013 08:05 AM)Topper42 Wrote:  
(02-07-2013 06:22 AM)Chiantii Wrote:  
(01-07-2013 09:24 PM)Topper42 Wrote:  I'am afraid it's not that simple, the whole effect is highly dependent on our egine system. It creates the needed images itself via our factory and attaches them to the scene and than updates is depending on the storyboard you choose. Not even we can simply display such effects in another canvas that is not from our engine.

The only way i currently see is to build the whole effect classes from scratch to support other canvas objects.

No problem! So where can I download the unobfuscated ClientLib? Smile

Yeah that is not possible, but i will try to create these classes in an eaxmple script.

You know I was joking about the unobfuscated ClientLib Smile However, what you're doing is incredible. Whatever they are paying you, it's not nearly enough.

Yes i know ^^. I hope i will get this managed it is basically writing a little engine just for the effects Wink and all of this in greasemonkey without proper debugging.

EDIT: I had look at the whole effect code and it is like i expected there is no way you could use it outside our code and we are not gonne unobfuscate the engine. Sadly the work which had to be done to rewrite the effect system from scratch is a lot. I don't have the time to write it myself but i'm willing to help and answer questions.
(This post was last modified: 02-07-2013 03:04 PM by Topper42.)
02-07-2013 08:52 AM
 Search   Quote 


Forum Jump:


User(s) browsing this thread: