Announcement

Collapse
No announcement yet.

EMOS (Enhanced Multiplayer Online System)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [PLUGIN] EMOS (Enhanced Multiplayer Online System)

    The goal of this project is to offer everyone the ability to make MMORPG's, Lobbied First Person Shooters, MOBA's, or Networked Platformers at an affordable cost in c++ or BP. To those that have provided MMO toolkit solutions. I appologize ahead of time for the release of this project. I have been wanting to do this project for some time now, and I feel that everyone should have the ability to learn, or make what they want. All the solutions which have arised over the last couple of years have been Blueprint specific. Although this is a great for newcomers, for most people the ability to separate client code from server code poses alot of problems.

    The Enhanced Multiplayer Online System or EMOS for short, is designed to be a 'Free' open source plugin for making online games. This includes MMO's, MOBA, or Networked Platformers, and pratically any other type of game you can think of which requires a client to server communications platform. EMOS is built for making Online Games easier to create in Unreal Engine 4 projects. This project is not intended to be a direct replacement to UnrealEngine 4's existing Network System, but instead as a compliment to the existing system.

    The source code can be found at: https://github.com/DigitalKarnage/EMOS. However the plugin is still a work in progress, and will continue to be for sometime to come. I do plan on adding Additional 'GameType' Modules, such as RPG, MOBA, FirstPersonShooter, and Platformer. These will be built along the way to test the various systems included in EMOS. Each gametype module will be designed specifically around the multiplayer experience for the specific game type and will most likely not work in a 'single player' environment.
    Some EMOS features include:

    MongoDB. The connector is pre-built and the server files are included in the build, and ready to go when you are.

    * The Database module only works on windows server, but in the future have the includes necessary built to support linux, and mac server variants.

    Websockets communications, No more trying to build Network Socket communication protocols, Utilize the UnrealEngine 4 UStruct objects as communication messages.

    EMOSRPG: The RPG Plugin to make Online RPG Related Games. Whether FirstPerson, ThirdPerson, or a Combination of the 2. This system is designed with the most generic properties that all RPG's contain. This should be extended by your own project, but can be used right out of the box. EMOSRPG is designed to hide away the server implementation details from the client code. Although you can use c++ or blueprints with EMOS, EMOSRPG is built with the server side of things implemented in c++, while the client code can be implemented in blueprints, you are not limited to blueprints

    EMOSRPG Features to be implemented

    Patch Services
    Account Services
    Chat Services
    In-game Mail Services
    Consignment / AuctionHouse Services
    Enchanting Services
    Character Services
    Crafting System
    Storage Services (Account, Character, Inventory)
    Social Services (Faction / Guilds / Parties)
    Instance Area Services
    Server Load Balancing
    Combat Services
    Quest and Dialog Services
    Server2Server Communications




    I want to Thank Epic Games, and the members of the Unreal Engine 4 team. This is an amazing engine, community and team.


    Join the Skype Chat @ https://join.skype.com/rQDJ1rIsM3nJ
    Last edited by Saxanth; 02-26-2016, 10:55 AM.

    #2
    EMOS (Enhanced Multiplayer Online System) 0.1a

    Known Issues:

    Hardly any comments in code
    No documentation on classes and usage

    No Tutorials (written or videos)

    MongoDB module fails to copy required dll's to the build directory (Needs Documentation)
    Websockets does not allow sending UStruct objects as json formated strings (*Requires VARest plugin)

    Plugin does not work with shipping build, unless special procedures are in place to 'pre-compile' the build for specific targets. (Needs Documentation)

    I'm sure there is more to come.
    Last edited by Saxanth; 02-29-2016, 11:15 AM.

    Comment


      #3
      Nice one buddy! ETA for the "final" (stable?) release? Maybe some video demonstration later? : )

      Comment


        #4
        Well, with a project of this size, I'm assuming that the core stuff should be done within the next couple of months.

        With the GameType modules. Those are going to take some time, its basically designing a game and testing the generic aspects of those games. I'm assuming at some point i'm going to need to take a poll on what GameType modules are more important to the community, and go from there. However my first priority is RPG, I've been wanting to make an online rpg for some time, but i always seem to fall short when it comes to content, and time.

        Comment


          #5
          Nice, my project is an RPG too (writing the design docs nowadays), but with a little twist (some hub dimensions, where players can meet each others, talk, make some business and other stuffs, like in Acti's DESTINY). You know Bloodborne or Souls game series online play systems? I wanna use something similar to that ones on the big instance areas (when the time comes), and an arena stage with lobby system, what do ya think? The EMOS can work with that later? : )
          Last edited by JimPhoenix; 02-24-2016, 02:54 PM.

          Comment


            #6
            I dont know the game system specific to those games, However the EMOSRPG module make no assumptions as to what kind of rpg you are making, or how you implement them, it just does the hard to do behind the scenes stuff like player movement (using the built-in movement component), persistance storage, server to server communications, etc. I will be able to expand on this later as I get Examples together

            Comment


              #7
              How difficult is it going to be for blueprints to communicate with the plugin?
              Stylized Low Poly Environment
              Stylized Low Poly Pine Forest
              Stylized Low Poly Buildings
              First Person Horror Template

              Comment


                #8
                I will try to expose as much of the MongoDB and Websockets related stuff to Blueprints. However the Gametype modules will try to hide the necessity to need those exposed to blueprints.

                Lets take a for instance.

                ARPGPlayerCharacter will have internally a way for the server to update the stats of the character with communications to the database, and will update the Character stats on the player, and update the database (internally) with no need for BP's to know how to do that stuff.

                Click image for larger version

Name:	iHj7FYS.png
Views:	1
Size:	225.7 KB
ID:	1101173

                mind you there is no clamping, or checking the values, but i think it shows what is exposed and the expectation of the scripter.

                However I know what it's like to want to have full control over every aspect of the game, and don't want to leave it up to the plugin to make assumptions I'm assure of. So with that said. I will do my absolute best to expose what I can to blueprints, in a user friendly way, and hide all the complicated aspects that cannot be done in blueprints.
                Last edited by Saxanth; 02-24-2016, 03:43 PM.

                Comment


                  #9
                  Thank you DK, i will following your project from now in the future (subing to this thread), and of course, i'm very grateful & wish you a lot of endurance for this AWESOME work! : )

                  Comment


                    #10
                    Sounds like a great plan and lots of good features planned. I like the modular approach of having a clean base and then building additional more game type specific functionality on top of that, but most importantly the plan to separate the Server implementation/rules from the Client. These two things are the most important differences that I'm seeing and will make it much more widely useful in the long run then other systems I have looked at.

                    Comment


                      #11
                      @AlienChrysalis

                      The whole goal for me, when I originally wanted to start working on this, was the fact that I needed a way to do generic Online based operations, like saving to a database and doing server to server communications for my own project "AmalynOnline" however as time went on, and as I realized that I don't have the necessary skills to make the content at the quality level I was looking for. I then decided I wanted to make a more 'effortless' game, joined a few teams and when those failed to produce results, I kept coming back to my game, but after some time i decided that maybe it's not the game I want to create, but the tool. I think this plugin will help serve alot of people that may know how to make online games, but not have the technical expertise to realize their vision.

                      I'm trying to make this plugin as generic as possible, with all the game type modules to be extendable as much as possible, cause frankly I cannot know every variation of every genre of game, but I can provide the generic base model of a game that every game in a specific genre provides.

                      Comment


                        #12
                        I was just thinking of doing a "component" approach to a RPG style game, did a quick search on the forums to see if someone already used that approach and found your post.

                        This looks promising.

                        Comment


                          #13
                          Super interested in this

                          Comment


                            #14
                            Well isn't this is a grand adventure to undertake alone.
                            When I get some free time I'll see what I can help contribute
                            \\VANGUARD INTERACTIVE

                            Marketplace - Action RPG Inventory System | Multiplayer TopDown Kit | Advanced Social System
                            Multiplayer TopDown Kit Tutorials - Merging The Action RPG Inventory System | Removing the Fog of War
                            Action RPG Inventory Tutorials - Merging Into Your Project | Adding New Items | FPS Controls w/ UI Mode Toggle

                            Comment


                              #15
                              Added the Skype Conversation to the first post.

                              Join us on Skype @ https://join.skype.com/rQDJ1rIsM3nJ

                              Comment

                              Working...
                              X