Pages: 1 2 3 :: [one page] |
|
Author |
Thread Statistics | Show CCP posts - 2 post(s) |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.26 20:25:00 -
[1] - Quote
What languages is EVE Online programmed in?
If one were to pursue some training in languages applicable to AI programming in EVE Online or similar games what would guys suggest to start with? |

Corina Jarr
Spazzoid Enterprises Purpose Built
889
|
Posted - 2012.06.26 20:25:00 -
[2] - Quote
Are you stealthily asking what to make a bot from? |

Nyreanya
Serenity Labs New Eden Research.
253
|
Posted - 2012.06.26 20:27:00 -
[3] - Quote
I'm fairly sure it's Python. Not everyone thinks the same way you do. This doesn't automatically make them wrong. |

Ituhata
The Scope Gallente Federation
31
|
Posted - 2012.06.26 20:28:00 -
[4] - Quote
I don't know the answer, but I'll bet 5 million isk on C++.
I've only ever programmed in QBASIC and Turbo Pascal (great language for the sole reason that anyone could sit down and read it and understand what was happening), took a few weeks of C++ before I dropped out of college. I would like to have known c++ but in the long run I don't think I could be a programmer, too much eyestrain.
Nyreanya wrote:I'm fairly sure it's Python.
I HAD that language on my PC, I never really messed around with it, I heard its fairly self explanatory and I could probably teach myself how to use it. |

Price Check Aisle3
97
|
Posted - 2012.06.26 20:28:00 -
[5] - Quote
tbh it's better to learn a few different languages and get some practical experience in programming rather than focus on the language that'll land you the dream job. The reason being is that once you know a few different types of languages and have experience in logic flow, the rest is simply syntax. Penalty box alt. |

Aineko Macx
Royal Amarr Institute Amarr Empire
194
|
Posted - 2012.06.26 20:28:00 -
[6] - Quote
Python is what you are looking for. There's modules of compiled C++ code, but everything is held together with Python. |

Lapine Davion
Outer Ring Applied Logistics
494
|
Posted - 2012.06.26 20:29:00 -
[7] - Quote
Nyreanya wrote:I'm fairly sure it's Python.
EVE Was originally programmed in stackless python. Don't worry about posting with your main! -áPost with your brain! "Never attribute to malice that which is adequately explained by stupidity." |

Corina Jarr
Spazzoid Enterprises Purpose Built
889
|
Posted - 2012.06.26 20:30:00 -
[8] - Quote
Anyway, I know parts are in Python. Maybe all of it...
However, it is best when learning to program to learn many different ways of doing the same thing. |

Garrvik
14
|
Posted - 2012.06.26 20:31:00 -
[9] - Quote
Price Check Aisle3 wrote:tbh it's better to learn a few different languages and get some practical experience in programming
I second this statement. Having been exposed to numerous languages, I can tell you that you'll find some you like and some you don't. Personally, I dislike having to work in scripting languages (e.g. Perl, Python) and focus more on strong typed languages (e.g. C/C++, Java).
To answer your question, I'm pretty sure the game is written in Python. A language I will personally avoid at all costs. |

Price Check Aisle3
97
|
Posted - 2012.06.26 20:32:00 -
[10] - Quote
Corina Jarr wrote:Anyway, I know parts are in Python. Maybe all of it... The back-end server code is some variant of C, I'm pretty sure. Penalty box alt. |
|

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.26 20:37:00 -
[11] - Quote
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? |

Victoria Sin
Center for Advanced Studies Gallente Federation
36
|
Posted - 2012.06.26 20:39:00 -
[12] - Quote
Scripting is "stackless" python (stackless for reasons that might be obvious to a programmer - i.e. concurrency). Client is probably a mixture of C++ and python. Back end all I know is it's SQL server, but I expect that and the middleware are C++.
If you're going to start writing code, I would start with Java these days. Personally I started with BASIC (it was a while ago!) and then moved on to C and then C++ and then .NET. I work as a developer now and all of my stuff is either C++ or C#. For games the language of choice is C++, but of course these days a lot of games are mobile based and they are either Java (Android) or Objective-C (Apple). |

Andrea Roche
State War Academy Caldari State
139
|
Posted - 2012.06.26 20:40:00 -
[13] - Quote
its python baby!
|

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.26 20:42:00 -
[14] - Quote
Victoria Sin wrote:Scripting is "stackless" python (stackless for reasons that might be obvious to a programmer - i.e. concurrency). Client is probably a mixture of C++ and python. Back end all I know is it's SQL server, but I expect that and the middleware are C++.
If you're going to start writing code, I would start with Java these days. Personally I started with BASIC (it was a while ago!) and then moved on to C and then C++ and then .NET. I work as a developer now and all of my stuff is either C++ or C#. For games the language of choice is C++, but of course these days a lot of games are mobile based and they are either Java (Android) or Objective-C (Apple).
Sounds like you know your stuff Victoria. Given the context I explained in the post just before you posted, what would you suggest to start with?
I'm actually planning to pay for an online certificate training program with O'Reilly School of Technology. They offer four course series in Python, C++ and SQL.
Just not sure what might be 'most forgiving' and momentum produciong to start with. |

Price Check Aisle3
97
|
Posted - 2012.06.26 20:43:00 -
[15] - Quote
Watooshi Makoochji wrote: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. Start with C++, IMO. If you can learn that and provide some practical examples, you'll probably have a good head start on learning other languages.
For a personal example, I learned BASIC and C++ back in the day, VBA and SQL professionally, then moved on to Perl, Java, and C++ (plus learning to translate C into Java, what a headache) for my own projects, now I program PHP professionally (with some confusing forays into javascript). HTML and CSS are something everyone can learn easily, so I usually ignore them in the list. Penalty box alt. |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.26 20:53:00 -
[16] - Quote
Thanks again guys!
Price Check Aisle3 wrote:Start with C++, IMO. If you can learn that and provide some practical examples, you'll probably have a good head start on learning other languages.
For a personal example, I learned BASIC and C++ back in the day, VBA and SQL professionally, then moved on to Perl, Java, and C++ (plus learning to translate C into Java, what a headache) for my own projects, now I program PHP professionally (with some confusing forays into javascript). HTML and CSS are something everyone can learn easily, so I usually ignore them in the list.
E: And now I notice someone saying start with Java, which is actually much better advice since it will help with C-style languages in the long run.
You know you're getting good stuff when you get the same advice from two or more independent sources :)
From the Bohemia Interactive Studios forums . . .
Quote: IMHO learn Java first. From a computer science student's standpoint, Java is much easier to grasp the basics on before you head to C++ where you need to deal with inconveniences like garbage collection.
Java will give you a good grasp (hopefully) on object oriented programming. From there you can learn all the stuff that C++ adds on. |

black cree
Utopian Research I.E.L.
26
|
Posted - 2012.06.26 20:54:00 -
[17] - Quote
I think they develop in stackless python for speed and ease of development and they probably convert various part in C++ after development for performance areas.
They created a framework called Carbon, i dont know much about it.
I believe they use Maya for art Also they use mssql as database. |

Private Pineapple
Rifterlings Damu'Khonde
114
|
Posted - 2012.06.26 21:02:00 -
[18] - Quote
stackless python Zero risk, Great reward FW... yeah, FW needs to be balanced! https://forums.eveonline.com/default.aspx?g=posts&t=119886
Support Damen Apol's FW proposal! https://forums.eveonline.com/default.aspx?g=posts&t=119683 |

Kasutra
Tailor Company IMPERIAL LEGI0N
50
|
Posted - 2012.06.26 21:21:00 -
[19] - Quote
black cree wrote:They created a framework called Carbon, i dont know much about it. It is, in very few words, the code base shared between EVE and other (upcoming) CCP products.
EDIT: Here, have a blog. |

