1 / 60

Game Development Projects in Schools: Tools, Techniques, and Tips

Game Development Projects in Schools: Tools, Techniques, and Tips. Dr. Michael Katchabaw Department of Computer Science The University of Western Ontario London, Ontario, Canada E-mail: katchab@csd.uwo.ca. Outline. Introduction Getting Started Development Tools

lukas
Télécharger la présentation

Game Development Projects in Schools: Tools, Techniques, and Tips

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Game Development Projects in Schools: Tools, Techniques, and Tips Dr. Michael Katchabaw Department of Computer Science The University of Western Ontario London, Ontario, Canada E-mail: katchab@csd.uwo.ca

  2. Outline • Introduction • Getting Started • Development Tools • Content, Assets, and Other Resources • Last Minute Advice • Concluding Remarks

  3. Introduction • Interest in game development in education circles has been growing rapidly in recent years. • This interest crosses multiple disciplines, including visual arts, music, writing, and, of course, computing. • Furthermore, this interest spans across the post-secondary, secondary, and even elementary levels of education.

  4. Introduction • Studying game development in schools gives students a chance to: • Study serious and challenging problems. • Investigate issues and problems not availableelsewhere in existing curriculum. • Do so in interesting fashion. • Express their creativity and ingenuity. • Work in interdisciplinary and team settings. • Study something they are passionate about.

  5. Introduction • Game development, however, can be a very complicated task, with many questions needing answers. • What kind of games should students be making? Where should we begin? • What tools are best for students to use? • Where can the students find content and assets to use in their games? • What books, websites, and other resources are out there to help when help is needed?

  6. Getting Started • A game must be planned in the same way as any other software project. • Just because they are for entertainment does not mean that developing games should not be taken seriously! • Typically, this means someone must: • Formulate a concept for the game. • Flush out this concept into requirements. • Architect a design to meet these requirements. • Implement software that embodies this design. • Test and refine this software into a working game.

  7. Getting Started:Who Will Do What • Students could start from scratch and do it all themselves. • This gives them considerable creative influence of the game, allowing them to make whatever game they want. • Doing this, however, can take a lot of time, and might not be appropriate for all courses. • This could also lead to considerable variation across projects, potentially complicating support and evaluation of the projects.

  8. Getting Started:Who Will Do What Screen shot from Operation Moonbase. I wrote this game myself fromscratch in Grade 10, and did everything all on my own. While it was funand interesting, it pretty nearly killed me to get it finished in the end!

  9. Getting Started:Who Will Do What • Alternatively, students could be given the concept, requirements, or design, and tasked to complete the rest. • These materials could come from: • An original concept from the teacher. • Existing games, video or otherwise. • Resources such as books or websites. • Other students, which could be involved in the process from other classes.

  10. Getting Started:Who Will Do What • Involving other classes can take a couple of different forms. • From within the same school: • Using students from visual arts, music, drama, and languages courses to provide concepts, content, and assets. • From other schools: • Collaborating with elementary students to design the game concepts, while the secondary students implement them.

  11. Getting Started: What To Do, How To Do It • Having settled who will do what, it is time to decide a little more about just what will be done and how it will be done. • There are a few things to consider: • Starting from scratch or using an engine? • Programming or scripting? • 2D or 3D?

  12. Getting Started: What To Do, How To Do It • Starting from scratch or using an engine? • Starting from scratch has the advantage of letting the students have the full experience of doing everything themselves. • Unfortunately, this can be incredibly time consuming, forcing the students to do a considerable amount of work that could be quite complex before having a playable game.

  13. Getting Started: What To Do, How To Do It Content Creationand ManagementTools Game Contentand Assets Programmingand Support SDKs Game Code

  14. Getting Started: What To Do, How To Do It Game Logic Tools Content Creationand ManagementTools GameLogic Game Contentand Assets Game Engine Programmingand Support SDKs

  15. Getting Started: What To Do, How To Do It • Programming or scripting? • If starting from scratch, the game will likely need to be programmed using a traditional programming language, but you get to choose which one. • If using an engine, you may be able to program with a traditional language, or you may have to use scripting instead. Depending on the engine, you might be restricted on your choices here though! • While script writing is very much like programming, it is not done using traditional languages, which might not be what is wanted for a programming course.

  16. Getting Started: What To Do, How To Do It void RunLevel(const char* moduleName) { GameWorld* gameWorld = new GameWorld(); gameWorld->setMaxPlayers(gMaxPlayers); gameWorld->setIsMusicEnabled(gMusicEnabled); gameWorld->setWindow(gGLWindow); gameWorld->setKeyStates(gKeyStates); if (strstr(moduleName, "Smashket")) gameWorld->gameMode = 1; if (!gameWorld->loadLevel(moduleName)) return; while (ProcessMessages()) { gameWorld->tick(); } delete gameWorld; } for (i=0; i<instance_count; i+=1) { curObj = instance_id[i] if collision_circle(self.x,self.y,100,(curObj),true,true) > 0 { if(curObj.object_index == filecabinet || filingCabinet_Right) { effect_create_above(ef_smokeup,(curObj).x,(curObj).y,2,c_gray) (curObj).alarm[1]=1 } if(curObj.object_index != filecabinet && curObj.object_index != filingCabinet_Right && curObj.object_index != wall_outside && curObj.object_index != wall_bottom_EW && curObj.object_index != wall_right_NS && curObj.object_index != Hdoor_blue_Right && curObj.object_index != corner_BottomLeft && curObj.object_index != corner_BottomRight && curObj.object_index != corner_TopLeft2 && curObj.object_index != corner_topRight && curObj.object_index != door_horiz_Left && curObj.object_index != exit_sign ) { effect_create_above(ef_smokeup,(curObj).x,(curObj).y,2,c_gray) curObj.sprite_index = explosion_fire } } } Programming (C++, left) and scripting (Game Maker, right). Is there that big a difference conceptually?

  17. Getting Started: What To Do, How To Do It • 2D or 3D? • 2D game development is typically easier, both in terms of programming or scripting, but also in terms of content and asset management. • 3D game development, conversely, tends to be more challenging, but more interesting. • Depending on your language and tool of choice, however, you might be forced into one of these options or the other.

  18. Getting Started: What To Do, How To Do It Screen shots from two games developed at Western, The Misadventuresof State-Man (2D, left) and Smashocosm Tournament (3D, right). Both gamesreceived perfect grades, one for gameplay and the other for technical elements.

  19. Development Tools • There are a variety of good game development tools available for use in student game projects. • Considerations: • Completeness (some provide tools and other supports, while others only libraries and such) • Complexity (some are simple, others more feature rich, and complex) • Cost (some are free, some are not)

  20. Development Tools:Game Maker Screen shot from Game Maker. Available online at http://www.gamemaker.nl.

  21. Development Tools:Game Maker • Well supported, complete, and easy to use game package. • Provides its own game engine and tools. • Can build games with no scripting, or using their scripting language. Can also use code in other languages packed into .dll files. • Can support 2D and 3D games. • Fairly simple, but can make complex games. • Free version available, plus reasonably priced registered version with more features.

  22. Development Tools:Game Maker • Good support for classroom use. • Reference materials, tutorials, course materials, lessons, and so on availablefrom their website. • Books on the tool are available now. • Forums are available, including some specifically for teachers. • Educational pricing and site licensing available.

  23. Development Tools:Klik&Play Screen shots from Klik&Play. Available online at http://www.clickteam.com/English/klilk&play.htm.

  24. Development Tools:Klik&Play • An older game creation tool. • Provides its own engine and tools. • Only very limited scripting. Focus is on simplicity, not programmability. • Only 2D support (and that is fairly primitive by today’s standards). • Very simple … perhaps too simple? • Free … Klik&Play is not actively supported. Users are encouraged to move to their newer product, The Games Factory, which has a few more features, but is not free.

  25. Development Tools:Adventure Game Studio Screen shot from Adventure Game Studio. Available online at http://www.adventuregamestudio.co.uk.

  26. Development Tools:Adventure Game Studio • A tool specifically for making graphical adventure games. • Provides a complete engine for the games. • Uses a C-like scripting language, and can support add-on .dll files in C++ and Delphi. • Primarily 2D, but you can make 3D looking games as well. • Can be simple yet powerful. • Completely free.

  27. Development Tools:Adventure Game Studio • Pretty good classroom support. • Actively maintained tool. • Many tutorials available. • Forums for help. • Completely free for non-commercial use, which is a good deal!

  28. Development Tools:RPG Toolkit Screen shot from RPG Toolkit. Available online at http://www.toolkitzone.com.

  29. Development Tools:RPG Toolkit • A tool specifically for making role playing games. • Provides a complete engine and tools. • Has its own scripting language, functions can be added through traditional programming. • Primarily 2D, with 3D-style effects. • Fairly simple, though scripting can be complex, depending on what you need. • Completely free.

  30. Development Tools:RPG Toolkit • Also has pretty good classroom support. • Actively maintained. • Many tutorials and other documentation available online. • Forums for help. • Piles of resources (graphics, sounds, and sample code for various things).

  31. Development Tools:3D GameStudio Screen shot from 3D GameStudio. Available online at http://www.3dgamestudio.com.

  32. Development Tools:3D GameStudio • Fully featured 3D game package. • Complete with its own engine. • Has its own scripting language, but can also be programmed in other languages like C++ or Delphi. • Primarily 3D but has 2D support as well. • Reasonably complex … can be very complex depending on what you are doing. • Limited demo version available, otherwise it costs money. Educational licensing is available, however.

  33. Development Tools:3D GameStudio • Also has pretty good classroom support. • Actively maintained. • Many tutorials and other documentation available online. • Forums for help. • Resources available (although some cost additional money). • Might be starting to get too complex for classroom use, however.

  34. Development Tools:Blitz Tools Screen shots from BlitzPlus and Blitz3D. Available online at http://www.blitzbasic.com.

  35. Development Tools:Blitz Tools • Several different tools for making games, depending on your needs and budget. • Provide a complete engine. • Script using a Basic-like language. • Can be 2D or 3D depending on the tool. • Can be simple to complex, depending on the game and what you do. • Demos available, but generally have to purchase. Educational discounts available.

  36. Development Tools:Torque Screen shot from Torque. Available online at http://www.garagegames.com.

  37. Development Tools:Torque • A complete game development package. • Provides a complete engine, although you have the option to use only pieces. • Provides its own scripting language, but can also support C++ and other languages. • 3D with support for 2D as well. • Can be fairly complex … the scripting language itself has C++ like syntax. • Commercial, though reasonably priced. Educational discounts available.

  38. Development Tools:Torque • Decent educational support as well. • This is a fairly community-oriented engine, with lots of resources, documentation, forums and so on. • Multiple books available on using Torque. • Torque is already in use in many educational environments, though those are mainly colleges and universities.

  39. Development Tools:Alice Screen shot from Alice. Available online at http://www.alice.org.

  40. Development Tools:Alice • Alice is rich programming environment that can also be used for games. • Provides a complete engine. • Provides its own language (which is part of the point behind the whole thing). • Supports 3D, also some 2D. • Intended to be very simply and easy to use. • Completely free.

  41. Development Tools:Alice • Good support for classroom use. • Tutorials and other reference materialsincluded with the tool. • Books on the tool are available now;many more are on the way. • Alice, unlike many of the other package, was designed not to make games, but to teach people about programming. It is dressed up in such a way that making games in Alice is fairly straightforward, however.

  42. Development Tools:Programming Focused • The software discussed to this point include tools and other supports to provide a complete package. • This can be great for novice developers, but they tend to be spotty on support for traditional programming languages. • Consequently, when the purpose of the game project is to allow students to explore a particular language in the context of a game, these do not always help.

  43. Development Tools:Programming Focused • There are also many game engines and libraries geared towards programming in traditional languages instead. • Unfortunately, these tend to be harder to use and lack tools that provide a complete game development package. • They also tend to focus on certain elements, like graphics, and ignore others, placing the burden on the developer. • Most tend to focus on 3D rather than 2D.

  44. Development Tools:Programming Focused • Below, we list some of the more common packages used for various languages. • Visual Basic: • DXGame Engine (http://www.dxgame.com) • SpriteCraft (http://spritecraft.teggo.com) • 3D State (http://www.3dstate.com) • First two are 2D, last is 3D. • All are completely free, or at least free for non commercial or educational uses.

  45. Development Tools:Programming Focused • Java: • Golden T Game Engine (http://goldenstudios.or.id/products/GTGE) • LWJGL (http://lwjgl.org) • MUPPETS (http://muppets.rit.edu) • First is 2D, last two are 3D. • All are free as well.

  46. Development Tools:Programming Focused • C++: • Popcap (http://developer.popcap.com) • OGRE (http://www.ogre3d.org) • Irrlicht (http://irrlicht.sourceforge.net) • Crystal Space (http://www.crystalspace3d.org) • Panda 3D (http://www.panda3d.org) • 3D State (http://www.3dstate.com) • First is 2D, the rest are 3D. • All are free, or at least free for education.

  47. Development Tools:Programming Focused • There are also tools available for C#, Delphi, Python and other languages. • For good resources and lists on game engines and tools, look at: • http://gpwiki.org/index.php/Game_Engines • http://www.devmaster.net/engines • The first link covers 2D and 3D engines, while the second is 3D only, but provides much better filtering and searching.

  48. Development Tools:Programming Focused • For programming tools (compilers, and such), resources include: • Microsoft Visual Studio Express editions for C++, C#, Visual Basic, and so on(http://msdn.microsoft.com/vstudio/express) • Java (http://java.sun.com) • Further support tools can include NetBeans, Eclipse, BlueJ, and other packages. • Might also want to consider J2ME and related tools for Java development for mobile deviceslike cellular phones.

  49. Development Tools:Programming Focused Screen shots from Ex-Executive Escapades (left) and The Mill (right),two games developed in J2ME at Western for cellular phones.

  50. Content, Assets, and Other Resources • While software is important, games also require content and assets to be complete. • Graphics and artwork. • Sound effects and music. • Story, written elements, and voice-overs. • A game will seem empty without them!

More Related