All time are in PST and this game is made in Processing / Java Processing 4
Game Proposal (5 pts) Due: Mar 15 11:59pm
coding:
Milestone 1 (8 pts) Due: Mar 22 11:59pm
Milestone 2 (8 pts) Due: Mar 29 11:59pm
Final Code (80 pts) Due: Apr 5 11:59pm
Video walkthrough (5 pts) Due: Apr 6 11:59pm (Will be done by Me)
Assignment 4 – Design and Develop a Game at Your Choice Game Proposal (5 pts) Due: Mar 15 11:59pm Milestone 1 (8 pts) Due: Mar 22 11:59pm Milestone 2 (8 pts) Due: Mar 29 11:59pm Final Code (80 pts) Due: Apr 5 11:59pm Video walkthrough (5 pts) Due: Apr 6 11:59pm Follow-up Quiz (6 pts): Due: Apr 8 11:59pm (Accounting for 20% of your final grade) 1. Submission 2. For the program, each class MUST be saved in a separate file (aka tab). Name of the file should be the same as the class name. 3. Zip the Project Folders (MUST be the folder NOT individual files) into a single Zip File. Rename the zip file using a naming convention: LabNumber_Lastname_Firstname_A4_Final_studen ID.zip, e.g. E104_John_Smith_A4_Final_1234567.zip, and then upload it to the Canvas before or by the deadline.\ (Please note, -0.5 will be deducted for each violation of the rules specified above) 4. Upload the single zip file to the Canvas before or by the deadline. 5. Before the deadline, you are allowed to take back and resubmit if you feel necessary. 6. No late submission will be accepted. If you do not complete the assignment by the deadline, you will receive 0. a. For a legitimate reason a late submission might be allowed pending discussion with your TA before the deadline. You may be required to provide the supporting documents. 7. Your code must be able to run to get marks. You’ll get 0 if it crashes in launching, and get deduction of at least half of the total grade if crashes in the processing of gameplay. 8. Overview This is an open ended assignment, for which you are expected to create a game of your very own from ideation, going through iterations of milestone, to the final code*. For this assignment, you are required to follow the game design process and MDA framework (covered in Week 9) to design and develop a game that integrates game design theories, computing concepts and media processing techniques that you learned in this course. * Please note: you must submit the proposal and at least two milestones among the three in order for your final code to be accepted for grading You are expected to be creative or innovative, try to create a game that you haven’t done in the course context yet, such as a game of a genre that is other than whacking or shooter type of game, which you have done already. It’s highly appreciated that you will create a game of a different genre e.g. RPG, adventure (exploration and puzzle solving), strategy etc. If you still want to create a whacking or shooter type of game, we demand that you must do it innovatively. Specifically, it must involve with gameplay in an environment that is significantly different from what you have done in Assignment 2 and 3, for which either platforming or tile-based environment is highly recommended, and we will cover both of them in our class down the road, although you are welcome and encouraged to explore and come up with your own way of innovation. 3. Requirements: 3.1 Programming Requirements • Each of the items involved in the game must have its own class to represent, such as player character(s), enemies, boss(es), projectiles, power-ups, health-packs, inventory, just name a few. If some of these items share something in common, superclasses must be defined to hold those common properties and behaviors • Use typed ArrayList to hold item collection wherever it makes sense (when you want to dynamically add or remove objects) • Use PVectors for any motion modeling (position, velocity, acceleration) • ALL the characters and items must use images (Created by you using certain application e.g. Photoshop. If you use any of the images and sounds downloaded from the internet, you must list references appropriately in your final report. Please note we highly encourage that you create your own images for the game, and will reward it with some credit (minor though) when it comes to the final evaluation. Apparently using non-self-made images won’t be qualified for the credit as such) • At least four image based animations that are sensible to the gameplay: such as animated background (low credit), explosive effect (low credit), character walking with steps (high credit), bugs or birds flying with wing flapping (high credit), …, etc • There should be basic sound effects for both interactions and ambient or background music using the Minim library And your code must demonstrate application of the following concepts: • Inheritance o You must define at least two superclasses, each of which is extended by at least two custom classes (i.e. classes defined by you rather than any built- in class or third-party class) o You must define at least one sub-sub class (i.e., a class extends a superclass that itself is a subclass of another custom class) o Each of the subclasses must have their own fields and/or methods (or overriding parent’s methods) beyond their parent classes • Overriding Polymorphism (i.e. parent class’ method is redefined by its child class(es) with the same signature) o You must have at least four methods overriding their parent classes’ methods o The child’s method overriding parent’s method must go beyond simply calling the parent’s method using “super.” – i.e. it must have its own code on top of it • Inclusion Polymorphism (i.e. using superclass typed variable or parameter to reference subclass object) o You must have at least one inclusion polymorphism that is implemented either with a superclass typed ArrayList to hold mixed objects of its subclasses, or a method using superclass as the type of its parameter so as to allow it to take an instance of any of its subclasses • Containment (aka Aggregation) (i.e. a single object or collection of objects of a class is included as a field of another class, forming a ‘whole-part’ relationship) o You must have at least one of your custom class that holds as field one or a collection of objects of another custom class (Please note although main sketch will have feature similar to this, however it doesn’t count here as it’s not really a class) 3.2 Coding Style Requirements • Must use Processing’s native library and libraries bundled with it such as minim and controlP5 (for GUI) for sound and GUI. NO other 3rd party library is allowed • Commenting code o Every class must be commented with a block comment above it for what it is about and what it does o Fields (except for very obvious ones like pos, vel, acc, width, height) that are not intuitively clear to the reader must be commented for what it will be used for o Every method must be commented, beyond appropriate inline comments within its body, with a block comment above it to tell: what it does, what the parameters are and what they are for • Follows strict naming convention for classes, methods and variables o All class names must start with a capital and each additional word in the name is capitalized (i.e. camelCase) o All method names begin with lowercase and each additional word is capitalized (i.e. camelCase) o All variables names begin with lowercase and each additional word is capitalized (i.e. camelCase) o ALL NAMES should be clear titles representing what it is (i.e. descriptive) 3.3 Design Requirements • Gameworld, characters and items (e.g. weapons, ammos, collectibles etc.) must be designed nicely using appropriate images and fit to the theme of the game • Start screen(s) with info about how to play your game and background story • Game over screen with winning or losing message plus appropriate background images and/or animations respectively upon if the player wins or loses the game and allowing player to replay • GUI of some kind that presents some information to the player about the state of the game, e.g. HUD elements (showing health, score), minimap, inventory screen, a progress bar/time remaining screen, etc. • A game with at least 3 different levels that escalate challenges progressively • Keyboard and/or mouse input to control player character(s) • Physics (e.g. collisions, simulation of natural forces on movement) must be accurate and realistic, and randomness (e.g. randomly generated items, movement, platforms/obstacles/tiles) is involved in the gameplay to create uncertainty for the gameplay Please note for those visual and audio related items listed above, e.g. Start screen, Game over screen, image-based animations, gameworld, character, items, sound effects etc., design styles and sensibility will matter in evaluation! That means not only you need to have them but also have them designed nicely and sensible to the context of their application. These would count on your effort and creativity and therefore would be credited as such. Last but not least, as a fully open-ended assignment, the general rule of evaluation would be: the more efforts and creativities you put into it, the more rewards you will be credited. 3.4 Follow-up Quiz and Survey Tips and Tricks • This is your game, so make sure you design something you like, while meeting the requirements! • Style counts! Make sure this game is polished and looks great • Start as soon as possible, you'll have three milestones where you will be expected to show your progress Assignment 4 – Design and Develop a Game at Your Choice 1. Submission 8. Overview 3. Requirements: 3.3 Design Requirements Tips and Tricks Assignment 4: Game Proposal (5 pts) 1. Submission and Interview Instructions • Submit it as a PDF with the naming format as follows: LabNumber_FirstName_LastName_Assignment4_Proposal_StudentNumber.pdf , e.g. E101_John_Smith_Assignment4_ Proposal_1234567.pdf, and then upload it to the Canvas before or by the deadline. • Before the deadline, you are allowed to resubmit if you feel necessary, and the last one submitted will be graded. (Please note, -0.25 will be deducted for each violation of the rules specified above) • No late submission will be accepted. If you do not complete the assignment by the deadline, you will receive 0. You will also receive 0 for missing sketch or folder. • For a legitimate reason a late submission might be allowed pending discussion with your TA before the deadline. You may be required to provide supporting documents. 2. Overview (What should you do) You are to propose a game that will fulfill all the design and programming requirements as specified in the Assignment 4 General Guidelines. Your proposal should detail EXACTLY how you will build your game including description of mechanics and gameplay design, a storyboard to demonstrate gameplay scenarios, an UML diagram to show classes and their relationships, and the estimated timeline of progression and completion. The purpose of your proposal will be to develop a description of your game concept and how it will meet the requirements (Please note we have some specific requirements if you choose to do whacking or shooter genre of game. Please refer to the general guideline for detail). As a general document that provides guidelines for future design refinement and implementation, your proposal should consider all the requirements and their implementation. Please be advised that as an initial design doc, it doesn’t have to be perfect, as it’s a normal process to refine and tweak it along the way of its design and implementation, with feedbacks from users and your own testing. However, it must meet the following requirements. 3. Proposal Requirements Write a clear and cohesive description of your game design, which should include: 1. A game title, and an overview of the game concepts (aka game idea) and the genre (platformer, action, adventure, RPG, shooter, simulation, strategy etc.) that the game falls into 2. What types of Fun (as per Marc Leblanc’s 8 types of Funs – as are covered in week 9 lecture) the game would provide to the target audience 3. System design that includes core mechanics and gameplay, and a storyline that provide context for the game. These should be designed in a way that supports the targeted funs. Specifically: • Mechanics: what can the player do in the game world? What are the basic player actions and what are their effects? (e.g., the player can jump, shoot. The player can talk to NPCs. The player can click on objects to discover secrets that