Eternal Error
Exitus Acta Probant
55
|
Posted - 2012.06.26 21:25:00 -
[20] - Quote
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... |
|

Abdiel Kavash
Paladin Order Fidelas Constans
619
|
Posted - 2012.06.26 21:36:00 -
[21] - Quote
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
Center for Advanced Studies Gallente Federation
36
|
Posted - 2012.06.26 21:37:00 -
[22] - Quote
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
Black Storm Cartel
151
|
Posted - 2012.06.26 21:42:00 -
[23] - Quote
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. Shift click to open new window. How the Eve Sandbox Works:https://forums.eveonline.com/default.aspx?g=posts&m=482176#post482176
"I believe in karma. That's why whenever I do something sh**ty to others, they somehow deserved it." |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.26 21:45:00 -
[24] - Quote
Interesting link to the blog :) |

Xercodo
Disturbed Friends Of Diazepam Dark Matter Coalition
1151
|
Posted - 2012.06.26 21:51:00 -
[25] - Quote
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
1
|
Posted - 2012.06.26 21:57:00 -
[26] - Quote
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
Republic Military School Minmatar Republic
157
|
Posted - 2012.06.26 22:58:00 -
[27] - Quote
Visual Basic... No, really. |

Robus Muvila
GoonWaffe Goonswarm Federation
14
|
Posted - 2012.06.26 23:13:00 -
[28] - Quote
Javascript and BASIC |

Myrkala
Missions Mining and Mayhem Northern Coalition.
14
|
Posted - 2012.06.27 00:50:00 -
[29] - Quote
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.
Good luck on your career.  |

MeBiatch
Republic University Minmatar Republic
440
|
Posted - 2012.06.27 00:52:00 -
[30] - Quote
the language of love of coarse... PLEX FOR PIZZA! -áThere are no stupid Questions... just stupid people... |
|

None ofthe Above
278
|
Posted - 2012.06.27 00:52:00 -
[31] - Quote
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.
|

Nate Guralman
Blue Republic RvB - BLUE Republic
28
|
Posted - 2012.06.27 01:33:00 -
[32] - Quote
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
24th Imperial Crusade Amarr Empire
715
|
Posted - 2012.06.27 01:39:00 -
[33] - Quote
English
Do I win? I just gotta go fast! |

Tao Arnst
Republic Military School Minmatar Republic
25
|
Posted - 2012.06.27 01:40:00 -
[34] - Quote
Must be Polish, 'cause the client is F**KED UP............ Most people embrace GOOD change Parasites embrace BAD change
|

Baljos Arnjak
Dark Praetorian Order
19
|
Posted - 2012.06.27 01:55:00 -
[35] - Quote
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
5
|
Posted - 2012.06.27 01:58:00 -
[36] - Quote
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
Jokulhlaup
35
|
Posted - 2012.06.27 02:03:00 -
[37] - Quote
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
1
|
Posted - 2012.06.27 02:45:00 -
[38] - Quote
Wow. Some really great advice in here guys Thanks! |

Savage Angel
Garoun Investment Bank Gallente Federation
129
|
Posted - 2012.06.27 03:37:00 -
[39] - Quote
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
37
|
Posted - 2012.06.27 03:41:00 -
[40] - Quote
Real men code in assembler using EDLIN 
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 ). If you are just starting, try modern object oriented languages: Python, Ruby, C# |
|

Implying Implications
cuties4life
122
|
Posted - 2012.06.27 03:41:00 -
[41] - Quote
EVE is programmed in html. Minmatar V3 gallery: http://minus.com/mOqXRikn5 |

Poetic Stanziel
Autocannons Anonymous Late Night Alliance
932
|
Posted - 2012.06.27 03:55:00 -
[42] - Quote
Watooshi Makoochji wrote:What languages is EVE Online programmed in? Visual Basic and COBOL.
The STAIN Travel Bookmark Collection - 451 Bookmarks |

