580 likes | 955 Views
Software Engineering and Game Design. By: Gavin Kinsley. Topics. The Evolution of Game Development Video Game Development Process Engines Getting Into the Game/Or Not? Importance of Software Engineers. Evolution of Game Development. Most games were developed by single programmers.
E N D
Software Engineering and Game Design By: Gavin Kinsley
Topics • The Evolution of Game Development • Video Game Development Process • Engines • Getting Into the Game/Or Not? • Importance of Software Engineers
Evolution of Game Development • Most games were developed by single programmers. • No documentation or brainstorming • “Dirty Programming” • Very simple designs, mainly due to the fact that there was not a lot to work with (2D graphics for example) • Beginnings
Evolution of Game Development • Example of a side scrolling game for a home console
Evolution of Game Development • Console, Computer, and Arcade become more popular. • Teams grow to having more people involved (groups of between 5 and 10) to create the games • Still not much time used for design • Not much documentation • Developers now begin to see effects of minimal design. • Popularity Grows
Evolution of Game Development • Example of a early single player 3D-game
Evolution of Game Development • Video Game Breakthrough • Design becomes more important piece to game development. • Multiple teams make up video game creation (sound, graphics, programmers, etc.) • Development broken down into smaller pieces but still teams are working on big “chunks” of the project.
Evolution of Game Development • Video Game Breakthrough • Design becomes most important piece to game development. • More teams added to make video games more realistic and get better results and size of team increases • More people added speed to the creation of the games and also more insight. • Breakdown into many pieces.
Video Game Development Process • Pre-Production • Pitch needs to get approval • Design document is needed • Prototypes may be necessary • Artists may make preliminary sketches of different aspects of the game • Design document is most important piece because it is used throughout the next phases of development as a “living document”
Video Game Development Process • Production • Most of work gets done in this portion of the development process • Tons of source code is created and discarded • Sound developers and sound engineers work together to create sound effects and overall game music • Features are added and removed constantly and must all be documented
Video Game Development Process • Production continued • Not uncommon of development of first level of the game to take up to 12 months to create alone • Testers are also introduced to project whenever any piece of the game can be run
Video Game Development Process • Milestones • Use the idea of milestones to give teams deadlines on the different pieces of the project • Before most deadlines teams enter “crunch time” • A lot of extra time is put in by the members of all the teams on the project during this time. • Burnout
Video Game Development Process • Testing • No unit level testing -- heavy reliance on System level test. • Separate team solely for testing the project • Need to not only carry out tests on new features but also regression tests. • Regression testing is one of the most important aspects in game development • Single change can make a game unplayable
Video Game Development Process • Maintenance • Has always been an important aspect of computer based games • Patches are an easy way to fix game bugs after shipment • Used to not be as important to console games but are becoming a more popular way to fix bugs. • Mods
Video Game Development Process • Duration • Most games take between 1 and 3 years to complete. • Dependent on many factors (development platform, amount of assets, genre, COTS, etc) • Assets is not people power but more reuse of code.
Engines • It provides the underlying technologies, simplifies development, and often enables the game to run on multiple platforms such as game consoles and desktop operating systems. • Core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection, sound, scripting, animation, artificial intelligence, networking, and a scene graph.
Engines • Brief History • Started in 1990 with first person shooter games. • The Doom and Quake engine were first very popular engines. • Most companies used these popular images and then created their own characters, levels, etc. to cut down on project time. • Price can range from $10,000 – $3,750,000
Engines • Some companies now just create “middleware” exclusively • Their goal is to basically “Pre-Invent” • They are creating software that could possibly be useful in creating games • This is risky but could show to be rewarding as well.
Engines • Unreal Engine • Designed by Epic Games in 1998 • Has been used successfully in 1st person as well as 3rd person shooter games • Used for computer as well as console games • The core of the code is written in C++ • Game play code is written in UnrealScript
Engines • Unrealscript • Similar to java • Object-Oriented • Automatic Garbage Collection • Strong Type-Checking at Compile Time • Wanted code to be simple and readable
Engines class TriggerLight expands Light; //--------------------------------------------------------------// Variables. var() float ChangeTime; // Time light takes to change //from on to off. var() bool bInitiallyOn; // Whether it's initially on. var() bool bDelayFullOn; // Delay then go full-on. var ELightType InitialType; // Initial type of light. var float InitialBrightness; // Initial brightness. var float Alpha, Direction;
Engines //-------------------------------------------------------------------------- // Engine functions. // Called at start of gameplay. function BeginPlay() { // Remember initial light type and set new one. Disable( 'Tick' ); InitialType = LightType; InitialBrightness = LightBrightness; if( bInitiallyOn ) { Alpha = 1.0; Direction = 1.0; } else { LightType = LT_None; Alpha = 0.0; Direction = -1.0; } }
Getting Into the Game • Why get into game development? • Statistics • According to ESA (Entertainment Software Association) 60% of all Americans 6 and older play video games. • Of this 60%, 35% say video games is the most fun activity with 18% saying television is the most fun activity, and 11% saying watching movies is the most fun activity.
Getting Into the Game • The average American video game player is 33 years old • U.S. computer and video game software sales grew four percent in 2005 to $7 billion -- more than doubling of industry software sales since 1996 • The average age of the game buyer is 40 years old.
Getting Into the Game • PC game sales took in $970 million in 2006 with console games taking in $13.5 billion, these figures are solely for the US • $481 million was sold in Canada and $2.7 billion sold in the UK. Everything is on the rise. • World of Warcraft alone has 8 million subscribers paying $15 per month, that is an estimated $120,000,000 in revenue a month
Getting Into the Game • Genres • Action • Based on user being able to perform actions reflexively in a real-time setting. • Action-Adventure • First-Person Shooter
Getting Into the Game • Fighting • Usually involve a user controlled character against another character (either user or AI controlled). Use various forms of martial arts. • Versus • Beat’ Em Up
Getting Into the Game • Role Playing • Becoming very popular with MMOG. • Allows player to select own destiny with an extensive storyline. • Strategy Game • Massive Multiplayer
Getting Into the Game • Platform Games • This is the earliest genre of game. • Gradually declining with the introduction of 3-D graphics.
Getting Into the Game • Simulations • Very broad genre with simulations in many different areas. • Pure Simulation • God Games • City-Building Games
Getting Into the Game • Sports • Been around for a long time but still growing • Madden NFL series is best-selling sports series of all time.
Getting Into the Game • Educational • New genre but already experiencing great results. • Idea is to teach kids while still allowing them to have fun.
Getting Into the Game • Possible New Genre? • University of Toronto student creates a therapeutic game • Hemiplegic Cerebral Palsy, paralyzes a side of the body • Exercises the weak limbs of the patients body
Getting Into the Game • Other Things to Consider • Popularity and Technology constantly growing • Learn new things as you work • Chance to work in a lot of different locations, even different countries • Comfortable atmospheres • Easy to move up ladder • FUN
Or Not? • Game Development Not so Good • Long hours and overtime • Many small gaming companies don’t last long in the industry • Hard to break into gaming industry • Most games created never make it to the market • Just don’t like video games
Importance of Software Engineers • Documentation • Testing • Programming • Knowledge in multiple areas • Introduction of other processes to game development (mainly waterfall)
Bibliography • http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=114 • Salen, K., Zimmerman, E. Rules of Play: Game Design Fundamentals • http://www.unrealtechnology.com/html/technology/ue30.shtml • http://edcorner.stanford.edu/authorMaterialInfo.html?mid=717&author=8 • http://unreal.epicgames.com/UnrealScript.htm • http://www.igda.org/breakingin/ • http://www.theesa.com/facts/ • http://www.gamasutra.com/php-bin/news_index.php?story=12413
Bibliography • http://www.gamasutra.com/php-bin/news_index.php?story=12358 • http://www.robinlionheart.com/gamedev/genres.xhtml • http://www.gamedev.net/columns/gameengineering/gup/