Friday, January 18, 2008

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.

Thursday, November 15, 2007

November Calendar

Calendar

Week 1 (Nov. 19 - 24):

Monday: Create Calendar of events
Tuesday: Begin learning C++. Update blog.
Wednesday: Contact mentor, update on situation. Consider ideas for developmental work.
Thursday: Continue research on programming languages.
Friday: Continue developmental work. Update blog.

Week 2 (Nov. 25 - 30):

Mon: Create models/sound files for Trailer used for developmental work with Photoshop
Tues: Find out about the “bid process”. Use research to complete assignment. Update blog.
Wed: Continue work from Tuesday, Mentor update. Continue developmental work.
Thurs: Continue developmental work.
Fri: Continue developmental work by beginning animation. Write up Plan of Procedure
Update blog.

Week 3 (December 3 - 8):

Mon: Developmental Work
Tues: Update blog.
Wed: Mentor update, use contact info to begin programming.
Thurs: Use Level designs, animations to begin preliminary game design
Fri: Continue work form Thursday. Update blog.

Week 4 (December 11 - 15)

Mon: Finish developmental work.
Tues: Continue game design, Math/Science Analysis. Update blog.
Wed: Mentor Update to ensure my coding is adequate.
Thurs: More work on Game Design.
Fri: See Thurs. Update blog.

Week 5 (December 18 - 23):

Mon: Post Trailer.
Tues: Update blog by submitting Developmental Work.
Wed: Final Mentor Update for marking period. Print contacts and submit to instructors.
Thurs: Work on game design.
Fri: Update Webblog.

Week 6 (January 2 - 7):

Mon – Fri: Submit “Bid Process”. With all assignments now submitted, prepare for Presentation by writing outline.

Week 7 (January 11 - 14)

Mon. – Fri: Presentations. Marking period ends this week.

Thursday, November 1, 2007

Model

Under construction....





The following scenes give an idea as to the nature of the final product. They show the general relationships between the different objects within each landscape.

Final Selection


So in making a final selection, all of the above choices have their pros and cons. For this reason, it is difficult to reject the positive points of some and retain the negative aspects of another. Therefore, the final solution will not be one of the above choices listed, but instead an amalgamation of the positive aspects of each selection, in an attempt to create the most positive gaming experience.
This final game design will be called Willowbrook. Like High School, it will be a role-playing game, however, it will not contain any real-world elements and thus won’t be bound by the same creative limitations. Like Street Racer it will include the ability to utilize vehicles as an important element of game play, however, these will not be the central focus, so that their implementation will not be held to the same standard as other games of that genre. Just as Invasion uses 2D elements and an alien-driven storyline, this final solution will also place the main character in a similar situation, without relying on the simplistic and overdone arcade style of gaming.
Willowbrook will be a third-person, side-scrolling RPG that will incorporate 2D animated cutscenes, and first-person views of interior scenarios. In this game, the player takes on the role of Hal, an ex-garbage man who uncovers the ancient secrets of the town of Willowbrook. These secrets tell of an alien invasion that is coming, and through a series of puzzles, dungeons, and boss battles he must gather seven mystical stones to power a planet-wide force field that will protect the Earth from this incursion.
Ultimately, Willowbrook is a sound idea, since it incorporates the best aspects of each of the alternate solutions, and with its quirky graphics and unique storyline has the capacity to impress the modern video gamer.

Selection 3


The final idea would be titled Invasion. This game would be similar to the classic arcade game, Space Invaders, in which the player must stop an alien incursion by destroying the incoming vessels before they are able to land. You gain points for each unit destroyed, and lose points for every one that lands. If too many enemies make it through your defenses, you lose.
Because of the simplicity of the design, and the reward-based system of advancement, the game has an extremely high replay value. Since each level gets progressively as your point score increases, the only limitation is the skill level of the player. However, despite this, such a game concept has been played out over countless generations of the medium, and players would be less receptive of a new entry into the field. Also, like most “classic” games, the repetitive actions become a drain on enjoyment after continuous playing.

Selection 2


For the next idea, known colloquially as Street Racer, the player finds himself in the shoes of “Ricer X”, a mysterious driver, who rules the midnight streets. To win, the player must buy and tune an assortment of classic and modern cars in an effort to go faster than all opponents. In this way, you will win an assortment of prizes and trophies, unlocking additional maps and customizations to enhance the experience farther.
Again this title has its positive aspects. It would be fairly easy to design the vehicles and road courses, and the gameplay would be intense and exciting. However, such a concept already saturates the market, and there would be little enthusiasm for a new challenger to the field. Also, with most comparable titles sporting high-resolution three-dimensional graphics and realistic physics, a 2D side-scroller would just seem anachronistic.

Selection 1


High School

The first idea, titled High School, as the name suggests was an RPG simulator of the high school experience. In this game, the main character had the freedom to make a wide variety of choices to influence his or her future. Depending on the choices the player makes, the character can either end up as wealthy and successful or a hopeless, spatula-jockey. Their ultimate fate is determined by how their total deeds add up. If they study hard, help others, and take care of your body, you will be granted positive respect from your peers. If you essentially do the opposite, you will receive negative respect. Therefore, the key strategy to this game is balancing positive and negative acts to ensure your success.
This title, although an interesting concept, would prove tedious to implement. A high school simulation does not allow for the freedom of creativity that the other ideas present, for when placed within the constraints of “school-appropriateness”, many of the ideas that high school students flirt with are way outside those boundaries, and thus the game would be limited to a sanitized version of the complicated relationships between students, their peers, and the obstacles they face on a day-to-day basis. For this reason, it is best to simply avoid the headache all together.