Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fwcd/lighthouse-uni-project
Arcade games for a light installation at the University of Kiel
https://github.com/fwcd/lighthouse-uni-project
cau-kiel project-lighthouse
Last synced: about 1 month ago
JSON representation
Arcade games for a light installation at the University of Kiel
- Host: GitHub
- URL: https://github.com/fwcd/lighthouse-uni-project
- Owner: fwcd
- License: mit
- Created: 2019-02-06T14:46:02.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-07-24T21:31:37.000Z (over 2 years ago)
- Last Synced: 2024-10-15T13:04:56.053Z (3 months ago)
- Topics: cau-kiel, project-lighthouse
- Language: Java
- Homepage:
- Size: 1.41 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Project Lighthouse
A collection of 2D games for a light installation at the University of Kiel, currently including:* Snake
* Breakout
* Space Invaders
* A brick puzzle game (featured below)![Photo](photo.png) ![Screenshot](screenshot.png)
## Project Structure
### Core application framework
| Module | MVC Components | Contents |
| ------ | -------------- | -------- |
| app | View, ViewController, (Model) | The main Lighthouse application. |
| shared | ViewModel, (ViewController, Model) | The graphics and animation API. |### Game modules
| Module | MVC Components | Contents |
| ------ | -------------- | -------- |
| puzzle | Model, ViewModel, ViewController, Controller | The original puzzle game. |
| snake | Model, ViewModel, Controller | The classic snake game. |
| breakout | Model, ViewModel, Controller | The game "Breakout". |
| spaceinvaders | Model, ViewModel, Controller | The game "Space Invaders". |New game modules are currently registered in [`AppViewController`](app/src/main/java/lighthouse/ui/AppViewController.java).
## Lighthouse API
To use the Lighthouse API, create a new file named `authentication.txt` inside `src/main/resources` with the following contents:```properties
username=YOUR_USERNAME
token=YOUR_API_TOKEN
```> Login at https://lighthouse.uni-kiel.de/login to generate a new API token and to see the transmitted Lighthouse grid.
## Discord API
To connect to the Discord API, create a new file named `discordToken.txt` inside `src/main/resources` with the following contents:```properties
token=YOUR_AUTHENTICATION_TOKEN
clientID=OPTIONAL_CLIENT_ID
```## UI Architecture
The application implements a variant of the well-known MVC pattern. The responsibilities are as follows:### Inputs
* accepts raw input events and sends them to a responder### Responders
* handle user input> Responders usually process a "higher-level" representation of user input (which is closer to the actual domain) rather than raw mouse events.
### View Controllers
Loosely speaking, view controllers coordinate communication between UI components. They...* assemble the subview hierarchy (by adding childs etc.)
* setup inputs, views and controllers
* observe the model and invoke the view> Note that views and/or controllers may be polymorphic (i.e. they implement an interface such as `GridView`).
### Views
* present the model### Controllers
* implement a responder for associated views (they accept user input)### Models
* contain data and domain logic> Models are completely independent from the UI code.