Dannark / BWO

An infinity procedural online game using Flutter with NodeJS and flames
https://borderless-world.herokuapp.com/
GNU General Public License v3.0
386 stars 43 forks source link
flames flutter game-2d infinity mmorpg-game mmorpg-server procedural-generation

Borderless World Online (BWO)

style: effective dartPowered by Flame

An infinity procedural online game using Flutter and flames with NodeJS and Firebase for the back-end.

showcase5 showcase1

On the Table

The world isn't stored in anywhere, it uses some conecpts and rules (Perlin Noise and Simplex Noise) to generate it equaly in all devices only the changes made by player are actually stored on the server side.

The players will be able to build theirs houses anywhere on the infinity world. That's why i call it borderless world in first place. :)

This project is still in development and it doesnt have many features yet. I'm using the solid principles as much as i can, make things clear enough easy to read although i'm not an expert on it, if you have any suggestion, please let me know it.

Release Date?

Hopefully at some point later this year.

Current Version: 1.0.4

Game Diagram, Structure and Comments

BWO For more detail access Whimsical Diagram Page to see the comments in each node.

Instructions:

  1. Requirements

    • The NPM and NodeJS installed on your system
    • Navigate to the folder bwo-server and run on the console the command npm install to install and update all the dependences
  2. Launch your own server :

    • 2.1 Setup the database if you want to run it Online:

      • Create a project and setup your Firebase database and Cloud Firestore on Google console
        • Save the google-services.json file in android\app\
      • Edit the enviroment variables in resources/config.js or set them in your system so the server can connects to your database.
    • 2.2. Run the Node Server:

      • Navigate to the folder bwo-server and run on the console the command npm start or node server.js
        • To specify an environment use --env=development or --env=production in both case you need to be authenticated in firebase. For localhost use --env=localhost
        • To Run test on the Server side run npm test (still in development)
    • 2.3 For the client-side (Android App), Adjust the Server URL in lib\server\utils\server_utils.dart

      • Set your database name development, production, localhost
      • Tip: You can host in gitpod or heroku to launch it alive for free
  3. If you do not want to configure your own server and just want to run the game: (Localhost)

    • Make sure to adjust the server variable URL in lib\server\utils\server_utils.dart to https://borderless-world.herokuapp.com
    • Make sure to adjust the isOffline variable in lib\server\utils\server_utils.dart to true
  4. Launch the app on your device

    • Left tap on screen = walk
    • Right tap on screen = cut tree/attack
    • While in build mode you can't walk and can only place/delete object inside the foundation square

You can also open the host url on your browser to see the currently server state (for debuging)

And please, let me know if you have any problems, open an issue and i will be in touch very soon. Code refactoring are really appreciated at this point.

Dev Log

Usecases:

Know Problems

Doing now

Next

22/09

18/09

17/09

13/09

09/09

08/09

07/09

wall_multexture1

06/09

04/09

03/09

01/09

30/08

28/08

26/08

25/08

24/08

23/08

21/08

19/08

17/07

16/08

13/08

11/08

07/08

03/08

01/08

30/07

26/07

24/07

21/07

17/07

15/07

10/07

07/07

04/07

03/07

02/07

29/06

28/06

26/06

24/06

23/06

21/06