Chickynoid, server authoritative character replacement

Ok i will use direct messages then.

I’m really confused on how to set this up, am I supposed to fork the repository and use Rojo / VSCode? Or am I supposed to clone the experience linked in the post? There’s barely any documentation on this “Community Resource”.

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 :slight_smile:

1 Like

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 :smiley:
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…)

4 Likes

I think you’ll find this post interesting and helpful.

Pretty sure Chickynoid/Easy was one of the main forces that got Shapecasts added :smile:

2 Likes

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 :slightly_smiling_face:

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 :slightly_smiling_face:

Lastly, thanks for what you’ve done for the community with this :grin:

1 Like

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.

1 Like

Does chickynoid use shapecasts yet? And if not then when is an estimate of it doing so?

Currently awaiting shapecast margins :slight_smile:

Combat system made entirely with Chickynoid has been finished :slightly_smiling_face: 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.

10 Likes

Astonishing! Movement is really fluid

3 Likes

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 :sweat_smile:

1 Like

Can’t wait for the docs to get finished

1 Like

Me too, I am going to make my game once it releases!

1 Like

I see thanks for the quick response

A last showcasing of the possibilities of Chicknoid :slightly_smiling_face: 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!):
image

2 Likes

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?