A real-time socket-based MMORPG server offering a complete and immersive online multiplayer gaming experience.
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.
The project is organized into three main components:
- Engine: developed in C++
- Interface: Modular system with modern UI
- Resources: Sprites, sounds, fonts and game data
- Modules: Extensible functionality system
- System: Complete real-time game management
- Data: NPCs, monsters, spells, items and maps
- Scripts: Extensible event and action system
- System: MySQL for data persistence
- Content: Accounts, characters, guilds, houses and more
- โ๏ธ 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
- ๐น 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
- ๐ก๏ธ Ban System: Player control
- ๐ Detailed Logs: Complete monitoring
- โ๏ธ Flexible Configuration: Rates, experience, etc.
- ๐ Security: Robust authentication system
# Server
- Lua 5.1+
- MySQL 5.5+
- Network libraries (sockets)
# Client
- Visual Studio 2019+ (Windows)
- CMake 3.16+
- OpenGL
- DirectX (optional)- Configure the database:
-- Import the schema
mysql -u root -p < Schema/sv_dados.sql- Configure the server:
-- Edit server/config.lua
servername = "Your Server"
ip = "127.0.0.1"
login_port = "7171"
game_port = "7172"- Compile the client:
cd Client/otc
mkdir build && cd build
cmake ..
make- Configure the connection:
- Run the client
- Add the server to the list
- Configure IP and port
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-- PvP configurations
worldtype = "pvp" -- options: pvp, no-pvp, pvp-enforcedThe 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_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
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
The server offers detailed logs:
-- Available logs
g_logger.info("Information")
g_logger.error("Error")
g_logger.warning("Warning")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()- Validation: Client data verification
- Rate Limiting: Spam protection
- Logs: Suspicious activity monitoring
- Algorithms: Optimized pathfinding
- Memory: Efficient resource management
- Network: Data compression
- Cache: Smart caching system
- 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