That’s another post that’s not my usual deep analysis. I’ll be back to them shortly, I suppose, got a few drafts simmering for months now, but I have to get these off my chest first.
When we talk about Eve API in any fashion, we usually mean extracting data from or, in case of the anticipated CREST, sending data to the Eve servers. But there’s another kind of API that could enrich the game and enable more tools for it, which would further reduce the demands on CCP, and which is almost completely missing, unless you count the fitting and overlay import/export.
Client APIs. Notice that I’m not talking about clientside scripting, which does exist in certain games — beyond the scriptable actions that replace the player, which CCP clearly does not want, there are other things that make perfect sense and have already been done before. For example, Ragnarok Online allows certain character classes to directly program the behaviour of their pets, using Lua scripts run by the client. I’d love to have that for drones, but eh, I will start hoping for ever getting it when anything gets done to improve drones. :)
But clientside programming obviously doesn’t stop here, so here’s another list of ideas, and let’s hope a few of them take root somewhere.
I’m not really a programmer,1 by my approach to programming I’m best classified as a hacker. I write code to solve problems, fast, and if I can’t take care of the problem in under two pages, I look for a ready made solution I can force to do my thing and bring the amount of required code back to two pages, by hook or by crook. The items in this particular list are mostly the ready made solutions that I myself miss, implementing which would enable me, and by extension, other people, to do cool things. Something CCP Seagull explicitly wants to happen more often, if the CSM minutes are to be believed.
But Eve client already includes a nice, pretty rendition of the world map — sometimes, I would prefer a flatter graph with less criss-crossing links, like the typical strategic map of Dotlan or it’s predecessors,2 but it wouldn’t always matter. It already includes lots of extra data layers on it, selectable from a menu — station services, pilots in space, kills, pod kills…
…Well, why can’t I plot my own data on it? The engine obviously can plot arbitrary data. Here’s how it would work:
You give the client an URL to an XML file which your off-world piece of software generates, which contains tags and links to place on the map — tags on systems, detailing extra information you want to display on hover, color and size of a highlight, extra links between systems X and Y to denote a jump route or a jump bridge network, and other stuff. The client takes care of dowloading that XML file and plotting it whenever you select it from ‘my information’ folder in the map preferences window. Something simple like this:
<system name="Dodixie" color="#ff0000" bloom="35.0">35 enemy pilots killed in the last two days.</system> <link from="Jita" to="Amarr" color="#ffffff">We can't jump this far but we sure want to.</link>
Native map data typically include tree structures, so it should probably handle those as well, but just marking systems and adding text to them will be sufficient. I’m sure you could find lots of useful things to do with it. Bonus points if a ‘corporate/alliance information’ folder can be created to store such URLs and automatically share them between corporation and alliance members.
Just marking space by coalition affiliation would do a lot of good.
Character Metadata API
There’s a notepad on characters, in the Character Info window. While it is apparently stored serverside, it’s per-character and not in any way shared. Instead of working out sharing mechanisms, just let people display their own and forget about it. Players would subscribe to Character Information Sources,3 returning XML or possibly HTML files with extra information on a particular character by their name, based on offworld databases containing whatever the database maintainers want. The data returned is displayed in an extra tab in the Character Information window. The same would also apply to corporations and alliances.
This would allow for a seamless integration of offworld reputation or notification systems, offworld forums and social network profiles, or what have you, with CCP only getting involved with it once, by setting up the initial mechanism. Everything else the players could do themselves. Likely uses:
- An industrial cartel maintaining a public business reputation database.
- CVA KOS list.
- Links to profiles on offworld forums, consolidating player identity.
- Convenience list of links to the usual character databases — killboards, EveWho, forum searches, etc.
- Extra intel for alliance members. Instead of sending out evemails to the entire alliance, just get them to subscribe to your Character Information Source and then mark that guy as a known enemy scout.
Integrating character metadata databases would actually make them practical for everyday use and constructing reputation networks, both things Eve sorely misses.
This wouldn’t be so much an API as it would be an UI tweak to make what is there already acquire new uses. There are a lot of tools that run in Eve ingame browser.4 They would be a very practical method of extending Eve’s interface with your own data, if it weren’t for a few hurdles that make it a pain: In-game browser window is a window. It can’t be transparent and there’s only one. You can’t even protect a tab from being accidentally closed, let alone the whole browser window.
If you could break out a browser tab into a separate window and make it pinnable with transparent background, you could make browser-based ‘applets’, actually taking care of displaying things like extra intel information, current orders, ‘X up for Y’, and a multitude of other handy things, which do exist now, but are impractical specifically because they’re so cumbersome to use.
Couple that with the above described map API, and you could make it much easier to do things like coordinate multi-group roams.
Only by necessity. In social sciences, when you need code, you typically can’t even pay anyone to do it. Even though I hear people say from time to time ‘you’re the best programmer I ever met’, I know very well the difference between a clever and impressive hack and the tedious work of building a large robust system. I can do tedious, but good at it I’m not.↩
And actually, why isn’t there such a map view?↩
Obviously more than one.↩