Project Handout
In the second course project, your task is to create a game with Flutter. There are requirements for the features that the game must have, but otherwise topic of the game is open-ended (i.e., you can choose the topic of the game yourself).
Clarification in December 2024: Use Flame as the engine for the game.
We have also provided some topic suggestions.
Project requirements
There are a handful of requirements for the game, which must all be fulfilled for the game to be considered as complete. The requirements are as follows:
-
The game idea is clear and there is a purpose in the game.
-
The game has a start screen, a level selection screen, a game screen, and a result screen. The navigation between the screens is intuitive.
-
The screens are responsive and there is at least one breakpoints that influences the layout. In addition to the breakpoint, the application features a maximum width that is used to limit the width of the shown content on devices with a high resolution. For the game itself, it is sufficient to create the game in a way so that the size of the components is adjusted based on the screen size (e.g. using CameraComponent’s withFixedResolution constructor).
-
The game has at least three levels that the player can complete. The levels are different from each other in some sensible way.
-
The player’s progression is saved, i.e. the levels that the player has completed are saved between application restarts.
-
Playing the game does not require a keyboard or a mouse (i.e., it could be played with a touchscreen device).
-
The game has been deployed to an online location, and the online location is shared in the project documentation. When accessing the online location with a modern web browser, the game can be played.
For deploying and releasing a Flutter application as a web application, see Flutter’s documentation focused on building and releasing a web application.
As an extra objective that is not a requirement, you may try to create the game so that it can be interacted with using device sensors. As a starting point, see e.g. sensors_plus package. Note that the package works only on a subset of devices.
Topic suggestions
Although you can pick the topic yourself, here are a few ideas that you could use for the game. These also help considering the expected scope of the project:
-
A Maze game that allows you to roll a ball through a maze
-
A Memory game that allows you to flip cards and find matching pairs
-
A Platformer game that allows you to jump around and collect items
Deliverables
The project is returned as a zip file that contains the source code for the game and the documentation. The documentation is written in Markdown syntax) in a README.md file that is returned in the zip file. The documentation should include the following:
- A description of the application idea and purpose
- The URL at which the application is deployed
- Brief instructions on how to use the application
Note that the returned zip file should not include non-plaintext files (such as images, pdf-files, etc). That is, if you use assets in the game, omit them from the returned zip. The submission format must follow the same structure of the template zip, although naturally additional files and folders are accepted.