14
SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009 1 Assignment Cover Sheet Faculty of Science and Technology NAME: Andrew Fox______________________________ STUDENT ID: __________________________________ UNIT CODE: ___________________________________ ASSIGNMENT/PRAC No.: 3________________________ ASSIGNMENT/PRAC NAME: Game Concept - Prototype __ DUE DATE: 2010-06-02 __________________________ Plagiarism and collusion Plagiarism occurs when a student passes off as the student’s own work, or copies without acknowledgment as to its authorship, the work of any other person. Collusion occurs when a student obtains the agreement of another person for a fraudulent purpose with the intent of obtaining an advantage in submitting an assignment or other work Declaration I certify that the attached work is entirely my own (or where submitted to meet the requirements of an approved group assignment is the work of the group), except where work quoted or paraphrased is acknowledged in the text. I also certify that it has not been submitted for assessment in any other unit or course. I agree that Deakin University may make and retain copies of this work for the purposes of marking and review, and may submit this work to an external plagiarism- detection service who may retain a copy for future plagiarism detection but will not release it or use it for any other purpose. DATE: 2010-06-02 ______________________________ An assignment will not be accepted for assessment if the declaration appearing above has not been duly completed by the author.

Assignment Cover Sheet Faculty of Science and Technologymembers.optusnet.com.au/~lithclan/ass/SIT151-Assignment-3-10.pdf · Assignment Cover Sheet Faculty of Science and Technology

Embed Size (px)

Citation preview

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

1

Assignment Cover Sheet

Faculty of Science and Technology

NAME: Andrew Fox ______________________________

STUDENT ID: __________________________________

UNIT CODE: ___________________________________

ASSIGNMENT/PRAC No.: 3________________________

ASSIGNMENT/PRAC NAME: Game Concept - Prototype __

DUE DATE: 2010-06-02 __________________________

Plagiarism and collusion

Plagiarism occurs when a student passes off as the student’s own work, or copies

without acknowledgment as to its authorship, the work of any other person.

Collusion occurs when a student obtains the agreement of another person for a

fraudulent purpose with the intent of obtaining an advantage in submitting an

assignment or other work

Declaration

I certify that the attached work is entirely my own (or where submitted to meet the

requirements of an approved group assignment is the work of the group), except

where work quoted or paraphrased is acknowledged in the text. I also certify that it

has not been submitted for assessment in any other unit or course.

I agree that Deakin University may make and retain copies of this work for the

purposes of marking and review, and may submit this work to an external plagiarism-

detection service who may retain a copy for future plagiarism detection but will not

release it or use it for any other purpose.

DATE: 2010-06-02 ______________________________

An assignment will not be accepted for assessment if the declaration appearing above

has not been duly completed by the author.

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

2

SIT151 – Assignment 3

Game Concept – Prototype Game Content

Due Date

Assignment must be submitted by 11:59pm Wednesday 2nd of June 2010

This assignment is for ON campus and OFF campus students

Submission

If possible, the written report needs to be submitted electronically*, via the Assignment Submission link on the SIT151 DSO web page. Please try to keep the file size small (under 5mb). (If you need to compress your submission, please use ZIP format not WinRAR as we don‟t have a site licence for this.) * If need please submit paper based/ CD version via assignment submission box (on campus students) or via mail (off campus students).

Your report should be presented in 11 or 12pt font using either Ariel or Times New Roman typeface and should be approximately 5 pages in length (including front pages). Use appropriate headings and section titles to make your report easy to read.

Assignment Marks

This assignment is marked out of 100 and is worth 20% of your final mark.

Introduction

The goal of this assignment is to create game content based on the game proposal made in Assignment #2. This assignment is aimed at producing a gameplay sequence or level design ‘prototype’ of the overall look of the game environment and examples of ‘storyline and gameplay interaction’. It is expected that the implementation will follow the design of Assignment #2 and use software such as: Game Maker, Adventure Game studio, Photoshop, Flash, 3D Studio Max or modding tool from Steam such as Gary‟s Mod. If choosing to do a paper based board game naturally your implementation is with pen and paper, rather than electronic.

