anthropoid 1 Posted June 26, 2012 What programming languages is the ArmA series coded in? If one were to pursue training in languages that would apply to AI programming in ArmA and similar games, what language would you guys suggest? Share this post Link to post Share on other sites
noubernou 77 Posted June 26, 2012 Arma is programmed in C++. Any serious game uses C/C++. Share this post Link to post Share on other sites
onlyrazor 11 Posted June 26, 2012 Except indie games. Those might use Java. But, yeah, C/C++ is the go-to language. Learn that. Share this post Link to post Share on other sites
anthropoid 1 Posted June 26, 2012 Cool! Thanks guys. That confirms what my O'Reilly School of Technology person is telling me :) Share this post Link to post Share on other sites
tacticalnuggets 24 Posted June 26, 2012 Cool! Thanks guys. That confirms what my O'Reilly School of Technology person is telling me :) You should probably learn a diverse range of languages. You will find that all languages are easier to learn once you learn a few..... Except for assembly language :P Share this post Link to post Share on other sites
ruhtraeel 1 Posted June 26, 2012 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. Share this post Link to post Share on other sites
anthropoid 1 Posted June 26, 2012 Thanks guys! 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. You know you're getting good stuff when you get almost identical advice from two or more indepent sources :) From the EVE Online forums . . . 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. Share this post Link to post Share on other sites
Serclaes 0 Posted June 26, 2012 When I got interested in programming I started with C. But in retrospect I should have started with Java, since C has a lot of overhead. I had to do some C++ later on and spent more time trying to figure out that pointer/reference/object stuff than actual logic. Also for me the object oriented programming is a lot more than just understanding how objects work. It's what you can do with it like patterns or paradigms like inversion of control and then it's about knowing what you shouldn't do with that language. ;) Share this post Link to post Share on other sites
anthropoid 1 Posted June 26, 2012 (edited) When I got interested in programming I started with C. But in retrospect I should have started with Java, since C has a lot of overhead. I had to do some C++ later on and spent more time trying to figure out that pointer/reference/object stuff than actual logic. Also for me the object oriented programming is a lot more than just understanding how objects work. It's what you can do with it like patterns or paradigms like inversion of control and then it's about knowing what you shouldn't do with that language. ;) Awesome info. Yeah I'm definitely hearing a consensus from forum folks across different gaming forums here (Taleworlds; EVE Online; Rome Total War): start with Java and use that as a basis to learn C++ I'm actually pretty excited about this :) 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? Edited June 26, 2012 by Anthropoid Share this post Link to post Share on other sites
ruhtraeel 1 Posted June 27, 2012 (edited) It truthfully all depends on how much exposure you've had to programming before. Learning basic logic is best with a really simple language such as Python (the introductory CPSC course at the University of Calgary), which teaches you to arrays, loops, if statements, functions, etc. After you have a grasp on that, Java is the next best way to go to be introduced to objects, pointers, references, downcasting, etc. Java is also really good for teaching data structures such as trees, heaps, linked lists, stacks, and queues. I actually found assembly to be quite simple to understand logically, just PAINFULLY DIFFICULT AND SLOW TO IMPLEMENT. SPARC assembly is much easier, but when working with Intel assembly which is a purely memory-based architecture, keeping track of sizes of buffers, etc etc... oh god the pain. Every time I close my eyes I see "SEG FAULT AT *insert random hex address here*" Edited June 27, 2012 by ruhtraeel Share this post Link to post Share on other sites
anthropoid 1 Posted June 27, 2012 Sounds like Java is a nice 'middle-ground' to start with: easy and relatively forgiving to get me some momentum, could actually lead to some employment given it is WIDEY used and is applicable in the growing mobile apps world. Going down toward the machine code sounds a little daunting for my first steps :eek: Share this post Link to post Share on other sites
Panda_pl 0 Posted June 27, 2012 Well, to be honest, C++ teaches you discipline when managing variables and memory, since it's all manually assigned/cleared. During uni classes on C++ objective programming (entry level) I have seen people have plenty of problems adapting a new pipeline where they had to think about those two things ahead. They usually wrote their code fast but got stuck on debugging and it was discouraging. With C++ you kinda have to have the data structure figured out ahead of time and know what is happening in memory at byte level. It would be boring and tiring to start from theory (how is memory assigned, when to operate on pointers etc.) and proceed to learn practical C++, so people recommend going with simpler language and then re-learning things when transferring to C++. It's fine but you might find yourself trying C++ once later and getting stuck in Java forever ;). I suspect this is why Minecraft was in Java... Share this post Link to post Share on other sites
anthropoid 1 Posted June 27, 2012 Thanks Panda, very useful insight. Based on responses by knowledgeable programmers in the five different threads I've started in different game forums, I think I have enough basic orientation to talk to my OST person and let her help me decide how to start. Sounds like starting with C++ could be very 'painful' and discouraging Starting with Python or Java are it seems an easier and less 'risky' (in terms of getting bogged down) option, but with risks of 'learning bad habits' and only forestalling some of the difficulties of learning C++ One of the EVE Online devs posted an interesting post In this post I am going to tell you all I know about programming...so bear with me please!It's Python. Given that one of the games I've been interested in modding for a long time uses its own weird language interfaced with Python (Mount&Blade Warband) that predisposes me to start with Python -> get into making mods quicker = practical experience. ---------- Post added at 11:40 ---------- Previous post was at 11:29 ---------- I'm leaning toward perhaps simultaneously taking an introductory Python and an introductory Java course. OST courses have no 'deadline' to finish. If I get stumped, bored or discouraged in one of them, I can just switch to the other one a bit. Both would seem to offer complimentary benefits for a starter. ADDIT: plus, both have cool names ;) Share this post Link to post Share on other sites
Serclaes 0 Posted June 27, 2012 It's definitely the best Idea to learn programming with small goals. So modding is definitely the best you can do. Share this post Link to post Share on other sites
Vixente 10 Posted June 27, 2012 EvE on-line is programmed in Python, if not entirely, at least a great part of it. I don't know about Python, but if you prefer some easier approach, Java or C# are your choices. C# with VS and .NET is very user-friendly. Java is great too, i'm not familiar with it, but the code is very similar to C# and millions of people and smartphones can't be wrong. ;) Panda has a point (a big one), C++ is de ideal thing if you are serious about learning programming in general on PC. It teaches you a lot, and it's not that difficult. It's a good base from which you can later jump into C#. You will find C#/Java extremely easy coming from C++ . I may be wrong, but that was the experience i had... P.S: I like your taste in games ... Arma 2, Rome total War, Eve On-line. I like you ;) Share this post Link to post Share on other sites
samyg 3 Posted June 28, 2012 Just please please please study up on your math. Oh dear god is it important, lol. Share this post Link to post Share on other sites
SnowSky 12 Posted July 2, 2012 I for my part learned programming with Turbo Pascal - it has not one of this guis where you have to study the GUI first before starting to work with it. It is simple to use and you can invest more time on thinking about algorithms then about syntax errors (debugger gives you very good information on why something does not work), so you don't have to fiddle with it. Later on we used delphi to learn object oriented programming, and then Java, JSP, C, parser and scripts. Another tip regarding languages - do not try to learn different languages at the same time - it will confuse you more then it helps - I notice it always again at work, while working with C, C++ and C# Projects - when I have to edit a Project in a different language than the current one, the first hours I always cross some differences and ask myself, why it won't work. Another tip regarding compilers - if you want to learn C, try to use a compiler that does not allow mixing C and C++. Why? Because if you have to use another compiler in the future, that one might be a very strict one. Another tip regarding first steps - Hello World should be the first thing you need to accomplish - even once you are a Master Master super Master of Masters - it's never wrong to let your computer tell hello to the world :) my 3.14159265358979323846264338327950288 cents :) Share this post Link to post Share on other sites
Angle 10 Posted July 2, 2012 Java is an convoluted POS that is so object obsessed it makes no sense. Python is the best programming language there is. However its runtime environment('s) leaves a lot to wish for especially in terms of performance. With Arma making the unfortunate move to Java I guess ill make a fifth attempt to learn it. Generally I give up when I cant properly set up the massive IDE's Java requires to even do hello world and there is never any good documentation them. Last time was with Take on Helis but the options the setup guide directed me to did not exist. People say Java is easy and great to learn but they are full of crap. I have experience in C and Python since almost 10 years but i cant for the life of me understand the IDE´s Java hides behind. First you learn the language and then you use the tools around it, not the other way around. Sorry if I got a bit passionate. I'm hopefully going back to proper school this fall to study Java. I guess we'll see then. Share this post Link to post Share on other sites
Serclaes 0 Posted July 3, 2012 Java doesn't require IDEs. In fact I passed my first semester with jEdit/Notepad++ alone, since managing a few classes and imports wasn't that much work. I can relate to what you feel though. I feel python has bad documentation and is tedious to learn. Share this post Link to post Share on other sites
noubernou 77 Posted July 3, 2012 Java, at least in the corporate environment is acronym hell, package hell, dependency hell... etc. Java is hell. Nothing against most of the syntax though, its just ... yea some of the packages are rather obtuse to say the least. Share this post Link to post Share on other sites
Serclaes 0 Posted July 3, 2012 Heh, yea it's no wonder tools like maven are necessary in a corporate environment. But with them, I've never had dependency problems. Share this post Link to post Share on other sites
Tonci87 163 Posted July 3, 2012 I had a few semesters of java, what I like about it is that everything seems quite logical (the syntax and everything). But other languages are indeed better. Share this post Link to post Share on other sites
Serclaes 0 Posted July 3, 2012 A language is a tool. Saying one is generally better than the other is as wrong as saying a hammer is better than a screwdriver. That said, python has its uses but I wouldn't want to make a full blown web application with it. Especially since java has spring/wicket. Share this post Link to post Share on other sites
batto 17 Posted July 3, 2012 Java, at least in the corporate environment is acronym hell, package hell, dependency hell... etc. Java is hell. Five years ago I would disagree with you. Now I fully understand why people hate Java. It's not the language or VM. It's because >50% of community is retarded. Maven be the best example. Share this post Link to post Share on other sites
Panda_pl 0 Posted July 3, 2012 A language is a tool. Saying one is generally better than the other is as wrong as saying a hammer is better than a screwdriver. That said, python has its uses but I wouldn't want to make a full blown web application with it. Especially since java has spring/wicket. Not sure if that's a good analogy. I don't see many people arguing merits of Perl. Anyway, I think the thread was about game programming specifically in which case I'd argue you would at least rule out interpreted languages. Share this post Link to post Share on other sites