Space Empires

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

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/SatyamX64/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

Package Description
after_layout Helps execute code after the first layout of a widget has been performed
animated_text_kit Provides Cool and Beautiful Text Animations
carousel_slider For Slidable Cards
flutter_animated_dialog For Animated Dialogs
flutter_staggered_grid_view For Planets Alignment
flutter_svg To render SVG
provider Provider State Management
lottie For Lottie Animations
sizer Helps with Responsiveness
rive For Rive Animations
shared_preferences For Data Persistance
lint Rules 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

Directory Description
models Contains Model Class for Ships, Planets, Rulers
screens Contains the UI class for all the Screens
services Contains the Game Service, Player Service and all Core Logic
utility Contains app-wide constants, common functions
widgets Contains 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

GitHub

https://github.com/SatyamX64/space_empires