These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

CREST experimental access for the Alliance Tournament

First post First post
Author
CCP QC
C C P
C C P Alliance
#81 - 2013-07-25 20:17:43 UTC
Slvrsmth wrote:
Long ago, in a discussion far far away, there were magical words CREST and OAuth used in the same sentence. Any news on this, or have I been dreaming?
...


Yep, its been worked on. You'd need CCP Seagull to talk specific delivery dates. I'd say they are good chances of 3rd party apps being able to use our Single Sign On service for authentication before winter expansion, yes.

Doing that is the first step in then supporting registered 3rd party apps with write access to TQ.
Zael Jun
Pandemic Horde Inc.
Pandemic Horde
#82 - 2013-07-25 20:20:22 UTC
CCP QC wrote:
Well, that's partially the magic of Eve. The actual clients don't get x,y,z except when they or someone else joins a bubble. A part from that, they only get the "Dude X started orbiting Dude Y" or "Dude A started shooting dude B" events and the simulation is then synchronized. If no one clicks anything, even a 2000 man fleet fight produces just about no traffic.

The method we use here needs to store all x,y,z and send them down all the time, no local simulation. THAT doesn't scale well to 2000 ship fleet.


Could you not provide that same level of expectation in this case? I mean, I don't really see a problem with people being expected to simulate some information. Is there a particular use case I'm missing?
Nicen Jehr
Blue Republic
RvB - BLUE Republic
#83 - 2013-07-25 20:20:58 UTC  |  Edited by: Nicen Jehr
A particular CREST endpoint might respond with one set of data for api-v1/json; and different sets of data for api-v2/json, api-v1/xml, and api-v2.xml. Since those cases contain different encoding and data the clients certainly must be able to differentiate between them.

I imagine that pretty much every REST client that is capable of reading MIME type and setting Accept headers should also be able to set API-Version headers in its requests, so my guess is that it would be too much work for devs to modify the CREST codebase to use headers instead of MIME type, and an executive decision has been made that this is adequate.

I don't see anything "wrong" about doing it with MIME types, I just think that it's a little smelly and CCP has the opportunity to set a nice precedent by using an API-version header (which would contain the same string as your current MIME type).

edit: also thanks for this, devs, i do appreciate it, just want to share my concerns before you open the entire CREST API for development
CCP QC
C C P
C C P Alliance
#84 - 2013-07-25 20:50:26 UTC
Zael Jun wrote:
CCP QC wrote:
Well, that's partially the magic of Eve. The actual clients don't get x,y,z except when they or someone else joins a bubble. A part from that, they only get the "Dude X started orbiting Dude Y" or "Dude A started shooting dude B" events and the simulation is then synchronized. If no one clicks anything, even a 2000 man fleet fight produces just about no traffic.

The method we use here needs to store all x,y,z and send them down all the time, no local simulation. THAT doesn't scale well to 2000 ship fleet.


Could you not provide that same level of expectation in this case? I mean, I don't really see a problem with people being expected to simulate some information. Is there a particular use case I'm missing?


Let's not derail the thread too much, but in short: Distributed simulation needs to be 100% perfect. If your floating point library is off a tiny bit, the scene will desynch and you have no hope of recovery. Further, you need to know MUCH more than just "Dude A orbits dude B". How fast you orbit is influenced by a ton of stuff, collisions have to be computed in the exact same way. Of course, nothing is impossible, but for now we are experimenting with this positional data method.

Ultimately though, you are just talking to the wrong person =) Other devs are much better suited to talk about Destiny (that's the name of the simulation engine) then I am.
Two step
Aperture Harmonics
#85 - 2013-07-25 21:21:02 UTC
I am working on a viewer (get the URL from someone in the CSM Alumni channel), and I am running into a couple of problems:

1) I am trying to use your webGL library, but to do that I need to convert ship names/ids to resource paths (like res:/dx9/model/ship/amarr/at1/at1.red). It looks like the javascript file at http://web.ccpgamescdn.com/shipviewer/assets/shipresources.js has a partial list, but it doesn't have all ship types. Can you either include the resource path to the .red file, or poke someone to update that javascript with the full ship list?

2) My linear algebra is really rusty, and turning position + velocity vectors into a 4x4 matrix is hard. This isn't really your fault, but man, I thought I left linear algebra behind. :)

CSM 7 Secretary CSM 6 Alternate Delegate @two_step_eve on Twitter My Blog

Marcel Devereux
Aideron Robotics
Federation Uprising
#86 - 2013-07-25 21:34:04 UTC
Two step wrote:
I am working on a viewer (get the URL from someone in the CSM Alumni channel), and I am running into a couple of problems:

1) I am trying to use your webGL library, but to do that I need to convert ship names/ids to resource paths (like res:/dx9/model/ship/amarr/at1/at1.red). It looks like the javascript file at http://web.ccpgamescdn.com/shipviewer/assets/shipresources.js has a partial list, but it doesn't have all ship types. Can you either include the resource path to the .red file, or poke someone to update that javascript with the full ship list?

2) My linear algebra is really rusty, and turning position + velocity vectors into a 4x4 matrix is hard. This isn't really your fault, but man, I thought I left linear algebra behind. :)


I tried the argument that power is cheap and clean in Iceland and they should do the velocity calculation for us, but it didn't work ;-( Think of all the fossil fuel that will be burned by people writing inefficient algorithms to calculate velocity! Shame on you CCP for not being green!
Rn Bonnet
Perkone
Caldari State
#87 - 2013-07-25 21:37:42 UTC  |  Edited by: Rn Bonnet
Is there anyway I can talk you guys into setting the correct Content-Type type header on this stuff? JSON should have the following according to RFC 4627:

Content-Type: application/json; charset=utf-8

You are setting:

Content-Type: application/vnd.ccp.eve.TournamentRealtimeMatchFrame-v1+json; charset=utf-8

Which tricks out some libraries.


Edit: woops didn't see the rest of the discussion here feel safe to ignore.
Two step
Aperture Harmonics
#88 - 2013-07-25 22:09:35 UTC
Marcel Devereux wrote:


I tried the argument that power is cheap and clean in Iceland and they should do the velocity calculation for us, but it didn't work ;-( Think of all the fossil fuel that will be burned by people writing inefficient algorithms to calculate velocity! Shame on you CCP for not being green!


I don't want to calculate velocity, I need to turn velocity into a translation matrix for web gl. Any graphics/math guys want to step up and tell me what I need to do?

CSM 7 Secretary CSM 6 Alternate Delegate @two_step_eve on Twitter My Blog

Rn Bonnet
Perkone
Caldari State
#89 - 2013-07-25 23:17:53 UTC
CCP QC wrote:
Zael Jun wrote:
CCP QC wrote:
Well, that's partially the magic of Eve. The actual clients don't get x,y,z except when they or someone else joins a bubble. A part from that, they only get the "Dude X started orbiting Dude Y" or "Dude A started shooting dude B" events and the simulation is then synchronized. If no one clicks anything, even a 2000 man fleet fight produces just about no traffic.

The method we use here needs to store all x,y,z and send them down all the time, no local simulation. THAT doesn't scale well to 2000 ship fleet.


Could you not provide that same level of expectation in this case? I mean, I don't really see a problem with people being expected to simulate some information. Is there a particular use case I'm missing?


Let's not derail the thread too much, but in short: Distributed simulation needs to be 100% perfect. If your floating point library is off a tiny bit, the scene will desynch and you have no hope of recovery. Further, you need to know MUCH more than just "Dude A orbits dude B". How fast you orbit is influenced by a ton of stuff, collisions have to be computed in the exact same way. Of course, nothing is impossible, but for now we are experimenting with this positional data method.

