Thursday, February 11, 2010

Top 100 Learning Game Resources

  1. It is All Fun and Games…And Then Students Learn- Kapp Notes, July 30, 2008
  2. Building Better Learning Games- Learning Visions, April 9, 2009
  3. Marc Prensky – Digital Game-Based Learning
  4. Gadgets, games and gizmos for learning- Clive on Learning, January 29, 2008
  5. How to Delight and Instruct in the 21st Century
  6. What Makes a Learning Game?
  7. Serious Games Blog
  8. mLearn08: MiLK: students building mobile learning games in higher education by Debra Polson- Ignatia Webs, November 12, 2008
  9. Marc Prensky – Twitch Speed, June 17, 2009
  10. Using computer games in education- ThirdForce Blog, January 30, 2009
  11. Digital games and learning gains (PDF), June 17, 2009
  12. Learning in Immersive worlds: A review of game-based learning
  13. Army War College – digital game resources
  14. Immerse Yourself in Another Language- Kapp Notes, June 3, 2008
  15. Resources: Games and Gaming in Education- Don’t Waste Your Time
  16. Which name is better – Serious Games or Educational Simulations or…?- The Learning Circuits Blog, October 13, 2007
  17. Interactive learning with game-based design principles
  18. More Educational Games- Kapp Notes, August 7, 2008
  19. Examples from TWITCHSPEED.COM Digital Game-Based Learning, June 17, 2009
  20. The Art of Making Video Games- Kapp Notes, June 10, 2008
  21. Linking Commercial Games with Defense
  22. Colleges Play Games- Kapp Notes, May 27, 2008
  23. Casual Games get Serious, June 17, 2009
  24. Aspects of Game- Based Learning
  25. Walk a Mile in My Shoes: Games Let You Do That- Kapp Notes, July 30, 2007
  26. Educause
  27. Digital Game Based Learning
  28. Good Video Games and Good Learning
  29. Digital Games: A Motivational Perspective
  30. The use of computer and video games for learning
  31. For a Better World: Digital Game and the Social Change Sector
  32. Games for Change – Toolkit
  33. Lego Games
  34. Additional Resources for Digital Game-Based Learning
  35. Why Are Video Games Good For Learning?
  36. Teaching Educational Games Resources
  37. using the technology of today, in the classroom today
  38. Simulation Games – A Learning Tool
  39. Video games and the future of learning
  40. moving learning games forward
  41. 36 Learning Games to Change the World
  42. Game Development Research
  43. BBC School Games
  44. Yes You CAN Create E-learning Games- Bozarthzone , June 22, 2007
  45. Apple Learning Games
  46. And You Thought Mechanical Engineering was Boring- Kapp Notes, August 14, 2008
  47. Adopting Digital Game-based Learning: Why and How- Upside Learning Blog, March 26, 2009
  48. ZaidLearn: 75 Free EduGames to Spice Up Your Course!, December 11, 2008
  49. A Theory of Fun- Clive on Learning, August 16, 2007
  50. Games e-Learners Play, April 29, 2009
  51. The treatment matrix- Clive on Learning, August 5, 2008
  52. PDF: Serious games: online games for learning (PDF), June 17, 2009
  53. Where games, sims and 3D worlds meet- Clive on Learning, June 24, 2007
  54. The Top 5 Platforms for Creating Educational Video Games « Educational Games Research, June 17, 2009
  55. Caspian’s ILS taxonomy- Clive on Learning, November 17, 2008
  56. 24 Questions about computer games and education- The Learning Circuits Blog, August 8, 2005
  57. Casual and Serious Digital Games for Learning – Some Considerations- Upside Learning Blog, April 17, 2009
  58. Clark Aldrich’s Style Guide for Serious Games and Simulations: costs for simulation, December 11, 2008
  59. Gadgets, Games and Gizmos: Learning Algebra in a Game- Kapp Notes, November 19, 2006
  60. Latest Issue of The Escapist Focuses on War Games and Gaming, September 23, 2008
  61. Games and the Gamer Generation: Keynote- Kapp Notes, August 10, 2007
  62. Games and Learner Assessment- Kapp Notes, May 30, 2008
  63. World Bank: Serious Games and Urban Planning, October 30, 2006
  64. Top 10 Educational Games of the 1980s- Kapp Notes, September 20, 2008
  65. Game Studies 0102: Cultural framing of computer/video games. By Kurt Squire, June 17, 2009
  66. It’s Monday, Are You Stressed? Relax with a Unique Video Game- Kapp Notes, October 29, 2007
  67. Confessions of an Aca/Fan: The Official Weblog of Henry Jenkins: From Serious Games to Serious Gaming (Part Four): Labyrinth, November 14, 2007
  68. Save Planet Helios from ecological devastation!-3D Game by IBM- Kapp Notes, August 29, 2008
  69. Serious Games: Slideshow of examples from an event at Harvard Business School, December 13, 2007
  70. Email Games, June 17, 2009
  71. Trends with Games, December 23, 2008
  72. Learning Circuits – ASTD’s Online Magazine Covering E-Learning
  73. Learning in Video Games
  74. Hong Kong Digital Game Based Learning Association
  75. Gadgets, Games and Gizmos: MMORPG in ICT Education- Kapp Notes, January 16, 2007
  76. GDC’s Serious Games Summit- Upside Learning Blog, April 3, 2009
  77. Rapid authoring for immersive games and sims- Clive on Learning, January 26, 2009
  78. Gadgets, Games and Gizmos: ESL in SL- Kapp Notes, February 13, 2007
  79. What is a Game? The Art of Computer Game Design, June 17, 2009
  80. TCC09: Digital Learning Environments: Context Sensitive and Imaginative Classes in Second Life, April 14, 2009
  81. Why Most Off the Shelf Commerical Games Will Not Work in Education? And What Is The Alternative?, June 17, 2009
  82. Textra Games, June 17, 2009
  83. Shootorials: Kongregate Teaches You How To Make Your Own Games, October 22, 2008
  84. Predictions for 2009, December 30, 2008
  85. Simulations – Are They Games (PDF), June 17, 2009
  86. Serious Games Enhancing The Rehabilitation Environment, June 17, 2009
  87. Training Games, June 12, 2007
  88. Eight Myths About Video Games Debunked, June 17, 2009
  89. Computer Games and the Military: Two Views, June 17, 2009
  90. Serious Games, June 17, 2009
  91. Social Sites, Design, Informal Learning, & Brain Games, May 4, 2009
  92. Groupboard, May 7, 2008
  93. Why Do People Play Games? – The Art of Computer Game Design, June 17, 2009
  94. Video games are good for you!, February 13, 2009
  95. Army is to Spend $50 Million in Edutainment for Troops, November 25, 2008
  96. Playing with Our Heads – Why Video Games are Making our Kids Smarter-and more obedient, June 17, 2009
  97. Federal Consortium on Virtual Worlds, November 19, 2007
  98. Examples of Games Based Learning, June 17, 2009
  99. Interesting Web Sites for Game-Based Training, e-Learning and Education:, June 17, 2009
  100. Fourteen Forms of Fun, June 17, 2009

