GOBLIN
Kevin Xiao Manager Bayard Neville Language Guru Christina Floristean System Architect Gabriel Uribe Tester Turn-based adventure games
GOBLIN Turn-based adventure games Kevin Xiao Manager Bayard - - PowerPoint PPT Presentation
GOBLIN Turn-based adventure games Kevin Xiao Manager Bayard Neville Language Guru Christina Floristean System Architect Gabriel Uribe Tester Problem General-purpose languages have steep learning curves and are not focused on game
Kevin Xiao Manager Bayard Neville Language Guru Christina Floristean System Architect Gabriel Uribe Tester Turn-based adventure games
Problem
focused on game development
and new languages
What is Goblin?
software development
Program Structure
adventure games in terms of entities in a world that perform functions
world[x,y]{ … } entities{ … } functions{ ... }
Entities
game characters
constructor
called every turn of game loop
that user controls
entities{ <character>:player{ <fields> build{ <variable declarations> <statements> } does{ <variable declarations> <statements> } } }
World
sets up game board
placing at coordinates on the board
world[x,y]{ <variable declarations> <statements> }
Built-in Functions
game board
coordinate
different coordinate
from terminal, written in C
place(String e, num r, num c); peek(num r, num c); move(Entity e, num r, num c); remove(Entity e); row(Entity e); col(Entity e); getKey(); exit;
Abstract Syntax Tree
program world entities functions
Game Loop
in the AST
method for every entity
Translator Architecture
Testing
Future
goblin
Demogoblin Green Goblin
Lessons Learned