This topic is locked from further discussion.
going to school is the best option. Without that degree no one will take you seriously.
Deihmos
yes I know that, but I would like to know the basics first.
AI is relatively advanced. If you are starting to learn programming and you have a beginners C++ book, you'll probably have to read that book entirely before you can start tackling AI.
Im not aware of any books that teach both AI and programming from the ground up as you go. Most AI books i've seen have no code and are mostly just concepts that the programmer implements - but that requires a decent amount of programming knowledge since you need to convert concepts into code since the code isnt given to you.
I would recommend a book like this: Beginning C++ Game Programming. I havent read it (since i dont use C++), but it seems like a game programming book for an absolute beginner. It seems the farthest you get will just be text-based games, but it should give you enough knowledge to spend time on creating your own custom AI for it.
I've got a couple of computer "geek" friends that started getting heavy into programming and all that fun stuff needed for writing code for games...let me tell you something (this isn't meant to discourage you, just from my own personal views/opinion)
I tried watching these two guys work on a final for one of their courses; and the final was to write an AI program. The object was that you worked in a 5 x 5 grid: At one end of the grid was a cat and at the other end of the grid was a mouse - their job was to write an AI program that would allow the mouse to out-smart the cat and arrive safely at the oposite end of the grid.
I've never seen these two guys struggle so hard before over this one project (and these were brainy guys, doing all the calc and trig classes and being able to blow through C and C++). So, learning to do AI is no simple task.
Be prepared to become frustrated and greatly annoyed at times....and if you can stick through all of that, then maybe you'll have what it takes to knock out some good AI programs eventually.
going to school is the best option. Without that degree no one will take you seriously.
Deihmos
That's not exactly true. Of course that's the safest option of getting into the industry, but there's also the realm of modding. designers and leaders of top mods for certain games(i.e. HL2, UT2004 etc.) are quite often in demand by the videogame industry.
I've got a couple of computer "geek" friends that started getting heavy into programming and all that fun stuff needed for writing code for games...let me tell you something (this isn't meant to discourage you, just from my own personal views/opinion)
I tried watching these two guys work on a final for one of their courses; and the final was to write an AI program. The object was that you worked in a 5 x 5 grid: At one end of the grid was a cat and at the other end of the grid was a mouse - their job was to write an AI program that would allow the mouse to out-smart the cat and arrive safely at the oposite end of the grid.
I've never seen these two guys struggle so hard before over this one project (and these were brainy guys, doing all the calc and trig classes and being able to blow through C and C++). So, learning to do AI is no simple task.
Be prepared to become frustrated and greatly annoyed at times....and if you can stick through all of that, then maybe you'll have what it takes to knock out some good AI programs eventually.
neatfeatguy
Ya i would agree with you. I'm a developer and i can program some games in C++ but AI is very tough when you get into it. You'll want a university software engineering degree most likely if you really want to get into it. The main reason being the math involved is quite complex. Basic AI is quite easy but anything where it actually has a brain is where it gets tough.
You don't need to use C++ when you're getting into AI but it is a good starting point because a large portion of books you'll find at book stores involve c++. If you want some solid books look for ones written by Andrew Lamothe. They're very well done. I own several of his and i find them easy to pick follow and cover the foundation well.
But before you do AI you will need to at least have a starting point in gaming. Even if this is something really basic and then from there build your AI on top of that. Also if you don't want to get into developing games from the ground up i would suggest looking at how to build on top of the unreal engines, hl2 and such. They're easy to quickly setup games and the code is easy to follow.
If you want the very basics, find an open engine editor that allows you to edit AI scripts and start with figuring that out. I used to do some mapping and editing on the old Dark Engine for the Thief series, and most AI there is a series of scripts that come down to essentially 'do this unless this this or this happens, and if this happens, do this, etc.' Not especially hard once you've got the games particular coding lingo down, but it still tends to become a bit tedious when you've got to consider so many elements which the player can do. I imagine with newer engines the process is much, much more complex. Still, it's a start. You wont be coding entierly new AI anytime soon, but if you can figure out the general idea it's a start.
Source engine maybe? UT engine? There are piles of mods for those two, so I imagine there must be some basic AI tweaking open to you in the editors. Give it a look!
You need some sort of formal education. Im not saying to enroll yourself in MIT or anything like that, but maybe take a night class or something at a junior college or a trade school, if they allow that sort of thing.
The reason I say this is because my roommate is a computer science major. He has worked part-time coding programs for the past two years. He is an extremely bright guy, and not only academically but creatively as he writies his own music and plays in a couple bands.
This last quarter, however, he took a design class where the quarter-long project was to design a game from the ground up. All the modeling and stuff like that took them about two weeks, but the AI took them the whole quarter and when the project was due they still werent finished (fortunately he cut out the unfinished part and got a good grade).
My point is that while you can further yourself by being self-taught and by reading books, you are definately gonna need training and education. If it took my roommate multiple quarters of classes and two years of job experience to become proficient with programming (and a whole 10-week quarter to know AI programming), its gonna take more than a C++ for Dummies book to train you.
Programming is definitely tough, most books that teach it don't even make sense for beginners. But as always once you understand it more, Practice, Practice, Practice. Don't get discouraged because you get stuck or pissed at it. Just don't give up and before you know it you will be making complicated programs.
Like many have said(if your old enough and have time) take some courses on it. Although I recommend that you find someone super smart in programming and have them teach you. Thats what I did and I learned faster than the school I was at. =]
-Good Luck to ya
there is a lot of truth in what everyone has said so far
i myseld am doing a double in computer science and science, and AI programming isn't offered until our 3rd year, simply for the fact that they pound us with the truth that all programming is algorithms. Someone before mentioned playing around with scripts, yes that can help a bit of understanding, unfortunately that's far from programming an AI from scratch?
you'll realise the true difficulty in it by trying, simply put, you're a beginner? well, start with simply programming first, for example, set yourself smaller projects which test your algorithmic thinking (because all programming is simply maths (being logic) in code) and make a game such as bejeweled, where you're doing a lot of if this than this kind of stuff
remember AI isn't restricted to a certain programming language, just depends on how it's utilized, and generally it can be translated. So play around a little and see what you like (i have to be proficient with Java for example :P)
don't feel discouraged, but AI is well out of your reach at a beginner level, even i and some friends who are about 10 times ahead of me, are yet to even think about AI and we're already about to start 3rd year at uni. Remember, it depends on the complexity of your AI, scripturing isn't 'true' AI... ... you'll undersand eventually
what do you other guys think? or have i blown it out of the water? :(
Lari
I would say that attempting AI programming while learning basic programming is a little bit on the impossiable side. I finished my masters of computer science degree with a focus on AI and I can tell you that AI is tough if you want it to be effective. AI programming is not IF and THEN statements, most of the AI programming that I did used very few of those but rather a method to do almost perfect decisions in as little a time as possiable using a few decision parameters.
A degree in programming would be a good place to... start, then you will need to work on game programming and after that you may be able to start going into game AI programming. As far as I know C++ or any of the other common languages are used for the programming of game AI but rather a more decision based language that uses rule and such, LISP or something I can't remember.
It is good that you are interested but it is good to be realistic and see that to achive your goal you have a looooooonnnnggggg road ahead of you!!!!
I'm not so sure AI necessarily has to be so complex and difficult to learn. If you want to write general AI then you need to get into research, because despite developments in Intelligent Agents and autonomous systems (like the NASA Mars rovers and whatnot) not very much has happened since the speculations about "humanlike AI soon" some 20+ years ago. A few examples of modern advances include areas like Evolutionary Computing and Genetic Programming, which show promise for specific domains in automation and "cognitive theories" (like Global Workspace Theory) that shows promise for human interaction (mimicking human "attention" to a task).
I wouldn't worry so much about a degree unless you want to get into research.
For the specific problem of AI in games there are a number of subjects you can get into that don't require advanced knowledge in semantics and computational theory:
Constraint Programming, Planning, Learning Decision Systems (boosted decision-tree stumps are great for many dynamic scripts)
but most of all Game Design!
A well designed interface and dynamic animations can give a very convincing illusion of intelligence where the behaviour of agents in the game are actually quite simple, even random. Remember that in modern games it's more a matter of pervasiveness and plausibility -- something like the "fourth wall" of a stage. Even a very capable AI in a poor presentation will make the player disappointed (feeling that the computer is "cheating" or "auto-killing").
A good introductionary text at undergraduate level is AIMA (AI: A Modern Approach) often referred to as "Russel and Norvig" after the authors; aima.cs.berkeley.edu. That text doesn't deal with computer games explicitly but the appications are easy to imagine.
The real key to understanding AI in computer games, IMO, is to really understand the importance of data -- it's easy to apply existing techniques to a game but that technique will be rather useless if you haven't chosen good information to extract from your game-environment. Thus, the modelling your game uses (e.g Gameplay Programming) is essential for succesfull application. IMO of course, you can probably find ppl who disagree with that and claim that a good AI should be able to perform well with the same set of data that a human would use (ie proponents of so-called strong AI).
Speaking of modelling, someone above mentioned mods - modifications to existing games. This is a great way to see how others have done and sometimes existing games clearly illustrate the shortcomings of many games' data models. Plus it's a great way to really get into programming and content creation without the often insurmountable hurdle of getting a game engine up and running to start testing your AI.
To summarize:
Learn Game & Art Design. Understanding convincing presentation is very important - how does the game seem intelligent?
Learn and think carefully about information and questions like "what do I need to know to decide X" or perhaps more importantly "how can I pretend that I know X"
Learn and apply existing techniques without regard to their original applications
Mod!
// raphael
amateur researcher; complex adaptive systems
There is a LOT you need to learn before being able to code AI: basic programming, data structures, mathematics... AI programming can be simple or very very complex. I have an degree in software engineering and I know only the basics of AI. This is the book I bought for one of my classes: link. To learn complex AI you will need to get into a book like this. I don't recommend you buy it, it is far too advanced... you need to start a degree.
there is a lot of truth in what everyone has said so far
i myseld am doing a double in computer science and science, and AI programming isn't offered until our 3rd year, simply for the fact that they pound us with the truth that all programming is algorithms. Someone before mentioned playing around with scripts, yes that can help a bit of understanding, unfortunately that's far from programming an AI from scratch?
you'll realise the true difficulty in it by trying, simply put, you're a beginner? well, start with simply programming first, for example, set yourself smaller projects which test your algorithmic thinking (because all programming is simply maths (being logic) in code) and make a game such as bejeweled, where you're doing a lot of if this than this kind of stuff
remember AI isn't restricted to a certain programming language, just depends on how it's utilized, and generally it can be translated. So play around a little and see what you like (i have to be proficient with Java for example :P)
don't feel discouraged, but AI is well out of your reach at a beginner level, even i and some friends who are about 10 times ahead of me, are yet to even think about AI and we're already about to start 3rd year at uni. Remember, it depends on the complexity of your AI, scripturing isn't 'true' AI... ... you'll undersand eventually
what do you other guys think? or have i blown it out of the water? :(
Lari
dark_death78
I agree with you. Actual AI programming where it has some brains other than your really basic..If you see the player on the screen shoot otherwise stand still, is very hard. There is a lot of math involved to calculate the best actions in given scenarios. I think to just get a feel for how things work and to get a bit of a foundation you should start with basic scripting. You'll get a bit of an understanding on how it integrates into games and can play around with that. Once you're getting the hang of that i'd suggest University or if your really smart go buy the books and teach yourself although this is a really hard thing to do on the advanced topics.
Also going to your local chapters and such and picking up beginner books is a good start
There is a LOT you need to learn before being able to code AI: basic programming, data structures, mathematics... AI programming can be simple or very very complex. I have an degree in software engineering and I know only the basics of AI. This is the book I bought for one of my classes: link. To learn complex AI you will need to get into a book like this. I don't recommend you buy it, it is far too advanced... you need to start a degree.
shogoh
I used that book as well for the first AI clas s I took. I thought it was a good overview of the needed concepts to begin AI work. Of course you will have to get other more specific books for machine learning and stuff like that if you truely want to understand the topic. Nevertheless, that book gives you the tools to make some cool stuff like an AI car for the DARPA road challange (the overall small group project I did in my clas s).
iwant to learn how to make mods, skins, maps, and other stuff for games such as Cod2, Crysis, and Cod4.
i am gonna start learning how do those stuff at the end of this year when i get my new computer, core 2 duo E6650, 8800GTS, 2gb of ram.
what programs do i need for those stuff?
and i am 14 so i have a lot of time on my hands. so can somebody list me books to learn about the basics of programming games, and other stuff to add into it?
PS. i also need to learn the CMD commands. where can i learn about those?
iwant to learn how to make mods, skins, maps, and other stuff for games such as Cod2, Crysis, and Cod4.
i am gonna start learning how do those stuff at the end of this year when i get my new computer, core 2 duo E6650, 8800GTS, 2gb of ram.
what programs do i need for those stuff?
and i am 14 so i have a lot of time on my hands. so can somebody list me books to learn about the basics of programming games, and other stuff to add into it?
PS. i also need to learn the CMD commands. where can i learn about those?
blacksorrow07
A few years ago I Sort of dabbled in that stuff, making models and whatnot. It was more out of boredom and interest than to actually pursue it as a career.
Halflife has an extremely good SDK and a lot of community support for such things.Hammer for the levels, Milkshape for the models, and I forgot what program to make the textures (was it Wally's?). It may not be professional, but the stuff is user friendly and I am sure very relevant to whatever professional tools actual developers use.
on account of what a lot have said i just realised that maybe it would be a good idea to play with SDK's first
by grabbing what you can experience from pre-made games such (especially for modelling and design and stuff) you'll get a head start. I remember when i started modelling for fun i played around with the Q3 options given to me, and exporting and learning the basics and getting the hang of it, and after understanding most of the jargon i was very confident when i first picked up 3DSMAX for example, because i knew straight away what most of the stuff meant that i was looking at on the screen
programming through a programming language (any for that matter) has more to it then some people think... for example if you want to actually "see in action" what you've coded... you have to first code the base etc etc, which takes the bulk of the time, in comparison to what you actually wanna see if it works (thus why programming with Java for example, lets me see how it runs through numbers and basic text, without the hassle of compiling and worrying about graphical representations)
so i think that SDK's and stuff that's available out there is an excellent place to start to help you get into programming, scripting and eventually even advanced stuff as AI
Good luck to you guys, hope to see some good stuff in the future
Lari :D
Please Log In to post.
Log in to comment