- Conduct a collaborative software development project.
- Solve problems and design software solutions using a high-level programming language and a range of technologies, protocols and algorithms.
- Build a program with visual elements.
- Reflect on the work of other and provide feedback.
The video game Asteroids is an arcade classic that was originally developed in 1979 and played on arcade gaming machines. Over years there have been many re-makes of this game with many upgrades to the graphics and features on more sophisticated machines.
The concept for the game is simple - there is a small ship that the player can move around the screen that can fire projectiles. Asteroids, represented by some sort of random polygon shape, drift around the screen. The aim of the game is to destroy the asteroids with the projectiles that the ships fires. This may not be so easy because when large asteroids are hit with the ships projectiles, they break into smaller asteroids that fly off in random directions. If the any of the asteroids hit the ship, it is destroyed.
The gameplay for the original can be seen here
Your task is to work in your team to develop your own version of the asteroids game using the Processing environment. The specific implementation details are up to your group, but your game should at very least have:
- The "ship" that can shoot projectiles.
- Asteroids that move around the window that can be shot and destroyed.
- Some sort of scoring system that rewards the player for shooting the asteroids.
- The game should reset (and potentially move to a harder level) when the player destroys all of the asteroids on the screen.
All of the visual design elements are up to you. I would advise you to start simple and move up from there.
Some advanced features that might result in bonus marks include (but are not limited to):
- The implementation of vector-based motion (Do some research on using the
PVector
object. - Implementing additional types of projectiles for your ship.
- Implementing the alien ships that periodically attack.
- Advanced Visual elements such as explosion effects when an asteroids is destroyed.
- Sound effects (do some research on implementing these).
- Be creative - anything impressive beyond the basic functionality will get extra marks!
This part of your assignment is broken into three tasks:
- Create an Overview video of your implementation
- Critique 3 other groups overview videos and provide a text-based response.
- Respond to the critique of your implementation.
Along with the submission of your code, your group will also need to record a short video that demonstrates your game in action and walks through how you have implemented the various features. You should describe your design decisions the led to your implementation. You should also outline which parts of the project were contributed by each team member and how you overcame any challenges faced through the project.
Don't include this video in your in the zip file of your submission - Upload your video to one of two cloud video providers:
- YouTube (recommended). You can make your video "unlisted" but not "private"
- UNE's Kaltura video system. In Moodle, go to Moodle Home → My Media
Copy the URL of your video, and paste it into the Overview Video task.
The links to these videos will be distributed using a little system that Will Billingsley wrote. This system will schedule which students should record critiques / replies to which other students. There will be a task link in Moodle to the Overview Video task along side the assignment.
After the due date for assignment, a second task will open, called Critique Overview Videos. This will be available from the under the assignment link. This will automatically allocate your groups some other groups' videos to watch, and ask you to give some advice back to them. Please make your feedback constructive, specific, actionable, and helpful.
As we'll discuss in class, this isn't just so you can give each other advice, but also so you get exposed to the problems and projects your classmates are working on, and can learn from reflecting on their experiences too.
Remember, this being done as a group, so there should be one response per video for each group (not each person)
Shortly after the due date for Critiques, a third task will open: Review Your Critiques. This will show you all the critiques you received, and ask you if they are constructive, specific, actionable, and helpful.
Assessment groups have been assigned in moodle and can be view the Groups forum
- Please make sure that you introduce your self in the forum as soon as possible so that you can discover who you are working with.
- If wish to exchange email addresses/phone numbers for direct communication you can, however there is no requirement for you to do so.
You should also sign up to the COSC101 teamwork site hosted on slack. Make sure that you sign up with your myune email address. This is a team working communication application that will allow you to communicate with your other team members. Note that team members must sign up for you to communicate with them over this medium.
Your submission will consist of three parts:
- The first part will consist of you implementation in Processing. This should be submitted as a .zip archive via the moodle submission system.
- The second item in your initial submission is the video link for your overview.
- After all assignments are submitted, you will complete the critique task.
- Once the critiques are complete, you will review your critiques.
Implementation - 80%
Components in this section include:
-
Solution Correctness:
- Are all of the basic components implemented?
- Is there any "buggy" behaviour?
-
Quality of Solution:
- Is your code broken down into functions (e.g. not more than about 60 lines - excluding braces, comments and whitespace)
- Have you generated general-purpose/reusable functions?
- Does the code run without errors/warnings?
- Have you avoided the use of hard-coded values?
-
Coding style:
- Is your indentation consistent?
- Have blank lines been used so that the code is easy to read?
- Are any lines longer than 80 characters (i.e. off the end of the screen)?
- Are capitalisation and naming conventions consistent?
-
Internal Documentation:
- Does your header block contain the author's name, the purpose of the program and a description of how to compile and run the solution.
- Are variables and functions named in a meaningful way?
- Are any obscure sections fully explained?
- Do your function have a header block that explains the purpose, its arguments and return value?
Video Review - 15%
Components in this section include:
- Is the video quality is suitable for viewing your solution.
- Is the Speech is clear and understandable?
- Have you covered the key point in your implementation?
- has each member contributed to the project?
Critique of One other groups video - 5%
- Was your video useful/helpful for the other groups?