All Projects → UltimaPHP → UltimaPHP

UltimaPHP / UltimaPHP

Licence: other
A modern Ultima Online server written in PHP

Programming Languages

PHP
23972 projects - #3 most used programming language
C#
18002 projects
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to UltimaPHP

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 (+2548.78%)
Mutual labels:  mmorpg, gameserver
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (-80.49%)
Mutual labels:  mmorpg, mmorpg-game
ao-cliente
Client for Argentum Online
Stars: ✭ 61 (-50.41%)
Mutual labels:  mmorpg, mmorpg-game
Servuo
An Ultima Online server emulator written in C# .NET
Stars: ✭ 378 (+207.32%)
Mutual labels:  online, mmorpg
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+432.52%)
Mutual labels:  mmorpg, gameserver
Server
EQEmu - Open Source EverQuest Server
Stars: ✭ 319 (+159.35%)
Mutual labels:  mmorpg, gameserver
TrueUO
https://trueuo.com
Stars: ✭ 21 (-82.93%)
Mutual labels:  mmorpg, ultima
Kbengine
A MMOG engine of server.
Stars: ✭ 4,714 (+3732.52%)
Mutual labels:  mmorpg, gameserver
L2dotnet
A server emulator for Lineage2 Interlude written in C#
Stars: ✭ 98 (-20.33%)
Mutual labels:  mmorpg, gameserver
lgsl
LGSL v6.2.0 for PHP 5.4-8.2.0dev (Live Game Server List): online status for Discord, FiveM, Rust, CS, SA:MP, GMOD, Minecraft, Source Query, etc.
Stars: ✭ 101 (-17.89%)
Mutual labels:  online, gameserver
Cedardeploy
cedardeploy:发布系统基于python,flask,mysql,git,ssh-key,supervisor.支持多类型,上线,回滚,监控,报警
Stars: ✭ 248 (+101.63%)
Mutual labels:  online
Is Reachable
Check if servers are reachable
Stars: ✭ 249 (+102.44%)
Mutual labels:  online
use-navigator-online
⚛️ React Hooks to detect when your browser is online/offline.
Stars: ✭ 23 (-81.3%)
Mutual labels:  online
the-great-courses-of-the-Internet
List of the great courses of the internet
Stars: ✭ 20 (-83.74%)
Mutual labels:  online
Z S Overview Pack
Overview Pack for EVE Online
Stars: ✭ 247 (+100.81%)
Mutual labels:  online
Arrowgene.DragonsDogmaOnline
Server for Dragons Dogma Online
Stars: ✭ 87 (-29.27%)
Mutual labels:  online
Kkutu
글자로 놀자! 끄투 온라인
Stars: ✭ 230 (+86.99%)
Mutual labels:  online
Pythonbuddy
Online Python Editor With Live Syntax Checking and Execution
Stars: ✭ 223 (+81.3%)
Mutual labels:  online
Wopihost
office online preview and editor
Stars: ✭ 222 (+80.49%)
Mutual labels:  online
nodegame-server
nodeGame server for the browser and node.js
Stars: ✭ 17 (-86.18%)
Mutual labels:  gameserver

Build Status

UltimaPHP - Ultima Online OpenSource Server

UltimaPHP is a modern Ultima Online server written in PHP 7.0.

This server was created for those who ever wanted to create different adaptations on the core of your shard.

I decided to build this project for study propose I've re-scripted the entire socket server to understand how it works and after that i decided to create a lightweight standalone version of the server that runs in any OS easily.

Note: The server only works with the last updated Ultima Online client (7.0.74.28) and we will not spend time with older clients for now.

How to install?

First of all, you will need to install PHP 7.0 or greater and MongoDB 3.4+, I recommend you to use PHP 7.1 it's ultra-fast and lightweight, for that:

After installing PHP and MongoDB on the machine, edit the file ultimaphp.ini as you wish, create a MongoDB database named "ultimaphp" (or anyone, just need to change at the ultimaphp.ini) and create/import all collections from tools/Mongo Database/*.json (file name is the collection name) and follow the next steps to start the server:

Note 1: You can use some program to visualize and work with MongoDB like: RoboMongo or MongoChef

Note 2: The default owner account/password in the database is: test/test

Note 3: The default player account/password in the database is: test2/test

Note 4: Passwords is always stored in MD5 encryption both in the database and in server variables

Note 5: UltimaPHP only works (till now) with no-encrypted clients.

Linux

  • Open the terminal and navigate to the root folder of UltimaPHP project
  • Type: php7.0 startserver.php

Mac

  • Docker Stack is coming :)

Windows

  • Open the run dialog (SUPER+R) and type cmd then run
  • Navigate to PHP installation folder cd c:\php\installation\folder\
  • And start the server php.exe c:\ultimaphp\instalation\folder\startserver.php

Docker

  • With docker and docker-compose installed, clone that repository and run docker-compose up.
  • This will bring up uphp and mongo container.
  • 😄

Base PHP compilation

For those, like me, who preffer to use an most performatic standalone PHP, with only what it really needs

./configure --prefix=/usr --with-config-file-path=/etc --enable-sockets --enable-bcmath --enable-mbstring --enable-zip --enable-pcntl --enable-ftp --enable-exif --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-mcrypt --with-iconv --with-zlib-dir=/usr --with-xpm-dir=/usr --with-openssl --with-gettext=/usr --with-zlib=/usr --with-bz2=/usr
make
make install

What is already working?

  • Classic client
  • 3D Client
  • Login
  • Create Character
  • Open Paper doll (self/other players)
  • Open status bar (self/other players/mobiles)
  • Show all names (Players/other players/mobiles)
  • Add objects
  • Add mobiles
  • Login multiple chars
  • Equip multiple objects
  • PickUp / Drag / Drop item
  • Walk / Run in any of the 6 worlds
  • Send and receive Unicode Sysmessage
  • Where Command
  • Teleport command to any world
  • Invis command
  • Change the mobile name
  • Change player name (if is GM)
  • Click on players/mobiles/objects
  • DClick on players/mobiles/objects
  • Open skills info
  • Emote
  • Talk
  • Store objects inside multiple containers
  • Save the player objects
  • Save the world objects
  • Mobile walking using pathfinding (Still need to work on it, see issues)
  • Dialogs (With Gump Studio Exporter plugin already working, tools folder)
  • Containers
  • Many other things

Useful links that could help you code

Do you feel like you could help in any way this project?

Feel free to join us and help this project grow in whatever you can! We always like to hear new ideas and feedbacks, so why don't you create an issue to tell us what can you do to help us grow?

Coding standards

  • All .php files should start with <?php and end without ?>
  • All .php files should have the comment line header
  • All class names start with an UPPERCASE character, IE: class ClassName {...}
  • All method names must start with LOWERCASE character and all next words start with an UPPERCASE character with no space, IE: goodMethodName()
  • All codes must be indented with a tab
  • All codes must be formatted in K&R style before committed, manually or using your preferred tool

Authors

  • João Escribano - Brazil
  • Maurício Nunes - Brazil
  • Youri Theodorakopoulos - Brazil
  • Fábio Henrique - Brazil
  • Gökay Gürcan - Netherlands
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].