Skip to content

Overstrider/realtime-socket-mmorpg-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฎ Realtime Socket WebServer MMORPG - Odirion

A real-time socket-based MMORPG server offering a complete and immersive online multiplayer gaming experience.

๐Ÿ“‹ About the Project

This project is an MMORPG (Massively Multiplayer Online Role-Playing Game) server developed with real-time client-server architecture. It offers all the features expected from an Oldtimes MMORPG, including combat system, NPCs, quests, guilds, houses and much more.

๐Ÿ—๏ธ Architecture

The project is organized into three main components:

๐Ÿ–ฅ๏ธ Client (Client/)

  • Engine: developed in C++
  • Interface: Modular system with modern UI
  • Resources: Sprites, sounds, fonts and game data
  • Modules: Extensible functionality system

๐Ÿ–ง Server (server/)

  • System: Complete real-time game management
  • Data: NPCs, monsters, spells, items and maps
  • Scripts: Extensible event and action system

๐Ÿ—„๏ธ Database (Schema/)

  • System: MySQL for data persistence
  • Content: Accounts, characters, guilds, houses and more

โœจ Main Features

๐ŸŽฏ Game System

  • โš”๏ธ Real-Time Combat: Advanced PvP and PvE system
  • ๐Ÿฐ Persistent World: Large and detailed map
  • ๐Ÿ‘ฅ Guilds: Complete guild system
  • ๐Ÿ  House System: Properties for players
  • ๐Ÿ“ฆ Inventory: Complete items and containers system
  • ๐Ÿ—บ๏ธ Minimap: Interactive navigation

๐ŸŽญ Content

  • ๐Ÿ‘น 125+ Monsters: Various types of creatures
  • ๐Ÿค– 340+ NPCs: Interactive non-player characters
  • โšก Spells System: Magic and skills
  • ๐ŸŽ’ Thousands of Items: Equipment, consumables and more
  • ๐Ÿ† Quests: Missions and adventures

๐Ÿ”ง Administration

  • ๐Ÿ›ก๏ธ Ban System: Player control
  • ๐Ÿ“Š Detailed Logs: Complete monitoring
  • โš™๏ธ Flexible Configuration: Rates, experience, etc.
  • ๐Ÿ” Security: Robust authentication system

๐Ÿš€ Setup and Installation

๐Ÿ“‹ Prerequisites

# Server
- Lua 5.1+
- MySQL 5.5+
- Network libraries (sockets)

# Client
- Visual Studio 2019+ (Windows)
- CMake 3.16+
- OpenGL
- DirectX (optional)

โš™๏ธ Server Configuration

  1. Configure the database:
-- Import the schema
mysql -u root -p < Schema/sv_dados.sql
  1. Configure the server:
-- Edit server/config.lua
servername = "Your Server"
ip = "127.0.0.1"
login_port = "7171"
game_port = "7172"

๐ŸŽฎ Client Configuration

  1. Compile the client:
cd Client/otc
mkdir build && cd build
cmake ..
make
  1. Configure the connection:
  • Run the client
  • Add the server to the list
  • Configure IP and port

๐Ÿ“Š Rate Settings

The server offers flexible experience and loot configurations:

-- Experience and skill rates
rate_exp = 1           -- Experience
rate_skill = 6         -- Skills
rate_mag = 4           -- Magic
rate_loot = 3          -- Loot
rate_spawn = 2         -- Monster spawn

๐ŸŒ World Types

-- PvP configurations
worldtype = "pvp"      -- options: pvp, no-pvp, pvp-enforced

๐ŸŽจ Client Interface

The client offers a modern and intuitive interface:

  • Inventory: Drag & drop item management
  • Chat: Multiple channel system
  • Minimap: Real-time navigation
  • Status: HP, MP, skills and conditions
  • Battle: List of creatures in combat
  • VIP List: Online friends list

๐Ÿ”ง Client Modules

client_background/     - Background screen
client_entergame/      - Login and character selection
client_options/        - Client settings
game_battle/           - Combat system
game_console/          - Chat and console
game_containers/       - Containers and bags
game_hotkeys/          - Hotkeys
game_interface/        - Main interface
game_minimap/          - Minimap
game_skills/           - Skills
game_viplist/          - VIP list

๐Ÿ“ Server Data Structure

actions/               - Item action scripts
creaturescripts/       - Creature event scripts
globalevents/          - Server global events
movements/             - Movement scripts
npc/                   - NPCs and their scripts
spells/                - Magic system
talkactions/           - Chat commands
weapons/               - Weapon system

๐Ÿ› ๏ธ Development

๐Ÿ” Debugging

The server offers detailed logs:

-- Available logs
g_logger.info("Information")
g_logger.error("Error")
g_logger.warning("Warning")

๐Ÿ“ Creating Content

Adding an NPC:

-- In data/npc/name.xml
<?xml version="1.0" encoding="UTF-8"?>
<npc name="Name" script="data/npc/scripts/name.lua">
    <health now="100" max="100"/>
    <look typeex="1337"/>
</npc>

Creating a Spell:

-- In data/spells/scripts/
local spell = Spell("instant")
spell:name("Spell Name")
spell:words("magic words")
spell:execute(function(player, target)
    -- Spell logic
end)
spell:register()

๐Ÿ” Security

  • Validation: Client data verification
  • Rate Limiting: Spam protection
  • Logs: Suspicious activity monitoring

๐Ÿ“ˆ Performance

Server Optimizations

  • Algorithms: Optimized pathfinding
  • Memory: Efficient resource management
  • Network: Data compression
  • Cache: Smart caching system

Recommended Metrics

  • Players: Up to 1000 simultaneous
  • RAM: 2GB minimum, 4GB recommended
  • CPU: Multi-core recommended
  • Network: 100Mbps for public server

Developed with โค๏ธ for the MMORPG community

About

New Odirion

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published