Tippia
Sunshine and Lollipops
8236
|
Posted - 2012.06.27 04:06:00 -
[43] - Quote
Fearless M0F0 wrote:Real men code in assembler using EDLIN  Gee. Thanks. I had repressed those memories. Now I'm going to have to spend another fortune on therapy to get rid of the dread and horror those five letters evoke.
Also, Scheme > all.
GÇ£If you're not willing to fight for what you have in GëívGëí you don't deserve it, and you will lose it.GÇ¥
CONCORD spawns: quick enough to save you?
|

Poetic Stanziel
Autocannons Anonymous Late Night Alliance
932
|
Posted - 2012.06.27 04:22:00 -
[44] - Quote
Tippia wrote:Also, Scheme > all. Because matching thousands of parens is awesome. (See also LISP.) The STAIN Travel Bookmark Collection - 451 Bookmarks |

St Mio
Imperial Academy Amarr Empire
882
|
Posted - 2012.06.27 05:39:00 -
[45] - Quote
Icelandic of course. Even the comments! |

black cree
Utopian Research I.E.L.
26
|
Posted - 2012.06.27 06:18:00 -
[46] - Quote
Java : not good as learning language despite all the marketing success it has, good for outsourcing large projects.
Pascal : deprecated , good for learning if you want to learn C after that
Python : good for learning, adapted to human mind with lots of semi automatic stuff in the background, performance issue with vanilla version (interpreted language)
C++ : minnie style language : you need to adapt your brain to it, lots of micro managment, no strings attached, old but still active for performance and precision, connected to Unix Oses.
Perl: powerful data modification abilities but obfuscating.
|

Allyria Kylari
Blue asteroids
8
|
Posted - 2012.06.27 08:18:00 -
[47] - Quote
Watooshi Makoochji wrote: If one were to pursue some training in languages applicable to AI programming in EVE Online or similar games what would guys suggest to start with?
The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? If you have a strong foundation in computer science theory, then you can intelligently select the language that is most suitable for the kind of AI programming you have in mind.
If you just want programming language literacy, then what everyone else has suggested here is great. Just keep in mind that AI and programming languages are two very separate things. If you want to learn languages that are commonly used in the game development industry, then all the languages previously mentioned like C and C++ are strong languages to learn. Being a highly competent programmer in these languages will really improve your resume if you are seeking employment in the gaming industry. |