Ultimately though, you are just talking to the wrong person =) Other devs are much better suited to talk about Destiny (that's the name of the simulation engine) then I am.


It actually scales fine, lets say you do a 32 bit floating point integer for the cords, of which you have 3. You can represent that in 10 bytes of ascii. So:

10bytes*3*2000=60KB (at max) assuming no compression (gzip can easily 1/4 that).

In terms of RPS if you just put a varnish in front of it you only get one to the back-end a second and you can scale horizontally all you want. Done and done.


Rn Bonnet
Perkone
Caldari State
#90 - 2013-07-25 23:37:13 UTC
Two step wrote:
Marcel Devereux wrote:


I tried the argument that power is cheap and clean in Iceland and they should do the velocity calculation for us, but it didn't work ;-( Think of all the fossil fuel that will be burned by people writing inefficient algorithms to calculate velocity! Shame on you CCP for not being green!


I don't want to calculate velocity, I need to turn velocity into a translation matrix for web gl. Any graphics/math guys want to step up and tell me what I need to do?


http://blogoben.wordpress.com/2011/06/05/webgl-basics-5-full-transformation-matrix/

Code examples at the bottom.
Mikron Alexarr
New Age Solutions
#91 - 2013-07-26 00:01:40 UTC
CCP Veritas wrote:
Mikron Alexarr wrote:
can you find a quick way to link pilots to characters?

That hadn't been done because the team exists in a tournament-agnostic way while the pilot's within the context of a single tournament.

Today I deployed a new endpoint which is a team within the context of a specific tournament, linked from the base tournament endpoint in the "entries". I think it'd make sense for us to have a link to pilotstats within the pilots array on that endpoint. We'll see if I get around to it next week. I probably will.


Much appreciated! I've been soaking up android dev practices and such and the less I have to dig for information the better for me right now. I'm skipping the SQLite backing in favor of a persistent fragment caching mechanism (just for now!). So, the less I have to store the better. Having to slog through all of the match data to get pilot stats (even if I could work something with just pulling the first series) feels unnecessary. I thought that the teams list was tournament independent. But now that it will be, I can just use that instead ^.^.

Thank you for exposing this data for us to consume!
Mikron Alexarr
New Age Solutions
#92 - 2013-07-26 00:08:33 UTC
Another thought, when winners and losers are decided, can you update the cache max life to something like 5 minutes rather than 5 seconds on those particular endpoints? I'm basing my polling off of that value, and polls are power expensive. Once I have the data, I shouldn't need to re-query results for a finished match/series unless a decision is made afterward that would affect the outcome.
Two step
Aperture Harmonics
#93 - 2013-07-26 02:13:33 UTC
I spent the day working on a little something.... http://dontshootx.com/crest/

It might be up and down while I futz around with it

CSM 7 Secretary CSM 6 Alternate Delegate @two_step_eve on Twitter My Blog

GizzyBoy
Aperture Harmonics
#94 - 2013-07-26 05:56:40 UTC
CCP Veritas wrote:
We put some more mildly ridiculous data at this endpoint:
http://public-crest-duality.testeveonline.com/tournaments/3/series/6/matches/0/



can we have a velspar object flying around doomsdaying orcas?
CCP Veritas
C C P
C C P Alliance
#95 - 2013-07-27 21:37:16 UTC
4 of the matches today had a bit too much data for the persistence layer to handle, so their realtime data is likely to disappear tomorrow after downtime once the cache expires. I have the data stored elsewhere so it's not lost, but we might have some holes in the exposure for a day or two until we can get that sorted.

CCP Veritas - Technical Director - EVE Online

Salpun
Global Telstar Federation Offices
Greater D.U.S.K. Coalition
#96 - 2013-07-27 21:43:33 UTC
CCP Veritas wrote:
4 of the matches today had a bit too much data for the persistence layer to handle, so their realtime data is likely to disappear tomorrow after downtime once the cache expires. I have the data stored elsewhere so it's not lost, but we might have some holes in the exposure for a day or two until we can get that sorted.

Does that include the 2 matches that do not show any data on http://atxi-stats.appspot.com matches 70 and 77

If i dont know something about EVE. I check https://wiki.eveonline.com/en/wiki/ISK_The_Guide

See you around the universe.

CCP Veritas
C C P
C C P Alliance
#97 - 2013-07-27 21:49:48 UTC
Salpun wrote:
Does that include the 2 matches that do not show any data on http://atxi-stats.appspot.com matches 70 and 77

Nope, all matches have data in memory at present. I don't know what's going on with Soxfour's app for those two matches.

CCP Veritas - Technical Director - EVE Online

Salpun
Global Telstar Federation Offices
Greater D.U.S.K. Coalition
#98 - 2013-07-27 21:51:58 UTC
CCP Veritas wrote:
Salpun wrote:
Does that include the 2 matches that do not show any data on http://atxi-stats.appspot.com matches 70 and 77

Nope, all matches have data in memory at present. I don't know what's going on with Soxfour's app for those two matches.

Thanks

If i dont know something about EVE. I check https://wiki.eveonline.com/en/wiki/ISK_The_Guide

See you around the universe.

CCP FoxFour
C C P
C C P Alliance
#99 - 2013-07-27 22:04:26 UTC
Yea, I have no idea why those two matches are not giving any data. I am no getting any errors either. I will dig into them latter, I probably messed something very simple up. :(

For those that are interested you can find the source for my site here: https://bitbucket.org/regner/atxi-stats/src

And if you have not seen it you can see it hosted here: http://atxi-stats.appspot.com/

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

CCP FoxFour
C C P
C C P Alliance
#100 - 2013-07-27 22:05:32 UTC
CCP Veritas wrote:
Salpun wrote:
Does that include the 2 matches that do not show any data on http://atxi-stats.appspot.com matches 70 and 77

Nope, all matches have data in memory at present. I don't know what's going on with Soxfour's app for those two matches.


Neither do I! :( And unfortunately I am busy the rest of the night and cannot look into it. Hopefully I will get to it tomorrow.

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.