State of the Snail: October 12th, 2017

And here we are again with a State of the Snail, after a little over 5 months since the last (hey, 5 months does seem like a period), with a summary of picks out of recent and not-so-recent development updates, downgrades, potatoes and :mascot: food!

OneSync, the true vision

Let’s begin with the most anticipated feature, the wondrous and definitely-not-stolen-as-a-name OneSync project.

Firstly, we regretfully announce that the ‘Q4 2017’ target has been changed to a ‘Q4 2017/H1 2018’ target, as has been visible on our FAQ before. Somehow people interpreted ‘Q4’ as ‘literally in October’, this of course never held true.

Secondly, let’s have a few demonstration videos that were posted around a month ago on the FiveM development channels, and the code used for these simple demonstrations using ‘currently-cot-implemented’ natives:

cloning the local player’s car with a bit of artificial delay, also shows netBlender not yet working

local otherVeh

RegisterCommand('startSync', function(source, args)
    local veh = GetVehiclePedIsUsing(PlayerPedId())

    CreateThread(function()
        local save = ExperimentalSaveCloneCreate(veh)

        CreateThread(function()
            Wait(2500)

            otherVeh = ExperimentalLoadCloneCreate(save, 1339, 'automobile')
        end)

        while true do
            Wait(0)

            local s = ExperimentalSaveCloneSync(veh)

            --print(s)

            CreateThread(function()
                Wait(2500)

                if otherVeh ~= -1 then
                    ExperimentalLoadCloneSync(otherVeh, s)
                end
            end)
        end
    end)
end)

… and the example Lua code that might be exposed as a proper API in the future for people to build half-sync systems on their own.

https://streamable.com/apkxp

pedestrian cloning and blending

side effects of having a clone of yourself

Of course, on the issue of implementing this research in a legitimate game scenario, there’s still a lot of unfinished thoughts going on, mainly puzzles with regards to the network player manager and how it plays a central role in network cloning.

Random experiments

We’ve performed a few random private experiments with the game code over the past months, none of which really in any shape to be released (or even work at all, sometimes), here’s a quick list:

  • ‘Reverse game’, running the main menu UI in a separate process from the game runtime (GTA5, that is), and then embedding the game in this UI seamlessly. This would result in much better crash recovery/error handling experience, even faster perceived startup time, cementing FiveM’s place in the ecosystem as ‘more than just the game runtime’, however could also lead to many possible issues on outlier system configurations, and simply did not work yet in any form of its implementation, mainly with regards to input handling.
  • Updating to patch 1180, this was attempted when the patch was first released, but would have a number of disadvantages mainly in crash analysis and possibly causing additional issues - and it would use up additional mod kit slots, and therefore it was decided to postpone this update until either Rockstar fixed this in a newer game executable or we implemented a modkit adjuster.
  • Crash reporting for the server. This didn’t get finished because Linux is weird and we’d have to severely modify Breakpad to work on there, which simply wasn’t doable in a reasonable timeframe.
  • Client net metrics. No idea what those were, they appeared in a developer’s private development tree, and they forgot as well.
  • World unloading. Apparently someone had an idea that mostly worked to remove sections from the stock GTA map dynamically, mainly to be used for allowing reloading across various worlds as used by ‘tracks’ drifting servers. It crashed a bit too uncommonly and these weren’t traceable, so it wasn’t finished.
  • Dissectors. These would’ve allowed the server to be a bit more aware of game state. Nobody had enough time to finish these, however. :slightly_frowning_face:
  • Streaming registration refactor. This would’ve allowed streamedpeds, but it didn’t really work well with replacing existing assets.
  • Runtime audio replacement. This might actually be finished soon, at least for single-channel sound files, we did have a tiny showcase of a replaced siren during experimentation.

General state

Since moving the entire repository to GitHub as primary, we’ve fielded quite a few community pull requests, we’ve redone the UI two times, and shipped many bug fixes and a few new features.

Community involvement is still steady, with new community members appearing and old members disappearing over time, and players that are bored of only being able to play roleplay being catered to by a few pinned non-roleplay servers - run a decent and unique non-roleplay server? email pr@fivem.net to maybe get it pinned! - and the player base being mostly steady.

Concurrent players have grown by a bit, new acquisitions are dropping, however game launches have been slowly increasing over the past month.

Our external moderators are doing a good job keeping the forums clean and tidy, and a number of issues have been resolved over time.

Of course, certain blunders like increased CPU usage in a patch that was meant to reduce latency that went unnoticed for a month until a code review haven’t done much good to the community, and we’re debating on ways to make reporting persistent game-breaking issues easier for the development team to wade through.

For one, have a screenshot of our Sentry dashboard with all fatal crashes that occur (note: some crashes are grouped even though they are independent, and counts are overall, not over any specific time period):

Until the next SoTS, whenever that might be, and as always: anything you’d like to hear? Post a reply, or message us elsewhere!

20 Likes

Oooh this is a good one, keep the great work up, love (mostly) everything i’m reading right now! :wink:

Very good written! Was nice to Read :slight_smile:

Thank you, guys. Great work is coming along! Don’t be deterred by people who complain. Roadblocks come up in development and can often push dates back. I’m loving the info and work you guys put into the project.

1 Like

Thanks for the updates! Despite the setbacks, it’s good to see some sort of update - even if it’s just y’all saying that you’re working on it but had issues :mascot:

1 Like

I would like to see co-op missions, GTA story mission co-op support. I would also like to see scripthookdotnet unblocked and add an option to allow scripthookdotnet or not.

This could be in the near or far future but it sounds cool to me. Instead of just RP oriented stuff allow for more fun mods with scripthookdotnet on freeroam servers.

1 Like

I am sure you have been getting this a lot. But any clue on what is may be causing us to randomly time out for no reason? I have feeling it has to be in a update but I am not sure. It would be nice to get in deeper contact with you guys on this matter. But other that I love five m and keep up the good work.

1 Like

I am having the same issue. Players literally cannot join my server. However, like you said, I am sure they are getting this a lot.

Keep up the great work, guys!

Great stuff!

:clap: :clap: :clap:

I can finally solve my loneliness by copying myself

Great to see the progress, keep it up!

hold up i thought you died

Plz come back, dont leave us again :c

is this the infamous mraes? hes alive??? this can’t be true

Congratulation! Meanwhile, you can reveal a beta server, version for downloading, that we can play with :slight_smile: