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

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

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
Previous page123Next page
 

Display character who built the ship as a detail on killmails

First post First post
Author
Orion Pax
Yoyodyne corporation
#21 - 2014-09-24 16:41:33 UTC
Ralph King-Griffin wrote:

i say let him tryTwisted


Challenge accepted. Twisted

I've been programming for 15 years. It's going to be a piece of cake.
Bronson Hughes
The Knights of the Blessed Mother of Acceleration
#22 - 2014-09-24 16:44:42 UTC
Packaged items only have one piece of data associated with their identity the database: an item ID. By adding another unique identifier to the database, you're doubling the amount of identity data that is associated with a packaged item. From a software standpoint, yes, it would very likely be an easy enough change to make. But there are Billions and Billions (Hi Carl!) of items in the EvE universe, and having the servers have to handle one more piece of data for all of them, would be a massive burden on hardware.

EvE is built around packaged items being completely, utterly, 100% indistinguishable from each other. Let's not go breaking that just so people can collect intel on who's building their opponent's ships. There are other ways to do that already....

Relatively Notorious By Association

My Many Misadventures

I predicted FAUXs

Orion Pax
Yoyodyne corporation
#23 - 2014-09-24 16:47:33 UTC  |  Edited by: Orion Pax
Bronson Hughes wrote:
Packaged items only have one piece of data associated with their identity the database: an item ID. By adding another unique identifier to the database, you're doubling the amount of identity data that is associated with a packaged item. From a software standpoint, yes, it would very likely be an easy enough change to make. But there are Billions and Billions (Hi Carl!) of items in the EvE universe, and having the servers have to handle one more piece of data for all of them, would be a massive burden on hardware.

EvE is built around packaged items being completely, utterly, 100% indistinguishable from each other. Let's not go breaking that just so people can collect intel on who's building their opponent's ships. There are other ways to do that already....


I understand that. However, no matter what, we would have a column that keeps track of the number of items that are stacked correct? I'm saying add an extra column to the table that keeps track of this integer. This extra column would be an array type which keeps track of playerIDs that built said ship(s). When they are unpackaged the playerIDs would be redistributed to said ships.
Leoric Firesword
Imperial Shipment
Amarr Empire
#24 - 2014-09-24 16:47:45 UTC
I'm not sure you're seeing the issue here. It's 1 database entry for each copy of a packaged ship someone has. Doesn't matter who built it.

Example: I've got 3 packaged Moa's in my hanger, I know 2 were built by a corp mate and 1 was bought off the market.

Since they're all packed they stack together making 1 single database entry with a quantity of 3. (2 of them have never ever been assembled, the other I really can't remember)

So, how do you propose that in a single database entry we store unique information tagging ship 1 to my corp buddy, ship 2 to the guy who built and then sold on market, and then ship 3 to my corp buddy (that's the order I acquired them in)?

Can't use the previous stack I'd's because I'm sure that at least 2 of them got wiped out when I got them to a central location and stacked them.

Can't use the previous ship Id's because those get wiped when you repackaged (and in my case some of those ships never have been assembled to get that item id).

Then even if you did find a way to associate that data, if you have a fleet fight you're going to have to retrieve this data for each ship, which is going to add time to the query, which will add processing time, causing lag.
Orion Pax
Yoyodyne corporation
#25 - 2014-09-24 16:49:13 UTC
Leoric Firesword wrote:
I'm not sure you're seeing the issue here. It's 1 database entry for each copy of a packaged ship someone has. Doesn't matter who built it.

Example: I've got 3 packaged Moa's in my hanger, I know 2 were built by a corp mate and 1 was bought off the market.

Since they're all packed they stack together making 1 single database entry with a quantity of 3. (2 of them have never ever been assembled, the other I really can't remember)

