open source MMORPG game
mir2x is an experimental project that verifies actor-model based parallelism for MMORPG, it's c/s based with various platforms supported and contains all need components for game players and developers:
monoserver
with Oracle Cloud as a public server.192.9.241.118
by
client --server-ip=192.9.241.118
https://user-images.githubusercontent.com/1754214/162589720-7dd9453b-55e4-4119-a1ee-c879093cf017.mp4
An IME for SDL fullscreen mode:
https://user-images.githubusercontent.com/1754214/213572554-785e826c-226d-43fa-a196-ee4f92112db2.mp4
For windows please download binaries from appveyor
https://ci.appveyor.com/project/etorth/mir2x/build/artifacts
If complains missing dll, you may need to copy .dll files from mir2x/bin to mir2x/client and mir2x/server.
If running on WSL/WSL2, check the following to configure PulseAudio to support sound effect, the sound may get played with noticable delay.
mir2x game is developed for Linux-only environment, however I finished all coding and testing with Windows WSL, please refer here how to setup and run everything on windows. mir2x requires cmake v3.12 and gcc support c++20 to run. Mir2x needs some pre-installed packages before compile:
libsdl2-dev
libsdl2-image-dev
libsdl2-mixer-dev
libsdl2-ttf-dev
libsdl2-gfx-dev
liblua5.4-dev
libfltk1.3-dev
Cmake complains if libs are missing. After install all these dependencies, clone and compile the repo. By default cmake tries to install in /usr/local. use ``CMAKE_INSTALL_PREFIX" to customize.
$ git clone https://github.com/etorth/mir2x.git
$ cd mir2x
$ mkdir b
$ cd b
$ cmake .. -DCMAKE_INSTALL_PREFIX=install
$ make
$ make install
To start the monoserver, find a linux machine to host the monoserver, I tried to host it on Oracle Cloud Infrastructure
, it works perfectly with the always-free
plan. Click menu server/launch to start the service before start client:
$ cd mir2x/b/install/server
$ ./monoserver
Start client, currently you can use default account (id = test, pwd = 123456) to try it:
$ cd mir2x/b/install/client
$ ./client
Global variables:
Error handling:
General rules:
mir2x uses a number of open source projects to work properly, and of course itself is open source with a public repository on github, please remind me if I missed anything.
wsl2 sucks! if in WSL2 you can ping 8.8.8.8 but can not ping google.com, that means you DNS is wrong.
in windows run
ipconfig
You will see line as Ethernet adapter vEthernet (WSL (Hyper-V firewall))
, the IPv4 Address
of this section is used as your DNS in WSL2 /etc/resolv.conf
, everytime when WSL2 reboots, it automatically create this /etc/resolv.conf
, you need to disable the automagicall overwrite, there is comment in file /etc/resolv.conf
explaining how to do it.
in windows run
ipconfig /all
You will find the section Wireless LAN adapter Wi-Fi
, inside the section find DNS Server
and copy all IPs to /etc/resolv.conf
, reboot WSL2, it should be good now.