You can do either. It’s got big warning stickers on it saying it’s not easy to use and you’ll have to read a lot of code, so be warned
I see. In my personal opinion, I’m not fond of gatekeeping your own project, but I understand what you’re trying to say when you explain that this is “not easy to use and I’ll have to read a lot of code”. Likewise, all projects will require reading and document research; it’s part of computer science.
It would also be foolish to not read someone else’s code, since you could’ve inserted malicious code like a backdoor, for example.
Decided to adopt Chickynoid a week in my solo MMO project. If anyone’s familiar with the MMO Black Desert, the combat is very close to what’s seen in that game in terms of quality and movement. Includes 200-400 keyframe animations, properly networked hit tracing, multiple weapons, etc.
The project would’ve been released by now, but network bloat crippled the release due to the inherit nature of humanoids and attempting to make them server authoritative. Even without making them authoritative it still destroyed the server with a few players and 60~ NPCs, with the cost of zero security.
It’s been a blast using and learning the library. So far I’m seeing benchmarks that can handle upwards of 50~ players, including the 60~ NPCs. NPCs are also very computational intensive due to their AI-learning nature for combat, so consider them as practically more players.
I know there isn’t any real documentation out there, but I 100% recommend the use of Chickynoid for practically any project. I wish I would’ve used it from the get-go rather than at the end of the project, but at least it’s in than not!
Glad to hear it! I know chickynoid’s animation system is a bit of a weak point, but glad you’re getting by
You’ll get even better perf out of a large open world if you take advantage of the server side player visibility, so be sure to give that a look at.
(also I am slowly, slowly working on proper docs…)
I think you’ll find this post interesting and helpful.
Pretty sure Chickynoid/Easy was one of the main forces that got Shapecasts added
That really was the only difficult part part about it since I used to use named keyframes for detecting damage windows, hyperarmor, movement vectors, etc. Went about it in a different way and it’s been working swiftly so far
My favorite about Chickynoid, besides the performance aspect, is the use of custom movetypes. Made animation movement come out much smoother than the defaulted physics handlers like linear/body velocities. So if anyone is wanting complete control over how movement is done for free flow combat, this is another huge perk.
And yes, since combat is relatively close quarter I did go ahead and make use visibility checks
Lastly, thanks for what you’ve done for the community with this
yeah this is what drove me to pick up chickynoid in the first place. it might be a gigantic pain to learn and to an extent work with, but the end result can be significantly better.
Does chickynoid use shapecasts yet? And if not then when is an estimate of it doing so?
Currently awaiting shapecast margins
Combat system made entirely with Chickynoid has been finished It was fun to learn and take advantage of. Took a week and a half to make the switch on a 90% completed solo project, so I implore others to experiment and do the same.
I ramble on in the video’s description if you want to read up on why I chose Chickynoid and why it should be the standard for most projects/released games out there.
Astonishing! Movement is really fluid
Very much appreciate it, it turned out great! Other than a few adjustments I have to make to the animations to make them blend into each other more softly, the base is finished.
The only thing I’m stumped on now is player-player collision. Having them pass through each other causes inconsistencies with the attacks hitting since I use the weapon itself for the base of the hit traces. I’m slowly figuring it out, but it’s a tough one
Can’t wait for the docs to get finished
Me too, I am going to make my game once it releases!
I see thanks for the quick response
A last showcasing of the possibilities of Chicknoid Adaptive AI and a little stress test. The high receive you see is mostly physics data from the clientsided joints of when the AI die(will work to reduce this). Hit detection/movement remains unaffected with little to no performance loss, as shown later in the video as I AOE 20+ of them at once with a greatsword
From video description:
Quick showcasing of adaptive AI through the use of Chickynoid, with a fun little stress test. There are currently 25(AI)+1(myself) Chickynoids running on the server. All attacking, parrying, feinting, learning. Even with me wailing on all of them with a greatsword.
The AI are capable of advanced combat and learn the longer they live. I have the learning capabilities of them dumbed down for this video just so there’s not perfect parries and feints all over the place, but will post a video later with their learning maxed out. It gets fun to watch them go at it!
The stress test is kind of a… “rare” scenario. At least for what I envision for the game, you wouldn’t have 25 players/NPCs all attacking at once in a single area; however, large scaled guild wars perhaps?
And the server’s view of the chaos(amazing!):
I know Chickynoid is a server authoritative character replacement but is there any benefits of rendering the characters blocks on the server (except for the client) have any performance boost?
You cant render things on the server, the server will render it on studio but on a real server all it sees is numbers, it has no need to render things.
Normally if a humanoid is present on the server, it has to compute its physics, collisions, states, animations, etc. This alone is consuming server bandwidth. Now take into account players playing the server. It has to now streamline the computed physics, states, animations, etc. and send it to the players. Again, this is taking up even more bandwidth, and a lot. There’s no benefit in forcing the server to deal with that. The server should only deal with the important data, like vectors and states.
Humanoids are extremely taxing for the server to handle. To remedy this, Chickynoid replaces humanoids with what is, to put it simply, a block with a table of data. All the server has to do now is take into account positions, angles, and a simple table of data that’s compressed and sent over to the client to read. The client then reads the data and performs functions that smoothen out what’s received and creates an accurate visual representation of that data so it becomes as seamless as possible.
There’s more to it than just replacing humanoids. This means you can trust the client to run more computing related to gameplay, such as heavy usage of raycasts for melee, and the server has all of the appropriate data to sanitize and verify what the client “says” it sees.
To compare with the same exact project:
- If we use the default Roblox humanoid and make the server run everything and streamline it, a single humanoid consumes a whopping 2.3kb/s~. That’s for ONE humanoid swinging. Remember, the server is only allowed to streamline 50kb/s until things start to bog down.
- Now that it’s restructured entirely with Chickynoid, a single “humanoid” swinging consumes a mere 0.28kb/s(an average of 85% savings in server bandwitch). And that’s ONLY if the players are visible to each other via proper culling checks. If the server determines they can’t see each other, it doesn’t bother streamlining the data, which saves us even more bandwitch.
I could go on and on about what I’ve learned over the past couple weeks with Chickynoid, but I hope you, or anyone else reading, enjoy this information and decide to use this