• 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
open.mp Server RC1
#1
Happy New Year @everyone

It's here!

It's finally here!

After four years, two rewrites, arguments and drama, and countless other hurdles; it is finally here!

Release Candidate 1 (RC1) of the open.mp server.

This, hopefully, represents the final version of the code for our 1.0 release, and if everything goes smoothly with this version we will be able to finally openthe so-called open.mp in just a few days from now.

Before I get in to the meat of the release I want to first sincerely thank every member of the open.mp team for helping the mod get this far. It has not been easy, mostly because of how invested everyone truly was - we all wanted what was best for the mod, for the community, for SA:MP, for our servers, and for our players; we wouldn't have embarked on this journey if that wasn't the case. Unfortunately strong differing opinions on what is bestsometimes causes friction. But we're here now. So to all, a huge thank you:
  • Amir
  • Cheaterman
  • Freaksken
  • Graber
  • Hual
  • Josh
  • JustMichael
  • kseny
  • Nexius
  • pkfln
  • Potassium
  • Southclaws
  • TommyB
  • Y_Less
  • Zeex
  • And probably more...

Anyway, now the bit you actually care about...

Now we're out of beta, we're (if all goes well this week) releasing on time. So along with the server itself, which you've seen a dozen times before, we have some new goodies for you:

Pawn

The download has the official includes, no more patching the old SA:MP includes with omp.inc, now we're doing it properly! It also has a new compiler. Ever wonder when 3.10.11 was coming? Well wait no longer (if you built it yourself, you could think of this one as 3.10.12)! With this combination you'll probably get loads of new warnings, but worry not - we have a tool for that as well, to automatically upgrade a load of code, adding well-defined symbol names, const, and more in all the right places. Maybe you already noticed this, you've been using it for months, but the virtual machine (the bit inside the server) has been updated as well! Oh, and all those string natives you know and love, like SendClientMessage and AddMenuItem? They all format now. All of them*.

Documentation on the updated includes:

https://github.com/openmultiplayer/omp-stdlib

Documentation on the new compiler:

https://github.com/openmultiplayer/compiler/
https://github.com/pawn-lang/compiler/

Documentation on qawno:

https://github.com/openmultiplayer/qawno/

Documentation on the upgrader tool:

https://github.com/openmultiplayer/upgrade

A full list of what's available:
  • Symbol length limit increased to 64, no more OnPlyrDoTheTing to try and fit your names in. Leading to...
  • Multiple natives decompressed - is Col short for Colour or Collision? Now you know!
  • Tags. Tags everywhere. See the included documentation.
  • The official includes are finally const-correct. No more complaining that some people might not have them.
  • Compiler version updated: __nameof, __addressof, fixes, and too many more things to go in to here.
  • switch is way faster.
  • More warnings for previously undetected issues. The more problems the compiler can find, the fewer you need to.
  • An upgradertool to add tags and const to user-code and fix several new warnings.
  • More consistent naming. Every native has been closely examined and compared to ensure the maximum level of similarity and intuitiveness in naming.
  • Added {Float, _}:... everywhere. What does this mean? It means no more format()**- think y_va but natively.
  • -O2, the highest pawn optimisation level, works when using the new compiler and VM. Some includes may need to be updated, but some already have. To help with that...
  • The __optimisation macro was added so code can configure itself when compiled with -O2.

*Almost all of them.
**Almost no more format().

SDK

Pawn is the long-standing, and still official, way to write modes for your server. It isn't going away, but for those of you who want more control we are finally releasing the full SDK (the Software Development Kit). This is a C++ interface to the server, the same one used by all the components that make up the core open.mp code. Anything they can do you can do too (compared to plugins, which were only designed to provide functions to pawn, not write modes).

We have some documentation under way, it takes time unfortunately. But in the meantime have several example components for those of you who want to get straight stuck in. These are all templates you can build upon, and go from basically nothing to a fully working component with most common features:

https://github.com/openmultiplayer/empty-template
https://github.com/openmultiplayer/basic-template
https://github.com/openmultiplayer/pawn-template
https://github.com/openmultiplayer/full-template

