Hey guys, another update here fresh from Vaultmp.com, the home of Recyclers multiplayer mod.
Since the 2nd of August I've been busy with rewriting the whole mod. Now
it has a solid foundation and code base which was lacking previously.
The initial development of vaultmp dates back to the 11th of September
2010 (Brickster.net).
I never planned to seriously develop it for such a long time. It was
meant as a somewhat more professional school project. As I found out
that the interest in such a mod is huge, I continued working on it, but
it wasn't properly designed to be able to support advanced features such
as syncing of NPCs or inventories. This is the reason I basically
started from the ground up.
Revision 145 is the first "release"
of this (with release I refer to the fact that I provide pre-compiled
binaries; the mod is open-source and was accessible all the time). It is
for testing only.
In comparison to revision 134, it has even less game features, due to
the fact that I spent most time on coding the behind-the-scenes systems,
not real multiplayer functionality. Before I start re-implementing old
and many new features, I'd like to parallel make sure that users can
find bugs (which are existent in new systems by nature). This is why I
release revision 145.
What you cannot expect from this release (in comparison to revision 134):
- Inventory syncing
- Syncing of player death event
- Proper cell syncing (while working, adjacent exterior cells are still treated as interior cells basically)
What is different to previous releases:
- vaultserver command line options are gone; use vaultserver.ini configuration instead
- PAWN has been updated to the most recent version; vaultmp's implementation now uses 64bit cells
What is new with this release:
- The Elder Scrolls: Oblivion support
- You can now use vaultmp.ini configuration file to manually add "favourite" servers to the client
- The
client / server now supports mods and file downloading; vaultmp will
automatically set up the mod load order specified by the server (which
overrides your local mod loading settings!) - C++ scripting
- Timers (both in PAWN and C++)
- Some scripting callbacks and functions (the more interesting functions are not there yet)
vaultmp
now features a clear structure of game models. The concept behind this
is mostly important to scripters. I will provide an introduction to that
in another post. There is a lot of stuff to document, I hope I can
write some wiki articles the next days. Here is the full list of
changes:
Bethesda API framework (API class)
The Elder Scrolls: Oblivion support
Re-design of Pipe class
Interface (based on the old command execution layer)
Value container class, Lockable extension class
Network layer (NetworkClient, NetworkServer, PacketTypes)
Exception system (VaultException class)
Re-design of vaultmp.dll to work with the API
PAWN update to version 4.0.4548
Revised scripting architecture: now supporting n-amount of C++ / PAWN scripts
Mod support (no registering of new game content yet) and "Synchronize" server feature
vaultserver.ini configuration file
Reorganized class hierarchy
GameFactory class
Container class, Object class, Item class
vaultmp.ini configuration file
Rewritten game synchronization code
CriticalSection usage, controlled through GameFactory
Injecting code changed to support Steam versions properly
Resolved CriticalSection deadlocks
Native C++ / PAWN timers running in the main thread
PAWN cell size is now 64bit (use packed strings!)
Scripting callbacks: OnActorValueChange, OnActorValueChange, OnActorBaseValueChange, OnActorStateChange
Scripting
functions: CreateTimer, KillTimer, GetPlayerPos, GetPlayerAngle,
GetPlayerValue, GetPlayerBaseValue, GetPlayerCell, ValueToString,
AxisToString, AnimToString
VaultFunctor class
Unix server compatibility (not fully tested)
Some changes to scripting callbacks
Yes! Can't wait for future updates. It's a wet dream, come true.
Wait, Oblivion support!!!
Damn, good luck to you and I hope you manage to finish it.
wow, great work man, keep it up :)
woa oblivion support too? F*** YEAH~