Monday, June 16, 2008

Construction





BYOND Program:

Sample Code:

Obj

object = 'example.dmi'
object_state = "Example 1"
Density = 1

Construction

BYOND Program:

Survey Results



Results

The results of the survey indicate a positive response to the game, with an average score of approximately 6.5 out of ten. Respondents appeared to enjoy the combat system but would liked to have seen more graphical and sound detail. However, this is not possible due to limitations of the gaming engine.

Wednesday, June 11, 2008

Controls (Revised)



Controls:
The control scheme for Willowbrook will incorporate both mouse and keyboard inputs to interact with your environment. Such a control scheme will be familiar to anyone who has experience with this system and benefits by being similar to other computer-based RPG games.


Foot:
This is the primary way in which the player will experience the gaming environment. Characters are controlled by the following keyboard commands.

Control Arrows – Move forward, backwards, etc.
Space Bar – Use item

Mouse – Pick up items, talk to nearby characters

Self-Evaluation

For senior year at the Marine Academy of Science and Technology, I, Joseph DiMarco chose to be in Systems Engineering II. Since this entails creating a “Senior Capstone Design Project”, I originally decided to participate in the ROV MATE projected at the insistence of one of my classmates. However, this didn’t pan out, and I instead committed myself to an alternate project.
My actual project would be to design and test a video game for entry into a competition for the Technology Students Association (TSA). The project would entail me acquiring rudimentary knowledge in computer programming, designing characters and settings, and finally combining it all into a working system. The project of course would have to be school-appropriate and confined to the time allotted and my skill level.
So this is what led to the conception of my final design. I chose to limit my game to two-dimensions, and build it as a side-scroller, reminiscent of Super Mario Brothers. The idea was based around a concept called Willowbrook. This was a town set in an alternate dimension, where the main character, Hal, must try and escape. You would have to solve puzzles, gather items, and fight enemies in order to complete you objectives. In this way, I set out to design an RPG. I originally intended for the game to be designed in C++, a common, easily accessible computer language, and consist of seven levels, each consisting of numerous scenes, items, and characters to interact with.

However, this idea would undergo several revisions. While the general concept would remain the same, the chosen language was impractical to learn. My mentor barely scratched the surface after an entire semester of college. This inspired me to move my coding onto the Adobe© Flash™ platform. Since this method is more visual-based, it seemed less involved, and would be easier to wrap my head around. Of course this wasn’t to be, and I again was unable to utilize this system. Finally, as per the request of a fellow student, who was himself well-versed in video game design, I was introduced to the language, Python, and that is what the game is currently built off of.
By being moved to this system, however, the scope of my project would have to be narrowed significantly. Much of my artwork and level design would have to be cut out. Instead, the final project is a simpler, less engaging game, a victim of major time constraints, and limited foresight. That seems to be a common theme that runs throughout my project. I feel like if I had just dedicated even minimal effort to the process, played the game, so to speak, I would have had a much more fulfilling experience with this project.
I’m not really sure what my problem is. It’s not like I don’t want to assert myself, I just find myself afraid to apply the effort, and instead slack off. I guess I simply don’t want to suffer the humiliation of applying myself and failing. Another thing I learned is that if I am to give any effort, I need some kind of support structure to actually apply myself. If I had actually decided to stick with the ROV project, I probably would have done significantly better. Since this was a group affair, and a pet project of the instructors, I would have felt extra pressure to actually shift my inert mass into gear and peel out to a successful year. Also, I think that since my project was a fairly new undertaking for the staff, they were just as unsure as me as to what I should have been doing, so I mistook that as a sign that I could get away with anything. Still, I know that at the end of the day, all of these shortcomings are my “own damn fault”, and I will ultimately have to pay the price. If not now, later on down the road, in the real world where no one gives a what you do and will show no remorse in seeking retribution for failure. If I took away anything from this project, it’s the sobering wake-up call that if I don’t shape up soon, I’m going to be flipping burgers for the rest of my life.
So that, in essence is a summary of my senior year. My project, while completed, is nowhere near the level it could have been on, and I have some serious “self-evaluation” to do before I can become a productive member of society. I can only hope that somewhere in all of this lies the key to this answer I seek.

Final Product

The final product meets the requirements of my project. However, major changes have been made to create a viable game with my limited experience and time. Instead of using straight-C++ coding, I opted to use an emulator called BYOND, which allows for the creation of a game within the confines of a pre-made engine. For this reason, the graphics had to be simplified as well. Most of my original artwork and scenes had to be re-invisioned in order to conform to the "top-down" format of this engine.

See below for a current screen shot:

Testing

Measuring Playability:

To measure the playability of the game one must first consider the following factors:
1. Age of participants
2. Difficulty of game
3. Aesthetics
4. Controls

