DMGL Dungeon Map Generation Language Team 12 Yi

  • Slides: 16
Download presentation
DMGL: Dungeon Map Generation Language (Team 12) Yi Zhang Shuaishuai Nie Xuanchen Tang Lewis

DMGL: Dungeon Map Generation Language (Team 12) Yi Zhang Shuaishuai Nie Xuanchen Tang Lewis Flanagan Xiaohu Li yz 2414 sn 2479 xt 2128 lrf 2123 xl 2302 (Project manager) (Language Guru) (System Architect) (System Integrator) (Test & Validation)

What is DMGL? (Yi Zhang)

What is DMGL? (Yi Zhang)

What is a Pen and Paper Role-Play Game? � � � Played with dice,

What is a Pen and Paper Role-Play Game? � � � Played with dice, notes detailing various characters, monsters, and villains, and maps. One player, usually called the Dungeon Master or Game Master, controls all the monsters, non-player characters, the environment, etc. The other players each control a single “hero” character. Usually the Dungeon Master is responsible for coming up with the storyline, challenges and maps the group uses. Producing these materials can be commitment of several hours a week. DMGL is intended to reduce the time required to create maps for these games.

Progress of our project (Yi Zhang) Date Event Jan 25 th First meeting, discussing

Progress of our project (Yi Zhang) Date Event Jan 25 th First meeting, discussing ideas Feb 23 rd Language design and basic elements Mar 8 th Grammar decided, skeleton of scanner implemented Mar 29 th Skeleton of parser working Apr 4 th Initial tests written in advance Apr 12 nd Skeleton of translator working Apr 26 th Backend function working, integration into front end May 5 th Write last examples, finished final report edits, final testing

Language Features (Shuaishuai Nie) �New Types Introduced in DMGL • Room • Door •

Language Features (Shuaishuai Nie) �New Types Introduced in DMGL • Room • Door • Path • Feature

Language Features (Shuaishuai Nie) �Simple and Understandable Statement Structure Sample Code: call init_map (20,

Language Features (Shuaishuai Nie) �Simple and Understandable Statement Structure Sample Code: call init_map (20, 20) create room r 1 (3, 3) to north; create path p 1 (3) to east; create path p 2 (1) to east; create path p 3 (3) to south; create room r 2 (3, 3) to south; remove p 2; show_map ();

Language Features (Shuaishuai Nie) � Introduce loop to facilitate the construction Sample Code: call

Language Features (Shuaishuai Nie) � Introduce loop to facilitate the construction Sample Code: call init_map (30, 7); call start (1, 3); for (int i = 0; i < 4; i++){ create room anonymous (3, 3) to south; if (i == 3) quit; create path anonymous (2) to south; } call show_map ();

Language Features (Shuaishuai Nie) � Include random method and user defined function Sample Code:

Language Features (Shuaishuai Nie) � Include random method and user defined function Sample Code: call init_map (20, 20); create room myroom (3, 3) to west; int first. Direction = call randir (); create path mypath 1 (2) to first. Direction; create path mypath 2 (1) to first. Direction; direction new. Direction = call randir (); while (new. Direction == call opposite. Dir(first. Direction) ) new. Direction = call randir (); create door d 1 () to new. Direction; create room r 2 (3, 3) to new. Direction; call show_map (); function opposite. Dir (direction one): direction{ return ((one + 2) % 4); }

Self made library to support backend logic (Xuanchen Tang) �Functions. java �Room. java �Door.

Self made library to support backend logic (Xuanchen Tang) �Functions. java �Room. java �Door. java �Path. java

Complier Architecture (Xuanchen Tang)

Complier Architecture (Xuanchen Tang)

Compiler Related Components (Xuanchen Tang)

Compiler Related Components (Xuanchen Tang)

Test and Validation (Xiaohu Li) �Test methods: black box �Test levels: • Unit testing

Test and Validation (Xiaohu Li) �Test methods: black box �Test levels: • Unit testing • Integrated testing • System testing 111 test cases, over 1000 lines Automated test script

Test and Validation (Xiaohu Li) • Arithmetic operations STEP 1 • Control & loop

Test and Validation (Xiaohu Li) • Arithmetic operations STEP 1 • Control & loop • DMGL build-in functions STEP 2 • User Defined functions • Others STEP 3 • System & environment

Demo (Lewis Flanagan) [ This Slide Left Intentionally Blank ]

Demo (Lewis Flanagan) [ This Slide Left Intentionally Blank ]

Potential Future Work (Lewis) � Include ability to check area to see if it

Potential Future Work (Lewis) � Include ability to check area to see if it is empty (call scan (x, y)) � Add the ability to organize map objects into collections that can be acted on as a whole � Convert DMGL into an interpreted language � Add local variables � Add ability to include other DMGL source files in a program, thus allowing user to import libraries of functions � Give DMGL an applet as a GUI and make it available online

Summary �Lesson learnt • Start early • Regular meeting is essential

Summary �Lesson learnt • Start early • Regular meeting is essential