Also a few terms to get you started, so you can start to understand what it is that you're reading:
  • Component - A logical individual piece of the server, like objects or pickups. Ones you don't need don't need to be loaded.
  • Extension - Code that extends another bit of code. You can write component extensions, but the most common ones are player extensions, which define some structure of data to be associated with a player in addition to all their normal data like health and weapons.
  • UID - Unique IDentifier, a number that represents your component, and your component alone. This ia always required and can be got here: http://open.mp/uid
  • Entity - A thing, usually a thing a player can interact with, and which you might have a lot of. Objects are entities, but other players are also entities, even commands in a processor could be called entities.
  • Pool - Something that holds entities. When you have a lot you need to be able to access them by name or ID in some way, this is what a pool does.
  • Interface - Components use an abstract base class as an interface. This declares which methods a component has, but doesn't contain the code for the methods. Interfaces are passed around so that components can communicate with each other, but implementations are kept private.
  • SDK - The collection of all the interfaces defined by the core server.
  • ABI - An Application Binary Interface is the way compiled code talks to other compiled code. The interfaces exported by the SDK are ABI stable, which means that using two components compiled at different times will still work together.
  • pawn-natives - The library on which all native declarations are built. Useing a wrapper called SCRIPT_API around this library: https://github.com/openmultiplayer/pawn-natives
  • Event - Something that happens externally. Things like players connecting and typing commands are events. Any component can define events and tell other components when those events happen.
  • Handler - A component that wants to know when an event happens.

Features

Beside all the new features announced for pawn, there are several new (and newly announced) features in the server:
  • Per-player gang zones, as were in YSF.
  • Per-player pickups, also as in YSF.
  • AttachPlayerObjectToPlayer.
  • Better PawnPlus support.
  • :memory:, and other special names support in SQLite.
  • SQLite open flags.
  • exclude config option to not load certain components.
  • Show config parse errors, don't just silently fail.
  • SDK major version check, just in case we ever make major server changes (hopefully we won't).

Fixes

There were a few new bugs introduced in beta 11, and a few minor ones left over from before. The ones fixed include:
  • funcidx already registered warning.
  • GDK plugins (streamer etc) missing natives.
  • Random crash on GMX.
  • GDK callbacks sometimes not called.
  • No logging when requested in SQLite component.
  • Some settings not reset on GMX.
  • NPCs were connecting when there were a lot done at once.
  • .so was still needed in Linux legacy plugin names.

Links

Firstly, of course, is the new server version:

https://github.com/openmultiplayer/server-beta/releases

Secondly, the forums are back up. Head there for all your questions:

https://forum.open.mp/

Or if you prefer:

https://vk.com/open_mp

Finally, despite it being offered a few times, we have explicitly resisted any money up to this point; because we didn't feel it was right until we had proven ourselves with a release. With this post, that time is now, so if anyone wants to help support us (all donations will go towards infrastructure and future client dev work), it would be most appreciated:

https://www.patreon.com/open_mp
https://opencollective.com/openmultiplayer

And of course everything is still in active development, so please do check all the links above regularly to see what's new that we have.
  Reply
#2
Great job guys! Thanks for everything, really
  Reply
#3
Congratulations guys. I know a lot of work went into this.
  Reply
#4
Thank you all who has been working on this project so far. Good job
  Reply
#5
Congratulations everyone, we're all so happy about this, tysm y'all<3
Using Pawn.CMD?

If you're doing so, this is the very first sign that you absolutely shouldn't utilize your all powerful P-Code knowledge in any of the scripting discussion topics.
  Reply
#6
Congratulations guys! it's amazing to see the result of a great cooperation
  Reply
#7
Thank you guys
  Reply
#8
Thanks, well done!
  Reply
#9
Amazing work, congratulations on crossing the finish line, glad to see the project thrive.
  Reply
#10
Love it, thank you all for your hard work! Looking forward for the next one.
  Reply
#11
Thank you for everything. Congratulations.
  Reply
#12
Congratulations!
  Reply
#13
Yes !
  Reply
#14
it's been a long time :)
Great job, guys.
valakas.ru dev.
  Reply
#15
Congratulations! Amazing work.
  Reply
#16
Awesome!
  Reply
#17
Fantastic to finally see RC1 going out. Been a few exciting years and taking part in testing has been giving and fun. Good job to all involved!
Away
  Reply
#18
Fantastic work, congratulations to the whole team.
Project Virtual - Since 2011.

[Image: n-560x95_FFFFFF_FFFFFF_000000_000000.png]
  Reply
#19
Congratulations!
  Reply
#20
If you've been here from the start you'll see how ambitious this project has become, I've been committed to a server of my own for a while now and it's honestly the potential with this project that's motivated me to keep going with it in mind just knowing how much it's going to change the community for the better once we're a few more releases down the line, I'll be looking forward to seeing the progress for sure and congratulations on the release.
  Reply
#21
Awesome!
[Image: Andjelkovic-Bez-TS3-Manager.jpg]
  Reply
#22
I haven't been active here in awhile because of some stuff in my life. This news revived my interest in this game, and I think I'll get back into scripting.
But I'll have to learn everything from scratch, since I don't think that the game mode I have, which was abandoned for 9 years will magically work with this.
If anyone here has some tips and directions for me to start, I'd appreciate it very much.
[Image: IyLrpZi.png]



"It's only a game, but people are real. You have to respect them."
- Mick88

  Reply
#23
Is open.mp planning to make own client? Or only sa-mp.com client will be used (hopefully one day Kalcor does not shut down that one)?
  Reply
#24
💜💜💜
Follow me on: Twitter/X | Instagram | Twitch
  Reply
#25
(2023-01-10, 12:03 AM)helion_prime Wrote: I haven't been active here in awhile because of some stuff in my life. This news revived my interest in this game, and I think I'll get back into scripting.
But I'll have to learn everything from scratch, since I don't think that the game mode I have, which was abandoned for 9 years will magically work with this.
If anyone here has some tips and directions for me to start, I'd appreciate it very much.

Your mode should actually work. You may get some runtime warnings for timers or CallLocal/RemoteFunction calling non existant callbacks depending if you have an old version of YSI or not.
  Reply
#26
it's a new episode on san andreas multiplayer community, great job, guys 👏
  Reply
#27
Congratulations ❤️
[Image: 560x95_FFFFFF_FF9900_000000_000000.png]
  Reply
#28
(2023-01-10, 12:24 AM)matbcvo Wrote: Is open.mp planning to make own client? Or only sa-mp.com client will be used (hopefully one day Kalcor does not shut down that one)? I wonder how old SA-MP bugs are fixed when it's sa-mp.com client (aren't those bugs like client side?)