Whereas the participants must fall within the Teen-Mature age bracket as defined by the *ESRB; the difficulty can neither be so low as to not be a challenge, nor to high as to become tedious; the game must appear pleasing to the eye and the scenes should be easy to interpret; the controls must be straight forward and easy to learn.

To determine playability, each participant will be issued a survey at the end of the testing period, where they will rate the program from 1 – 10 across these several factors through a series of 20 questions. A score of 1 indicates “poor”, where as a score of 10 shows the player found the game to be “excellent” in that specific area. Depending on the scores received, the game may need to be revised to better appeal to the audience, or left as tested if reviews are overwhelmingly positive.



Plan of Action:

1. Testing will performed by the second week of February 2008.
2. If necessary, the game will be revised and participants will again perform survey
3. Process will repeat until product receives overwhelmingly positive reviews
4. Game must be completed by March 15, 2008





Testing Procedure:

1. Prepare demo of game for testing specifications, i.e. ensure sound and video functions and control schemes are adequate, and it can be completed in two hours or less.
2. Submit game to fifteen subjects, each over seventeen years in age. The game will be on a CD Rom, along with a survey document to be completed upon finishing testing
3. Subjects will play game until completion, upon which they will fill out a survey describing their experience and recommending any changes.
4. Game will be revised according to specifications of original subjects
5. Process will repeat with new subjects until all parties are satisfied with the overall experience.

Expectations:

The game will most likely have to endure several rounds of testing before being submitted. However, any necessary revisions will not be major, and the process should run smoothly. Ultimately, the game should appeal to audiences due to its content and appropriateness and will be a prime candidate for submission into the TSA Competition.





Results:

The testing of Willowbrook went smoothly. Participants were chosen from online, as well as classmates, and other peers. They were all from a 15 – 25 age group, so their opinions reflect that. Each individual was instructed to fill out a short, five-question survey following their play-testing to evaluate their experience (See Figure 1-3). The majority of participants found the experience positive, and it is a viable game. However, the problems that did occur will not be rectifiable, due to the limited time following testing and the end of the school year.






Figure 1-3: Survey

Please indicate your response to the following by circling one of the corresponding numbers. One represents extremely poor, while ten indicates perfection.

1. How would you rate the game’s overall playability?

1 2 3 4 5 6 7 8 9 10

2. How effective where the graphics in conveying the overall theme of the game?

1 2 3 4 5 6 7 8 9 10

3. Rate how easy the story was to follow?

1 2 3 4 5 6 7 8 9 10

4. How enjoyable was the game overall?

1 2 3 4 5 6 7 8 9 10

Please indicate your answers to the following open-ended questions in the space allotted.

1. What was the most memorable/defining aspect of your gameplay?










2. What are some suggestions you would make to improve the overall experience?

Friday, February 1, 2008

Calendar: MP4

Week 1 (Feb. 4 - 9):

“Procure” the necessary programs/hardware:
a. Adobe Flash (For scripting/animation)
b. Adobe Photoshop (For creating scenes/characters)
c. Computer (To specs. Listed in BoM)
d. Scanner
e. Sound Recorder/Playback
f. Audacity

Week 2 (Feb. 12 - 17):

• Import Photoshop files into Flash,
• Use imported files to create animated sequences.
• Use Audacity to record music/dialogue

Week 3 (Feb. 20 - 25):

• Import Photoshop files into Flash,
• Use imported files to create animated sequences.
• Use Audacity to record music/dialogue

Week 4 (Feb. 28 – March 4)

• Import Photoshop files into Flash,
• Use imported files to create animated sequences.
• Use Audacity to record music/dialogue

Week 5 (March 7 - 12):

Compile scripting/animation sequences into playable game

Week 6 (March 15 - 20):

• Use Testing Procedure to gauge appeal/functionality of game. Repeat above steps until project is completed to specifications as outlined in Selection/Rejection Report.
• Mentor contacts
• Solution Assessment

Week 7 (March 23 - 28)

• Use Testing Procedure to gauge appeal/functionality of game. Repeat above steps until project is completed to specifications as outlined in Selection/Rejection Report.

Week 8 (March 31 – April 5)

• Presentations. Marking period ends this week.

Tuesday, January 22, 2008

Friday, January 18, 2008

Dev Work

Characters:

The following characters appear during gameplay.

Hal

A bitter, cynical man in his late twenties, Hal is perhaps the last person one would expect to become a hero. But fate had other plans…



May

May introduced Hal to his “destiny”, and provides him with invaluable information to help him fulfill it. While it certainly wouldn’t be off-base to question her motives, or even sanity it’s never really a good idea to bite the hand that feeds you.

Mr. Mynar

Mynar is the wealthiest man in Willowbrook, and he’s not afraid to flaunt it. Hey if you owned three-quarters of your hometown, wouldn’t you?

