js javascript代写 COMP1720 A3: a persuasive arcade game

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).

arcade games

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). PongPac-manSpace InvadersAsteroids,FroggerDonkey 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:

  1. fork & clone the assignment 3 repo
  2. make a persuasive arcade game sketch in sketch.js
  3. 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:

  1. interactive gameplay (mouse, keyboard or both)
  2. simple instructions (for the player) on the screen where necessary
  3. a score counter
  4. a hi-score display
  5. a reset button2, to reset the game state & score so the player can try again (but don’t reset the hi-score!)
  6. 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
  7. 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)

  1. fork the assignment 1 template repository from the CECS GitLab server
  2. clone3 & work on your fork of the assignment 1 repo, regularly committing & pushing your changes to the GitLab server
  3. 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

  1. my project satisfies the requirements
  2. my completed assignment has been pushed to the GitLab server, and all the required files (your versions of artist-statement.mdstatement-of-originality.yml and sketch.js) have made it to the server
  3. my statement-of-originality.yml file includes all the required references/acknowledgements, and everything not mentioned in there is my own work
  4. my sketch works when viewed in Chrome on the lab machines at the test URL (http://comp1720.cecs.anu.edu.au/uXXXXXXX/assignment-3/, withuXXXXXXX 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 an ifstatement) and then test the key or keyCode 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 or keyPressed (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!

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)
  1. 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. 
  2. The reset button only needs to re-set the game state within your running sketch—you don’t need e.g. the hi-score to survive between refreshes of the whole webpage. So you don’t need to store the hi-score to the filesystem or anything like that—keeping track of it using a global variable is ok. 
  3. 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) 
  4. 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)