Coder Social home page Coder Social logo

fishyeos's Introduction

FishyEOS

An Epic Online Services (EOS) implementation for Fish-Networking.

Thank ETdoFresh with your support.

If you have further questions, come find us in the FirstGearGames Discord!

Dependencies

  1. Fish-Networking https://github.com/FirstGearGames/FishNet
  2. PlayEveryWare/eos_plugin_for_unity https://github.com/PlayEveryWare/eos_plugin_for_unity
    1. Use git clone https://github.com/PlayEveryWare/eos_plugin_for_unity when downloading eos_plugin_for_unity. If you download as zip, you may have errors with the included DLLs.
    2. Copy Assets/Plugins from repository to your project's Assets/Plugins folder.
    3. Requires Unity 2020.1.11f1 or newer.
    4. Requires Unity Package: com.unity.editorcoroutines
    5. Configure the plugin with your Epic Online Services project information.

Installation

Unity Package (git url)

  1. Open Unity Package Manager. Unity > Window > Package Manager
  2. Add a package from git URL. Package Manager > + > Add package from git URL...
  3. Enter this url: https://github.com/ETdoFresh/FishyEOS.git?path=/FishNet/Plugins/FishyEOS

Direct Download (Assets Folder)

After installing FishNet, download this repository directly to your Assets folder.

Direct Download (Packages Folder)

Copy the FishNet/Plugins/FishyEOS folder to your Packages folder.

Setting Up

  1. Add FishyEOS Transport component to NetworkManager GameObject.
  2. Set transport variable on the TransportManager Component to FishyEOS.

As a Server

  1. Specify the EOS SocketName which you would like to listen from.
    Example FishyEOS
  2. Start Server as normal.
    NetworkManager.ServerManager.StartConnection()

As a Client

  1. Specify the EOS SocketName which you would like to connect.
    Example FishyEOS
  2. Specify the ServerProductUserId which you would like to connect.
    Example 0002780586644887316944b9a41246b3
  3. Start Client as normal.
    NetworkManager.ClientManager.StartConnection()

As a Host (aka Server + Client)

  1. Follow steps from As a Server.
  2. Start Client as normal.
    NetworkManager.ClientManager.StartConnection()
    (A special "clientHost" will be created on server allowing to play as a client on the server)

Testing Two Builds Locally

EOS has limitations which prevent you from connecting to yourself using the same ID. To do so, you must have two Epic Connect Product User IDs. You can use the same device to log into both if they are different sign in providers (I often use Developer and DeviceCode).

Supported Platforms

FishyEOS relies on the PlayEveryWare/eos_plugin_for_unity plugin to function. The code provided in this repository only uses the calls from this plugin to function. Please refer to the plugin's documentation for supported platforms.

Non-Windows Support

As of PlayEveryWare/[email protected]. Android, IOS, and MacOS support is in preview. However, I had to make some changes to the plugin to get it to work on these preview platforms. Here are those changes:

  1. For all non-windows platforms, set the following Edit > Project Settings > Player Settings > Other Settings
    1. Add EOS_PREVIEW_PLATFORM to the list.
    2. Press the Apply button.
  2. For Android specifically, also set the following Edit > Project Settings > Player Settings
    1. Other Settings > Identification > Minimum API Level = 23 or higher
    2. Publishing Settings > Uncheck Custom Main Gradle Template
      1. If prompter to update gradeTemplate.properties, click Yes.
  3. Do not add EOSManager to your scene.
    1. Instead only rely on FishyEOS provided EOS.GetManager() and EOS.GetPlatformInterface().
    2. These functions detect if you are on windows and calls platform specific initialization function.
  4. If you have your EOS configured, you will have a config file located in Assets/StreamingAssets/EOS/EpicOnlineServicesConfig.json
    1. For Android, Duplicate Assets/StreamingAssets/EOS/EpicOnlineServicesConfig.json to eos_android_config.json
    2. For MacOS, Duplicate Assets/StreamingAssets/EOS/EpicOnlineServicesConfig.json to eos_macos_config.json
  5. Android Builds require Android Build Tools 30.0.3. If you are using Unity 2020, you probably will need to update your build tools. (Otherwise, I think you are fine?)
    rem Run an administrator privledged command prompt/terminal
    cd \Program Files\Unity\Hub\Editor\2020.3.33f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin
    sdkmanager.bat --install build-tools;30.0.3
  6. If you are trying to use MacOS preview on M1, here's how I got it to work: PlayEveryWare/eos_plugin_for_unity#141 (comment)

fishyeos's People

Contributors

etdofresh avatar firstgeargames avatar alecpizz avatar evbishop avatar reithegoat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.