This assignment is aimed at producing „prototype‟ content that demonstrates the student‟s appreciation for some of the tools/approaches for developing game content. Therefore, the game content produced is not expected to be of „production‟ quality. However we want you to express a thought out process of how to implement a gameplay sequence!

Report Structure (40 Marks)

The report should have the following four (4) sections:

1. Title Page Student declaration (form can be downloaded off DSO) Student Name, Student ID, Prac Class Day & Time, Tutors Name

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

3

Instructions on how to play the prototype! To play the game please extract the zip to somewhere on a local drive (i.e. Desktop) and then run the .bat file

If the .bat file is not working for whatever reason, go into the Graal folder and double click on GraalEditor.exe

After running the Editor, click on Open:

Select the folder “Andrew Fox Assignment 3”

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

4

Select the file “0_town.nw”

With 0_town.nw open please click on “Play” in the top right.

You are now running my game prototype. Enjoy!

Controls: Movement – Arrow Keys

Push Blocks – Hold the direction that the block is in and your character will automatically push it.

Pull Blocks – Hold A and move in the opposite direction to which you grabbed it.

In this picture you would hold the left arrow as this is the opposite direction to the block

Sword (When you get it) – S or Space Bar to swing

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

5

Briefly describe your gameplay sequence.

- The game begins with a scrolling intro and then your character walks up into the screen from the bottom.

- You walk through the town and up out of the screen and then you are outside of the castle.

- You enter the castle through a crack in the wall and find yourself in an underground dungeon / cave.

- You walk into the main area of the cave and an earthquake occurs, trapping you inside.

- You go out of a door in the top right of the cave and find yourself in a room with some blocks. You must push and pull them to get past and into the next room.

- You then enter a room with a guard who asks you a riddle, after answering it he disappears.

- You are now in the main castle corridor, there are 2 pointless rooms to occupy space although one of them gives you a small clue in the form of a book.

- You go into the guards quarters and grab the sleeping guards sword then go back to the main corridor.

- You enter a room with 5 candles, when you slash them with your sword they light up. After lighting all 5 candles a door appears.

- You go through the door and have your first fight, you must kill a guard. - After killing the guard another door appears and leads you to a second

hallway area. - In this hallway you must clear each room of enemies and then the boss

door opens. - You go into the boss room and fight several waves of enemies before

fighting the boss himself. - After defeating the boss you find a door that takes you out into the castle

courtyard. - You may now walk around the castle courtyard and that is the end of the

game prototype.

Document with screen shots and a walkthrough of your gameplay sequence and its implementation.

My game begins with a scrolling overview of the town area.

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

6

Your character then walks into the screen and you begin the game =]

You walk out of the top of the screen and find yourself outside the castle, although the gates are shut you can find another way in ;)

You jump off into the moat and locate a crack in the wall. This is your entry into the castle.

You find yourself in an underground cave, when you walk up into the main area….

An earthquake blocks your exit from the cave! You must then find the dungeon key and get out of the dungeon.

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

7

The key is over the far left of the cave and the door is over to the far right. Easy to find both.

You then find yourself with a block puzzle that you must solve, it‟s pretty basic so shouldn‟t be too hard to solve.

Just need to pull out the first blue block, then pull it up towards the sign. Then push the first red block to the right until it hits the wall. Then pull the other blue blocks out. Then push the second red block up and you are through :)

In this room a guard asks you a riddle, the answer is envelope. I added a thing so that if you can‟t work It out you can just type solution and the guard will tell you the answer.

The next room has 4 doorways, go into the top left one and get the sword out of the chest.

Don‟t waste time trying to get the chest from the top right door, it‟s impossible and even if you get over it to somehow (by pressing F5 and changing your position) the chest has nothing in it.

Go into the bottom left door and you will find yourself in..

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

8

A room with 5 lamps, swing your sword at them to turn them on.

Once you turn on all 5 a secret door appears.

Go through the door to fight your first fight of the game. I‟ve made it so if you die you come back exactly where you died, should be fairly straightforward to get past him.

After you kill the guard a secret door appears, go through it.

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

9

You will find yourself in another hall way, the door at the end with the skull on it is the boss fight.

You must go into each of the rooms and kill all of the enemies to open the boss room.

