GithubHelp home page GithubHelp logo

isabella232 / hlapi-community-edition Goto Github PK

View Code? Open in Web Editor NEW

This project forked from milleniumstudio/hlapi-community-edition

0.0 0.0 0.0 8.95 MB

Community Edition of UNET's High Level Networking API (HLAPI)

Home Page: https://forum.unity.com/threads/unet-hlapi-community-edition.425437/

License: MIT License

C# 100.00%

hlapi-community-edition's Introduction

HLAPI Community Edition

Build status AppVeyor tests branch Discord Codecov

Unity is the best game engine in the world, which should make UNET the best multiplayer game development solution in the world, but it's not.

UNET consists of two parts:

  • The LLAPI is developed by @aabramychev and deserves more credit than it gets. It's nothing short of amazing. We all love your work Alex!
  • The HLAPI was developed by Sean Riley as an example to showcase the LLAPI. Sean Riley left Unity and everyone's hopes for HLAPI improvements remained mostly (not entirely) unanswered.

UNET's HLAPI was abandoned a long time ago when Sean Riley left unity.

UNET's HLAPI was made open source shortly after.

This project is a fork of HLAPI and picks up where HLAPI stopped. A lot of bugs have been fixed while maintaining compatibility. We have refactored to improve code quality and reduce complexity. We are also adding new features useful for developers.

Download:

Use at your own risk. In case of concerns, feel free to inspect the .DLL files with ILSpy!

Build:

To build this project, clone the repository, open Networking.sln it in visual studio 2017 and build all projects.

Installation:

Backup the original DLL files from your Unity installation folder and replace them with the HLAPI Community Edition DLL files:

Windows:

  1. Backup your Project! Be wise now and don't lose everything if something unexpected happens.
  2. replace C:\Program Files\Unity\Editor\Data\UnityExtensions\Unity\Networking content with the downloaded files.
  3. move the Unity.UNetWeaver.dll to C:\Program Files\Unity\Editor\Data\Managed
  4. Restart Unity for the UNetWeaver.dll to be reloaded properly. Rebuild all your clients/servers so they use the same DLLs.
  5. Rebuild your server/client.exe so that it uses the DLL as too.

Mac:

  1. Backup your Project! Be wise now and don't lose everything if something unexpected happens.
  2. replace Unity.app/Contents/UnityExtensions/Unity/Networking/ content with the downloaded files
  3. move the Unity.UNetWeaver.dll to Unity.app/Contents/Managed/
  4. Restart Unity for the UNetWeaver.dll to be reloaded properly. Rebuild all your clients/servers so they use the same DLLs.
  5. Rebuild your server/client.app so that it uses the DLL as too.

Note: right click Unity.app and select 'Show Package Contents' to see the subfolders.

Linux:

NOTE: These instructions assume you have installed your Unity instance in /home/user/Unity-2017.4.8. Please adapt this accordingly, because this is just an example path.

  1. Backup your Project! Be wise now and don't lose everything if something unexpected happens.
  2. Copy the Editor and Standalone from the HLAPI CE package that matches your build go into /home/user/Unity-2017.4.8/Editor/Data/UnityExtensions/Unity/Networking. If you do not have this directory path, STOP. Double check your installation path and try again, otherwise open a issue ticket.
  3. Copy the Unity.UNetWeaver.dll file into /home/user/Unity-2017.4.8/Editor/Data/Managed. Allow overwrite.
  4. (Re-)Start Unity to make sure the changes are applied. Be patient while Unity recompiles your network scripts for use with the latest version of HLAPI CE.
  5. Rebuild your server and client standalone executables to properly use the features and improvements in HLAPI CE.

Branches:

We have multiple yet sometimes conflicting goals. Thus we are developing HLAPI in several branches:

  • fixes: 2017.4 HLAPI + bug fixes. No unnecessary code changes to guarantee 100% compatibility with original HLAPI, for those who need it.
  • 2018.1: 2018.1 patch. Can be rebased to latest 'master' all the time.
  • improvements: the #1 goal of this branch is to make HLAPI more simple and easier to maintain. The original code is way too complicated and if we end up with 10.000 lines instead of 20.000 lines, then that would be huge. The #2 goal of this branch is to improve CCU and only add features that are completely obviously necessary (SyncVarToOwner etc.).
  • features: this branch is for new features that could be useful. We can go crazy with features here, as long as we all agree that a given feature is a good idea to add. We can discuss features in Discord.

If you submit pull requests, please submit them to the proper branch. For example, 99% of the features submitted to 'improvements' will most likely be rejected, because the goal is to make this branch more simple. Submit new features to 'features' branch instead. If you want to submit a bug fix that applies to everything, then submit it to 'fixes', and so on.

hlapi-community-edition's People

Contributors

lymdun avatar paulpach avatar softwareguy avatar vis2k 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.