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 General Discussion

 
  • Topic is locked indefinitely.
 

What Languages is EVE Online Programmed In?

First post
Author
Ione Hawke
Darkness Industries
#61 - 2012-06-27 15:08:02 UTC  |  Edited by: Ione Hawke
I agree with previous posters that Java (or perhaps C#, very similar) is the best place to start if you are serious. In my opinion its very useful to learn a scripting language eventually. Different languages tend to be suitable for different tasks at hand. Java, C/C++ and C# are general purpose languages suitable for virtually any task. However, there exist specialized languages (domain specific languages) for AI. I am not specialized in AI myself, so I dont have an overview of what kind of languages exist, but perhaps it is something to look into after learning your main generic language. One such language is good old PROLOG. A programming language based on pure logic and is very suitable for implementing reasoning engines for AI.

Another thing to consider is library support for your generic language of choice. For example for Java there exists JADE (Java Agent Development Engine), which is incredible powerful. JADEX, a reasoning engine that integrates with JADE. Surely for other languages similar libraries/frameworks exist.

Oh, like answered a ton of times before, I believe EVE is developed in Python and parts in C++ (for performance critical parts). By the way, part of Civilization is also (partly) developed in Python.

The reason to develop in Python over for example C++ is in general an economic decision. Python is considered a higher level programming language and usually it will be possible for developer to have achieve a higher productivity with Python (less lower level concerns like memory allocation, garbage collection etcetc and likely also faster bug finding and fixing). And altho C++ is faster then Python, most of the time 1) the execution time of a program often depends on whether it is programmed efficiently 2) few additional CPU cycles are most of the time magnitudes cheaper then additional brain cycles. :)
stoicfaux
#62 - 2012-06-27 15:29:02 UTC
Watooshi Makoochji wrote:


I don't mean true 'artificial intelligence' as in strong or general purpose intelligence P

To start I just mean 'computerized opponents' as they exist in various computer games these days. I would assume that the 'rats' and 'sleepers' in EVE Online, and the various other types of computer opponents in contemporary computer games (e.g., the opponent soldiers in games like ArmA, Fallout or Borderlands, etc., or the opponent 'societies' in games like Civlization or Rome Total War) are just a specialized set of the rest of the game code, written in C++ or whatever that particular game is based in?



Data Structures + Algorithms = Programs.

The language used isn't "important." Having said that, if you want to dabble in game AI, then Python would probably be the least worst choice to use while experimenting with AI algorithms.

Pon Farr Memorial: once every 7 years, all the carebears in high-sec must PvP or they will be temp-banned.

Watooshi Makoochji
Republic University
Minmatar Republic
#63 - 2012-06-27 15:31:24 UTC
Thank you so much Ione, and again thanks to everyone who has responded seriously and sincerely to this thread :)

I have a long road ahead of me, but like the beginning of a long hike into beautiful and formidable mountains, it is both an exhilirating and slightly fearful prospect.

I truly appreciate all of your advice and insights. It is very helpful in getting me oriented at the beginning of my journey.

Ione Hawke wrote:
I agree with previous posters that Java (or perhaps C#, very similar) is the best place to start if you are serious. In my opinion its very useful to learn a scripting language eventually. Different languages tend to be suitable for different tasks at hand. Java, C/C++ and C# are general purpose languages suitable for virtually any task. However, there exist specialized languages (domain specific languages) for AI. I am not specialized in AI myself,Oh, like answered a ton of times before, I believe EVE is developed in Python and parts in C++ (for performance critical parts). By the way, part of Civilization is also (partly) developed in Python.

The reason to develop in Python over for example C++ is in general an economic decision. Python is considered a higher level programming language and usually it will be possible for developer to have achieve a higher productivity with Python (less lower level concerns like memory allocation, garbage collection etcetc and likely also faster bug finding and fixing). And altho C++ is faster then Python, most of the time 1) the execution time of a program often depends on whether it is programmed efficiently 2) few additional CPU cycles are most of the time magnitudes cheaper then additional brain cycles. :) so I dont have an overview of what kind of languages exist, but perhaps it is something to look into after learning your main generic language. One such language is good old PROLOG. A programming language based on pure logic and is very suitable for implementing reasoning engines for AI.

Another thing to consider is library support for your generic language of choice. For example for Java there exists JADE (Java Agent Development Engine), which is incredible powerful. JADEX, a reasoning engine that integrates with JADE. Surely for other languages similar libraries/frameworks exist.



Ione Hawke
Darkness Industries
#64 - 2012-06-27 16:56:12 UTC
Scrolled some more through the thread
Dont start with Visual Basic, its a horrible language with a long legacy. Also, because of that long legacy it allows silly constructs that will ruin you if you then move on to one of the C-family (and I include Java here) languages.
SQL : is one such domain specific languages and it sole (?) use is to query database systems. You generally don't really program in it.
CCP Explorer
C C P
C C P Alliance
#65 - 2012-06-27 17:05:06 UTC
Watooshi Makoochji wrote:
What languages is EVE Online programmed in?
EVE Online is programmed in three languages.

The rendering engine, audio engine, browser, network layer, disk IO, database access, physics simulation and localisation engine are written in C++. Essentially all performance-critical components and access.

All database code is written in T-SQL, Microsoft's extension to SQL, since we use Microsoft SQL Server.

Everything else, in particular all game logic, is written in Stackless Python.

Erlendur S. Thorsteinsson | Senior Development Director | EVE Online // CCP Games | @CCP_Explorer

The Antiquarian
Imperial Academy
Amarr Empire
#66 - 2012-06-27 17:08:58 UTC
CCP Explorer wrote:
Watooshi Makoochji wrote:
What languages is EVE Online programmed in?
EVE Online is programmed in three languages.

The rendering engine, audio engine, browser, network layer, disk IO, database access, physics simulation and localisation engine are written in C++. Essentially all performance-critical components and access.

All database code is written in T-SQL, Microsoft's extension to SQL, since we use Microsoft SQL Server.

Everything else, in particular all game logic, is written in Stackless Python.


Thank you very much for your response. Could you kindly relay this to one of the marketing folks at CCP so that all of us can receive a clear answer as to CCP's stance on the following issue?