{"id":15164348,"url":"https://github.com/adrian-kumpe/battleship","last_synced_at":"2026-02-11T16:37:48.232Z","repository":{"id":254248489,"uuid":"808068926","full_name":"adrian-kumpe/battleship","owner":"adrian-kumpe","description":"Multimodal two-player Battleship game with point-and-click, keyboard, voice and gesture control.","archived":false,"fork":false,"pushed_at":"2024-09-23T08:55:35.000Z","size":2282,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T05:33:18.649Z","etag":null,"topics":["phaser","socket-io"],"latest_commit_sha":null,"homepage":"https://battleship-client-d33f65950bf0.herokuapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrian-kumpe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-30T10:14:48.000Z","updated_at":"2024-07-23T11:13:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"487866da-8980-411a-9682-283341fdbd1f","html_url":"https://github.com/adrian-kumpe/battleship","commit_stats":{"total_commits":49,"total_committers":3,"mean_commits":"16.333333333333332","dds":0.2857142857142857,"last_synced_commit":"8b49a1d146901f64a1548ccc67e9f09e7c8d2b75"},"previous_names":["adrian-kumpe/battleship"],"tags_count":0,"template":false,"template_full_name":"phaserjs/template-webpack-ts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrian-kumpe%2Fbattleship","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrian-kumpe%2Fbattleship/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrian-kumpe%2Fbattleship/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrian-kumpe%2Fbattleship/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrian-kumpe","download_url":"https://codeload.github.com/adrian-kumpe/battleship/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238075245,"owners_count":19412300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["phaser","socket-io"],"created_at":"2024-09-27T03:04:31.040Z","updated_at":"2026-02-11T16:37:48.226Z","avatar_url":"https://github.com/adrian-kumpe.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"- Install the `git-hooks/pre-commit` Git Hook to ensure synchronization of `client/src/shared/models.ts`, `server/src/shared/models.ts` and `haptic-client/src/shared/models.ts`\n   - Needed because Heroku subdir buildback can't access a shared file in the root of the repository\n- client: https://battleship-client-d33f65950bf0.herokuapp.com/ \n- haptic-client: https://battleship-haptic-client-09adcce9058a.herokuapp.com/ \n\n\n# Exercise Multimodal User Interfaces (MBO)\n\nThis game was created as part of the exercise of [Multimodal User Interfaces](https://tu-dresden.de/ing/informatik/ai/mci/studium/lehrveranstaltungen/multimodale-benutzungsoberflaechen).\n\n## Development\n\n- [Node.js](https://nodejs.org) is required to install dependencies and run scripts via `npm`\n- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) is used to consistently format code\n- Install the `git-hooks/pre-commit` Git Hook to ensure synchronization of `client/src/shared/models.ts` and `server/src/shared/models.ts`\n\n### Available Commands\n\n| Command         | Client                                         | Server                              |\n| --------------- | ---------------------------------------------- | ----------------------------------- |\n| `npm install`   | Install project dependencies                   | Install project dependencies        |\n| `npm run build` | Create a production build in the `dist` folder | Create a build in the `dist` folder |\n| `npm start`     | Launch the production build                    | Launch the build                    |\n| `npm run dev`   | Launch a development web server                | Run build and start                 |\n\n### Alexa Skill\n\nVoice control for Battleship is facilitated through a custom skill for Alexa. The repository [battleship-alexa-skill](https://github.com/adrikum/battleship-alexa-skill) can be imported into an Alexa Skill. The code will then be hosted in an AWS repository. Changes can be pushed to the GitHub repository as follows: `git push https://github.com/adrikum/battleship-alexa-skill.git master`\n\n## Summary of Exercise Tasks\n\n### First Exercise Task\n\nDesign and implement a simple point-and-click game (battleship in this case), with the aim of making the application multimodal, specifically enabling voice control.\n\n### Second to Fourth Exercise Tasks\n\nImplement voice control for your game by using the Alexa Skills Kit (ASK), which involves creating an Alexa skill with intent handler functions and setting up a REST interface for the game (we just use a short socket.io connection) to receive commands from Alexa. Enhance the Alexa skill with advanced features such as speaking styles or speech emphasis.\n\n### Fifth and Sixth Exercise Task\n\nExpand the game application by adding mouse-based/touch-based gesture control. Implement gesture recognition using Dynamic Time Warping (DTW) to compare recorded inputs with predefined templates. Implement a slot-based system to combine point/click, voice, and gesture inputs and to ensure synchronization.\n\n## Credits\n\n- \"Battleship\" ([#4933109](https://thenounproject.com/icon/battleship-4933109/), [#4932475](https://thenounproject.com/icon/battleship-4932475/), [#4932489](https://thenounproject.com/icon/battleship-4932489/), [#4932484](https://thenounproject.com/icon/battleship-4932484/)) by [Hey Rabbit](https://thenounproject.com/creator/heyrabbit/) are licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)\n- \"[Pencil](https://thenounproject.com/icon/pencil-6467333/)\" by [HideMaru](https://thenounproject.com/creator/hiddemaru/) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)\n- \"[explosion](https://thenounproject.com/icon/explosion-6665475/)\" by [laili hidayati](https://thenounproject.com/creator/lailikepanjen/) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)\n- \"[Walkie Talkie](https://thenounproject.com/icon/walkie-talkie-897082/)\" by [Andrejs Kirma](https://thenounproject.com/creator/andrejs/) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)\n- \"[captain](https://thenounproject.com/icon/captain-6129970/)\" by [Nattapol Seengern](https://thenounproject.com/creator/bankseengern/) is licensed under [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)\n- \"backgorund image ocean\" by macrovector on Freepik (https://www.freepik.com/free-vector/empty-underwater-blue-shine-abstract-background-light-bright-clean-ocean-sea_10601804.htm)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrian-kumpe%2Fbattleship","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrian-kumpe%2Fbattleship","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrian-kumpe%2Fbattleship/lists"}