260 likes | 405 Views
Challenges in Collaborative Game Design Developing Learning Environments for Creating Games. Advisor : Dr. Hsu Presenter : Chih-Ling Wang Author : Maic Masuch1 and Michael Rueger. IEEE 2005. Outline. Motivation Objection Introduction Teaching Game Design Creating Games
E N D
Challenges in Collaborative Game Design Developing Learning Environments for Creating Games Advisor : Dr. Hsu Presenter : Chih-Ling Wang Author : Maic Masuch1 and Michael Rueger IEEE 2005
Outline • Motivation • Objection • Introduction • Teaching Game Design • Creating Games • Conclusion • My opinion
Motivation • When teaching game design at university level, lecturers need an adequate educational environment, a reliable platform or system for implementing games.
Objection • This paper performs a general analysis of the game design process, the structure of digital games and investigate the requirements for the use of OpenCroquet as a platform for collaborative game design.
Introduction • The challenge arises in balancing two aspects of teaching game design: • On the one hand students should understand the structure of games. Thus, the game development environment should not show a black-box-behavior by hiding all internal programming aspects from the students. • On the other hand games are highly complex multimedia software projects. Thus, the system should not expose every detail to students. • Collaboration is a fundamental property of a system.
Teaching Game Design • In the context of this paper we understand Game Design as the creative process of developing a game concept, its core elements and its structure and implementation. • A typical game design process consists of the following steps: • Developing the core idea • Writing a game concept • Producing the artwork • Programming the game engine • Game content production • Playtesting • Balancing and bug fixing
Teaching Game Design (cont.) • Every step in this pipeline requires substantial collaboration of developers on specific tasks. • A fundamental part in the development process of computer games is the integrated teamwork of developers and artists on game assets and software.
Teaching Game Design-Goals of Teaching Game Design • The goal of teaching game design is to impart a deeper understanding of what games are, how they are structured, what their elements are and how they are developed. • Another goal of teaching is to train teamwork ─ often interdisciplinary teamwork.
Teaching Game Design-Educational vs. Professional Game Development Environments • Game design courses in an educational environment have to face some severe restrictions in the development process compared to professional game development. • Obviously, students have to get along with far fewer resources. • This implies manpower, development time, and budget. • Additionally, they are less experienced and some of them never worked in a team before, which introduces some extra demands on the collaboration aspect of the software.
Teaching Game Design-Collaborative Game Design • Nowadays computer games are multi-million Dollar projects implemented by teams of some dozen specialists in about two years. • Students, even in small teams, cannot compete with this kind of professional game development. • Therefore it is absolutely necessary to reduce the size and complexity of the game projects. • This can be done by using the right tools, i.e. by providing a game development environment in order to help the students to focus on game creation and not implementation of a complete game engine from scratch.
Teaching Game Design-Collaborative Game Design (cont.) • Collaboration is needed for • Developing the game idea • Communicating (in every step of the game design process) • Sharing and managing assets • Sharing and managing code • Playtesting • Documentation • Although collaboration is an essential part of each game project even professional game development tools fail to support teamwork to its full potential.
Teaching Game Design-Environments for Creating Games • We distinguish between game development environments, modifications of existing games (called MODs), and 3D Engines. • The latter have proven to be rather inadequate because it is necessary to implement a whole gaming infrastructure on top. • There are a number of game development environments like Virtools, game studio, adventure maker, Alice 3D and many more ─ and there are numerous 3D engines. • These however can be neglected, as they do not incorporate any game mechanisms.
Teaching Game Design-Experiences with available Game Creation Tools • Alice 3D • Alice 3D is an open source tool for creating interactive virtual worlds provided by Team 3 of Carnegie-Mellon-University(卡內基美隆大學). • It is based on Java and is designed primarily for non-professional users. • It is not really designed for collaboration. • The integration of the work of several team members can lead to reproducible system crashes. • Game Maker • Game Maker is a well-designed shareware tool for the easy point-and-click creation of small 2D games. • It has a network-component for multiplayer games, but no 3D functionality. • Besides the import of game assets Game Maker has no support for collaboration or teamwork.
Teaching Game Design-Experiences with available Game Creation Tools (cont.) • Gamestudio • Gamestudio is a semi-professional game development tool that comes along with a game engine. • It offers rudimentary import/export functions, but has problems with non-native formats and does not offer special collaboration support. • All these tools have their deficiencies in collaborative development. • The need for an adequate educational environment for teaching game design finally fostered the cooperation between the university and Impara in order to develop the Impara game engine.
Creating Games • A game can be seen as a system in which players interact with a virtual environment governed by the game rules and game mechanics from which eventually gameplay emerges.
Creating Games-The Structure of a Game Engine • Generally speaking a game engine is an application for the interaction of a user with a virtual game world. • The user interface, the 2D/3D engine, the audio engine and the network module handle the I/O. • The physics engine (responsible for world objects) and the AI engine (responsible for the behavior of Non-Player characters) handle the simulation of the virtual world.
Creating Games-The Structure of a Game Engine (cont.) • From a software engineering point of view we can speak of OpenCroquet as a system that is very well prepared as a game engine. • Impara developed a 2D/3D game engine that makes use of squeak and tweak likewise and is currently integrated in OpenCroquet.
Creating Games-Using a Squeak/Tweak based game engine for game creation • The Impara game engine provides a flexible framework of components for constructing a wide range of games: • Single- and multi-player support • 2D, 2.5D, 3D • First person, top-down, isometric, tile-based and 3D rendering • Transparent synchronization of multi-player game worlds • Asset management • AI support • Physics engine • Collision detection • Fundamental game mechanics for game objects • Collaboration. • One of the basic design principles and suggested design style is the use of plugs and adaptors.
Creating Games-Using a Squeak/Tweak based game engine for game creation (cont.) • Modeling • The game world is constructed in 3D space, although the API supports both 3D and 2D coordinates. • By keeping all information in a full 3D coordinate system, all renderers can be used for the same game world. • Asset Management • All content is kept in external files and loaded at game start. • For deployment the image can be saved with pre-loaded assets. • By hooking up the asset folders with a repository system collaboration within a team is easily supported. • Updating from the repository and restarting the game immediately makes use of the latest assets allowing for short turn around times.
Creating Games-Using a Squeak/Tweak based game engine for game creation (cont.) • Single- and multi-player support • Most parts of the game engine are completely unaware of the engine’s multi-player capabilities. • Message sends are intercepted and forwarded where appropriate, taking care of synchronizing the distributed game worlds. • Synchronization is not strict; deviations from the “true” state are compensated smoothly on the remote client ends. • AI support • Based on one of the central design principles Artificial Intelligence support is attached to the game objects when needed. • This way the same game can easily function as both a single or multi-player version, adding Non-Player-Characters (NPCs) instead of human players where needed.
Creating Games-Using a Squeak/Tweak based game engine for game creation (cont.) • Physics engine • The game engine provides a built-in basic physics engine, supporting masses, acceleration, drag and gravity. • Code management • Code management is not done directly through the game engine but rests within the responsibility of the Squeak/Tweak development environment. • Collision detection • Collision detection is another service that is attached to the game. • If a collision between two objects is detected, a customizable callback is sent to the objects involved.
Creating Games-Using a Squeak/Tweak based game engine for game creation (cont.) • Fundamental game mechanics for game objects • Most games share the same fundamental game mechanics like scores, hit points, damage levels, playing time etc. • Some of them are global some local. • The game engine tries to provide default implementations for the global cases like playtime. • Collaboration • As even small games are usually implemented in teamwork, collaboration between team members is a major issue in game design. • The current game engine version still lacks more immediate modes of collaboration like incremental live updating, awareness and collaborative editing.
Creating Games-Usability of Squeak as a programming language for game creation • Squeak ─ not surprisingly ─ is Turing complete. • Turing complete:能夠計算任何可計算的function • One of the most amazing, or, to be honest, frustrating element of teaching a course using Squeak is how the students react to having to learn Squeak/Smalltalk. • Squeak:是一個free, open source, 是Smalltalk的程式語言. • Smalltalk:是2D的程序設計語言,也是第一個真正的集成開發環境(IDE). • The Squeak (Smalltalk) concept of working within an image instead of compiling from text files also adds to the learning curve. • Fortunately packaging tools are available for Squeak.
Creating Games-Work in Progress • Our current work aims at implementing a refined generalized game engine in Squeak/Tweak. • Other projects focus on the implementation of first tools for OpenCroquet as creative environment for learning and playing.
Conclusion • Game Design requires the right people using the right tools in a collaborative environment. • We developed a game engine in the Squeak/Tweak environment that is used for a commercial game as well as for teaching game design at the university. • Our approach with the Impara game engine is very successful and undoubtedly by far the most effective approach. • Our next steps are to migrate the existing game engine to OpenCroquet and enhance the possibilities for collaborative development.
My opinion • Advantage: … • Disadvantage: … • Apply: Collaborative game design