Dr. Smith

Dr. Smith is a wheelchair-bound, maniacal genius with a conspicuous German accent. He runs a lab near the Power Plant, and is rumored to be experimenting with extra-dimensional particles…

Townspeople

All across Willowbrook you will find a vast assortment of people, looking simply to get on with their lives. While some will be wiling to help, and others seem to want the exact opposite, you can’t get by without them.

Vehicles

When you get tired of running, you have several alternatives.

Descartes

Your basic sedan, bland and uninspiring, it was built for the sole purpose of getting you from point A to point B, and certainly does a good job of it. But where’s the fun in that?



Descartes Intellego

The Descartes brand’s renowned pony car, celebrated for its youthful appeal and high level of modability.

Chirac Corsair

It’s a sports car… Drive it like you stole it.



Descartes S

The game’s “secret” vehicle, its un-lockable content, if you will.



Items

Crystals: These are the central focus of the game. There are seven of them to be collected, and you must complete a series of puzzles and quests to retrieve them.

Guitar: The guitar is a musical instrument, play often and the experience you’ll gain will be worth your while.

Cell Phone: Use this to communicate with the various people you meet.

Baseball Bat: A useful multipurpose tool…

Lock Pick: Use this to get into hidden areas.

Money: This allows you to buy products, vehicles, etc.

Food/Drink: Restores health, stamina

Plot Overview:
Willowbrook will be a third-person, side-scrolling RPG that will incorporate 2D animated cutscenes. In this game, the player takes on the role of Hal, an unlucky bachelor who is teleported to another dimension after botching an Internet date with a voodoo priestess. He becomes trapped in a realm, known only as Willowbrook, a small town on the edge of existence, whose residents are continually tormented by a nocturnal race of humanoids, referred to as the Xebufu. In order to escape, he must unite seven mystical stones to power a vessel that will allow him to return to his own dimension. Each scene in this game is to be composed of a 2d bitmap, with each character, item, and vehicle overlaid in such a way as to create a sense of absurd realism. What follows includes:
➢ Each individual scene in the game,
➢ A quoted description as will appear in the instruction manual
➢ List of characters/props
➢ Actions/Control Scheme

Scene 1: Downtown

“Perhaps the most important area of this game is downtown Willowbrook. This is where Hal will meet the majority of the characters he will interact with and find many of the items that will help him along his “quest”.


Points of Interest:

Korova’s

“The local “milk bar”, this is where many young people come to unwind at the end of a long day. It’s probably best to show up after dark …”

Alonzo’s Pre-owned Auto Emporium

“The latest from a long line of used car salesmen, Alonzo has without a doubt perfected the art of preying on the wallets of the poor and naïve. Still, his penchant for finding rare and interesting vehicles is unmatched. The complementary beverages don’t hurt either…”

Ed’s Threads

“Ed is the local tailor, some say he is the best around, whether that’s because he’s the only tailor in Willowbrook is uncertain…”

Testament

“A local club, it’s where Willowbrook’s best musicians come to strut their stuff.”

Underground:

“The sewers of Willowbrook, it’s amazing what you might find down here.”

Scene 2: Outskirts

“This is the vast expanse that lies beyond the center of town. It would be unwise to navigate by foot…”

Points of Interest:

The Suburbs:

“This is where the working man takes refuge after a long day at the office, disappearing into the uniformity of middle class existence.”

Semetary Hill:

“When your time comes in Willowbrook, it’s likely you’ll end up here…”

Rt. 616:

“This vast, straight throughway is a favorite haunting ground for street racers of all kinds. Head out here to test your mettle.”

The Garbage Plant:

“This is where the essentials of civilization end up when they have outlived their useful purpose, to generate electricity”

Control Scheme

Controls

The control scheme for Willowbrook will incorporate both mouse and keyboard inputs to interact with your environment. Such a control scheme will be familiar to anyone who has experience with this system and benefits by being similar to other computer-based RPG games.


Figure 31-5b: User Interface (Referenced area indicated by number in text)

Vehicles:
Vehicles are controlled primarily through keyboard input. Speed, RPM, and current gear are indicated in the bottom left corner (5). Gear selection is performed by mouse click.

W – Turn Right
A – Accelerate
S – Turn Right
D – Brake

Shift – Clutch
Space – Full Throttle
Alt – Downshift
Control - Downshift

E – Enter/Exit

Q – Horn

Foot:
This is the primary way in which the player will experience the gaming environment. Characters are controlled by the following keyboard commands.

W – Turn Right
A – Forward
S – Turn Right
D – Backstep

E – Use/Talk
Q – Cell Phone

Control Arrows – Use equipped item


User Interface:

