Game project in TDT4240 Software Architecture

Related tags

App star-battle-ntnu
Overview
logo

Star Battle NTNU

Intergalactic space warfare - Game project in TDT4240 Software Architecture

contributors forks stars open issues

View Demo


Table of Contents

About the Project

screenshot

Tech Stack

Client
Server / Database

Project Structure

.
├── README.md
├── android
│   ├── AndroidManifest.xml
│   ├── build.gradle
│   ├── res/
│   └── src
│       └── group16
│           └── project
│               └── game
│                   ├── AndroidFirebaseConnection.kt
│                   └── AndroidLauncher.kt
├── assets/
├── build.gradle
├── core
│   ├── build.gradle
│   └── src
│       └── group16
│           └── project
│               └── game
│                   ├── Configuration.kt
│                   ├── StarBattle.kt
│                   ├── ecs
│                   │   ├── Engine.kt
│                   │   ├── Utils.kt
│                   │   ├── component
│                   │   │   ├── BodyComponent.kt
│                   │   │   ├── HealthComponent.kt
│                   │   │   ├── HealthListener.kt
│                   │   │   ├── HeartDisplayComponent.kt
│                   │   │   ├── PlayerComponent.kt
│                   │   │   ├── PositionComponent.kt
│                   │   │   ├── ShieldComponent.kt
│                   │   │   ├── TextureComponent.kt
│                   │   │   ├── TrajectoryComponent.kt
│                   │   │   ├── TransformComponent.kt
│                   │   │   └── TypeComponent.kt
│                   │   ├── system
│                   │   │   ├── HeartSystem.kt
│                   │   │   ├── PositioningSystem.kt
│                   │   │   ├── RenderingSystem.kt
│                   │   │   ├── ShieldSystem.kt
│                   │   │   └── ShootingSystem.kt
│                   │   └── utils
│                   │       ├── ComponentMapper.kt
│                   │       ├── EntityFactory.kt
│                   │       └── InputHandler.kt
│                   ├── models
│                   │   ├── FirebaseInterface.kt
│                   │   ├── Game.kt
│                   │   ├── GameInfo.kt
│                   │   └── GameState.kt
│                   └── views
│                       ├── CreateLobbyScreen.kt
│                       ├── GameScreen.kt
│                       ├── JoinLobbyScreen.kt
│                       ├── LeaderboardScreen.kt
│                       ├── MainMenuScreen.kt
│                       ├── SkinScreen.kt
│                       ├── TextureHandler.kt
│                       ├── View.kt
│                       └── components
│                           ├── EndGameComponent.kt
│                           ├── ImageSlideshowComponent.kt
│                           ├── PopupComponent.kt
│                           ├── SkinComponent.kt
│                           └── SlideshowComponent.kt
├── gradle/
├── gradle.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

Getting Started

Prerequisites

  • Android device with API version 32 or later or use Android emulator
  • The device has to support Google Play Service
  • JDK 15 when running on an IDE

Installation, compilling and running

Installing on Android Studio or IntelliJ

Installing on an Android device