The boss fight is split into 4 waves of enemies, you must kill 3 sets of normal bad guys and then a special boss called Fire. After defeating Fire a hidden door is revealed.

Once you have defeated Fire the door that appears takes you outside of the castle, you have completed the prototype. Give yourself a pat on the back.

There is nothing to do outside of the castle, you can talk to the guy or read the sign, both just thank you for playing. If you move down the path to the castle gates you will also get a similar message thanking you for playing.

Game balance

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

10

I gave the game a number of play throughs to make sure it was able to be completed without bugs. Here is a short list of some fixes:

- Was possible to mess up the block puzzle and make it so you were unable to complete it, this was a problem since there is no way to make the blocks reset on an offline version of the game without restarting the entire game. It‟s still possible to mess it up but much harder now.

- Guard had too much health and was too fast for what I consider fair to a novice player. Tweaked the values a few times and am happy with the result, somewhat challenging but not too powerful.

- During playtesting it was found that if you died you were sent right back to the start of the game, this is a limitation of the engine and I had to create a script for the game that would detect when you died and warp you back to exactly where you were standing. Otherwise the game would have you trapped at the start due to the earthquake event already happening and blocking the entrance.

- Made the earthquake occur multiple times in the rare case that you were warped back to the start of the game then you would be able to continue still.

- Final boss was too fast, had to slow him down a bit. He has a fair bit of health still but I left it that way as he is a boss after all.

- There is a bug in the game itself (Graal) that I can‟t fix, for some reason this version of Graal has a bug and it lets you block arrows from any direction so even if your back is turned to an arrow you will block it rather than getting hurt. This ruins the balance a fair bit as some of the fights are supposed to be hard because of the archers but instead they pose no threat. Damn.

2. Summary (5 Marks)

My game was produced using the game “Graal Online”s level editor and the graphics provided by them. The game is primarily online but the level editor is fully playable offline so I decided it would be a good idea for my game.

The brief overview of the game is that you start inside a town, you goto investigate Castle Doom and you get trapped inside by an earthquake. You must then answer a riddle, solve a block puzzle, then fight room after room of enemies until you finally reach the boss room. In there you must fight several waves of enemies before defeating the boss and escaping the castle.

The game takes roughly 5-10 minutes to complete and took a lot lot lot longer to make :P I spent a fair amount of time detailing each level, except the castle courtyard as there isn‟t much variety in desert tiles provided by the game unfortunately.

3. References (5 Marks)

Went online on Graal Online and looked around some online servers to see how they have created their levels, I was influenced by some and incorporated them into my design. Although I didn‟t directly copy them, just used similar techniques in tiling.

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

11

4. Professionalism – quality of report submission, quality of instructions provided to run submission (10 Marks)

Note: References used to complete your report should be correctly listed in your References section and relate to a citation in the body of your report. If you are unsure of how to do this properly, ask your tutor or lecturer. Plagiarism, even if accidental, is a serious breach of University Regulations and must be avoided.

Implementation (60 Marks)

The game engine I used is controlled by scripts, you can try and locate them on the editor but I‟ll paste the most important ones here. All scripts were written by me from scratch as I am familiar with this game after having played and developed for it for a number of years.

Introduction Script

// NPC made by Agret

if (playerenters||created) {

setplayerprop #P1,dd_hat110.png;

setplayerprop #3,beybladers89_scarface.png;

setplayerprop #8,body13.png;

setplayerprop #C1,black;

setplayerprop #C3,darkgray;

if(!client.intro){

showstats 0;

disabledefmovement;

setani idle,;

playerx=x;

playery=80;

setshield no-shield.png,1;

setsword no-sword.png,0;

for (i=15;i<y-5;i+=0.1;){

setfocus x,i;

sleep 0.05;

}

resetfocus;

showstats 1024+32;

playerdir=0;

setani walk,;

for(i=playery;i>y;i-=0.5;){

playery=i;

sleep 0.1;

}

setani idle,;

enabledefmovement;

say2 Hmm, the castle should be nearby.#bI'd better investigate.;

set client.intro;

}

}

This script sets all your clothing and head image, it basically sets how the character looks. It then makes the camera scroll down from the top of the screen to the bottom and then makes your character walk up into the screen and displays a message on the screen.

