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
Abdiel Kavash
Deep Core Mining Inc.
Caldari State
#21 - 2012-06-26 21:36:42 UTC  |  Edited by: Abdiel Kavash
The vast (?) majority of the client is in Python. The server is a mish-mash of Python and C, with the devs aiming to port more and more into C over time.

As far as learning, don't learn a programming language. Learn how to program. (And how to think.) A good programmer can write good code in any language. A poor programmer, even if he's fluent in one or two or five languages, will never write good code.
Victoria Sin
Doomheim
#22 - 2012-06-26 21:37:01 UTC
Eternal Error wrote:
Stackless python (as others have said). However, stuff that does really heavy lifting and needs to be fast (e.g. the physics engine) is coded in C or C++ if I remember correctly...


WHAT PHYSICS ENGINE?
FeralShadow
Tribal Liberation Force
Minmatar Republic
#23 - 2012-06-26 21:42:06 UTC
The first programming language I learned was java. While you might not find many game development studios using java these days (Java has high amounts of overhead), Java has been invaluable to me. Learning about how to do modularity, GUI programming, and basically object-oriented designing has made it far easier to venture into other languages such as PHP and C++ than if I had started with, perhaps, C (As C is not object oriented). I currently develop Android applications using Java, and love it quite a lot, so Java is quite useful for learning as well as programming, with mobile devices being increasingly more common.

One of the bitter points of a good bittervet is the realisation that all those SP don't really do much, and that the newbie is having much more fun with what little he has. - Tippia

Watooshi Makoochji
Republic University
Minmatar Republic
#24 - 2012-06-26 21:45:05 UTC  |  Edited by: Watooshi Makoochji
Interesting link to the blog :)

ADDIT: and thanks again for all the insights and help folks!

I'm guess I'l start with Java Big smile
Xercodo
Cruor Angelicus
#25 - 2012-06-26 21:51:32 UTC
Personally, to someone that has little experience with programming, I'd suggest starting out in Visual Basic, then moving to C# and then to C++. Which is also in order of how much hand holding they do for you (regarding stuff like memory acquisition and de-acquisition)

I haven't really looked much into Python yet so I can't say much for it.

In the end you'll want C++ though, pretty much every PC/console games company uses it now a days.

The Drake is a Lie

Watooshi Makoochji
Republic University
Minmatar Republic
#26 - 2012-06-26 21:57:52 UTC  |  Edited by: Watooshi Makoochji
Xercodo wrote:
Personally, to someone that has little experience with programming, I'd suggest starting out in Visual Basic, then moving to C# and then to C++. Which is also in order of how much hand holding they do for you (regarding stuff like memory acquisition and de-acquisition)

I haven't really looked much into Python yet so I can't say much for it.

In the end you'll want C++ though, pretty much every PC/console games company uses it now a days.


That is good advice I suspect; and if I was going to self teach, that is what I'd do.

But what I'm talking about here is: in parallel with doing my current job for the next year, I AM going to get sufficiently trained in the next year that I can gain employment as a gaming AI programmer (or perhaps a more general purpose gaming programmer).

What I'm planning to do at this point is take the O'Reilly School of Technology courses. They cost a few hundred per course, but that is motivation to actually get it done and learn it, without having to take college courses. I alreayd got a Ph.D. so it's not like I need more degrees, just training to get me going on a portfolio and maybe some modding projects that I can use to get a job.

Would any of you guys suggest against OST or have an alternative that you suggest?
Katja Faith
Doomheim
#27 - 2012-06-26 22:58:56 UTC
Visual Basic... No, really.
Robus Muvila
Caldari Provisions
Caldari State
#28 - 2012-06-26 23:13:04 UTC
Javascript and BASIC

TMC Senior Developer http://themittani.com - Because EvE has needed a proper news site for ages

Myrkala
Royal Robot Ponies
#29 - 2012-06-27 00:50:41 UTC  |  Edited by: Myrkala
Watooshi Makoochji wrote:


Given that context, what would you guys suggest to start with? C++ or Python?

I do understand that the most valued programmers tend to have 'multi-lingual' and use different languages for different context, but given I'm just trying to get going, what would be the best to start with.


My adivce, start simple. Learn the basics and expand.

TL;DR Java is a good place to start, transitioning into C# and working with a simple framework before you dip your toe in the cool pool that is C++ and all the different libraries/frameworks there are to choose from.

1. Java
This is good start, learning materials are abundant and the language is well supported and is very common. So even knowing only this language may help you get your foot in the door somewhere, probably not a games company unless its a mobile games company. (Though: Java FX2, a simple framework can now use GPUs for example.)


2. C# (XNA Framework)
This language is very similar in syntax and ideology to Java. (With some exceptions.
It is also fairly common, and a great thing that you get with it is the XNA framework, which can be used to write games and applications for the XBOX 360 and the Windows Phone platform. The documentation is decent and there exist numerous tutorials for creating simple games. So yet another useful tool to add to the belt, writing in the XNA framework will give you insight and experience in coding for games. Having learned OOP by learning Java will help you a lot here.

3. C++
The daddy of games programming, a very powerful language but can fail drastically if you have no clue as to what you are actually writing... pointers and whatnot. With great power comes great responsibility is a term that is often repeated about C/C++. Which is why its better to fail at the easy stuff first (in Java and C# which are much more forgiving) before jumping into C++.

Games programming is much more than just knowing how to code in a specific language. Its about knowing your OOP, Math and knowing the capabilities of the library/framework you've decided to use/your employer uses. Because lets face it... you aren't going to have the skills to write a whole code library/framework yourself in the first years of learning programming.

PS.

I myself am just at the C# level, started learning programming before xmas 2011 and today I am working on improvements to my second game made in the XNA framework with C# (Which I started learning in January), a 2D Dungeon crawler. Just to give a perspective how fast its possible to learn, this next semester I will be starting on C++. Another piece of advice I've seen people give is to not only focus on OOP languages but also learn maybe one functional language, perhaps one like Haskell or APL/J.

I also suggest checking out http://projecteuler.net/ for some problems to solve with programming/maths, be warned it can be addictive. :)

Good luck on your career. Blink
MeBiatch
GRR GOONS
#30 - 2012-06-27 00:52:05 UTC
the language of love of coarse...

There are no stupid Questions... just stupid people... CCP Goliath wrote:

Ugh ti-di pooping makes me sad.

None ofthe Above
#31 - 2012-06-27 00:52:20 UTC
Xercodo wrote:
Personally, to someone that has little experience with programming, I'd suggest starting out in Visual Basic, then moving to C# and then to C++. Which is also in order of how much hand holding they do for you (regarding stuff like memory acquisition and de-acquisition)

I haven't really looked much into Python yet so I can't say much for it.

In the end you'll want C++ though, pretty much every PC/console games company uses it now a days.


Ugh no. Please do not start with VB. Horrible habits.

If you want to be a serious coder, learn C++ first, IMHO. (Spoken as a software engineer and hiring manager.) Java might be a good second choice, or second language.

Python and VB would be good to have in the long run, but since both are used by sys admins and scripters aren't the best teaching languages unless you get lucky with a good teacher or class.

C++ has been a staple for serious programmers for decades. Most C++ courses and texts assume you are trying to be a real coder and don't pass you off with script-kiddie style tips and tricks but instead will teach you good theory and practice. A good grounding makes all the difference.

The only end-game content in EVE Online is the crap that makes you rage quit.

Nate Guralman
Pandemic Horde Inc.
Pandemic Horde
#32 - 2012-06-27 01:33:39 UTC  |  Edited by: Nate Guralman
If you're going to make a career out of software development and you're in it for the long haul, I'd strongly, STRONGLY suggest you consider starting with a functional, non-OO language, such as Pascal or C. Most engineering problems are solved with the fundamentals, such as data structures and algorithms, not through complex architecture. And if you have a strong foundation in those fundamentals, then you'll be better off than most of the "programmers" that I've interviewed.

This is why I suggest starting with something like Pascal or C. OO languages like Java and C++ are important, and so are scripting languages like Python and Perl. You will need these in your career. But even these languages rely on the fundamentals of programming (loops, data structures, algorithms, etc). Starting with Pascal or C will let you focus on these things, rather than higher level concepts like inheritance and polymorphism.

(I'd also argue for assembly, not because it's faster or better, but because it teaches you exactly how a computer works. I guarantee, you'll see your C++ programs differently once you've learned assembly (even if all you ever do is write an application that counts from 1 to 10)).

And stay away from VB until you get experience. VB does very non-standard things, and I consider it a fringe language. Again, it has it's uses, and it's worth learning, but not as a starting language.

Finally, just so I'm not totally off-topic, EVE is written in Stackless Python. The back end database is MS SQL Server. There's an interesting discussion about its architecture on the High Scalability website, with references to information about it.
ACE McFACE
Federal Navy Academy
Gallente Federation
#33 - 2012-06-27 01:39:20 UTC
English


Do I win?

Now, more than ever, we need a dislike button.

Tao Arnst
Republic Military School
Minmatar Republic
#34 - 2012-06-27 01:40:53 UTC
Must be Polish, 'cause the client is F**KED UP............

Was the Title "Inferno" given to this release because its a Steaming Pile of S**t? Most people embrace GOOD change Parasites embrace BAD change ccp supports the degradation of society

Baljos Arnjak
Dark Praetorian Order
#35 - 2012-06-27 01:55:31 UTC
Another game engine you might consider using for your experimentation into AI and programming in general would be Unity Game Engine. It's pretty easy to learn and you can program in either C# or Javascript and their documentation and community is pretty good. The basic version is free to download and has all the functionality to make a complete game.
Thurken
Republic Military School
Minmatar Republic
#36 - 2012-06-27 01:58:43 UTC
Watooshi Makoochji wrote:
Thanks for the responses folks; and no, not interested in botting ;)

Just interested in a career move. Given CCP is mostly in Iceland, not sure how that would work out, but there are a lot of great game companies out there. I'm asking around in different forums, trying to get a sense for which languages are used the sorts of fairly recent games I enjoy and would probably enjoy working on.

Sounds like C++ is quite common.

Stupid question but, why Python for EVE Online?

Artificial intelligence programming (not really graphics or UI, etc.) is what I'm most interested in. Helping design a game like ArmA or Fallout, Elder Scrolls, even Rome Total War series or something like the Civilization series would be fun.

Given that context, what would you guys suggest to start with? C++ or Python?

I do understand that the most valued programmers tend to have 'multi-lingual' and use different languages for different context, but given I'm just trying to get going, what would be the best to start with.

Somebody mentioned something called the "Hero Engine" which is evidently quite hot. But I guess that is quite new and learning it through an existing online training/certifcate organization might not be possible, thus it might not be a good engine to start with?


I suggest to start with Logic related Math, When you have a idea how to create AI with that,You can check if existing programming languages are valid tools. If not create your own.
It could be that only logic as foundation is not enough.
Nikodiemus
Ganja Clade
Shadow Cartel
#37 - 2012-06-27 02:03:32 UTC
To be frank, anyone that has had no experience with any programming languages will do well just to put a few weeks in learning any of the big programming languages (C++, Java, Python etc.) because you need to introduce yourself to languages and computer coding before you really know what anyone else is talking about when referencing other languages, the differences between scripts and Object Oriented, loops, logic and flow etc.

Python is very simple in terms of syntax and is a good place to start, but the same can be said for many programming languages. Once you get your feet wet though, you can look at a bunch of languages to see what looks like fun to work with and then take it from there.

Another person that said earlier its not just knowing the languages its the type of thinking you have, a logical flow to your program design, and knowing how to solve problems. When you get these down, you can program anything with just some syntax learning for a specific language. Also good because large projects or large companies use a variety of languages to do different things since there is no one language that is best for everything.

The best piece of advice that I can give is when you start learning programming, program a LOT. Practice practice practice practice. This will help you remember syntax and speed your scripting. Also, always cannibalize your older programs or script from libraries since it saves time - nobody starts a program from scratch once they get to a certain point. Most of all though, have fun doing it. Learning programming is hard work but if you enjoy it you will get very good in time.
Watooshi Makoochji
Republic University
Minmatar Republic
#38 - 2012-06-27 02:45:24 UTC
Wow. Some really great advice in here guys Thanks!
Savage Angel
Garoun Investment Bank
Gallente Federation
#39 - 2012-06-27 03:37:10 UTC
I believe they have said the server engine only speaks gerbil. It only knows 3 words - "Feed Me" and "Oops".
Fearless M0F0
Incursion PWNAGE Asc
#40 - 2012-06-27 03:41:11 UTC
Real men code in assembler using EDLIN Twisted

Eve is written in Python and it's a good language to learn how to program. Now, if you are looking into AI, there are specialized languages for that, LISP comes to mind, try googling.

As for programming languages to learn, I would say Java and C, C++ are kinda obsolete (although you get paid VERY WELL for knowing them Bear). If you are just starting, try modern object oriented languages: Python, Ruby, C#