Download the full thesis here game development in casanova.pdf.


Making video games is made too expensive by the use of inadequate programming languages that were intended for different uses. Designing proper programming languages and abstractions for making games would enable cheaper and easier game development, thereby allowing more teams to build games, enabling existing developers to make games with less effort, and even making it possible to build games in a larger scope than before. In this thesis we explore the creation of a novel language for making games, which we called Casanova. This language allows a developer to express any aspect of games, as confirmed by our direct experiments.


Game development is an important activity. Its importance stems from multiple factors, which we describe in Chapter 1: on one hand we have the sheer size of the entertainment industry, which is comparable to the movie and music industries; on the other hand we have a large (and growing) list of educational, training, and in general serious games that have a purpose beside that of diversion. Unfortunately, game development is very expensive. This has shaped an industry that is often conservative (many games are just sequels that look almost exactly like their predecessors) and where only a few players can successfully complete their games and make a profit (to the expense of innovation and exploration of serious game mechanics).

Before solving the issue of making game development less expensive, we must study how it is done and find the common issues that game developers face routinely. We explore these issues in depth in Chapter 2, where we identify those central aspects that must be addressed by a game development system or programming language. These issues will be referenced throughout the remainder of the thesis and will provide the basis for the evaluation of our work.

Of course there are plenty of existing solutions to the problem of better supporting game development. We discuss the most relevant game development systems, tools, and languages in Chapter 3, where we also discuss their adoption. We compare game development systems and languages, and we argue that new languages would offer the industry benefits which are currently ignored. This provides the basis of our motivation to create a new game development language: showing one way (of many possible) to reap these benefits.

From our experience in game development, and from the requirements identified previously, we designed the Casanova language. Its design and the motivation for such design are presented in Chapter 4, which sets the tune for our own solution.

We formally explore the Casanova language in its details. The syntax (grammar and type system) of the language is detailed in Chapter 5. The semantics (by translation into F#) of Casanova are described in Chapter 6. Finally, the implementation of the language and the trade-offs between the design of the language and the pragmatics of programming (IDE, debugger, etc.) are explained in Chapter 7.

Having a game development language ready and usable, we explore the possibilities it offers us in Chapter 8, where we put Casanova to the test by building a series of games in it. We use metrics taken from these samples, an analytic comparison between Casanova and existing game development tools, and also classroom experience to provide an evaluation of Casanova in Chapter 9. This evaluation evidences that Casanova is easy to learn (especially for beginners), powerful (in that it fully supports game development), and also that it offers a novel perspective on game development that allows it to offer significant advantages over existing game development tools.

Casanova is, first and foremost, a research project. This means that its development could continue in new directions, in order to study how to integrate it into existing tools and systems. These directions for extension are described in Chapter 10, where we also explain which other extensions would not be easy to integrate into Casanova.

We conclude our presentation with Chapter 11, where we sum up the contributions of this thesis.

Last edited Mar 13, 2013 at 10:20 AM by giuseppemag, version 5

Comments

No comments yet.