AllUrBase
Parental Control
0
|
Posted - 2012.06.27 10:21:00 -
[48] - Quote
wikipedia wrote: Both the server and the client software for Eve Online are developed in Stackless Python, a variant of the Python programming language. Stackless Python allows a relatively large number of players to perform tasks without the overhead of using the call stack used in the standard Python distribution. This frees the game developers from performing some routine work and allows them to apply changes to the game universe without resetting the server.[67] However, the Eve cluster is taken offline daily for database and server maintenance.[68]
Source
CCP also seem to sponsor/fund the Stackless Python project. [1]
I'm wondering if Erlang could also be used for handling concurrency issues, instead of Stackless Python.
Btw, are there any (detailed) Programming + Infrastructure links/dev blogs/resources about EVE? (before I start searching? :P).
As far as the PL are concerned, imho, Python is great to start. It's easy to learn and lets you focus on 'getting your algorithms right', which is really important when you start to learn how to code.
After that you can begin 'specializing' in what you want.
Whatever you choose, however, it's really important to have a good grasp on both the algo stuff (abstract data types, algorithmic complexity etc), and on low-level details (how the language implements core structs and methods, some compiler optimization stuff, userspace<->kernelspace interaction, interactions with the hardware (CPU arch, caches, memory, I/O)), in order to write optimized and efficient code.
For low-level/systems/performance-critical programming, you have no choice but C (and some (inline) asm perhaps). It's a trikcy language, but you will learn a lot writing in C, and you can do some really cool/weird stuff in it too. ;)
C++/Java/C# for large user-space applications and/or middleware. OO really shines in such apps. But I hate it. :P Scala is becoming quite popular too.
Python or Ruby for smaller user-space apps perhaps, and some scripting. It can also be used for backend web development (Django, Rails etc).
Perl and Shell scripting for admin/maintenance work, handling of text files etc.
Erlang is good if you want to learn about concurrency (and it's becoming very popular in distributed, heavily concurrent systems). Most of the NoSQL db's or AQMP implementation there days are written in either C++ or Erlang, afaik.
Functional PLs, such as SML, are very good for digging deeper into PL, and will put you into a different mindset when coding (ever heard of tail recursion? etc). OCaML is a very nice mix of functional programming and OO, and Haskell, being a pure and lazy functional language, is pretty tricky, but will probably change the way you're writing code forever. :P Lisp probably falls into this category too (too many parentheses however :P), and used to have some applications in AI programming.
If you're into AI, you could also check Prolog (Logical Programming). I never got used to Logical Programming, however it's a nice challenge trying to write a few simple programs in Prolog. Except for Prolog, I think there are some more specialized languages, which focus on machine learning etc.
my 2c |

Vaju Enki
Secular Wisdom
185
|
Posted - 2012.06.27 10:35:00 -
[49] - Quote
Unfortunately from now on it's not writen on "fault language". If you want instant gratification, go stimulate your genitals. EvE is Hard, deal with it. |

Sirinda
Aliastra Gallente Federation
103
|
Posted - 2012.06.27 10:37:00 -
[50] - Quote
01010100101010101001010111011010010101010100111101000110101101010101100101101010011001
That is your answer. |
|

Nate Guralman
Blue Republic RvB - BLUE Republic
28
|
Posted - 2012.06.27 10:59:00 -
[51] - Quote
C and C++ are NOT obsolete. In fact, they're probably the most important languages in use today. For instance, almost all games today are written in C++, and most operating system code is written in C. And there are still tons of business apps written in C++.
The Tiobe Index tracks the popularity of programming languages, and the top three are C, Java and C++, in that order. |

Romar Agent
Ishukone Regional Headquarters
62
|
Posted - 2012.06.27 11:12:00 -
[52] - Quote
As been said, look into C++ and Java and you are set.
Though I would suggest starting with C as it's highly unforgiveable and you will learn everything about the basics (most important memory allocation) in a clear technical way (do this until your synapses bleed and you can shift bits with the best of them ). |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 12:51:00 -
[53] - Quote
Thanks a lot Myrkala :)
ADDIT: and lots of other good posts since last night! Thanks everyone.
Myrkala wrote: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.  |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 13:43:00 -
[54] - Quote
Allyria Kylari wrote:The fact that you first ask about programming languages applicable to AI worries me. If all you want to do is program AI, wouldn't you first seriously study AI? How much computer science theory are you already familiar with? . . .
I don't mean true 'artificial intelligence' as in strong or general purpose intelligence 
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?
As a social scientist I have virtually no background in computer science theory, so what I'm really trying to do is go in a new direction, and one that will allow me to get a different job than my current one in academia.
Have to be honest though, eventually being involved in efforts to develop true general purpose intelligent machines is a fascinating prospect. Even some of the oldest "AI" examples are pretty mind-boggling.
http://en.wikipedia.org/wiki/SHRDLU#Excerpt
Quote:Here is an extract from a famous demonstration of SHRDLU (with messages converted from their original upper case for ease of reading):
Person: Pick up a big red block. Computer: OK. Person: Grasp the pyramid. Computer: I don't understand which pyramid you mean. Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box. Computer: By "it", I assume you mean the block which is taller than the one I am holding. Computer: OK. Person: What does the box contain? Computer: The blue pyramid and the blue block. Person: What is the pyramid supported by?
|

