A3: a persuasive arcade game
The template repo isn’t available yet (it’ll be available by the end of week 6), so make sure you come back and read this page carefully at that time (it’ll be basically the same, but some of the details may have changed).
Outline
- Due: 9pm Monday September 24 (week 8)
- Mark weighting: 10 marks
- Submission: submit your assignment through Gitlab (full instructions below)
- Policies: no late submissions accepted; for other policies (e.g. academic integrity) see the policies page
Description
Back in the day, the video game arcade offered a simple value proposition—you put your money in, and you had all the fun of playing the game for a short time (or a long time if you were really good). Pong, Pac-man, Space Invaders, Asteroids,Frogger, Donkey Kong; these classic games have stood the test of time (and spawned a million imitations).
But in 2018, simple funtimes aren’t enough—we demand more from our entertainment, including our games. Persuasive games1 are all about changing peoples minds (on whatever topic) through playing a game, and there are many examples of games successfully doing this.
Your task for this assignment is to put a new twist on a classic arcade game (e.g. one of the ones mentioned earlier) to turn it into a persuasive game. You get to choose what you’re trying to persuade the player of, and you must explain your “persuasion goal”, the game you’re taking inspiration from and the design process in your artist statement.
Your game doesn’t have to be fancy or complicated, the most important thing is to balance the goals of providing fun interactive gameplay with genuinely persuading the player of your cause; (potentially) changing the player’s mind on something. If you have questions, discuss them with your tutor or on the COMP1720 forum.
Getting started
Here’s the process for working on the assignment:
- fork & clone the assignment 3 repo
- make a persuasive arcade game sketch in
sketch.js
- as you go, commit and push your progress to the GitLab server
As in the other assignments, the assignment 3 template repo sketch.js
has some (minimal) starter code. There’s a submission checklist below to help you make sure you’ve completed everything you need to in your submission. Remember to take advantage of the Git help in the FAQ.
Requirements
Your assignment 3 submission must be an arcade game with:
- interactive gameplay (mouse, keyboard or both)
- simple instructions (for the player) on the screen where necessary
- a score counter
- a hi-score display
- a reset button2, to reset the game state & score so the player can try again (but don’t reset the hi-score!)
- an
artist-statement.md
(max 500 words this time, to give you more room to explain where you’re coming from) describing your persuasive game - a
statement-of-originality.yml
describing any inspiration/assets you got from other places
In addition, your goal is to persuade the player of something—not just to entertain.
The artist statement
Your submission must include a short (max 500 words) artist statement. You won’t receive a separate mark for the artist statement, but it will be used to help evaluate your game. So make sure you use it to (briefly) talk about things like:
- which classic arcade game is your work based on?
- what are you trying to persuade the player (viewer) of? what’s the background to this? how did it affect your design process in making this assignment?
- how have you tried to balance making it look beautiful/be persuasive/fun to play?
- how have you tried to engage the viewer/player in your game experience, and how do you keep them engaged?
Submission process
Here’s the process (again, remember the Git help screencast videos)
- fork the assignment 1 template repository from the CECS GitLab server
- clone3 & work on your fork of the assignment 1 repo, regularly committing & pushing your changes to the GitLab server
- at the submission deadline, the latest commit4 pushed to the GitLab server(not on your local machine!) will count as your submission
One thing to note is that there are some “checks” which the GitLab server runs to help you out. So if you get a pipeline failed email, then have a look at the FAQ.
Submission checklist
- my project satisfies the requirements
- my completed assignment has been pushed to the GitLab server, and all the required files (your versions of
artist-statement.md
,statement-of-originality.yml
andsketch.js
) have made it to the server - my
statement-of-originality.yml
file includes all the required references/acknowledgements, and everything not mentioned in there is my own work - my sketch works when viewed in Chrome on the lab machines at the test URL (http://comp1720.cecs.anu.edu.au/uXXXXXXX/assignment-3/, with
uXXXXXXX
replaced with your UID)
FAQ
You can ask a question on the COMP1720 forum in the COMP1720 > Assignmentssubcategory using the ass3
tag and if it’s popular enough I’ll put it up here.
Also, remember that there’s lots of helpful info on the FAQ page which applies to all assignments. You really should check it (and the rest of that page) out—I think it’ll really help.
So what counts as a game, exactly?
It’s hard to give a strict legal definition, but you know what a game is. As with assignment 2 it’s ok to push the boundaries—but if you’re doing that then it’s worth having a quick chat to your tutor early on in the design process to make sure you’re on the right track.
If there is any doubt about whether your submission is actually a game game, the course convenor’s decision is final.
What do you mean by “persuasive”?
The main implication is that your job isn’t just to entertain or distract the viewer, it’s to convince them of something. You should think about something you care about and consider how you might use an arcade game to change people’s minds about it. It could be as simple as “Pepsi is better than Coke” or you could choose something with more “weight”.
You need to think deeply about how to do this—if you just have a regular arcade game which occasionally pops up a “text message” that says “Pepsi is better than Coke!” then that’s really not going to be very persuasive. You should think about how you can weave the topic into the game itself (both in the visuals and in the gameplay) and have the message come out through the player’s interaction.
Be creative!
Can I choose any topic for my “persuasive” aspect?
Yep, as long as it satisfies the course code of conduct. If you’re going to pick a sensitive/controversial topic that’s ok, but make sure you think hard about how to do it in a sensitive manner. If you’re going to do that, you should talk to your tutor as soon as possible (either in person, or on the COMP1720 forum).
What’s the best way to handle key presses in a p5 sketch?
You have a few different options:
- you can test the boolean variable
keyIsPressed
(e.g. inside anif
statement) and then test thekey
orkeyCode
variables to figure out exactly which key is pressed (and then handle the situation accordingly) - you can use the
keyIsDown
function - you can define a callback function like
keyTyped
orkeyPressed
(the latter is useful if you want to take input from keys other than the regular “alphabet” keys)
Each has its pros and cons—you should read the reference for each one to decide which one is best for the type of game you’re writing. If you have questions, ask on the COMP1720 forum early. And remember the flow!
I don’t know where to start?
Here are some questions to think about to help you get started:
- what was your favourite arcade game growing up, and what did you enjoy most about it? can you turn that into a p5 sketch?
- can you take two classic arcade games and create a mash-up?
- can you use simple animations (e.g. changes of colour, opacity, strokeWeight, etc. over time) to make simple shapes come to life?
- can you use javascript objects to keep track of the “things” in your game (e.g. characters, scores, obstacles, enemies etc.)?
- can you use sound effects to emphasise interactions? (this is optional, you don’t have to have sound)
- You don’t have to buy (or even read) this book to do well in this assignment—I’m just making the point that persuasive games are a thing. ↩
- make sure you clone your own fork (i.e. the one with your uni ID in the url) to your local machine, not the template (because obviously you aren’t able to change the template for everyone—GitLab won’t let you) ↩
- it’s the master branch which counts as your submission—which is the default anyway (if you’ve just followed all the instructions then you’ve been working on the master branch all along) ↩