CS Department Lunch
Game Scripting Languages
Jessica D. Bayliss, Ph.D.Rochester Institute of Technology
Computer Science Dept.
RIT Computer Science Dept.
Game Programming
o Early on (Atari 2600): o Hand coded assembly
o PCs: o Higher level coding o A file system meant that content could be loadedo The advent of the game engine concepto Recently this has led to greatly increased game
costs
RIT Computer Science Dept.
The Content Problem
o It's expensive - over 60% of a game budget.o Need for games to be replayable
o New levelso New characterso New games
RIT Computer Science Dept.
Mods
o A "modification" of an existing gameo May just look differento May be another gameo May add interface features not available in
the original game (i.e. close captioning)
o User driven: o one solution to the content problem
o Some of our students are involved in mod creation outside of class.
RIT Computer Science Dept.
Game Scripting
o Used for:o Character AI and creationo Special interface commands and changeso Object properties
RIT Computer Science Dept.
Languages
o Game specialty languageso Second Life scripting language (Second Life)o UnrealScript (Unreal Tournament)o NWN script (Neverwinter Nights)
o Customizing other languageso Lua (World of Warcraft)o Python (Civ IV)o C/C++ (Half Life II)
RIT Computer Science Dept.
Second Life
o It isn't really a gameo There is no end goal except what users
createo Scripts are written in a C-like languageo Almost all items, games, etc. inside the
world are user createdo Second Life is the first massively multiplayer
platform to give users copyright privileges to what they create
RIT Computer Science Dept.
Unreal Tournament
o Another game with a custom scripting language
o UnrealScripto Java-like, complete with garbage collectiono Contains specialty constructs for state
transitions in the game engine
RIT Computer Science Dept.
Gamebots
o A client/server mod that enables bot clients written in any language to connect to Unreal Tournament serverso Works on UT, UT2003, and UT2004
o Messaging protocol is simple text messages:o "GAM {PlayerScores {CTF-Command.FriendlyRemoteFemale1Bot7
0.000000} {CTF-Command.FriendlyRemoteMale1Bot7 0.000000} {CTF-Command.FriendlyMale1Bot0 0.000000} {CTF-Command.FriendlyMale2 0.000000}} {TeamScores {0 0.000000} {1 0.000000}}"
RIT Computer Science Dept.
Conclusions
o Modern games quite often contain scripting
o Many opportunities for learning different scripting languages from within games
o Some of these have made their way into courses (Gamebots)