Comments
  • 5 Shields

    5 Shields

    Created functionality for shields - each player may create one during the game, and place it in a spot of their choice. It protects against one shot, and once it's destroyed you can't get it back. Fixes #5

    controller/logic 
    opened by TorbsT 1
  • Implement the animation phase in the play state

    Implement the animation phase in the play state

    After each player have set their hearts and positions (setup phase). The animation phase will show the shooting and if the shots hits or miss. Implement this logic.

    view/design controller/logic 
    opened by WilliamHLe 1
  • Implement the play state

    Implement the play state

    • [x] Implement the view (@Shirajuki)
    • [x] Create health component (@TorbsT)
    • [x] Create system for UFO (@Shirajuki )
    • [x] Create system for health (@macmikke) - #43
    • [x] Create system for trajectory (@kavusiks) - #41
    • [x] Create entity factory (@Shirajuki)
    view/design controller/logic 
    opened by WilliamHLe 1
  • Skin system for ships

    Skin system for ships

    For future changes and better modifiability, a system for adding/changing of skins should be implemented

    • [ ] Screen for changing ufo/ship skins
    • [ ] Add 1 more skin

    (Developer add/change the skins of UFO, hearts, and/or background) (Player wants to change the UFO skins, hearts or background)

    enhancement 
    opened by Shirajuki 0
  • Final pull request go PRRRRR (#40, #56, #64): Project/code cleanup and refactor + skin system

    Final pull request go PRRRRR (#40, #56, #64): Project/code cleanup and refactor + skin system

    This PR fixes the issue #40, #56 and #64 by refactoring the whole project as well as adding a skin system for changing user ufo skins.

    The code refactoring includes:

    • Minor bugfixes (including #56)
    • Removes unnecessary logging
    • Removes dead / unused code
    • Removes unused imports
    • Removes unnecessary imports in build scripts
    • Removes unnecessary subprojects (ios & desktop)
    • General code refactoring of "dirty codes"

    closes #40 closes #64 closes #56

    opened by Shirajuki 0
  • #52 Add correct scaling of sprites and UI elements on mobile

    #52 Add correct scaling of sprites and UI elements on mobile

    This PR adds the necessary code for scaling sprites and UI-elements to a suitable size working on most (if not all) modern mobile phones. A timer for the play state is also added along with a progress bar indicating the timer value.

    The game resolution is set to 1280x720

    closes #52 closes #47

    opened by Shirajuki 0
  • (#58) Fixed updated score and negative sign ting

    (#58) Fixed updated score and negative sign ting

    Fixed so the highscore list is in right order, and an error in updating score.

    We need the onChildRemoved in highscoreListener for when a player moves up the ranks. So the last player can be removed form the list. Therefor it is added

    closes #58

    opened by HeleneAmlie 0
  • Loose two hearts

    Loose two hearts

    Sometime player looses two hearts when being hit.

    I think it has with if both players hit end turn at the same time that something fires twice or something

    bug 
    opened by HeleneAmlie 0
  • 53 pop up screen for end state

    53 pop up screen for end state

    Now there is a popup screen for when game end. The lobby is also deleted after leaving the lobby.

    Might also have fix bug #50, I have tested it some and do not get the bug.

    If time add play again in same lobby? Did not:(

    closes #53

    opened by HeleneAmlie 0
  • Pop up screen for end state

    Pop up screen for end state

    • [x] Add pop up when game end with score and return to mainMenuScreen

    • [x] Delete lobby when game end and/or returned to mainMenuScreen btn clicked

    Follow up on #21

    view/design controller/logic 
    opened by HeleneAmlie 0
  • Scale sprites and UI

    Scale sprites and UI

    The game is drawn with absolute pixel values, which means that some display sizes will not look that visually pleasing as intended. One way of fixing it can be scaling the sprites and UI drawings to percentage values and/or clamping the screen overall to a max value.

    enhancement view/design 
    opened by Shirajuki 0
Releases(v1.0.0)
  • v1.0.0(Apr 25, 2022)

    What's New

    • Add kotlin and ecs+mvc kotlin architectural pattern structure by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/31
    • Connect firebase to the project by @kavusiks in https://github.com/WilliamHLe/star-battle-ntnu/pull/36
    • Implement join lobby functionality by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/38
    • Add heart functionality by @TorbsT in https://github.com/WilliamHLe/star-battle-ntnu/pull/43
    • Implement highscore functionality by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/42
    • Add playstate by @kavusiks in https://github.com/WilliamHLe/star-battle-ntnu/pull/45
    • Create system for ufo by @kavusiks in https://github.com/WilliamHLe/star-battle-ntnu/pull/44
    • Add setup phase state by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/48
    • Implement connect game to firebase and implement end game state by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/51
    • Add tutorial state and pause state by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/49
    • Add pop up screen for end state by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/55
    • Add shields by @TorbsT in https://github.com/WilliamHLe/star-battle-ntnu/pull/54
    • Fixed updated score and negative sign ting by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/59
    • Make game tutorial slides by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/61
    • Add correct scaling of sprites and UI elements on mobile by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/62
    • Final pull request go PRRRRR (#40, #56, #64): Project/code cleanup and refactor + skin system by @Shirajuki in https://github.com/WilliamHLe/star-battle-ntnu/pull/63
    • Implement remember skin selection by @HeleneAmlie in https://github.com/WilliamHLe/star-battle-ntnu/pull/66

    Contributors

    • @WilliamHLe
    • @Shirajuki
    • @kavusiks
    • @HeleneAmlie
    • @TorbsT
    • @macmikke
    • @FabioSavio

    Full Changelog: https://github.com/WilliamHLe/star-battle-ntnu/commits/v1.0.0

    Source code(tar.gz)
    Source code(zip)
    star-battle-ntnu.apk(7.44 MB)
Owner
William H. Le
Informatics student | NTNU
William H. Le
OSGeo4A is a build environment to cross-compile opensource GIS software for android devices

OSGeo4A This provides a set of scripts to build opensource geo tools for Android. This is Experimental Dependencies instructions you need a JDK v8 or

OPENGIS.ch 31 Aug 5, 2022
This software was developed using an Agile and TDD methodology

VM-EmpDirectory Software Development Approach This software was developed using

null 0 Dec 22, 2021
Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software

Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's finances and keeps track of where, when and how the money goes.

Money Manager EX 1.2k Dec 31, 2022
Copylefted libre software (GPLv3+) card management app

Catima Copylefted libre software (GPLv3+) card management app. Logo by Rose (TangentFoxy) Stores your store loyalty and membership cards on your devic

Catima 402 Jan 4, 2023
📱 Andriller - is software utility with a collection of forensic tools for smartphones

Andriller - is software utility with a collection of forensic tools for smartphones. It performs read-only, forensically sound, non-destructive acquisition from Android devices. It has features, such as powerful Lockscreen cracking for Pattern, PIN code, or Password; custom decoders for Apps data from Android (some Apple iOS & Windows) databases for decoding communications. Extraction and decoders produce reports in HTML and Excel formats.

Denis Sazonov 980 Dec 27, 2022
Design patterns are typical solutions to common problems in software design

Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.

hamid 4 Aug 30, 2022
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
🛒A Minimal Expense E-Commerce App built to demonstrate the use of modern android architecture components [Navigation, Room, MotionLayout, etc..] with MVVM Architecture. ✔

E-Store A Simple E-Commerce App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with love ❤️

Ameen Essa 14 Nov 3, 2022
A Simple Expense Tracker App 📱 built to demonstrate the use of modern android architecture component with MVVM Architecture

Expenso ?? A Simple Expense Tracker App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with

Michel Horacio 1 Dec 28, 2022
Weather application example with Android Architecture components and Clean Architecture

Weather application example with Android Architecture components and Clean Architecture Weather app that shows how to architect an android app in a cl

null 2 Dec 3, 2021
NewsSpac-MVVM-CleanArch-TDD - The App uses MVVM architecture together with Clean architecture

Aplicativo NewsSpace Arquitetura O App utiliza a arquitetura MVVM em conjunto co

null 1 Feb 11, 2022
ArchGuard is a architecture governance tool which can analysis architecture in container, component, code level, create architecure fitness functions, and anaysis system dependencies..

ArchGuard backend ArchGuard is a architecture governance tool which can analysis architecture in container, component, code level, database, create ar

ArchGuard 446 Dec 20, 2022
:octocat: A demo project based on MVVM architecture and material design & animations.

GithubFollows A simple demo project based on MVVM clean architecture and material design & animations. Architecture Specs & Open-source libraries Mini

Jaewoong Eum 288 Dec 25, 2022
🎬 A demo project for The Movie DB based on Kotlin MVVM architecture and material design & animations.

TheMovies A simple project for The Movie DB based on Kotlin MVVM clean architecture and material design & animations. How to build on your environment

Jaewoong Eum 420 Nov 29, 2022
Alkaa is a to-do application project to study the latest components, architecture and tools for Android development

Alkaa (begin, start in Finnish) is a to-do application project to study the latest components, architecture and tools for Android development. The project evolved a lot since the beginning is available on Google Play! ❤️

Igor Escodro 851 Jan 9, 2023
🎬 A demo project using The Movie DB based on Kotlin MVVM architecture and material design & animations.

TheMovies2 A simple project using The Movie DB based on Kotlin MVVM architecture and material designs & animations. How to build on your environment A

Jaewoong Eum 450 Jan 2, 2023
NewsApp is a an android project based on modern Android application tech-stacks and MVVM architecture.

NewsApp NewsApp is a an android project based on modern Android application tech-stacks and MVVM architecture. This project is for focusing especially

null 1 Jan 14, 2022
Small training project where dagger, dagger hilt and other components are used for clean architecture

LeagueNow ?? LeagueNow is a sample soccer team list Android application ?? built to demonstrate use of modern Android development tools - (Kotlin, Arc

Kevin Serrano 1 Oct 21, 2021