C++ Practice problems


  1. (very easy) Calculate the fibonacci sequence. (1,1,2,3,5,8,13,21,...)
    The first two numbers are 1, and after that, each number is the sum of the last two numbers.
  2. (easy) Compute prime numbers. See if you can find the first 100 prime numbers.

  3. (quickie) Base conversion: Write a program to convert numbers to/from binary.
  4. (easy/moderate) Write a program that reads 10 numbers, and can determine if they are a permutation of the numbers 1-10. A permutation means that each number from 1 to 10 comes exactly once in the sequence. (It also means that if you sort them, you will have 1,2,3,4,5,6,7,8,9,10.)
  5. (moderate) Write a program that lets 2 people play a game of Tic-Tac-Toe...
    Your program will display the board, and reads moves from the players.
    It should know when they make an illegal move. As a bonus, your program should be able to know when somebody wins.
  6. (somewhat difficult) Calculate all prime numbers between 1 and 10000 using your algorithm from #6. Use these to find all 7-digit prime numbers. (Don't output them, just count them.)
  7. (Really good) Try to figure out and implement your own sorting routine. That is, write a program that reads 10 integers, and outputs them, sorted from smallest to largest. After that, try to make it work for N integers, where you get N from the user, too.
  8. (Really good) Write a binary search. This is where you find a number based on queries in which you guess a number and are told if the real value is less than that or greater than that. A nice way to write it would be this:

    You ask the user to pick a number between 1 and 100. Your program tries to figure this number out, by giving you its "guess"es. When it gives you a guess, you tell it the guess is smaller, than the number, or larger, or if it's correct. (This can be done by giving the program a 0, 1, or 2.)
    Your program would always keep a range of numbers it knows your number to be in.
    It gives you the number in the middle.. Then it either wins, or it can divide it's range in half. (So for example, it starts by asking 50, you say it's lower than 50, then it asks 25, you say it's higher than 25, then it asks 37, and so on.)
    This is a very good exercise, and I really recommend that you try it.
  9. (difficult and a bit tiresome) Implement large-number functions. For example, write a program that can multiply 100-digit numbers together.
  10. (Very very difficult!) Write a program that prints itself. (Just kidding! Don't try to do this! (But note that it is possible.. It's called a quine))

C++ Tutorials & References

References::
Tutorials
General
Game programming and C++
Mathematics
Miscellaneous
Intermediate to Advanced::

wxWidgets
Win32 API
OpenGL
DirectX
XBOX Programming

Best C++ books handpicked


Below are the Best C++ books which i have handpicked for beginner, intermediate, or advanced.

These books cover a range of topics, but I doubt you would find very many C++ coders that didn't have these books in there collection. However for a more complete list I would suggest you visit the ACCU.

General C++
  • Accelerated C++ (Most recommended beginner book) by Koenig [Beginner]
  • Modern C++ Design (great book for generic programming and design patterns. Part of the Stroustrup series) by Alexandrescu [Intermediate]
  • Effective (and more effective) C++ by Scott Meyers (these are proably the most referred to books on C++ ever. Just about any mailing list or forum, will have a ton of "Look at items XX in Meyers book, it explains the issue" [Intermediate to Advanced]
  • The C++ Standard Library by Josuttis [Intermediate]
  • C++ Templates by Josuttis [Advanced]
  • The C++ Programming Language (Get the "Special Edition" because it come with a cool bookmark ribbon) [Star Trek Advanced]
  • Sams Data Structures and Algorithms (out of print so you will have to look, but its an excellent book) [Intermediate]
  • Code Complete by Steve McConnell is good, it talks about software developement in general, time management, project design and development, as well as many of the industry trends, and gotchas you might run into. Good for people wanting help on big projects. [Beginner to Intermediate]
  • Head First Design Patterns is a good intro book to design patterns (the important ones). Its Java based, but is presented in a way where its applicable to any OOP language. Very good for people who don't want a reference book. [Intermediate to Advanced]
  • Design Patterns by Erich Gamma is a good book with most of the patterns you would expect, and is mostly a reference. It comes with 2 built in bookmarks (cloth ties) and is hardcover. Its really great, written for C++. [Intermediate to Advanced]

Data structures and algorithms
  • Algorithmics: Theory and Practice, Gilles Brassard, Paul Bratley. A nice book to start with, though it does cover some pretty advanced topics. (I couldn't find the original 1988 book that I read.. I believe the book in the link is the newer version of the book.)
  • Introduction to Algorithms: A Creative Approach, Udi Manber. Another excellent algorithm primer. Very well written, with some good exercises.
  • Introduction to Algorithms, Second Edition, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. A nice and in-depth book.. Very complete with over 1000 pages (though the basic stuff is only about maybe half of that or so). Used as a standard course textbook in universities all over the world.
  • Design and Analysis of Algorithms, Jeffrey D. Smith. Nothing terribly special about this book, but I read it and it was an OK book.
  • The Art of Computer Programming, Donald E. Knuth. This is THE BIBLE of data structures and algorithms. So far 3 volumes have been written. Knuth has said that he intends to write 7 volumes, but it doesn't look like the other 4 will be coming out anytime soon. (The first three were first published almost 30 years ago.) This is a very complete book, but difficult to plow through. Most people just use it as a reference.

Windows API
  • Programming Windows by Charles Petzold (This is "THE" book on Win32 API) [Beginner to Intermediate]
  • Programming Windows with MFC by Jeff Prosise (the MFC version of Petzolds book) [Beginner to Intermediate]

Game Programming and Design
  • Data Structures for Game Programmers by Penton (The only book worth buying in Andre LaMothe's Game Dev series) [Intermediate]
  • Programming Linux Games from No Startch Press (I believe you can download this one for free now, with the exception of the OpenAL code not working, because OpenAL is a mysterious force that changes from day to day and is impossible to program) [Beginner]
  • 3D Game Engine Design by David Eberly, and it's pretty decent. It doesn't go into "design" as much as a true engineer would in terms of key concepts, design choices and tradeoffs, but he does go into maths and concept pretty well, though concrete examples are a bit lacking now and then. The chapters on scene graphs are a bit glossy. [Intermediate to Advanced]
  • Programming Vertex and Pixel shaders by Woflgang Engel is pretty good though, if you're into that sort of thing. some great stuff at the end [Beginner to Intermediate]
  • Game Coding Complete is a pretty good book, it is a lot more in depth into the business side of games than any other book I've read. The books webpage is very good too, the author regularly answers questions you have, he is very helpful. [Intermidate to Advanced]
  • 3D Game Engine Programming, though I haven't read through the whole thing yet, is shaping up to be good, they take you through shaders and all that jazz, really good if you're looking to write a 3D engine. [Intermediate to Advanced]

Simple Direct Media Layer (SDL)
  • Focus on SDL (good API reference book for SDL) [Beginner]

DirectX
  • DirectX 9 Graphics by Alan Thorn is a good intro level to DirectX, how to isntantiate your device and do a few basic things with direct3d. Good examples, a little math in the front (so you know what is going on with matrices), and then some useful classes. Assumes you are fairly comfortable with Win32 (instantiating a window and such). Goes over the basics of rendering in D3D pretty well. [Beginner]

wxWidgets
  • Cross-Platform GUI Programming with wxWidgets (the only book to chose from.. but it's not too bad) [Beginner]

Qt
  • C++ GUI Programming with Qt 3 (I'm sure a 2nd edition has been or will be released to cover Qt 4) [Beginner]

100+ Resources for Video Game Professionals

This list contains resources for people in - or interested in - the video game industry. Here you'll find general and specific news resources, career resources, and more. Feel free to make suggestions for any additions.

NEWS RESOURCES:

Aggregators:
Aggregators gather news from a variety of sources. They're invaluable for getting good information.
  • Gametab - News aggregator combining many sources and filtering options.
  • Virgin Worlds - News aggregation, blogs, and more on MMOs.

General News:
These sites are general news sites that are useful for keeping up on game news and related information. Some also include a career focus.

Specialized News And Subjects:


CAREERS:

These sites provide general and specific career information.
  • GamaSutra - Game industry news, features, articles, and resources. Must-visit for came careerists
  • Game Career Guide - Career resources for people interested in or in the game industry.
  • Game Dev Map - A worldwide map to help you pinpoint game-industry-intensive locations.
  • Games Industry Biz - News, features, jobs and more for game professionals.
  • Video Game Tester Hub - One of the rare sites for video game testers out there.
CAREER-SPECIFIC:
Sites and blogs that focus on career-specific areas of gaming.

Animation:

  • Animation Arena - An animation-oriented website that covers all kinds of animation, but includes a subsection on games.
Art:
  • Game Artist - Forums for discussion among those working in game art.
  • Game Content Core - A community for game artists.
  • Lost Garden - A blog on art, game design, and the art of game design itself, with some very in-depth analyses.
  • The Jon Jones - Not the Martian Manhunter, but an artist who discusses game art, and art in general.
Design:
  • A Game Design Blog - Games and development, ranging from tutorials to analysis from Robert Hale.
  • Applied Game Design - Brenda Brathwaite and guests discuss game design.
  • Brian Shurtleff - Brian Shurtleff blogs on game design and more, covering theory, review, opinion, and history.
  • Designer Notes - A blog on game design. Updated intermittently, often in-depth.
  • Eldergame - MMO games,theory, and analysis
  • Game Design Aspect - Serious thought on game design and what it means.
  • Game Dev Blog - Discussions of design and related things from Jamie Fristrom.
  • Indigo Static - Game design, game flow, player buy-in, and more analyzed.
  • Mike Darga - Analysis of game designs, techniques, markets, and more from an experienced professional
  • My Game Studies - Aki Järvinen analyzes games and design in-depth.
  • PsychoChild - Games, careers, interesting news, and breaking-in advice.
  • Raph Koster - Design, theory, and more.
  • Screen Play - Discussion of design and design process, including the development of internal processes.
  • Sirlin.Net - A blog on game design and more, including more than video games. Broad coverage. Has forum community.
  • T-Machine - A blog of game design, technology, theory, and predictions, with business-savvy analysis.
  • Teaching Game Design - A blog on game design, technique, and process. Contains some in-depth analyses and advice.
  • Zen of Design - Damion Schublert's blog on game design and his advice.

Development:

  • Devmaster - A site dedicated to serious game development and developer careers. A heavy focus on technology.
  • Emanuele Feronato's Blog - A serious blog on professional gaming issues.
  • GameDev - A community and resource for game developers, providing a wide variety of supporting tools and information.
  • Game Dev Blog - Jamie Fristrom discusses wide-ranging topics on games and game development.
  • Magical Wasteland - Writer and Indie Game Dev Matthew Burns' blog on games and their developments.
  • Notes On Game Dev - Game development blog supported by a variety of guest authors, focusing onmultiple subjects.
  • Worch.Com - Matthias Worch discusses game design as well as his own life.

Graphics:

  • C0de517e - Serious graphic discussion from a render engineer.
  • Diary of a Graphics Programmer - A graphics programmer talks about his job, experience, projects, and ideas. This includes extremely technical discussions
  • Graphic Rants - Discussions of graphics in games and more, from Lead Graphics programmer Brian Karis.
  • Real Time Rendering - Based around a book, the blog contains a variety of related information, from reccomended links to talk on conferences.
  • Sander Van Rossen - Discussion of graphics and art in a friendly, open manner.

Production and Management:
If you do production or management in gaming, you'll also want to check out other resources outside of the industry such as those on agile development, project management, and more.

  • Agile Game Development - The blog of Clinton Keith, who specializes in teaching and writing about Agile Management in game development. Steve took one of his classes and was very impressed.
  • GameProducer.Net - Analyses, predictions, and thoughts on game production, along with other related advice.
  • Jason Yip - A blog on game development and production
Technology - Artificial Intelligence:
  • AI Game Dev - A site and community for people developing game AI
  • Game/AI - AI development, as well as posts on other relevant issues.
Technology - Flash
  • 8 Bit Rocket - A site focusing mostly on flash and silverlight, with a tendancy to retrogaming. Also has tutorials
  • Freelance Flash Games - A site for Flash game design and programming with a great deal of well-organized information
  • Ian Lobb - A blog on flash programming, mixed with reviews, thoughts, and reminces on gaming.
  • Michael James Williams - A website on Flash game design, including tutorials and more.
Indie Games and Game Development:


GAMES, DISCUSSION, THEORY, AND ANALYSIS:

General Game Discussion:
General websites, mostly blogs, that discuss gaming, game information, theory, and more. These vary widely in subject matter.
  • Brainy Gamer - Games, theory, analysis, reviews, and much more. Provides interesting insight on games and gameplay.
  • Brett's Footnotes - General thoughts on gaming and media.
  • Cathode Tan - Broad and deep analysis of many aspects of gaming, game design, and the game industry.
  • Digital Life - A blog on games, trends, and more, from australia.
  • Fidgit - SyFy's game-oriented blog/site. Includes some news, analysis, and more.
  • Planet Romero - John Romero discusses various aspects of gaming, from classic games to current games, theory to amusing trivia, in-depth technology to art.
  • Reality Panic - Games, economics, and the blogger's love of travel.
  • Tobolds - Reviews, commentary, theory on MMOs.
  • Trent Polack's Blog - A blog on game design, analysis, and more
  • Warren Spector's Blog - The blog of the famous game pro.
Academics:
Academic discussion, study, and analysis of games. Business and Economics:
History:
MMOS:
  • Nerfbat - MMO theory, analysis, and more
  • MMORPG.COM - MMO information, news, thoughts, reviews, and community. A great place for your MMO needs.
  • Terra Nova - A blog about MMOs, design, and their future.
Law and Politics:
  • Gamepolitics - News on games in the news, politics, and law.
Theory:
  • Above 49 - A game developer living in Canada (thus the blog title) analyzes games, the industry, and game theory.
  • Grand Text Auto - Game theory, especially focused on stories.
  • Ludologist - Jesper Jul's serious and in-depth blog on game theores.
  • Only A Game - Chris Bateman's blog on game design and theory, often going extremely deep into issues like aesthetics.
  • Project Perko - Blog on game and game theory with an extensive archive
  • Words On Play - Game theory, espeically stories.


PLATFORM-SPECIFIC SITES:

  • Nintendo World Report - A site focused exlucively on nintendo game products.
  • PlayStation Universe - A site focused exclusively on the world of Playstation products.
  • Rock, Paper, Shotgun - A general site focused on PC games, covering a variety of topics. A part-time project of several game journalists.
  • XBOX365 - A site focused exclusively on the xbox.


MULTIMEDIA GAMING AND COMMUNITY SITES:

These sites focus on games and beyond - such as movies, comics, and communities. Some are independent, some are commercial ventures, and many contain various media (such as previews)

Wednesday, February 10, 2010

Excellent C++ Video Tutorials

C++ Tutorial - Absolute n00b Spoonfeed


http://www.youtube.com/view_play_list?p=1D10C030FDCE7CE0

Monday, February 8, 2010

Suggestions for striving programmer


1) Do education and time needed for the degree and apply for a job.
2) Attempt to apply anyway regardless of the requirements and hope you can get to an interview either through luck and/or based off your portfolio.
3) If you have any contacts in the industry, use them to help get your application in.
4) Apply for a related job outside the industry and if you get it, get a couple of years experience and try breaking into the industry again.
5) Start low (QA/Level scripter) and hope you get a chance to be promoted to a programmer position soon.

Free eBook on Multicore Programming

How to Survive the Multicore Software Revolution

The IGDA were kind enough to throw a free eBook our way in the most recent newsletter. It's pretty straightforward stuff, but it's worth reading if you don't know anything about multithreaded programming
an update:

http://www.cilk.com/resources-for-mu...velopers-only/

documentation, code samples, training materials for developers

Cilk++ ships in several months, but the above is a preview of what's coming.

C++ Beginner's Guide FREE pdf downloads


C++ Beginner's Guide

Essential skills made easy! Written by Herb Schildt, this step-by-step book is ideal for first-time programmers or those new to C++. The modular approach of this series, including sample projects and progress checks, makes it easy to learn to use C++ at your own pace.


Contents

  • Chapter 1: C++ Fundamentals
    This module will introduce you to C++, its history, its design philosophy, and several of its most important features. This module provides a brief overview of several C++ features, including the general form of a C++ program, some basic control statements, and operators. It does not go into too many details, but rather concentrates on the general concepts common to any C++ program.
  • Chapter 2: Introducing Data Types and Operators
    At the core of a programming language are its data types and operators. As you might expect, C++ supports a rich assortment of both data types and operators, making it suitable for a wide range of programming. This module will cover an examination of C++’s foundational data types and its most commonly used operators. We will also take a closer look at variables and examine the expression.
  • Chapter 3: Program Control Statements
    This module discusses the statements that control a program’s flow of execution. There are three categories of program control statements: selection statements, which include the if and the switch; iteration statements, which include thefor, while, and do-while loops; and jump statements, which include break, continue,return, and goto.
  • Chapter 4: Arrays, Strings, and Pointers
    This module discusses arrays, strings, and pointers. An array is a collection of variables of the same type that are referred to by a common name. Arrays offer a convenient means of creating lists of related variables. The C++ language does not define a built-in string data type. Instead, strings are implemented as arrays of characters. A pointer is an object that contains a memory address. Typically, a pointer is used to access the value of another object.
  • Chapter 5: Introducing Functions
    This module begins an in-depth discussion of the function. Functions are the building blocks of C++, and a firm understanding of them is fundamental to becoming a successful C++ programmer. Here, you will learn how to create a function. You will also learn about passing arguments, returning values, local and global variables, function prototypes, and recursion.
  • Chapter 6: A Closer Look at Functions
    This module continues our examination of the function. It discusses three of C++’s most important function-related topics: references, function overloading, and default arguments.
  • Chapter 7: More Data Types and Operators
    This module returns to the topics of data types and operators. In addition to the data types that you have been using so far, C++ supports several others. Some of these consist of modifiers added to the types you already know about. Other data types include enumerations and typedefs. C++ also provides several additional operators that greatly expand the range of programming tasks to which C++ can be applied.
  • Chapter 8: Classes and Objects
    The class is C++’s basic unit of encapsulation. Classes are used to create objects. To write object-oriented programs, you will need to use classes. Classes and objects are so fundamental to C++ that much of the remainder of this book is devoted to them in one way or another.
  • Chapter 9: A Closer Look at Classes
    This module continues the discussion of the class begun in Module 8. It examines a number of class-related topics, including overloading constructors, passing objects to functions, and returning objects. It also describes a special type of constructor, called the copy constructor, which is used when a copy of an object is needed. Next, friend functions are described, followed by structures and unions, and the this keyword. The module concludes with a discussion of operator overloading, one of C++’s most exciting features.
  • Chapter 10: Inheritance, Virtual Functions, and Polymorphism
    This module discusses three features of C++ that directly relate to object-oriented programming: inheritance, virtual functions, and polymorphism. Inheritance is the feature that allows one class to inherit the characteristics of another. Built on the foundation of inheritance is the virtual function. The virtual function supports polymorphism, the “one interface, multiple methods” philosophy of object-oriented programming.
  • Chapter 11: The C++ I/O System
    The C++ I/O system is quite large, and it won’t be possible to discuss here every class, function, or feature, but this module will introduce you to the most important and commonly used parts. Specifically, it shows how to input or output objects of classes that you design. It describes how to format output and how to use I/O manipulators. The module ends by discussing file I/O.
  • Chapter 12: Exceptions, Templates, and Other Advanced Topics
    In the final module, you will examine several important, advanced C++ topics, including exception handling, templates, dynamic allocation, and namespaces. Runtime type ID and the casting operators are also covered. When you finish this module, you will have mastered the core elements of the language and will be able to begin writing real-world programs.
  • Answers to Mastery Checks
  • Appendix A: The Preprocessor
    The preprocessor is that part of the compiler that performs various text manipulations on your program prior to the actual translation of your source code into object code. You can give text manipulation commands to the preprocessor. These commands are called preprocessor directives, and although not technically part of the C++ language, they expand the scope of its programming environment.

