Space Empires ๐Ÿ›ธ

April 18, 2022 ยท View on GitHub

Dart Flutter Awesome Flutter style: lint

Space Empires ๐Ÿ›ธ

Introduction ๐Ÿš€

Space Empires A 4X Space themed Strategy Game made with Flutter

Developer ๐Ÿ™

Bagirishya Rwema Dominique

Usage ๐ŸŽจ

To clone and run this application, you'll need git and flutter installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/rwema3/Space_Empires

# Go into the repository
$ cd space_empires

# Install dependencies
$ flutter packages get

# Run the app
$ flutter run

Features โšก

  • Cross Platform
    • Web (Tested)
    • Android (Tested)
    • Ios (Not Tested)
  • Responsive (Works in both Orientations)
  • Adaptive (Works Beautifully in almost all screen sizes)
  • A basic custom Computer AI

Current Progress โœ”๏ธ

  • All the Essential Screens/Views are done
  • All the required actions for Player and Computer are defined and working
  • All the Buildings/Stats/Upgrades/Ships have the desired effect
  • The game follows all the defined rules
  • Computer AI can take all the actions, just like a regular player
  • Null-Safe and follows Lint Guidlines

Things that need attention ๐Ÿ”ง

  • A better budget allocation strategy for computer AI
  • The AI can be too aggressive sometimes
  • A better chat and relations strategy for Computer AI
  • A more balanced Stats allocation and reward system
  • Audio Effects
  • Refactoring and Optimization
  • Your health and happiness :)

Most of these can be fixed by just tweaking the constant values and numbers. (services>game.dart) Associated TODO tags can be found over the Project, so feel free to play around with the values. The Project will remain open-source and any contribution or feedback will be highly appreciated

Packages ๐Ÿ“ฆ

These are the packages used in this Project

PackageDescription
after_layoutHelps execute code after the first layout of a widget has been performed
animated_text_kitProvides Cool and Beautiful Text Animations
carousel_sliderFor Slidable Cards
flutter_animated_dialogFor Animated Dialogs
flutter_staggered_grid_viewFor Planets Alignment
flutter_svgTo render SVG
providerProvider State Management
lottieFor Lottie Animations
sizerHelps with Responsiveness
riveFor Rive Animations
shared_preferencesFor Data Persistance
lintRules handler for Dart

Directory Structure ๐Ÿข

The project directory structure is as follows:

โ”œโ”€โ”€ android
โ”œโ”€โ”€ asset
โ”œโ”€โ”€ build
โ”œโ”€โ”€ ios
โ”œโ”€โ”€ lib
โ”œโ”€โ”€ analysis_options.yaml
โ”œโ”€โ”€ pubspec.lock
โ”œโ”€โ”€ pubspec.yaml

image

DirectoryDescription
modelsContains Model Class for Ships, Planets, Rulers
screensContains the UI class for all the Screens
servicesContains the Game Service, Player Service and all Core Logic
utilityContains app-wide constants, common functions
widgetsContains UI Blocks and Other Functional Elements

Some shots from the Game (old)

welcome_screen_landscape

Game Screen

Control Panels

Planet Info

planet_stats_landscape planet_upgrades_landscape planet_defense_landscape

God Bless You, Murakoze!