Giter Site home page Giter Site logo

redesha's Introduction

Redesha

Redesha is an open source 3D MMO project using the following permissively-licensed libraries:

LibraryComponentURLLicense
Ogre3DGraphicshttp://ogre3d.orgMIT
BulletPhysicshttp://bulletphysics.orgzlib
SFMLSoundhttp://sfml-dev.orgzlib
OISInputhttp://sourceforge.net/projects/wgois/zlib
ENetNetworkhttp://enet.bespin.orgENet
LuaScriptinghttp://www.lua.orgMIT
RapidXMLParserhttp://rapidxml.sourceforge.netBoost
Easylogging++Loggerhttp://easylogging.orgMIT

Client

The RedeshaClient client process is designed to provide a seamless world without the need to load individual zones (the server-side code is still managed as zones to spread apart the network load). It is meant to compile and run natively on any platform that the Ogre3D engine supports. Ogre3D provides amazing framerates for high quality graphics.

Windows, Mac OS X, Linux, iOS, Android

Server

The server is broken into 3 separate processes, each with their own threads.

RedeshaLogin The RedeshaLogin server securely connects clients, authenticated by username and passwords, to a list of RedeshaWorld servers.

  • ClientManager - read/write IO threads for connecting RedeshaClient clients
  • WorldManager - read/write IO threads for registering RedeshaWorld servers
  • Main Thread - Processes packets

RedeshaWorld The RedeshaWorld server registers with the RedeshaLoginServer, accepts RedeshaClient clients connecting from it, and spawns RedeshaZone processes as needed

  • ClientManager - read/write IO threads for connecting RedeshaClient clients
  • LoginManager - read/write IO threads for registering with RedeshaLogin server
  • ZoneManager - read/write IO threads for registering RedeshaZone servers
  • Main Thread - Processes packets

RedeshaZone The RedeshaZone servers are spawned by RedeshaWorld servers and handle most client actions

  • ClientManager - read/write IO threads for connecting RedeshaClient clients
  • WorldManager - read/write IO threads for communication wtih RedeshaWorld server
  • Main Thread - Processes packets

Shared

A static shared library is linked to by all servers and the client. It contains common utilities, 3rd party libraries, and gamewide constants such as opcodes and packet structures.

redesha's People

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.