18/10/2020 App Development Project
App Development Project
Submit Assignment
Due 6 Nov by 23:59 Points 550 Submitting a file upload Available until 7 Nov at 1:00
Assessment
Weighting:
55%
Due date:
Monday SWOT Week (2nd Nov)
Summary:
You will plan and develop a multi-player mobile app/game for the game “tag (https://en.wikipedia.org/wiki/Tag_(game)) ” using event driven and reactive
programming techniques.
You will log your development progress using the Web Submission System’s logbook, and use version-control to manage your code.
Your work will be reviewed and graded by a marker.
Reminder
Be sure to review the Key Requirements, Submitting your work, and Assessment sections.
App Descrip on
Programs with user interfaces/inputs are a common instances of event driven systems in software development.
For this project you will be implementing a mobile app/game for the game “tag (https://en.wikipedia.org/wiki/Tag_(game)) “, in which a player either has to either chase and catch other players, or avoid the player who is chasing them.
Your game should have the following features:
Intuitive controls
Cross platform; will need to be able to work on Android, iOS (and optionally desktop) Multiplayer; players should be able to play together
At least 2 power-ups:
https://myuni.adelaide.edu.au/courses/54568/assignments/184189
1/5
18/10/2020 App Development Project
https://myuni.adelaide.edu.au/courses/54568/assignments/184189
2/5
Each power-up should change the gameplay for the player that collects it, e.g. move faster, become invisible etc.
Each power-up should function differently depending on whether a player is chasing or avoiding.
An example of a more complex version of this type of game could be https://agar.io/ (https://agar.io/) (your game should be much simpler)
Your task
Your task is to plan and implement the system described above.
Planning your system
Decide on controls/inputs & gameplay.
How should a typical round/match of this game be played?
How does the user interact with the game?
How do these interactions change depending on powerups and chasing vs. avoiding i.e. the state of the player.
Record any plans, diagrams, challenges and other details in your logbook. Decide on protocols for multiplayer
What information needs to be sent to other players/clients for them to interact with your player? What information needs to be received by your client to interact with other players?
How will you process these streams of data?
Record any plans, diagrams, challenges and other details in your logbook.
Implemen ng your system
Setup NodeJS and Apache Cordova
Start by installing and setting up NodeJS and Cordova
see the NodeJS and Cordova setup guides linked below
Use JavaScript and Apache Cordova to develop your basic app implementation
Create and test a basic Cordova app
see the Cordova “Creating your first app” guide linked below
Next add and test basic functionality and controls for your player. Use NodeJS and RxJS to implement multiplayer
Finally develop the multiplayer implementation.
Create a NodeJS server
Use RxJS to handle communication between your app and the server
See the example listed in the extra resources below and at the end of the textbook for a rough guide.
If you get stuck, ask on Piazza. You can also review the examples and tutorials in lecture notes, modules, and the Mastering Reactive JavaScript book. Feel free to discuss and plan with your peers, but write the code yourself.
18/10/2020 App Development Project
https://myuni.adelaide.edu.au/courses/54568/assignments/184189
3/5
Record any plans, diagrams, challenges and other details in your logbook.
Key Requirements
Be sure to adhere to the following requirements.
Not doing so may result in a reduction or complete loss of marks.
You must record your planning and progress using the Web Submission system’s logbook feature
You must develop and store your work using one of the following version control systems
Our School’s SVN (the one you’ve been using for the programming exercises) Our School’s GitHub (https://github.cs.adelaide.edu.au/ (https://github.cs.adelaide.edu.au/) )
You must demonstrate (by following the above requirements) that this is your own work that you have developed yourself. Failing to do so will result in a mark of 0 for this assignment.
You must use JavaScript, NodeJS and RxJS
You must use the Apache Cordova framework to develop your app.
The app must run on the Android platform, and should be compatible with iOS (and
optionally desktop via electron)
You must apply and demonstrate the concepts covered in this course when planning & developing your system, including (but not limited to) FSMs and Reactive Programming. You are not expected to use complex graphics, 3D engines etc; this can be as simple as dots/squares moving around.
Submi ng your work
Your research/planning
As you research, plan and develop your work, write entries to the Logbook (see below) Transition diagrams and tables from your planning should also be written into the Logbook Any other files should be included with the implementation files you submit
Your Implementation
Zip your code and any other relevant files and upload the zip to this submission. Be sure to include any relevant instructions on how to build/run your app.
Also include a pre-built APK file for your app.
Late submissions will be capped by 25% per day according to the school’s late submission policy.
Assessment
You will be marked out of 550 according to the marking rubric (available below soon).
Addi onal Notes/Resources
18/10/2020 App Development Project
Using the Logbook
Your logbook is the way you reveal your development process to us and yourself.
The web submission system (https://cs.adelaide.edu.au/services/websubmission/) will show a
link to your logbook on the “View Feedback” tab of each assignment.
The logbook should meet the following guidelines:
The logbook must have clearly been written by you while you were developing your project. As such it should contain:
Your initial thoughts about solutions or how things work.
Your plans for what you will do next.
The results of your tests and investigations.
Initial drafts of solutions including statements of what you know and what you don’t know. Reflections, ie useful observations, resources, patterns you have observed, statements of your current understandings and reflections on what you have done.
Your mistakes! – this is really really important – writing about your mistakes is a good sign! It must be written as a series of entries in the logbook for the assignment that is linked to by the web submission system.
Do not prepare logbook entries in advance or after the fact, they must be entered as you complete your assignment directly into the logbook’s web page.
Lots of short entries are acceptable.
Scans or photo’s of hand drawn diagrams can be uploaded as logbook entries.
On some phones, the “choose file” button will also let you take a photo and upload that immediately. Please take photos in landscape mode.
If you submit a hand drawn diagram your handwriting in the annotations has to be readable – it doesn’t have to be neat – it just has to be readable.
Do not upload text and a scan or photo at the same time. Do this as two entries.
Most importantly, it is a working document, it should contain content that can help you with your process.
If you find yourself writing your logbook after you’ve written your code then you are not using it correctly. The marker view of the logbook contains an interleaved record of your svn commits and submissions to the web submission system. Please perform an svn submission before making new entries in your logbook. This will demonstrate that you were writing your logbook entries as you were completing your assignment.
Your logbook entries cannot be edited, rewritten or redrafted. The logbook should just contain your thoughts and the notes you made while you were working on your project! It is OK to end up with lots of small logbook entries. We want to see your work in draft form in your logbook as you complete your assignment.
Se ng Up NodeJS and Cordova
https://myuni.adelaide.edu.au/courses/54568/assignments/184189
4/5
18/10/2020 App Development Project
NodeJS Installation and Getting Started (https://nodejs.dev/) Apache Cordova Installation and Getting Started (https://cordova.apache.org/docs/en/latest/guide/cli/index.html)
Addi onal Resources
RxJS Examples (https://www.learnrxjs.io/learn-rxjs/recipes)
https://myuni.adelaide.edu.au/courses/54568/assignments/184189
5/5