B CUSP 110B – Digital Thinking

Final Project: Let’s build your game!?

 

 

 

Goal: The goal of this final project is for you to synthesize your knowledge in programming:

·         variables,

·         assignments,

·         expressions,

·         conditionals,

·         iterations, and,

·         functions

in one moderately large and complex software system—a game or an animation system.

 

In addition, we will use the building of the game (or animation system) to examine some of the processes in developing a software system:

·         user requirements (or constraints)

·         conceptual/paper design and refinement

·         software design

·         prototype implementation and testing

·         final implementation and test

 

User Requirements

In a real software development project, this is where you will go interview your users and understand what they are looking for. In our case, you and your partner will be the users. To help you narrow down your design, here are some technical capabilities and requirements your system should satisfy (an “object” is either an XNACS1Circle, or XNACS1Rectangle):

 

·         (40%) Foreground objects:

o   (10%) At least one object that the player can control (e.g., pong game paddle).

o   (10%) At least one object that is animated (e.g., the pong ball).

o   (10%) The above objects must have some interaction (e.g., collide, or, if the movements of one object affects the others)

o   (10%) None of the foreground objects can leave the game window. E.g., the objects should either bounces off the window boundaries, or, upon leaving the window boundaries something should happen (e.g., score updated, the object is randomly re-generated somewhere in the game window).

·         (10%) Background decoration: in addition to the above foreground objects, your game should display interesting looking objects in the background. Background objects are just that, stay in the background for decoration purposes only. E.g., the bullseye objects we created can be considered as background objects because after the creation we do not interact with them.

 

·         (10%): include interesting custom texture images

 

·         (Extra 2%): include custom audios for your system.

 

Based on the above technical requirements, you are free to design any system you like: some sort of game, or, a simple animation system. We have already seen example of a game (the pong game). For a simple animation system, for example, you can have the user manipulating a magic ball that controls the height of one or two rectangles. If the user moves the ball upwards, the rectangle lengths will grow, and if user moves the ball downwards the rectangle lengths will shrink. Now, you can put interesting textures over the ball/rectangles and you have an interesting animation system!

 

 

Conceptual/Paper Design (10%): (Due Nov 14)

 

With a partner your paper design will include:

 

·         (3%) A sketch of what your system will look like, including the dimension of the window size

·         (3%) The size of the foreground objects and how the user will control these objects

·         (2%) What are the background objects will look like

·         (2%) Examples of images you will use for your foreground and background objects

 

For example:

 

The above image include two designs (remember, you only need to design one system), the top/left for the pong game, and the bottom/right is for the magic ball animation system. In your paper design you can choose to draw with freehand, or, use a word processor. In all cases, please be neat and make sure people can read your writings clearly!! You should submit both a print out _and_ an electronic copy to the e-submit.

 

 

Software Design (15%): (Due Nov 21)

In software development, we never start by typing in programming code. We always think about and plan out what we want to do, write our code down on paper, carefully examine the code on paper, make sure everything makes sense, and then do we begin typing in the code. You will follow this step by show me your programming consideration on a piece of text file (name it, YourNames.txt, e.g., KelvinAndPartner.txt), e.g., for the pong ball example:

Notice, in the paper software design we do not have to worry if there are syntax errors (e.g., forgetting the annoying “;” is ok). This has the wonderful advantage of allowing us to focus on the logic of the system. It is very important that you do not try to “typing and run” your code at this point. You want to focus on the logic of your system and not get distracted by the detail syntax. You want to go over the code on paper and think through how your program will behave!

 

 

Prototype Implementation (15%): (Due Nov 28)

 

This will be your first actual implementation of your system. At this point you should see what your system will look like. Your user should be able to control the foreground objects, and the foreground objects should interact (if not completely correctly).

 

 

Final Implementation (60%): (Due Dec 7)

You must be done by this point. With everything working correctly!