Game artificial intelligence Programming


Start Artificial Intelligence Programming

Game artificial intelligence refers to techniques used in computer and video games to produce the illusion of intelligence in the behavior of non-player characters (NPCs). The techniques used typically draw upon existing methods from the field of artificial intelligence (AI). However, the term game AI is often used to refer to a broad set of algorithms that also include techniques from control theory, robotics, computer graphics and computer science in general.

Since game AI is centered on appearance of intelligence and good gameplay, its approach is very different from that of traditional AI; hacks and cheats are acceptable and, in many cases, the computer abilities must be toned down to give human players a sense of fairness. This, for example, is true in first-person shooter games, where NPC's otherwise perfect movement and aiming would be beyond human skill.

1. Beginning C ++ .

2. Game Coding Complete (on its 3rd edition now) and C++ for Games Programmers (I think it is on its 2nd edition). Although not strictly game related, I would also recommend reading Effective C++ and Coding Complete

3. http://aigamedev.com/ will be a good starting point.

Theory & Practice


Theory & Practice - Your Skills & Using Them To Get Into The Industry
Adam Langridge, Senior R&D Engineer, Lionhead Studios

Introduction

Your skills can be broken down into various categories. The main categories include:
  • Theory - Core Hard Skills & Other Hard Skills
  • Practice - Soft Skills
  • Selling Yourself - CVs, Portfolios & Interviews

Theory

Core Hard Skills

Core skills are those that suit the following criteria:
  • Timeless
  • Broad
  • Industry Standard

Timeless skills are not likely to change dramatically within the next century and form the foundations of other skills. This can include topics such as mathematics and logic. Skills that cover a Broad range of topics or can be applied to a range of work responsibilities. Industry Standards are considered core skills since they are what the majority of companies are using. In order to have the opportunity to apply to a wide spectrum of companies you will need to pay attention to industry standards.

This can therefore include:
  • Mathematics
  • Logic
  • C++
  • Object-Orientated Programming
  • Data Structures

In order to reflect specialist interests, semi-core skills exist. These depend entirely on your chosen discipline. These can include:
  • Physics (Physics Programmer)
  • C#/Java (Prototyping, Tools Programmer)
  • HLSL/GLSL/Cg (Graphics Programmer, Technical Artist)
  • Assembly (Hardware-Based Optimisation)
  • Servers, Networking & Protocols (Network Programmer)
  • Artificial Intelligence (AI Programmer)
  • Graphics (Graphics Programmer)
  • Human-Computer Interaction (User Interface Programmer)

Note on Mathematics: Generally, programmers at Lionhead are expected to have a level of mathematical knowledge equivilent to A Level Mathematics with Discrete Maths and Mechanics.

Non Core Hard Skills

Non Core Skills include those that could be useful but not essential for a job. Sometimes they may be preferred by some companies. Sometimes they may provide an insight into other roles.

This can include:
  • IDEs (Visual Studio/NetBeans/Eclipse)
  • Frameworks (XNA)
  • Console Experience
  • Scripting (Python/Lua)
  • 3D Modelling
  • Audio
  • Design
  • Art

Non-Core skills can help you alot when it comes to making a killer demo on your own, however do not spend too much focus on them as they could distract you from developing your core skills.

Theory

Soft Skills

Just as important as your hard skills, are your soft skills. Today, games are made by large teams. Billions of people. You might be spending a large ammount of time on a project too. Your soft skills reflect how you conduct yourself and help you to work well with others.

Soft Skills include:
  • Enthusiasm/Passion
  • Written & Oral Communication
  • Time Management
  • Inter-Personal
  • Learning
  • Flexibility
  • Respect
  • Honesty
  • Independent Drive
  • Humility
  • Leadership
  • Quality
  • Willingness to Learn

There are many others that could be useful. Communication is particularly important for a programmer as you could potentially be spending a significant portion of time communicating either through meetings, documentation, or direct interaction with colleagues.

Selling Yourself

CV
  • Emphasise your education - Core skills at the top, reinforce skills with certification
  • Concise - Get to the point
  • Use targeted CVs, never use a blanket CV
  • Help - Use agencies cautiously, apply direclty where possible

Portfolio / Demo
  • Get a finished project
  • Equal in importance to degree
  • Less is More
  • Grab Attention, Do Only A Few Levels
  • Choose something exciting or original
  • Ensure it is easy to use or install
  • Group Work is really nice but...ensure that you only highlight the work that you did
  • Focus on Games
  • Get the Guys Excited

Interviews
  • The interview is the last hurdle.
  • Make a good impression
  • Research Companies
  • Relax
  • Programming Test - Depends on Company, C++ & Maths,
  • Be Honest, Be Yourself
  • Don't Give Up
  • Don't Take it Personally
  • Ask For Feedback