Bridge Script

//#CLIENTSIDE

// NPC made by Agret

if (created||playerenters||timeout) {

timereverywhere;

if(strequals(#m,swim)){

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

12

drawoverplayer;

setshape2 14, 11, {

22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,

22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, };

}else{

drawunderplayer;

setshape2 14, 10, {

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22,

22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, };

}

timeout=0.5;

}

This script makes it so the bridge lets you swim under it when you are in the moat and makes it so you can walk over it when you are on the ground. As one of Graals limitations is that you can‟t do separate tile layers and everything is on the same layer you have to fake things like this by scripting them.

System Script

//#CLIENTSIDE

if (playerenters||created) {

showstats 1024+32;

if(!isweapon){ toweapons -System; }

timeout=0.05;

}

if(timeout){

if(playerhearts=0.5){

setstring client.dead,#L #v(playerx) #v(playery);

}

tokenize #s(client.dead);

if(strlen(#s(client.dead))>0&&playerhearts>0.5){

setstring client.dead,;

setlevel2 #t(0),strtofloat(#t(1)),strtofloat(#t(2));

}

timeout=0.05;

}

This script hides all the HUD elements I don‟t want shown (current weapon, bomb count, arrow count, money) and it also tracks where you are so if you die you are instantly teleported back.

Earthquake Script

//#CLIENTSIDE

// NPC made by Agret

if (playerenters||created) {

if(playery>y){ unset client.dungeonrocks; }

setshape2 28,1,{

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

13

22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,

};

dontblock;

}

if(playertouchsme&&!client.dungeonrocks){

disabledefmovement;

setani idle,;

sleep 0.5;

for (i=0;i<5;i+=0.5;){

if(i>3) set client.dungeonrocks;

play stonemove.wav;

setfocus playerx+i,playery+i;

sleep 0.1;

play stonemove.wav;

setfocus playerx-i,playery-i;

sleep 0.1;

}

resetfocus;

enabledefmovement;

say2 Oh no, that earthquake#bblocked the exit to the cave!;

}

This script controls the earthquake effect. If you walk into it you trigger it and it makes the screen shake then the rocks appear to block you.

Boss Fight

//#CLIENTSIDE

// NPC made by Agret

if (playerenters||created){

removecompus;

this.wave=1;

message Boss Fight Wave #v(this.wave)/4;

putcomp graysoldier,17.5,13;

putcomp graysoldier,15.5,15;

putcomp graysoldier,39.5,13;

putcomp graysoldier,41.5,15;

putcomp graysoldier,13.5,37;

putcomp graysoldier,43.5,37;

putcomp bluesoldier,28.5,24;

}

if(compusdead||compusdied){

playerhearts=playerfullhearts;

setplayerprop #c,Healed.;

this.wave=this.wave+1;

message Boss Fight Wave #v(this.wave)/4;

if(this.wave==2){

putcomp bluesoldier,17.5,13;

putcomp bluesoldier,15.5,15;

putcomp bluesoldier,39.5,13;

putcomp bluesoldier,41.5,15;

putcomp bluesoldier,13.5,37;

putcomp bluesoldier,43.5,37;

putcomp redsoldier,28.5,24;

}

if(this.wave==3){

putcomp shootingsoldier,17.5,13;

putcomp shootingsoldier,15.5,15;

putcomp shootingsoldier,39.5,13;

putcomp shootingsoldier,41.5,15;

putcomp redsoldier,13.5,37;

putcomp redsoldier,43.5,37;

putcomp goldenwarrior,28.5,24;

}

if(this.wave==4){

setlevel2 9_bossfight2.nw,29,38;

}

}

SIT 151 Game Fundamentals School of Information Technology, Deakin University© © Deakin University, 2009

14

This script controls the boss fight by spawning 3 waves of enemies. It then warps you into the next level which is where you fight Fire. The level looks exactly the same as this one though so it fools the players into thinking it‟s the same room.

There are other smaller scripts that I wrote for the assignment but they are very basic and I don‟t feel they warrant inclusion here, if you wish to look at them you may open my levels in the editor and double click the weird invisible man icons.