Tippia
Sunshine and Lollipops
8245
|
Posted - 2012.06.27 13:48:00 -
[55] - Quote
Poetic Stanziel wrote:Tippia wrote:Also, Scheme > all. Because matching thousands of parens is awesome. (See also LISP.) Meh. The coding environment will do that for you.
The really awesome part is figuring out which one of those thousand parentheses is misplaced to cause the bug you're experiencingGǪ  GÇ£If you're not willing to fight for what you have in GëívGëí you don't deserve it, and you will lose it.GÇ¥
CONCORD spawns: quick enough to save you?
|

Alrione
Black Lagoon Inc.
239
|
Posted - 2012.06.27 14:09:00 -
[56] - Quote
If you want to stay at hobbyist level starting with java/python is fine. However if you want to become serious developer dive straight into C++.
Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language. Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y |
|

CCP Guard
C C P C C P Alliance
2555

|
Posted - 2012.06.27 14:12:00 -
[57] - Quote
In this post I am going to tell you all I know about programming...so bear with me please!
It's Python. CCP Guard | EVE Community Developer |-á@ccp_guard |
|

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 14:17:00 -
[58] - Quote
Alrione wrote:If you want to stay at hobbyist level starting with java/python is fine. However if you want to become serious developer dive straight into C++.
Problem with transitioning off java to C++ is whole bunch of bad habbits, also some people mentioned lack of garbage colelction as some sort of difficult/negative thing about language. Well thats frankly rubbish, in majority of cases you don't need to do anything special to avoid leaking memory. As long as you learn to write neat c++ code with use of stl/boost y
Hmmmm. Have been looking at some C++ and frankly it would appear there is a LOT of assumed knowledge just to start with learning that language.
Keep in mind, I have basically ZERO computer science training 
Don't you think it might be better to start with something a little more approachable like Java or Python?
Actually though, OST does list an Introduction to C Programming in their set of three courese "For the Complete I.T. Beginner."
The other two being
Linux/Unix 1: The Unix file system
Introduction to Object-Oriented Programming
Like I said, I'm starting on a long-term track here, so learning a variety of stuff in the long-run is the plan. But since how I start could make a bit of difference I'd like that first choice to be a smart one. |

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 14:19:00 -
[59] - Quote
:) ! Well THAT is encouraging!
CCP Guard wrote:In this post I am going to tell you all I know about programming...so bear with me please!
It's Python.
I was initially very much leaning toward Python to start for a couple reasons:
1. it sounds very approachable 2. it is very general purpose 3 it is open-source and has a vibrant community 4. it is used in some of my favorite games, for which I could see myself getting some initial 'practical' experience by making some user mods (e.g., Mount&Blade Warband) |

Bootleg Jack
Potters Field
153
|
Posted - 2012.06.27 14:20:00 -
[60] - Quote
CCP Guard wrote:In this post I am going to tell you all I know about programming...so bear with me please!
It's Python.
Explains alot. I'm an American, English is my second language... |
|

Ione Hawke
Imperial Academy Amarr Empire
14
|
Posted - 2012.06.27 15:08:00 -
[61] - Quote
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
1170
|
Posted - 2012.06.27 15:29:00 -
[62] - Quote
Watooshi Makoochji wrote:I don't mean true 'artificial intelligence' as in strong or general purpose intelligence  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.
You can tell me what is and isn't Truth when you pry the tinfoil from my cold, lifeless head.
|

Watooshi Makoochji
Republic University Minmatar Republic
1
|
Posted - 2012.06.27 15:31:00 -
[63] - Quote
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
Imperial Academy Amarr Empire
14
|
Posted - 2012.06.27 16:56:00 -
[64] - Quote
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
679

|
Posted - 2012.06.27 17:05:00 -
[65] - Quote
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 | Software Director | EVE Online, CCP Games | Follow on: Twitter / Google+ |
|

The Antiquarian
Imperial Academy Amarr Empire
389
|
Posted - 2012.06.27 17:08:00 -
[66] - Quote
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? |
|
|
|
Pages: 1 2 3 :: [one page] |