Manufacturing 102 – Research

Research is an important aspect of industry in EVE online, though it’s one that, initially, all you have to pay attention to is the output, rather than how to do it yourself. This is because there are plenty of people out there who are more than willing to sell you the fruits of their labours, saving you time and ISK when you’re just getting started.

All forms of research take up a slot. You can increase the number of slots you can use with the Skills Laboratory Operations and Advanced Laboratory Operations

The Forms of Research

There are three basic forms of research which you can perform. Copying, Material Efficiency research and Production Level research. The latter is also called Production Efficiency research, just to confuse matters; it has nothing to do with the skill. For now, we are totally ignoring Invention and Reverse Engineering. I’ll return to Invention in a later post. Reverse Engineering, well, I’ve not touched it yet.

These activities can only be performed on a Blueprint Original (BPO). Once you have a Blueprint Copy (BPC) the only thing you can do is manufacture from it.

The maximum time a job can run for is 30 days (Unless a single run would take more than that.)

Copying

This is as simple as it sounds. Install the job, get back the BPO and a number of copies with the same ME and PL.

  • Put a Blueprint Original in your hangar (or a corp hangar)
  • Right click on it, and select copy.
  • Select an installation to put it in
  • Pick the number of runs you want on each copy
  • Pick the number of copies you want.
  • get a quote
  • Install the job.

Blueprint copies are of severely limited utility. Most of the time, you’ll just manufacture directly from a BPO. You’ll use BPCs for invention (so many BPCs. So very many), where you want to give other people the ability to use your BPOs, without handing them over. When you want to sell them to people who are just starting out, and who don’t have the funds for buying a researched BPO.

Material Efficiency

  • Put a Blueprint Original in your hangar (or a corp hangar)
  • Right click on it, and select Material Research.
  • Select an installation to put it in
  • Enter the number of levels you wish to increase the ME by
  • get a quote
  • Install the job.

Material Efficiency research is important. Most blueprints have between 5 and 10% waste what’s controlled by this figure. However, ‘as high as possible’ isn’t the way to look at this. A general rule of thumb is: Each time you double the ME level, you halve the waste. It’s not quite true (The waste is multiplied by \frac{1}{1+me} ) but it’s close enough. This only applies to the ‘Base’ materials for a blueprint, not the ‘Extra’ materials. Research blueprints to the point there you’re not losing a lot of isk with every run. Don’t chase perfect, because it’s not worth it. You may find high ME levels sell better, even when they’re massively above the perfect value (Rigs are easy to get perfect. I’ve seen people selling them at 10 times the perfect level)

The biggest problem with ME research, is finding somewhere to do it. Most High-sec slots are booked solid a month in advance. Your options are: Wait (High opportunity cost) Put up a POS to do it (Expensive, and requires standings) Hire someone to do it (Check the sell orders forum) and finally, nip into lowsec and install the job there (Riskier. You could get exploded and lose the blueprint)

Consider the last one seriously. Low-sec isn’t to be feared. Taken with caution, sure, but not feared.

Finally: This adds to the ME level.

Productivity Level

  • Put a Blueprint Original in your hangar (or a corp hangar)
  • Right click on it, and select Time Efficiency Research.
  • Select an installation to put it in
  • Enter the number of levels you wish to increase the PL by
  • get a quote
  • Install the job.

Productivity research cuts down on the time wastage when you’re making something. It saves you a little ISK, by reducing the rental fees, but otherwise, there’s no direct boost to your profit. What you get is a better isk/hr, by producing more in the same time.

As with ME research, we’re talking diminishing returns. I’d suggest taking the vast majority of blueprints past PE 5 or 10 is a mistake.

As with ME research, this adds to the PL level, rather than setting it.

PE research facilities are generally fairly empty across Highsec, so finding somewhere to install the job is simple.

Notes

In general, T1 blueprints have no material requirements for these kinds of research. Just to make life difficult, there are a few exceptions, such as the Prototype Cloaking Device. When you’re doing the research on one of these blueprints, just ensure you have the appropriate materials, found by doing a show info on the blueprint, in the hangar where the research is taking place.

If you want to know where the profit balance points are for a blueprint, take a look at the blueprint in the calculator under tools on this site. I wrote it to make my life easier, so you may as well use it too.

Skills

There are a few skills which it’s useful to have when you’re doing research. Levels are less important than for Manufacturing. Train as desired. Science 4 is required to unlock Metallurgy.

  • Science: 5% reduction in blueprint copying time, per level.
  • Laboratory Operation: 1 additional Job per level.
  • Advanced Laboratory Operations: 1 additional Job per level (needs Lab Ops 5)
  • Metallurgy: 5% reduction to ME research time, per level.
  • Research: 5% reduction in PL research time, per level.

Ice Interdiction, Mark 2

What if you could, if you can’t get at the enemy miners, cowering in their POS waiting for you to go away, work to eliminate what they’re wanting to mine?

So, there you are, arriving in the Enemy held system. And the only people there are a few miners who immediately hole up in their POS.

Now you’re just a small roving gang, without the time or firepower to take down a POS. Just hoping for a fight with a similar number of people. Right now, all you can really do is smack talk in local, and move on. Or hang around, just to annoy them.

On Earth, you could set to destroy the infrastructure needed to harvest the resources. As that’s the ships in Eve, that’s a trifle difficult to do, when they’re inside a somewhat impenetrable bubble.

What I’m suggesting is you can target the resources themselves. Shoot the ice. Assign a number of HP per unit of ice, reducing it each time a block is harvested. So shoot it, and do that much damage, and there’s a block of ice your enemy can’t harvest. Do enough, and your enemy has lost the entirety of that spawn.

What may be interesting to play with, is adjustments to the spawn timer, if blocks are damaged in that fashion, meaning it spawns less frequently. Though how you justify this from a lore POV, I’m less sure. Maybe the ‘destroyed’ blocks futz your sensors with bad readings, making it harder to locate the next spawn. So the more destroyed blocks you have, the longer the spawn is delayed.

This could also be extended to regular asteroids, with a smaller hp per unit.

Now, how this would be handled in high sec is a bit trickier. Due to the inability of people to attack others. At the very least, I’d think making the person go suspect. To stop people completely screwing up the market (for the lols), you may need Concord/Faction Navy.

You may have noticed. I like creating targets in systems. Things that it’s actually worth fighting over.

Renting Player slots – Reworking Industry

Renting slots from players is something that came up in a forum thread I was keeping an eye on. And it’s an interesting one. The CSM has heard about it, but I thought I’d bring it to a wider audience, as it was a trifle off topic for the thread it was in. The person who brought it up has since posted a blog post on it. Go have a read. I’m not stealing the idea, just posting my own views on it. πŸ™‚

 

Right now, a lot of industry, in Highsec, happens in NPC owned stations, in NPC owned slots. Some of us do production in POS, but that’s generally because we need slots which are not easily available. such as copy slots, and ME research slots. Anything other than those tend to be just because we’ve got space in the POS to stick things.

NPC services are, while a minor isk sink, not something I’m a major fan of. What is being suggested is:

The Pitch

Players/Corporations can make slots at their POS available for Public use, accessed through the normal station services. Materials will be moved back and forth by Magical Fairies. Well, by NPCs who you don’t see.

Prices will be set by the owners of the POS, with a little fee on top for NPC services to get the things back and forth.

Things to consider

There are a few things which need thought about. I’ll cover each in turn below.

  • What happens when a POS array with jobs is taken down/offlined/blown up.
  • Will people put up enough slots.
  • Griefing Potential
  • What speed do the slots run at

The slot goes away, while in use:

Blown up, taken down, offlined for more than X hours: The job is cancelled, and the materials are lost.Β  I’ll cover something else to happen in the Griefing section.

Offlined for less than X hours (over the entire course of the job): The job is delayed for that long.

Numbers of slots:

I don’t know about you, but I certainly would rent out slots, if I had spares; and the price should level out to something barely profitable, due to the invisible hand. I wouldn’t get rid of /all/ npc slots, initially. But I’d probably increase the price for them, so PC slots are better to use. There are 60,000 odd manufacturing slots in Highsec. That’s not such a good thing.

Griefing potential:

There is certainly potential. But there are ways to mitigate it, without entirely eliminating it. The main ones are:

  1. Add an uptime counter and a jobs run counter for the slot, reset on offlining. So someone can tell if it’s being bounced up and down.
  2. Add an escrow fees. You get paid when the job completes.
  3. Add a penalty escrow, based on the number of slots. So if jobs are cancelled by your actions, the people who installed them gets /something/ back. Have the escrow level displayed as well.

At that point, people have a way to determine if a slot is ‘trustworthy’ and they may pay more for that. Or cheap out, and risk having it lost.

Speed

I figure slots should run at the reduced speed. Possibly with a small bump on it for the delivery of materials to and from the stations. 30 minutes or so.

Conclusion

And of course, all of this should also work with Outposts. putting things into player hands is a good thing, as far as I’m concerned. I’d prefer for it to be possible to break POS away from moons by the time this happens. Allows things to scale better. Deep space manufacturing ftw πŸ™‚

New Decryptors – Odyssey

Looks like we’re getting new and changed decryptors in Odyssey, along with a rationalized naming scheme. The first is going to be interesting for how they shake out price wise, and what they do to the marketplace. The second only makes sense. Having to look up ‘which one does what’ is a pain in the ass. Memorizing that kind of thing doesn’t make you better. Just better at memorizing.

The rationalization

All the decryptors now share a naming scheme. it’s [‘optimized’] + ‘racial name’ + ‘decryptor type’. The racial type matches that of the interfaces. So Occult for Amarr, Esoteric for Caldari, Incognito for Gallente and Cryptic for Minmatar. The decryptor are shared across all of them. And 2 have an optimized version which has slightly different stats.

The Decryptors

  • Accelerant: 120%, +1 run, +2 ME, +5 PE
  • Attainment: 180%, +4 runs, -1 ME +2 PE
  • Optimized Attainment. 190%, +2 runs, +1 ME, -1 PE
  • Augmentation: 60%, +9 runs, -2 ME, +1 PE
  • Optimized Augmentation: 90%, +7 runs, +2 ME
  • Parity: 150%, +3 runs, +1 ME (I think. no + against it) -1 PE
  • Process: 110%, +3 ME, +3 PE (updated)
  • Symmetry: 100%, +2 runs, +1 ME, +4 PE

The parity one I’ll want to double check, as it’s showing ‘1’ for the ME modifier. All the others are showing + or – before the number.

Also, right now, invention appears to be bugged, with the interface being consumed. I’ve submitted a bug for it. Sorted

The optimized versions are marked as ‘rare and valuable’ in the description, so I suspect the drop rate will be a lot lower. Probably decent true sec null only. They are significantly better, after all.

Process will be interesting to see as well. Hitting ME 0 is damn good for some runs. Right now, this decryptor puts you at -1 -1, rather than the 0 -1 it will in Odyssey.Β  Process is back the way it was.

CSM 8 Results

Well, they’ve released the ballots for CSM 8, and unsurprisingly, I still haven’t won.

What you can get from the ballots, after processing them, is the following output.

So, there were a total of 17 rounds, With 31 candidates, and 14 being elected, this is pretty obvious stuff. With the way the Wright STV system works, one candidate is eliminated each round, then the entire election run again as if there had been no votes for them. When you have 14 candidates remaining, they’re all elected.

The order of elimination:

  1. DaeHan Minhyok
  2. Cipreh
  3. Kaleb Rysode
  4. Awol Aurix
  5. Artctura
  6. Ayeson
  7. PsychoBitch
  8. Roc Wieler
  9. riverini
  10. Travis Musgrat
  11. Unforgiven Storm
  12. Corebloodbrothers
  13. Steve Ronuken
  14. Psychotic Monk
  15. Greene Lee
  16. Banlish
  17. Nathan Jameson

Obviously, I’d have prefered, if not elected, to be eliminated in the last round. But round 13 isn’t too bad for someone with no track record. Sure, some people have heard of me, but my name isn’t ‘out there’.

There are some people who find the system too confusing. For them, I’ll give a /very/ layman version. For a little more detail, take a look at mynnna’s blog post on it.

Short version:

It takes \frac{Total votes}{Number of positions +1} to get someone elected. So, then someone is provisionally elected (You aren’t elected until it’s actually over.), you take the all the votes for that person, take all the people provisionally elected off the front of it, and reassign the votes to the next candidate on them. These votes are worth \frac{number of votes over what was needed}{number of votes for the candidate}

Once you’ve got a bunch of provisionally elected people, and all the votes have finished cascading, if you don’t have enough of them, you eliminate the lowest scoring candidate, scrub their number from all the votes and start all over again. If votes are exhausted (No candidates left on them) then they’re discarded and the numbers required are recalculated for that round.

It’d be annoying to do by hand, but a computer can chug through them fairly simply.

Most people had hit over 90% of voting power by the 5th candidate.

One interesting side effect of this. If it had been a 15 person CSM, rather than 14, Banlish would have got in, rather than Nathan Jameson (who was eliminated last). This is just because more would have trickled down from votes from mynnna and so on, as they’d have needed less to be elected.

I’ve seen some people saying that nullsec is overly represented. Some saying under represented. Both groups are wrong. Of the voting population, there is proper representation. Strategic bloc voting doesn’t give those blocs more power (Except by getting people to vote the full power of their ballot.) Now, I do wish more people had voted, but you can hardly complain about not being represented, when you didn’t vote.

Next year, I’m hoping CCP do more to promote the CSM to players who are hard for us to reach (without spamming the fuck out of them.) And while it’s not ideal, for a world where we have informed voters, I hope they set it up so you can set up links to prefill the ballot for people, without the need for bookmarklets.

Using the Eve Central API with PHP

We’re going back to basics here. One thing that many sites, which are using the SDE from Eve, want to do, is access price data from EVE Central api. I don’t do this myself, having a EMDR relay, and consumer to provide my market data, but back when I was starting out, I did this. It’s a pretty simple thing to do, the only pain in the neck being the data structures that PHP wants to use, when you’re using XML. It likes throwing in arrays where you don’t think it should, which can be a bit of a pain. If you ever need to debug this, var_dump() will be your friend, showing you exactly how the data has been structured.

So, here’s a fairly basic bit of code. It asks eve central for the information for Tritanium, then prints out the so called ‘Percentile’ price. This is the price if someone was to buy 5% of the market, then average the cost out. It’s handy for ignoring the outliers, if not entirely accurate. The code is more complicated than it needs to be, but we’ll get to why in the second example.

$typeid=34;
$url="http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=".$typeid;
$pricexml=file_get_contents($url);
$xml=new SimpleXMLElement($pricexml);
$item=$xml->xpath('/evec_api/marketstat/type[@id='.$typeid.']');
$price= (float) $item[0]->sell->percentile;
$price=round($price,2);
echo $price;

Fairly simple, really. You get the type id for Tritanium, the url that will pull back the data from the forge, mash them together, then use file_get_contents to retrieve them. Please not, some PHP installs will stop this from working. There’s a more complicated version at the bottom which may get you round this; functionally identical but using curl instead of file_get_contents.
Once you have the output from EVE Central, you push it into the SimpleXML parser, grab the bit that’s just about tritanium (the XPath bit does this. This is the over complicated bit), then pull just the sell percentile out of it. The reason for the [0] is because the Xpath bit could have returned more than one entry. In this case it can’t, but the parser is taking the safe option and giving you an array. The (float) is there as without it, you’re dealing with a SimpleXML data type, which is a pain to do math with. (float) just converts it into a regular number.

Now for the more complicated version. Eve central allows for multiple items to be queried at the same time. This is why I put the xpath in there. It allows us to target a specific type being returned, rather than having to go through each in turn to see if it’s the one we want, before continuing.

    $typeids=array(34,35);
    $url="http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=".join('&typeid=',$typeids);
    $pricexml=file_get_contents($url);
    $xml=new SimpleXMLElement($pricexml);
    foreach($typeids as $typeid)
    {
        $item=$xml->xpath('/evec_api/marketstat/type[@id='.$typeid.']');
        $price= (float) $item[0]->sell->percentile;
        $price=round($price,2);
        echo $typeid." ".$price."\n";
    }

This time, instead of a single type id, we’re asking for multiple. We store them in an array, then mash that array into the url, with a join (or implode) which adds the right number of &typeid= to it. Then it goes on as before until just after the xml is parsed, where it goes and grabs each individual element out in turn, iterating through the array.

If you wanted to pull the minimum buy price, you’d replace the $price= (float) $item[0]->sell->percentile; with $price= (float) $item[0]->buy->min; and so on. It’s fairly simple.

Now, the curl version, of the first bit of code:

$typeid=34;
$url="http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=".$typeid;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$response = curl_exec($ch);
if($response === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    $xml=new SimpleXMLElement($response);
    $item=$xml->xpath('/evec_api/marketstat/type[@id='.$typeid.']');
    $price= (float) $item[0]->sell->percentile;
    $price=round($price,2);
    echo $price;
}

It’s a bit more complicated, but it gives you a way of dealing with a remote site not responding. Perhaps looking at a different site for price data, for example.

Remember, the more calls you have on remote sites, the slower your pages will be to load. Consider caching the price data locally, perhaps in a database, or if you have access to it, memcache (My preference. but it’s uncommon)

Personal Disappointment – CSM8

Well, I didn’t get elected. It’s a disappointment, but I have to admit, not an unexpected outcome. I still think it was worth doing however.

This is obviously the fault of my Goonswarm paymasters (That check bounced, you bastards! I’m waiting on my replacement!) who didn’t tell their people to vote for me.

But in the real world, away from the conspiracy theorists, I guess the main things I can point at are: A lack of what people see as relevant experience, and a lack of visibility.

The latter, well, there’s only so much I can do about that. But I’ll work on it.

The former, there’s more I can do about that. So, this year, I’ll be branching out more. I would /love/ it if people could give me suggestions on what they’d like to see me do. I’m expecting to rack up a bunch of kill rights on me, possibly war decs, so I may have to switch the indy stuff off onto alts, rather than my main, but I can live with that.

Almost finally, congratulations to the people who you lot voted onto the CSM. I’m not seeing a single name there that makes me cringe. I know you’ll do a good job, even without me πŸ˜‰

And Finally: in case what I was saying wasn’t obvious: I’m going to run for CSM9 (barring my brain turning to mush and oozing out my ears, or some other life changing event)

Dev Track Day 2 – Part 2

This was the WebGL session.

It’s great. Really really great.

The only problem is, potentially, delivering the models to the clients. Other than that, it’s wonderful. If you can take the loading time, it’s great.

https://github.com/ccpgames/ go fork it.

 

Not a huge amount to say really. It was demos of graphics stuff. which looked great.

Dev Track – Day 2 – Part 1

Just a small gap between the SSO session and the WebGL session.

The SSO looks to be fairly simple to work with. It’s a shame that the demo mobile applications which were demonstrated didn’t use a native browser, using an embedded one, which is far from good practice with OAUTH2, but they do make them easier to understand, with less explanation needed (Custom protocols for the call back to get the token to the application, for example. I believe Aura does this with getting the keys from the site.).

It was fairly obvious, from some of the questions being asked, that there were some fundamental misunderstandings, but in the end, it works well enough. More demonstration code will be needed, but I’m sure the community will provide some. I’ll probably do it, when I kick it around myself.

There was some discussion at the end, about situations like character transfers not being obvious to third party sites, but the devs seem receptive to possibly adding a userid characterid based hash. So you can’t tie users together, but you can tell when one is transferred.

No ETA on deployment, unfortunately. As it’s tied to the dev license, I wouldn’t expect it until at least the next draft (30 days+)

There was also a request from the devs to make sure that we make it obvious on the forums if we’d like an updated IGB, and two factor authentication. I’ve added posts in the tech lab, so if you could go and wave in them, I’d appreciate it.

Dev Track – Day 1

Just a quick post, jotted down before I go to get some lunch this morning. the Dirty breakfast at the laundromat is calling my name, and it’s quite persuasive.

You can see the sessions at http://www.twitch.tv/ccpdevtrack, just hit the videos link on the right hand side. I’d especially recommend you watch the legal one, starting about 4 hours, 24 minutes into the bigger video from yesterday, especially if you’re running a site with any advertising or donations links. There’s a paragraph further down with some advice, if this applies to you.

You can also see me! The bald looking guy in the middle, about 4 rows from the front, dressed in black, with glasses, a beard, and a laptop (this one that I’m typing on right now) I do actually have some hair, but it’s very short, and not that noticeable at range.

The Overview session was just that. Going over what we were going to be talking about, and the format changes. I was quite comfortable with the changed format, with the devs up the front on couches and seats, and us in the fairly large hall. Might not have been quite so intimate as the roundtable format, but I liked it. Still got to ask questions, and the answers from the devs were more verbose. And the quality of the stream was far higher.

We should be getting a developers site at some point in the future (Soonβ„’), with more technical blogs, the signup stuff for the developers license, the application key setup and so on. Not delivery date, but hopefully very soon.

The first real session was the CREST/API session. The API is under development once more. Mostly for bug fixes, and eliminating annoyances like the 119 error for killmails. Woo! πŸ™‚ It’s been handed to CCP Prism X and we should be seeing some work done on it. As well as a better hand over process, when/if it leaves his capable hands. Until now, it’s been very much a side project, which is less than ideal. Don’t expect many new feature from it, because of what it’s like, and because of CREST, but some stuff may be happening.

CREST, as always, looks great. And there appears to be a commitment to open up as much as game design lets them. And badgering other devs to write the interfaces when they put in new stuff. They’d be happy enough to open it all up, but it’s philosophical reasons not to. Such as: don’t open up the market entirely, as then it will be botted to hell. There’s a few trains of thought on this matter, and it goes well beyond the scope of this post to discuss them all. I’m of the opinion that some areas should be left closed, to prevent the requirement for using third party software to be competitive to some level. Others are ‘Publish and be damned. The metagame will sort it out’. It’s a philosophical debate rather than a technical one, so it’s not likely to be settled any time soon.

The Licensing and Policy session was very much a discussion. A new version of the developer license should be released within 30 days or so.

Under the current, and the public Future, terms, you /cannot/ charge for an application. Right now, advertising and donations are more than a touch iffy (if you’re using CCPs IP, like the art, SDE or api).

Watch the session. I spoke to CCP Seagull after it, and she’s made it very clear they doesn’t want to screw over any sites which aren’t there to make a profit. When it’s just to cover their costs. But from a licensing perspective, it’s a trifle more difficult. Especially as this is using global law, which makes it complicated. If you are having trouble, email them at legal@ccpgames.com and developerlicense@ccpgames.com. Open the dialogue with them and you may be able to get a license which covers both you and them appropriately. This doesn’t appear to be CCP Games trying to crack down on the third party devs. It’s just trying to protect themselves from backlash from their partners (who have to profit share, and can get annoyed (legally) at people getting stuff for ‘free’)

In a shock announcement (it wasn’t on the schedule) it looks like the SDE may well be coming to us as an sqlite file, reversing all the yaml stuff. =D It’s for development technical reasons, one of the main ones being: During the build process, they don’t want to have to spin up any sql servers. So SQL lite lets them create the database as a build artifact without doing so. We should be getting a copy of that. There’s still some restrictions on /what/ will be in it, but those are, again, game design reasons, rather than technical ones. As before, I’ll see about republishing it in mysql, as I’ll be doing a conversion for myself.

All in all, a pretty good day. The legal talk was a touch disappointing, if entirely understandable. If you have any questions you want to ask during today’s session, you can try asking on the twitch stream. Or see if you can get me to ask, through the #eve-dev on irc.coldfront.net

Hmm. Destiny is calling my name. Or is it just breakfast. Either way, I go to answer the call.