So, how do you propose that in a single database entry we store unique information tagging ship 1 to my corp buddy, ship 2 to the guy who built and then sold on market, and then ship 3 to my corp buddy (that's the order I acquired them in)?

Can't use the previous stack I'd's because I'm sure that at least 2 of them got wiped out when I got them to a central location and stacked them.

Can't use the previous ship Id's because those get wiped when you repackaged (and in my case some of those ships never have been assembled to get that item id).

Then even if you did find a way to associate that data, if you have a fleet fight you're going to have to retrieve this data for each ship, which is going to add time to the query, which will add processing time, causing lag.


Read the post above you.
Leoric Firesword
Imperial Shipment
Amarr Empire
#26 - 2014-09-24 16:52:10 UTC
Orion Pax wrote:
Leoric Firesword wrote:
I'm not sure you're seeing the issue here. It's 1 database entry for each copy of a packaged ship someone has. Doesn't matter who built it.

Example: I've got 3 packaged Moa's in my hanger, I know 2 were built by a corp mate and 1 was bought off the market.

Since they're all packed they stack together making 1 single database entry with a quantity of 3. (2 of them have never ever been assembled, the other I really can't remember)

So, how do you propose that in a single database entry we store unique information tagging ship 1 to my corp buddy, ship 2 to the guy who built and then sold on market, and then ship 3 to my corp buddy (that's the order I acquired them in)?

Can't use the previous stack I'd's because I'm sure that at least 2 of them got wiped out when I got them to a central location and stacked them.

Can't use the previous ship Id's because those get wiped when you repackaged (and in my case some of those ships never have been assembled to get that item id).

Then even if you did find a way to associate that data, if you have a fleet fight you're going to have to retrieve this data for each ship, which is going to add time to the query, which will add processing time, causing lag.


Read the post above you.



actually, how about you go ahead and build a prototype system?

eve dumps their item data, you can make up some tables about what you think might be held once a ship is assembled, then go for it.

I bet you find it a lot tougher than you think it'll be.
Bronson Hughes
The Knights of the Blessed Mother of Acceleration
#27 - 2014-09-24 16:55:56 UTC
Orion Pax wrote:
I understand that. However, no matter what, we would have a column that keeps track of the number of items that are stacked correct? I'm saying add an extra column to the table that keeps track of this integer. This extra column would be an array type which keeps track of playerIDs that built said ship(s).

How would you handle splitting of stacks? Would ships split from a stack pick a random builderID, pick from the top, pick from the bottom, etc.? Keep in mind, this action is extra compute time.

How would you handle the increased throughput requirements for adding an array equal in size to the stack size for every single packaged ship in the game? If someone had a stack of 1000 Rifters, you've just multiplied the size of the database entry for that stack by a thousand-fold.

Why are you limiting this to only ships? Surely people would be interested in knowing who built their modules, implants, ammunition, etc, right?



See where I'm going here? Any way you cut this, it's a performance nightmare for something that doesn't add to gameplay.

Relatively Notorious By Association

My Many Misadventures

I predicted FAUXs

Orion Pax
Yoyodyne corporation
#28 - 2014-09-24 17:01:45 UTC
Leoric Firesword wrote:
Orion Pax wrote:
Leoric Firesword wrote:
I'm not sure you're seeing the issue here. It's 1 database entry for each copy of a packaged ship someone has. Doesn't matter who built it.

Example: I've got 3 packaged Moa's in my hanger, I know 2 were built by a corp mate and 1 was bought off the market.

Since they're all packed they stack together making 1 single database entry with a quantity of 3. (2 of them have never ever been assembled, the other I really can't remember)

So, how do you propose that in a single database entry we store unique information tagging ship 1 to my corp buddy, ship 2 to the guy who built and then sold on market, and then ship 3 to my corp buddy (that's the order I acquired them in)?

Can't use the previous stack I'd's because I'm sure that at least 2 of them got wiped out when I got them to a central location and stacked them.

Can't use the previous ship Id's because those get wiped when you repackaged (and in my case some of those ships never have been assembled to get that item id).

Then even if you did find a way to associate that data, if you have a fleet fight you're going to have to retrieve this data for each ship, which is going to add time to the query, which will add processing time, causing lag.


Read the post above you.



actually, how about you go ahead and build a prototype system?

eve dumps their item data, you can make up some tables about what you think might be held once a ship is assembled, then go for it.

I bet you find it a lot tougher than you think it'll be.



I expect it would take an hour or two.

My point is, the solution I provided is elegant and will work easily. I find it unfortunate that people are always telling others that provide ideas, "It'll make the game laggy!", "That's billions of new entries!", "How is that even possible?!"

And once, I'm like, "I'll write it for you."

It's like, "Write a prototype and hand it to us on a silver platter and we'll think about it. (Because we can't deny it won't work now.)"
Orion Pax
Yoyodyne corporation
#29 - 2014-09-24 17:08:30 UTC
Bronson Hughes wrote:
Orion Pax wrote:
I understand that. However, no matter what, we would have a column that keeps track of the number of items that are stacked correct? I'm saying add an extra column to the table that keeps track of this integer. This extra column would be an array type which keeps track of playerIDs that built said ship(s).

How would you handle splitting of stacks? Would ships split from a stack pick a random builderID, pick from the top, pick from the bottom, etc.? Keep in mind, this action is extra compute time.

How would you handle the increased throughput requirements for adding an array equal in size to the stack size for every single packaged ship in the game? If someone had a stack of 1000 Rifters, you've just multiplied the size of the database entry for that stack by a thousand-fold.

Why are you limiting this to only ships? Surely people would be interested in knowing who built their modules, implants, ammunition, etc, right?



See where I'm going here? Any way you cut this, it's a performance nightmare for something that doesn't add to gameplay.



It would be a simple array shift or pop. I can't see it making a difference. A stack of 1000 Rifters would still be a single array of playerIDs that built the ship. I don't really care about the mods but it would be nice to have. If CCP designed their database to handle mods, ships, items in a generic way, adding this to ships would automatically provide the same feature to all items in the game.
Bronson Hughes
The Knights of the Blessed Mother of Acceleration
#30 - 2014-09-24 17:27:18 UTC
Orion Pax wrote:
It would be a simple array shift or pop.

That wasn't there before. Now, multiply that operation by however frequently people split stacks.

Orion Pax wrote:
A stack of 1000 Rifters would still be a single array of playerIDs that built the ship.

Again, an array that wasn't there before, and scales, without limit, with the size of the stack. And, again, multiply the modification of this array by however frequently people split, add to, or create stacks.

With those two items alone, that's a whole mess of operations that weren't there before. And we haven't even covered the extra database writes necessary to store the information in the first place (admittedly a small issue), or how to handle items that were already in existance (another small issue), etc. As someone who's worked in a high-power compute environment for a number of years, I can tell you firsthand that even a small additional computation can break a robust database system if the frequency of that computation isn't taken into account.

Orion Pax wrote:
If CCP designed their database to handle mods, ships, items in a generic way, adding this to ships would automatically provide the same feature to all items in the game.

This is precisely what CCP did. Packaged items are 100% generic. They are indistinguishable from each other for the purpose of lessening EvE's database needs. That's what's so brilliant about them. All you need to identify a packaged item in the database is an item ID, and nothing else. What you're proposing is making packaged items non-generic and increasing EvE's database needs.

Relatively Notorious By Association

My Many Misadventures

I predicted FAUXs

Orion Pax
Yoyodyne corporation
#31 - 2014-09-24 17:39:23 UTC
Bronson Hughes wrote:
Orion Pax wrote:
It would be a simple array shift or pop.

That wasn't there before. Now, multiply that operation by however frequently people split stacks.

Orion Pax wrote:
A stack of 1000 Rifters would still be a single array of playerIDs that built the ship.

Again, an array that wasn't there before, and scales, without limit, with the size of the stack. And, again, multiply the modification of this array by however frequently people split, add to, or create stacks.

With those two items alone, that's a whole mess of operations that weren't there before. And we haven't even covered the extra database writes necessary to store the information in the first place (admittedly a small issue), or how to handle items that were already in existance (another small issue), etc. As someone who's worked in a high-power compute environment for a number of years, I can tell you firsthand that even a small additional computation can break a robust database system if the frequency of that computation isn't taken into account.

Orion Pax wrote:
If CCP designed their database to handle mods, ships, items in a generic way, adding this to ships would automatically provide the same feature to all items in the game.

This is precisely what CCP did. Packaged items are 100% generic. They are indistinguishable from each other for the purpose of lessening EvE's database needs. That's what's so brilliant about them. All you need to identify a packaged item in the database is an item ID, and nothing else. What you're proposing is making packaged items non-generic and increasing EvE's database needs.



You can also make it a totally separate table and join tables...

I give up.

It's tough when people can't deduce or conclude the obvious solutions themselves from evidence and reasoning rather than from explicit statements.

Fly safe.
Callic Veratar
#32 - 2014-09-24 17:53:37 UTC
An array of Player IDs for each person that made a ship could work. Sure. Your stack of 20 rifters gets an array of User IDs. That's fine, except every stack of items changes from a number of ships to an ordered list. Still, not the worst, one person splitting and joining the stacks should just be splitting and joining arrays.

Except before it was math and now it's array logic (or some other data structure). Still, that's not too bad, until you scale the operations from one player up to the thousands that are on the server at one time. Suddenly it exponentially more complicated and a stack all command changes from a couple seconds to a minute or so. The last time a change of that magnitude happened with the current inventory window it made inventory management almost unplayable.

Still, it's a neat idea. Even if the performance was manageable, consider how much stuff you have in your hangar. I own at least 20,000 ships, plus once it's on ships, why can't it also be on modules? Safe estimate I would have 50k items with IDs. Multiply that by the 500k players and you're adding 100GB+ of player IDs to the database for something that'd be kinda neat with no real functionality.

Yes it can be done. Of course it could be done quite easily. Scalability is the issue.
Absolutely Not Analt
Carebears on Fire
#33 - 2014-09-24 17:58:43 UTC
Orion Pax wrote:

Read 4 posts above you. Also I already offered to write that part of the code. I sure hope you're not 5 years old. Comms would be inappropriate for you.


The problem isn't that it would be particularly difficult to do. An extra database column would handle the data, as you rightly point out. Actually you'd need two - one in stacks table, and one in the items table that holds the assembled ships. That second one could just be a foreign key to the character table though, so it's really not that important in the grand scheme of things - it's the first column that's the tricky one.

The issue is what handling that extra column in the way you're suggesting code wise in a system like Eve's would cost from a performance standpoint. People create, split, merge and delete stacks all the time. I mean literally all the time. In their cargo, in their inventory, at POSes, in jet cans, inside containers. And all of those stacks have to be tracked, including where they are, who owns them, and what they are a stack of. You basically want to add an extra column to that, in VARCHAR format, to track who created what.

Now, I happen to know that CCP is a Microsoft SQL Server shop (Get Oracle you fools!) from some articles I've read in the past. I know, from looking at the MS SQL variable types, that the maximum length of a VARCHAR field is 8,000 characters. I would assume that each of our character IDs is something like 10-12 digits long (assuming CCP is planning ahead and using Big Decimals). We'll say 10.

A stack can have at least 1,000 items in it (if not many more - ammo, obviously has tens or hundreds of thousands, as do minerals, but I'm not sure if they use a separate table for "bulk" type items). That means that, in order to accomodate the 1,000 items, I need at least 10,000 characters, so VARCHAR isn't going to do it (and that doesn't even account for some kind of spacer between the entries). Under Oracle, we'd have to use a BLOB to store the data - under MSSQL, you basically have to write the data to a text file, and then store that in the database as a binary file stream.

And you have to do it thousands of times a minute.

And all of that just to point ou that we can't even associate which entry in the stack matches which entry in the player id array (thus defeating the purpose of this suggestion) without adding even more psuedo indexing data to the table in the form of yet another blob (or expandiong the scope of the one we're using).

So yes, when people say "IT'S THE PERFORMANCE" it's not a cop out in this case. While what you want to add isn't necessarily complex from an idea standpoint, trying to add it to a high volume system without introducing a slow down in that system for what is, essentially, a vanity name plate is beyond ridiculous. It serves no point, and in no way can it do anything except harm the overall system.

Eve is a multi player game. And you are the content. - Ralph King-Griffin Being meh at two things is not better than being great at one. - Lugh Crow-Slave

Jur Tissant
Garoun Investment Bank
Gallente Federation
#34 - 2014-09-24 18:01:30 UTC
It's probably technically possible but it would require a bit of a rework of how items are handled, and for what real benefit? Lots of industrialists might not want to have their names on KMs, especially for capital ships, and it's only of passing interest to others.
Retar Aveymone
GoonWaffe
Goonswarm Federation
#35 - 2014-09-24 18:15:55 UTC
Orion Pax wrote:

Read 4 posts above you. Also I already offered to write that part of the code. I sure hope you're not 5 years old. Comms would be inappropriate for you.


Orion Pax wrote:

I understand that. However, no matter what, we would have a column that keeps track of the number of items that are stacked correct? I'm saying add an extra column to the table that keeps track of this integer. This extra column would be an array type which keeps track of playerIDs that built said ship(s). When they are unpackaged the playerIDs would be redistributed to said ships.


can't imagine why they didn't accept your offer to contribute some code to eve you sure seem like a guy who thinks things through all the way
Bronson Hughes
The Knights of the Blessed Mother of Acceleration
#36 - 2014-09-24 19:37:51 UTC
Orion Pax wrote:
You can also make it a totally separate table and join tables...

Which is another join operation that wasn't there before, and will impact system performance.

We can do this all day. No matter how you cut it, your idea that is very simple to code (a point with which I have never disagreed) would likely have a noticeable impact on system performance by virtue of the sheer number of times the additional instructions included in your simple code change are executed. Database servers can only handle so much.

Orion Pax wrote:
It's tough when people can't deduce or conclude the obvious solutions themselves from evidence and reasoning rather than from explicit statements.

We are coming to different conclusions because, I believe, we are looking at the issue from different backgrounds and likely different fields of expertise. Rather like the difference between theoretical physics and applied engineering: just because it's theoretically possible doesn't mean we have the technology to make it work yet.

Relatively Notorious By Association

My Many Misadventures

I predicted FAUXs

Bienator II
madmen of the skies
#37 - 2014-09-24 19:38:20 UTC
CCP Fozzie wrote:
http://xkcd.com/1425/

would be funny if you wouldn't have a team and a few years

how to fix eve: 1) remove ECM 2) rename dampeners to ECM 3) add new anti-drone ewar for caldari 4) give offgrid boosters ongrid combat value