The player may access his menu at any time by either pressing the space bar or clicking the menu icon on at the top of the screen (2). The menu will provide access to the various items accumulated during gameplay, as well as allowing any changes to be made to the control scheme or audio and video settings.
In the upper left-hand corner of the screen is the Life Bar (1). This keeps track of your current health status and stamina. Taking damage from enemies or excessive labor will drain your life energy. It can be replenished through health packs or nutrients.
When items are selected from the menu, they are equipped by assigning them to one of the arrow keys (4), and are then used by clicking the button. Other actions are performed using the “E” key, and that action will be displayed in the UI (3).

Math/Science Report

Object-Oriented Programming:
Object-oriented programming is a method of computer programming that focuses primarily on the use of a graphical interface, rather than requiring the user to input individual lines of code. Some examples of modern languages that incorporate some degree of OOP (read: object-oriented programming) include:
➢ C++
➢ Microsoft Visual BASIC
➢ JAVA
➢ Adobe Flash

C++ is a language derived from C that is renowned for its ease of use and high level of adaptability. This makes it a popular choice of modern software developers for everything from server integration to designing the most recent video game titles. Visual BASIC is an extension of the Microsoft BASIC language, created specifically with OOP in mind. It comprises the underlying architecture of Windows, and is therefore notable from a programming standpoint.

JAVA, and by extension Flash are a common alternative to C++. Flash is a useful tool in website and animation design, allowing for seamless integration of visual and code-writing values. For this reason, this program is venerated by novice video game designers whose amateur works occupy the majority of the bandwidth of such popular sites as Addictinggames.com.

Basic Concepts of Object-Oriented Programming:
There are eight basic concepts in OOP. Called “quarks” by those in the field, they include the following (Abadi):
➢ Class
➢ Object
➢ Method
➢ Message Passing
➢ Inheritance
➢ Encapsulation
➢ Abstraction
➢ Polymorphism

Class:
Class is one of the most important of the fundamental concepts of OOP. It is defined as the basic essence that sets one object apart from another. In this way, an object is connected to a series of subroutines, based on the qualities that define it (Abadi).

Object:
An object is the basic unit in OOP. This takes the place of lines of code in traditional programming, and is directed by instances (see Figure 25C-A2). These modifiers define which properties an object possesses, and how they will change by the actions of the user during execution.

Method:
The method refers to the way in which Classes are modified by their instances. In this way, if a car was to be considered an object, instances of said car would include such qualities as drive ( ) and park ( ) in that these represent actions that such an “object” would be likely to perform. As seen in Figure 25C-A3, each instance contains an inherent method (Object).

Message Passing:
Figure 25C-A3 illustrates the concept of message passing, how an object calls upon each instance.

Inheritance:
Inheritance allows subclasses to gain the attributes of their parents, while allowing them to be programmed only once. In this way, OO Programmers can be more efficient and reduce the chances of scripting errors. For example, if a car was to be considered a class, its subclasses would include brands such as Ford ( ), Cadillac ( ), Toyota, and Infinity ( ), and each of these would “inherit” the instances of drive ( ) and park ( ). (Object)

Encapsulation:
This allows instances to apply only to certain classes at certain times in an effort to allow objects to adapt more readily to changing information. In this way, methods are defined as “public”, “protected”, or “private”. Public access allows the subroutine to be accessed at any point in time by any client. “Protected” instances can only be accessed by certain subclasses, while “private” indicates that an instance may only be accessed by the specific, defining class (Object).

Abstraction/Polymorphism
Abstraction allows different classes to be modified at the most appropriate level of inheritance, allowing the program itself to open each subroutine without knowing the specific details of each unit. Polymorphism occurs when a class may be defined by any of its subclasses depending on the scope of the method (Object).

Macromedia Flash:
Macromedia Flash is an Object-oriented program, derived from JAVA, used primarily in graphical design and animation for website design and other uses (Flash). It is ideal for the design of Willowbrook due to its ease of use, and attractive, graphically based user interface.

Flash Animation:
Although animating with Flash is a fairly involved process, it greatly simplifies the traditional methods (see Figure 25C-A4).

Method:
In order to animate in flash, one must import image files in .bmp format, rasterizing, to ensure smooth blending during scene transitions (Flash). From there, the user creates a background, extrapolating it over several scenes, while modifying the animated object between each frame, so that the illusion of movement is created. Audio files can be added and the frame rate adjusted to increase realism.

Summation:
Object-Oriented Programming is one of the most popular methods of creating new applications and web content. Its ease of use, coupled with a high degree of adaptability allow the user unparalleled freedom to create. Perhaps the quintessential example of OOP is Macromedia Flash. This system is popular with man novice game designers, and will therefore be a good format to base Willowbrook off of, allowing for my creative vision to be fulfilled without overcomplicating the design process with excessive coding or other complexities.