All Projects → Hucaru → Valhalla

Hucaru / Valhalla

Licence: mit
A Golang MapleStory (v28) server

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Valhalla

Stendhal
Stendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Stars: ✭ 194 (+49.23%)
Mutual labels:  game-server, mmorpg
topaz
💎 A server emulator for Final Fantasy XI.
Stars: ✭ 46 (-64.62%)
Mutual labels:  mmorpg, game-server
Otxserver
OTX Server from:
Stars: ✭ 187 (+43.85%)
Mutual labels:  game-server, mmorpg
Rhisis
Rhisis is an experimental FlyFF MMORPG emulator built with C# 9 and .NET 5
Stars: ✭ 132 (+1.54%)
Mutual labels:  game-server, mmorpg
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+403.85%)
Mutual labels:  game-server, mmorpg
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (-81.54%)
Mutual labels:  mmorpg, game-server
otservbr-global-archived
Archived, read-only repository. New repository: https://github.com/opentibiabr/otservbr-global
Stars: ✭ 340 (+161.54%)
Mutual labels:  mmorpg, game-server
Azerothcore Wotlk
Complete Open Source and Modular solution for MMO
Stars: ✭ 1,330 (+923.08%)
Mutual labels:  game-server, mmorpg
Kbengine
A MMOG engine of server.
Stars: ✭ 4,714 (+3526.15%)
Mutual labels:  game-server, mmorpg
Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+2406.15%)
Mutual labels:  game-server, mmorpg
Forgottenserver
A free and open-source MMORPG server emulator written in C++
Stars: ✭ 1,024 (+687.69%)
Mutual labels:  game-server, mmorpg
Novuscore
A modern take on WoW emulation
Stars: ✭ 88 (-32.31%)
Mutual labels:  game-server, mmorpg
Lockstepplatform
Stars: ✭ 84 (-35.38%)
Mutual labels:  game-server
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (-11.54%)
Mutual labels:  mmorpg
Steamcmd Autoupdate Any Gameserver
Windows SteamCMD to autoupdate and install any game server steam cmd settings configurable lots of useful features. This batch script will keep your game servers automaticly updated updating intervals announce the server is shutting down for updates etc all configurable.
Stars: ✭ 77 (-40.77%)
Mutual labels:  game-server
Server
RuneJS is a RuneScape game server emulator written entirely using TypeScript and JavaScript. The project's goal is to create an easy to use game server providing simple content development systems and APIs.
Stars: ✭ 74 (-43.08%)
Mutual labels:  game-server
Rpg
Online Role Playing Game (based on Laravel)
Stars: ✭ 121 (-6.92%)
Mutual labels:  mmorpg
Mmo Server
Distributed Java game server, including login, gateway, game demo
Stars: ✭ 114 (-12.31%)
Mutual labels:  game-server
Nettygameserver
使用netty4.X实现的手机游戏分布式服务器,支持tcp,udp,http,websocket链接,采用protobuf自定义协议栈进行网络通信,支持rpc远程调用,使用mybatis3支持db存储分库分表,支持异步mysql存储,db保存时同步更新reids缓存。 使用ExcelToCode工程,将excel数据生成java类和json数据字典,DictService直接读取json,减少数据字典部分代码。使用game-executor工程,增加游戏内的异步事件全局服务, 支持事件sharding,均衡的异步执行事件逻辑
Stars: ✭ 1,203 (+825.38%)
Mutual labels:  game-server
Bige
游戏服务器框架。
Stars: ✭ 76 (-41.54%)
Mutual labels:  game-server

Alt text

Actions Status

What is this?

This project exists to preserve and archive an early version of the game (v28 of global)

Client modifications

  • 00663007 - change to jmp for multiclient
  • 0041BD17 - fill with nop to remove internet explorer iframe advert after client close
  • 0066520B - push to stack resolution in y
  • 00665211 - push to stack resolution in x
  • 0066519c - mov 0x0 instead of 0x10 for windowed mode

Features

General:

  • [x] Simulated latency with jitter (set in config) to make dev environment simulate a real world connections when within network

Login server:

  • [x] Login user
  • [ ] Pin
  • [x] Display world ribbons
  • [x] Display world messages
  • [x] Display world status (e.g. overpopulated)
  • [x] World selection
  • [x] Channel selection
  • [x] Create character
  • [x] Delete character
  • [x] Migrate to channel server
  • [x] Show worlds, channels, world status etc from information sent from world server
  • [x] Prevent players from accessing dead channel
  • [x] Server resets login status upon restart for dangling users

World server:

  • [x] Keep track of player count
  • [x] Send information to login server
  • [x] Send IP, port to channel for change channel requests
  • [x] Forward player connects to channels
  • [x] Forward player leaves game to channels
  • [x] Broadcast buddy events
  • [x] Broadcast party events
  • [ ] Broadcast guild events
  • [x] Forward whisphers
  • [ ] Allow gm command to actiavate exp/drop changes accross all channels
  • [ ] Allow gm commands to update information displayed at login

Cashshop server:

  • [ ] List items
  • [ ] Allow purchases via different currencies

Channel server:

  • [x] GM commands
  • [x] Players can see each other
  • [x] Player can change channel
  • [x] Players can see other movement
  • [x] Player chat
  • [x] player use portal
  • [x] Player allocate skill points
  • [x] Player stats
  • [x] Player use skills
  • [ ] Player skill logic (haste etc)
  • [x] Player inventory (needs a re-write)
  • [ ] Player use item (scrolls, potions etc)
  • [ ] Player drop item(s)
  • [ ] Player pets
  • [x] NPC visible
  • [x] NPC movement
  • [x] NPC basic chat
  • [x] NPC shops
  • [x] NPC stylist
  • [ ] NPC storage
  • [ ] PQ scripts
  • [ ] Event scripts
  • [x] Load scripts from folder (incl. hot loading)
  • [x] Map instancing
  • [x] Mob visible
  • [x] Mob movement
  • [x] Mob attack
  • [ ] Mob skills that cause stat changes
  • [x] Mob death
  • [x] Mob respawn
  • [x] Mob spawns mob(s) on death
  • [x] Mob drops
  • [x] Mob boss HP bar
  • [x] Minigames
  • [x] Whisphers
  • [x] Find / Map in buddy window
  • [x] Buddy list
  • [x] Buddy chat
  • [x] Party
  • [x] Party chat
  • [ ] Guild
  • [ ] Guild chat
  • [ ] Trade
  • [ ] Communication Window
  • [ ] Quests
  • [ ] Reactors
  • [ ] Autonomous GM commands which can be started and stopped at will
  • [x] Server resets login status upon restart for dangling characters

Metrics:

  • [x] Channel population
  • [x] Server thread count (OS and Go)
  • [x] Server memory usage (heap and stack)
  • [ ] Monster kill rate
  • [ ] Ongoing trades
  • [ ] Ongoing minigames
  • [ ] Ongoing npc script interactions

See screenshots section for an example Grafana dashboard

TODOs

  • Profile the channel server and do the following:
    • Reduce branches in frequent paths
    • Determine which pieces of data if any provide any benefit in being converted SOAs
  • Implement AES crypt (ontop of the shanda) and determine how to enable it in the client
  • Clean up passing nil to interface type function, should be new(type) as this causes nasty to find bugs as the nil value is not the interface itself but the value it holds
  • Move player save database operations into relevant systems

Acknowledgements

  • Sunnyboy for providing a list of idbs for which this project would not have started
  • The following projects were used to help reverse packet structures that were not clearly shown in the idb
  • NX file format (see acknowledgements at link)

NPC chat display info (use this when scripting NPCs)

NPCs are scripted in javscript powered by goja

Taken from here

  • #b - Blue text.
  • #c[itemid]# - Shows how many [itemid] the player has in their inventory.
  • #d - Purple text.
  • #e - Bold text.
  • #f[imagelocation]# - Shows an image inside the .wz files.
  • #g - Green text.
  • #h # - Shows the name of the player.
  • #i[itemid]# - Shows a picture of the item.
  • #k - Black text.
  • #l - Selection close.
  • #m[mapid]# - Shows the name of the map.
  • #n - Normal text (removes bold).
  • #o[mobid]# - Shows the name of the mob.
  • #p[npcid]# - Shows the name of the NPC.
  • #q[skillid]# - Shows the name of the skill.
  • #r - Red text.
  • #s[skillid]# - Shows the image of the skill.
  • #t[itemid]# - Shows the name of the item.
  • #v[itemid]# - Shows a picture of the item.
  • #x - Returns "0%" (need more information on this).
  • #z[itemid]# - Shows the name of the item.
  • #B[%]# - Shows a 'progress' bar.
  • #F[imagelocation]# - Shows an image inside the .wz files.
  • #L[number]# Selection open.
  • \r\n - Moves down a line.
  • \r - Return Carriage
  • \n - New Line
  • \t - Tab (4 spaces)
  • \b - Backwards

Screenshots

Bosses

Metrics

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].