The simple answer is: Most likely.
anything that you coded for default roblox humanoids, will not work here, itās all custom, No tools, no player scripts, no server sided model replication, no roblox physics,no nothing!.
You must manually create a lot of systems yourself, and suffer!
Chickynoid V2, still for some reasons does not flags changes for other anim channels changing nor does it plays animations from other anim channels, despite characterData literally replicating records with other animChannel data included.
So I decided to update my CharacterModel script fork once again so people can utilize other animChannels once again on chickynoid V2.0
Iām struggling to find out how the CharacterData.serialized is updated from the server.
The "event"s that are passed through the UnreliableRemoteEvents seem to mainly consist of frame numbers, syncing, and the direction that my character is facing, but no animation/serialized related stuff.
Is there a main way that all data is replicated to each client?
The whole state should just be there magically. The reason it seems minimal is that its doing a lot of work to only send deltas.
Yep.
We could barely get 64 players running well with this due to high server cpu demand when we shipped. Most of that time was spent managing packing buffers for clients, funnily enough.
So we went back to roblox with a list of things weād like to get fixed and added to the engine before weād try doing something like this again.
They were:
- UDP
- Shapecasts with margins
- Faster buffer packing operations
- Better actor performance for multithreading
- Ability to force players to render the world to a certain level of fidelity (graphics setting 1 players couldnāt see who were shooting them, even if their fps were high)
Since the closure, roblox have added 2 of those (udp and buffer), with shapecasts+margins coming soon.
Native Luau replaces the need for the better actor performance, actors in their current state are not usable.
Nothing is going to happen for #5, apparently.
So, once we had native luau, udp, and buffer, I went and updated chickynoid to 2.0, which was a significant rewrite that could probably handle 120 players pretty comfortably now.
But I donāt know if easy are going to release rift again.
Er, steady on there. They invested in this project so it wouldnāt have happened if they didnāt!
iām currently having an issue where giant parts take an absurd amount of memory; i currently use a 1536x128x1536 part as a baseplate but it takes up roughly 13mb of vector data on both the server and client for some reason and even making it 1536x16x1536 or something still takes up about 3.4mb
edit: increasing fatGridSize
in CollisionModule
heavily reduced memory usage to a few kb but i feel like thisāll have problems elsewhere
Is there any way to make Chickynoid easier to integrate? The only thing keeping me, and various others from using it in our own games. The structure is too complex to work with. If it was more flexible and allowed different code structures, like a framework, it would be more widely used.
(I have followed this project very closely for years)
I think Chickynoid does allow for different code structures or a framework. You donāt have to do everything through Chickynoid. Yes, player movement, and weapons need to be handled partially or fully by Chickynoid, but pretty much anything else you can handle however you want to.
What are you specifically struggling with? Keep in mind that you donāt have to use a large chunk of the base project if it doesnāt suit your needs or isnāt implemented how you like.
I did a little bit of research on what sweeping the player meant, And I discovered what a swept collision was, it basically prevents objects from clipping after calculating their new position, since it calculates their whole trajectory instead.
So as a cool experiment to showcase the coolness of chickynoid, I pushed myself with a velocity of 100,000 through a jump pad, into a ceiling thatās 0.125 studs thin, and would you look at that, I did not clip through!
Very good physics engine.
The real answer to the question isnāt chickynoid sadly, authoritative framework must be done at the robloxās engine side with just a single switch of a boolean value. What is done there is pretty good, rep to easy.gg team and to the author of the chickynoid, but honestly itās just that what you can achieve without access to the engine side (not much, in terms of performance and compatibility, even though it seems not bad in the current state). I hope one day there will be possibility to have 500+ players with authoritative movement.
roblox humanoids run horribly on 100 player servers and their physics arenāt even calculated by the server, yet somehow chickynoids runs way faster with 100 players.
Humanoids are just horrible, and I donāt think I can ever go back to using them.
Thatās actually reassuring. Iām yet to make ~200+ players game and I thought that humanoid can handle that. I suppose youāre pretty good at chickynoid (cus Iāve seen your replies a lot of times in this thread), can you give me advice(s) how to minimize use of server resources? I only need x,y,z movement without jump / physics, so Iāve thought thereās a way to do that.
im not that good with chickynoid tbh, i still donāt understand it to itās full extent, but regardless.
Use a MoveType to script your movement, you can ready the MoveTypeWalking script to read how the default chickynoid scripts work (on new version this code is found as method in the Simulation Class script)
esentially you just read the cmd and simulation and create your own character controller, you calculate the velocity your character gets pushed on, and use ProjectVelocity to step the simulation foward.
Do other players replicate to the local player when it is not able to see them through a wall or are behind it to prevent esp and save performance?
Is there a first person type of movement system for this?
There is currently only a system which hides (stops replication) other players based on distance but you could change that to work with walls if you wanted to relatively easily
I tried to break down the sample place to its basics, but I could not understand its structure, so it wasnāt of great help.
Iām trying to add chickynoid to my game, but if someone could explain what code goes where, and what workflow is in place to add a movement/combat featureā¦ I could work with it.
Quick question @MrChickenRocket, what does the state.pushing property or flag on the simulation class do, I saw it being used by some MoveType scripts but couldnāt really understand itās purpose.
I did noticed itās apparently a server only flag?