Hacker News new | comments | ask | show | jobs | submit login

One of the things about Eve Online that's fascinated me is how "open" they make the game for third party developers.

Why bother with a spreadsheet, when you can dial it up a level and use their data export and your favourite "Big Data" analysis tools to look for interesting opportunities?

Maybe you enjoy blowing up space ships, but can't think of an in-game method to fund your habit? Build a tool other Eve players will use (and pay for with Isk) instead.




The IT infrastructure of some of the more organized groups rivals that of real-world corporations. Industry-oriented groups build ERP and financial monitoring systems, notifications with Slack, "office hours", etc.

Heck Sean Smith (who was killed IRL in Lybia) worked for the State Department IRL and was a high level diplomat-ish guy in game (roles seem pretty fluid in Eve thus the "ish").

Aye, I spent some time in TEST and ended up working on a whole bunch of projects before canning the lot. There was a market system that was managed by Goons, IIRC, but they pulled it from TEST so I built a similar system which was actually pretty involved. Had it working for a couple of systems and with the success of it, GS and TEST leadership came to some sort of agreement, and my system was dropped in favour of the old one. Well, that was enough for me. Lot of wasted time, so I dropped that and stopped working on the other tools – membership management tools not unlike employee management tools, resource management not unlike typical ERP systems, the lot. This was 2012/13 IIRC.

Going down this road is what started my programming career.

At the time I played, Brave had a better auth/sso system than the top 10 web property I was employed by.

I work on the IT/infrastructure of one of the larger coalitions. We have a team of roughly 10 people who support alliance services which have been maintained for just under 10 years now. There's also a spattering of third party developers who develop against our alliance API endpoints.

Feel free to ask questions, there's a ton of interesting technical problems I've been meaning to write about, but I wasn't sure if people would find them interesting

Please do - what kind of services are we talking about and how much data is involved? Bear in mind I have no experience with the game itself.

The spot where most alliance service providers have to start is IAM - controlling how your members are able to access mission critical services such as voice chat and text chat. This is usually done using the EVE SSO, which exposes an oauth2 provider that we can authenticate users against. Authenticating users is just the tip of the iceberg though, you also need to authorize the users to verify they're in your corporation/alliance/coalition, and reject their access if they leave the group ingame. We use the EVE API to query authorization data like that, but it's really the tip of the iceberg of what can be done.

The workflow for a new user joining a major alliance generally looks like this: 1. New user creates account on your central services site 2. New user uses EVE SSO to link their EVE characters to your central services site. This also gives us access to advanced EVE API queries that we can use to monitor everything from who the user trades with, what they own, where they're located in the game universe, and all of their EVEMail. This data is used by corporation HR representatives to check for spies (a whole other topic entirely) 3. If the new user is accepted into your corporation, the central services site needs to figure out that the users character's are now in your corporation and grant them services. 4. When the user navigates to an alliance service, they're presented with a _separate_ oauth2 authorization that uses our central services as a provider. This is how we can quickly integrate new services since oauth2 support is so prevalent.

That's all great for IAM, but it's a small part of the equation. Data federation is another big-deal problem. Many times people who aren't on our IT team need access to their corporation's data - we don't want to expose the EVE API keys of each user because of the high security risk, so instead we expose a plug-and-play proxy. All the user has to do is plug in the URL of our central services proxy instead of the EVE API endpoint, and they can obtain access to their users data without requiring each and every user to go through the oauth2 authorization process twice.

Another interesting mechanism we support is our tax calculator. Many EVE alliances implement an alliance-wide "npc farming" tax that has no ingame mechanism for enforcement. In EVE, corporations can easily levy a 10% tax on its members, but there's no ingame mechanism for an alliance to levy taxes against its member corporations. What we do instead is query the EVE API to find out how much each corporation is taking in in tax, then calculate how much that corporation needs to pay the alliance. We can even track payments using the journal API endpoint. The technicals behind this are fascinating - a months worth of raw, unprocessed tax/journal data represents 5-10 million data entries, and requires about 5000 queries to the EVE API. When you have to run all of that including alliance services on a tiny Hetzner box, things get interesting pretty quick.

If you wanna see what the EVE API looks like, there's a swagger documentation page here: https://esi.evetech.net/

This. Many years ago, Eve's awesome internal market and (much less evolved) data tools gave me my first intro to quant finance. I had a lot of fun building a TSP-like solver to find profitable trade routes -- before realizing that the real pros maintained inventory and orders at many stations and made the goods come to them.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact