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.
 

Statistical Combat Analizer [Alpha Stage]

Author
MAALaR
Federal Navy Academy
Gallente Federation
#1 - 2013-09-10 17:41:29 UTC  |  Edited by: MAALaR
I had an idea the other day and decided I would attempt a shot at it. I'm having a little trouble though so I figured I would ask a more qualified community :). Here's the gist of the plan:

I'm attempting to create a search engine that will utilize the following already created databases:

1. Item Database (all items and their attributes, requirements, skills, etc.)
2. Killmails
3. Loadouts
4. Eveboard Character Sheets

The idea is simple, but proves to be more difficult than expected. Simply put, I intend to compile all of this data together, or at the very least be able to query that data, into a singular database, where I can then create a statistical 'guess' of a toon's skill sets, and based off of that skill set, be able to determine their weaknesses and strengths and from there gain a statistical upper hand in a combat scenerio. This would obviously require reverse engineering, and may not be 100% correct. Here's how I invision for it to work:

1. You're going up against an enemy corp's fleet.
2. You Take all of the people in that fleet, and punch their characters into the search engine database.
3. The database will query all of their existing killmails, chronolize them, also average them in junction with the cronolization, and determine skills required for the ships, fits, and weapons they used their entire lifetime. In addition, a query will be done on any eveboard character sheets to search if they have ever been uploaded.
4. The end result would show a projection of what their skills and skill queue might look like right now.
5. Then based off of killmails we can determine who the pilots are most likely to fly with and, judging by their fits as well, determine whether any one person or another is lacking in their training (say everyone else has all Tech II mods and someone else has Tech I all the time...that might mean their skills aren't as good as everyone else's). From this, we have a better chance of determining who the weakest link may be.
6. Statistically, there's always a weakest link, and those links generally stay the same or have a trend. The goal is to find that link and exploit it.

Of course there would be easy ways around this:

1. Never fit to your maxium skill potential. It would lower your game play ability, but if your skills as a pilot personally are good you may not need to worry about that. For example, you may be a Titan pilot but only fly Battleships. No one knows that you might come out in a Titan one day and flip everyone a bird. Obviously you wouldn't be the weakest link.
2. Don't get blown up. If you aren't blown up, your fits aren't shown in killmails. The ships and weapons you used are, but not the fit.
3. Don't get in fights and just keep training along.
4. When you upload your character sheet you set a password. If it's open and available, we're going to look.


While generally you could just fight someone and tell instantly whether you're going to win or not, I could see this kind of tool being invaluable to a fleet before they go into battle. Knowing your enemy is half the battle and while this information may not save your rear end, it could give you the edge you need to win a fight....or.....lose one. In addition, this kind of statistical information could also give recommendations to a fleet on what skills they need to train in order to be more effective against another fleet.

My problem has been that I'm not a coder, I use primarily microsoft excel for my calculations and while they've been doing fine for now, I don't have a complete database of items in the game, and therefore, can't make calculations. The databases I find are ONLY sql databases, which I have no knowledge on. I think this would be a rather simple tool to create, not easy, but simple at the least. If anyone wants to take this and run with it, feel free, I'd love to be included and see how accurate it gets ;). If you have an excel database already of all eve items, please shoot it over to me, I'd like to see what I can do on my own as well.

So what do you guys think? Let me know :)
Rob Crowley
State War Academy
#2 - 2013-09-11 09:35:59 UTC
MAALaR wrote:
1. Item Database (all items and their attributes, requirements, skills, etc.)
2. Killmails
3. Loadouts
4. Eveboard Character Sheets
If public certificates will ever show up on the CharacterInfo API, those could be added too.

Quote:
I think this would be a rather simple tool to create, not easy, but simple at the least.
Well, I would dare to disagree here. If you keep it at compiling and analyzing existing information about a character it would indeed be simple. Quite a bit of work to collate all the info and present it in a useful form maybe, but simple.

However once prediction comes into play and you want it to be at least somewhat accurate, this certainly goes way beyond simple. I'm thinking feeding a neural network with existing skill plans and skill sheets to teach it how people tend to train skills could be a good way to do this, particularly cause it could constantly refine itself with actual feedback and therefore keep up to date with skill or fleet policy changes automatically. But as I said, this goes slightly beyond Hello World difficulty.

Quote:
If you have an excel database already of all eve items, please shoot it over to me, I'd like to see what I can do on my own as well.

So what do you guys think? Let me know :)
I think you should start using the proper tools for the job. We're not in the 19th century, so don't dig a 30m³ hole with a shovel. It might be a bit of effort to set up an SQL server for the first time till it works, but once you got it running querying data using some simple SQL statements is really no witchcraft.
Louis Vitton
Viziam
Amarr Empire
#3 - 2013-09-11 10:08:12 UTC
If you have a windows host download WAMP it will give you an apache webserver for the local host and also a mysql database for the local host and simple to develop agaist.
MAALaR
Federal Navy Academy
Gallente Federation
#4 - 2013-09-11 11:29:23 UTC  |  Edited by: MAALaR
I'm glad you guys accept the idea and would find it useful.

I have a few host domains of my own, perhaps I could throw a little something something together. I just have no idea how to work with the eve toolkit. The biggest problem will be gathering the proper data to do an analysis so that it doesn't bog down the server. I suppose I could only maintain differential information.

If you wanted to get the upper hand in a fleet battle, what would you like to know that maybe you couldn't usually get our couldn't be bothered to get, but would make a world of difference?

Knowing what I need to output gives me an end result, and with that, I can know what to retain and what to dump.




EDIT:

Ok, so i got a domain and hosting to work with (www.evecombo.com), figured drupal is a good place to start. whatever, getting the database in the worlds, a good import for external data, and mathematical calculations is the hard part. I could care less about the front page until all the other stuff is worked out.

Which brings me to the problem: I'm having a pretty rough time getting the database in order. anyone have any instructions on how to setup the database via the eve toolkit for mssql?
MAALaR
Federal Navy Academy
Gallente Federation
#5 - 2013-09-12 16:38:00 UTC
Ok. So I'm taking this project on the road. Officially it's going to be called the "Statistical Combat Analizer", assuming I spelled everything correctly.

Alpha stage is simply getting everything setup, getting all our tools and starting the process of determining exactly WHAT we're trying to do. As I stated above in the first post, this project has a few main features, for now, I'm going to just do the bare basics until I can get a working Beta, and at that point, we're going to go full force and hopefully I've got a few coders on my side to assist as well.

What IS the SCA?

The SCA is a web application that can be viewed within the ingame browser. This application is designed to allow a user to input a character name, confirm that character's name based on a selection of possible references, and then, conduct a series of data extractions like so:

1. The user's killmail will be loaded into our system. We will search and find *all* killmails associated with this user and place them within our database.
2. Based on killmails, the system will determine who the top 50 pilots are that the character plays with most, and will do the same with them. (but go no further, as in, it will not look for those pilots' 50 closest friends)
3. This is where things get fun. The following information will try to be determined from these killmails:

a. Character Skill Sheet.
b. Character Certificates.
c. Character limits based on skill sheet.
d. Flying patterns and general locations of character.
e. Pilot's effectiveness in battle.
f. Whether or not if the character has worse or better skills than the rest of the fleet, depending on fit. (i.e. if the fleet is using all T2 fits, and this character is using T1 fits, their skills may be lower and they may be the weakest component).


From this point, we've got a lot of good information from the character, but not much more than you can get from battleclinic already. At this point we'll also start allowing users to input their own api keys for us to extract data (if they are kind and willing...not sure who would be but might as well give that functionality). We will also begin searching Character Bazaar to see if any characters are sold (hinting a change in pilots, skill, and skill training direction), in addition we will search for character sheets in other websites that may be openly available. If those sheets are valid then we will combine them into our database.

This is the core functionality of this website and while it's interesting and *may* assist with online gaming and battle strategies, this isn't its peak performance.

Later down the road I invision to include battle simulations. In short, we have one fleet face off against another fleet, and depending on general fits, skills, and pilot ability, help determine who would be best fitted against another pilot, who should be aggro'd first, second, third, who should come out on top, and using different tactical solutions and battle strategies provided by teams such as Rooks and Kings, which strategies would be best used.

Once that project is completed, we intend to give a real-time battle simulation. This will obviously require much more user interaction. As our systems are based off of killmails, users will have to provide what ships each character is using. We will not immediately enter this information into our database, but will if it pans out against a killmail we receive.



Some other projects we're going to throw together will be an interactive user account, where users can put up their api keys in order to give an actual online skill planner a shot. Online fitting tools etc. This is in no way, shape, or form designed to take away from battleclinic or other tools already available, but is designed both to give a more real-time feature for users to use out of game and ingame while also benefiting the overall functionality of the SCA.





Current Progress

As it stands, I have bought a domain and hosting with sql support. The domain is www.evecombo.com

We have already gotten the sql database setup with Eve Online's item database and more (the eve toolkit).
We have signed up with battleclinic to get an API key to share killmails and whatnot..


Our Next Steps

Right now I'm focusing on two things:

1. Understanding the database information from the eve-toolkit
2. Start the complete download of all killmails on battleclinic. (having the information on our own server will allow for optimal and more speedy calculations and also minimize the introduction of newer killmails).
3. Begin making basic calculations and attempting basic functionality. Seeing that most of the tools here are based off of one another, once one is completed the rest shouldn't be too far along.



Please feel free to contact me with questions and/or concerns. If you would like to give some ideas, please feel free to do so.

I now open the floor up to anyone who would like to share their thoughts. Let me end with one simple question:

If you DID NOT already know someone or their fleet, and were enemies with them, what would be the information you would like to know about them and their fleet that could give you the upper hand in a battle? Do not worry about the 'plausibility' of this system in regards to your thoughts and answers to that question, we'll work out the kinks later. Right now, I need to know what the end result is before I can start making calculations. So with that...enjoy and have fun!


-MAALaR
Mikokoel
New Generation Industries
#6 - 2013-09-12 19:11:03 UTC  |  Edited by: Mikokoel
Regarding your question:

Most of the time all I want / need to know is how many kills the specific person has (PvPer / PvEer), and how he fits the ship he is in right now (if I see that).

Then I see: OK, there he is on a gate with a merlin, he isn't a very active PvPer, his recent merlin losses have been blaster ones, so i can engage him with my whatever.

Regarding your tool:

Good idea, wanted to try something like this as well.
You might want to consider getting all mails from evekill / zkillboard as well, for that either read through the docs, read the blog http://poeticstanziel.blogspot.it/ (category API or Apps) or ask her directly if she can give you a dump.

I'll write more when I have more time

Mikokoel | Head FC League of Unaligned Master Pilots

MAALaR
Federal Navy Academy
Gallente Federation
#7 - 2013-09-13 12:42:08 UTC
Awesome, that's definitely something I want to add into there. I'll definitely check out those resources as well.
Rob Crowley
State War Academy
#8 - 2013-09-13 19:33:18 UTC
MAALaR wrote:
Officially it's going to be called the "Statistical Combat Analizer", assuming I spelled everything correctly.
Analyzer. Unless this was meant to imply that your tool is examining people more thoroughly than an anal probe. P

The rest sounds good so far.