Yes
  Reply
#29
[Warning] Parameter count does not match specifier in `Script_Call`. callback: Iter_OnGameModeInit - fmat: - count: 1)

I found "Iter_OnGameModeInit" only in foreach.inc v.19

So what is this warning about? Help ^^
  Reply
#30
(2023-01-12, 06:44 PM)Retvieval Wrote: [Warning] Parameter count does not match specifier in `Script_Call`. callback: Iter_OnGameModeInit - fmat:  - count: 1)

I found "Iter_OnGameModeInit" only in foreach.inc v.19

So what is this warning about? Help ^^

You can ask your scripting issues on our Discord to get instant help there :)
For now, that issue can be solved using an updated version of YSI and y_iterate
y_iterate is basically a maintained and modern, and new version of foreach
  Reply
#31
(2023-01-12, 06:44 PM)Retvieval Wrote: [Warning] Parameter count does not match specifier in `Script_Call`. callback: Iter_OnGameModeInit - fmat:  - count: 1)

I found "Iter_OnGameModeInit" only in foreach.inc v.19

So what is this warning about? Help ^^

Use YSI. The stand-alone foreach is ancient and massively out of date.
  Reply
#32
Congratulations for your work mate!
  Reply
#33
Awesome job guys. Let's keep this up
  Reply
#34
Do you have a Roadmap for the next updates?
  Reply
#35
Great job keeping samp alive
  Reply
#36
32 bits...
  Reply
#37
(2024-03-22, 07:59 PM)cesarmiguel0512 Wrote: 32 bits...
Check github, bro.
valakas.ru dev.
  Reply


Forum Jump: