Community Spotlight: Pyfa | EVE Online

Community Spotlight: Pyfa

2013-11-15 - Von CCP Eterne

Having a competent fitting on your ship is important. But when you're in EVE, you can't easily theory craft. There is no tool that lets you see how your ship would perform if you only had that deadspace module on it, or are under the effects of a fleet booster, or just had another level in Advanced Weapon Upgrades. Luckily for players, there are tools which let them theorycraft to their hearts' content.

One of the most popular if Pyfa, a long-standing tool which is popular throughout the community.

History

Pyfa was originally created by Sakari. A member of EVE's Linux community, he was rather disappointed in the lack of fitting tools for EVE which were native to Linux. There was the popular EFT, which had to be launched via Wine, imposing severe functional penalties at the time, or Quickfit, which had been abandoned and had several major flaws. He thus decided to take matters into his own hands and create a new one from scratch.

Originally, he wrote one using gtk+ for the user interfact. This was known as pyfa0 to the current developers. Shortly after it was initially released, Kadesh Priestess noticed the project. Having had the same concerns as Sakari, he hopped onto the IRC channel. He became involved in minor testing and offered suggestions for the program. Later, Darriele and Aamrr joined the effort and began helping out.

Aamrr tested and did suggestions, while Darriele became the became the primary UI designer. He developed the user interface which is still used by Pyfa today.

Eventually, they created a new version of Pyfa from scratch. Since then, they have maintained the program and added several new changes. Kadesh became the primary person involved in fixing bugs, maintaining the databases, and updating it. After a few years, Kadesh went on a year-long hiatus, and when he returned found that much of the team had gone missing. Thus, he took over the project completely. He continues to update it for major expansions, as well as doing research and development for future improvements.


A look at Pyfa

Technical

Pyfa is coded entirely in Python, a choice heavily influenced by EVE. Kadesh has several personal and work-related projects he has worked on as well. However, those are projects where he primarily does coding, not design, and none of them are as complex as Pyfa.

The biggest issues faced in developing and maintaining Pyfa have always been technical ones. If everything has not been planned properly, it may hit hard later. A good example of this is Pyfa's fleet system, which works, but was implemented as a set of dirty hacks. They do not affect most of the cases of how people are using Pyfa, but it makes Kadesh unhappy, to say the least. For such issues, he tends to take a problematic module and rewrite it from scratch rather than trying more hacks. So far, this has worked quite well.

Of course, the biggest issue with any open-source project, especially small ones like Pyfa, is a lack of people who can devote time regularly to help it. This is the one problem the team has yet to solve, so if you're familiar with programming in Python and are interested in helping, send Kadesh Princess a message! You could be of great help.

The Future

Though Pyfa is already a fully functional program and is incredibly useful to any player, that does not mean that development on it has ceased. In addition to constant updates when changes to ships, modules, or other things come to EVE, much backend work is still ongoing.

In order to make sure that future improvements to the calculating engine that fuels Pyfa can continue to be improved, the Pyfa team has been working on a project codenamed Eos. It is a general-purpose fit calculation engine, with a focus on maintainability and performance. Though it is still in development, a tremendous amount of progress has been made on it. Kadesh says it is currently 1000 times faster for the majority of real use cases, which will allow him to implement several interesting features once it's finished and integrated into Pyfa.

About the Developer

Kadesh Princess is the primary developer for Pyfa. In EVE, he is a fan of frigate-class solo PVP. The Interceptor and Stealth Bomber are his two favorite ship classes to fly. Besides that, he loves participating in PVP tournaments for their hardcore and fun nature, so any time his alliance Hydra puts together a team, he assembles.

In real life, he lives in Russia and works in QA for a major telecommunications company. Coding is one of his hobbies, but Pyfa provides him plenty of motivation and spends most of his spare time on it.

Final Thoughts

Kadesh would like to offer thanks to Entity for providing advice and assistance with Pyfa. Whenever Kadesh has a question about Python or EVE, Entity knows the answer. He's also looking for anyone who is experienced in developing UI in order to complete the Eos update. Anyone interested in helping out should drop him an e-mail.

Pyfa is a powerful tool for anyone wanting to put together a ship fitting (it's even used internally for putting together fits for dev roams, live events, and our rookie training sessions). If you want to theorycraft your ship or create a ton of fittings to play around with, check it out in its official thread here.