Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

A teaser of my[Free] game-server API / Unity3D Client API.

Discussion in 'Works In Progress - Archive' started by Christian-Tucker, Dec 3, 2014.

  1. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    I've been working on a networking library for quite some time, very few people are aware of this as it's been very hush-hush for the last few months; However it's getting closer and closer to production standards and after extensive testing with a few different games that I've written (All multiplayer of-course) and adding a bunch of different abstractions, I'd like to show off a little 'Teaser' at what is soon to be available to Unity users.

    The entire framework is built upon (and kept updated) with the latest stable releases of Netty, currently running on 4.0.24-Final. There's a lot of hard work and dedication put in here, and to add to it, there's a fully populated JavaDoc for everything that you'll ever need. ( Not to mention dozens of video tutorials, and tutorial series on creating full games with the system, in multiple programming languages )

    This thread is less of a way to 'Get the word out' because I'm not releasing the name or website for the project, but instead it's more of a way to see what the community thinks would be nice. Currently this is what's implemented(Note, an abstract feature means it's there to be used, but not used by default):
    • TCP Networking with anti-segmentation buffering.
    • UDP Networking, which is linked to the client with a 128-bit randomly generated key. (See: UUID)
    • HTTP implementation, utilizing AJAJ (Asynchronous Javascript and JSON) and servlets to offer remote-administration and server-moderation over a control panel. (See: SFS Remote Admin tool for a general idea)
    • A complete entity based system already setup for static and living GameObjects.
    • A basic abstract base for a (target-based)combat system.
    • A Item system that allows multiple items in a single stack (or not, specifiable)
    • A container system for things such as bags/inventories, can be extended upon to make custom bags, current container is dynamic, supports things such as:
      • Adding items to first free slot.
      • Moving an item from one slot to another (If there's an item in the target slot, the items will switch positions)
      • Removing an item based on the slot.
      • Removing an item based on the item.
      • Retrieving the first instance of an item based on the item.
      • Retrieve the amount of free slots available.
      • Retrieve if the bag is full or not.
    • AbstractNpc and AbstractPlayer classes which can(and should be) extended upon.
    • Thread-safe logic for the NPC and Player, NPC AI processing has higher priority than other NPC processing.
    • Easy MySQL support.
    • Friend and Ignore system already in place.
    As you can see, a great deal has gone into working on this API, and I've decided to release it all for absolutely free, but development is time consuming, and creating the client-api is a pain, I'm constantly working to better the server, to increase it's scalability and performance and make sure that everything is top-notch. The original plan was to use a licensing system, but I figured that wouldn't be fair to everyone, so if you'd like to support the development, feel free to drop a dollar or so into my tip-jar at patreon.



    If you're not familiar with patreon, as it's still a newer funding source, check out the video here!

     
  2. Christian-Tucker

    Christian-Tucker

    Joined:
    Aug 18, 2013
    Posts:
    376
    I'm going to be starting a blog here within the next few days for posting updates, as-well as finishing up the documentation.

    I rewrote the entity system earlier today to allow people to easily create npcs and players without the end-user really having to worry about much of anything, all of this will work perfectly in a 2d or 3d world. There's "local" detection for npcs/players AKA mobs which will perform logic based on the range. You can utilize this to limit networking bandwidth

    (For example, only tell the client about players within 50 meters, etc)

    More information to come, also we've started working on a demonstration game, however it's currently in alpha stages. No content releases just yet.