DrysonBennington
Eagle's Talon's
#38 - 2014-09-25 00:30:23 UTC
Good idea.
Donnachadh
United Allegiance of Undesirables
#39 - 2014-09-26 01:47:36 UTC
Orion Pax wrote:
Leoric Firesword wrote:
Orion Pax wrote:
Leoric Firesword wrote:
I'm not sure you're seeing the issue here. It's 1 database entry for each copy of a packaged ship someone has. Doesn't matter who built it.

Example: I've got 3 packaged Moa's in my hanger, I know 2 were built by a corp mate and 1 was bought off the market.

Since they're all packed they stack together making 1 single database entry with a quantity of 3. (2 of them have never ever been assembled, the other I really can't remember)

So, how do you propose that in a single database entry we store unique information tagging ship 1 to my corp buddy, ship 2 to the guy who built and then sold on market, and then ship 3 to my corp buddy (that's the order I acquired them in)?

Can't use the previous stack I'd's because I'm sure that at least 2 of them got wiped out when I got them to a central location and stacked them.

Can't use the previous ship Id's because those get wiped when you repackaged (and in my case some of those ships never have been assembled to get that item id).

Then even if you did find a way to associate that data, if you have a fleet fight you're going to have to retrieve this data for each ship, which is going to add time to the query, which will add processing time, causing lag.


Read the post above you.



actually, how about you go ahead and build a prototype system?


eve dumps their item data, you can make up some tables about what you think might be held once a ship is assembled, then go for it.

I bet you find it a lot tougher than you think it'll be.



I expect it would take an hour or two.

My point is, the solution I provided is elegant and will work easily. I find it unfortunate that people are always telling others that provide ideas, "It'll make the game laggy!", "That's billions of new entries!", "How is that even possible?!"

And once, I'm like, "I'll write it for you."

It's like, "Write a prototype and hand it to us on a silver platter and we'll think about it. (Because we can't deny it won't work now.)"


First off NO to the idea in the OP. It is data not needed in the game and most would probably not want it published anyway.

The other thing I find interesting are the programmers like you who come to the forums and talk about how easy xyz would be to change when they have no clue how it was all set up to begin with. Besides if this is all so easy why not go write your own online pixel spaceships game? It should be easy for a programming genius like you to handle, you could have it all your way and you could become rich and famous.
Lugh Crow-Slave
#40 - 2014-09-26 05:13:32 UTC
Because screw you server
Previous page123Next page