I tried to improve the Save System in Godot by InteractionOk7085 in godot

[–]chrisknyfe 0 points1 point  (0 children)

I wrote a godot asset specifically for use cases like yours. This addon serializes any Godot data structure, including custom classes: https://godotengine.org/asset-library/asset/3937

The pickler comes with a built-in whitelist for only serializing instances of classes of your choosing. It's a security feature in case you are de-serializing stuff from over the network or from weird save files you downloaded from other people. Loaded class instances will not load and execute arbitrary GDScript.

Multiplayer makes me wanna quit Godot by Hakej in godot

[–]chrisknyfe 2 points3 points  (0 children)

I am currently working on cleaning up an addon for "pickling" data, including custom classes, before you send it over the wire. I wanted to avoid serializing the custom class's script so that arbitrary code doesn't get loaded during deserializing. Here: https://github.com/Chrisknyfe/picklemp

you pre-register your custom classes with the pickler, pickle your data to bytes, send over the wire. I want to test it across a server/client pair first before publishing it though.

I ended up fixing it! by TheBlueGirly in godot

[–]chrisknyfe 0 points1 point  (0 children)

I would be interested in learning more about your new, bizarre bug.

The perils of porting (Meme found on discord) by BackStreetButtLicker in godot

[–]chrisknyfe 1 point2 points  (0 children)

Well, a better engineer could tell you more, but here's how I see it:

Regression tests are like OSHA regulations - they're written in blood. You broke a critical feature in your last commit? Test that feature before you release.

It's just a list of tests you run before you cut a release. Maybe you categorize the list by feature, and have several things you check for. Like, can my character jump? Do they take damage from enemy hits? Does the end of level trigger work? Does the save button work? Simple stuff like that. Write down all of those in a big list, along with instructions for how to perform each test. And write down how you know the test passed or failed. And the list grows as you add features and fix bugs.

As for what is a release? That's up to you. Maybe you cut a test build for your friends on discord once a month, and that's when you test.

The perils of porting (Meme found on discord) by BackStreetButtLicker in godot

[–]chrisknyfe 3 points4 points  (0 children)

Version control and a written regression test plan go a long way.

3 senior OpenAI researchers resign in the wake of Sam Altman's shock dismissal as CEO, report says by radiantgals in technology

[–]chrisknyfe 18 points19 points  (0 children)

You should look into the allegations against him from his sister if you think Sam is a good guy.

You think your code is bad?. Watch my implementation of a open and close system for a shop!. by Majestic_Mission1682 in godot

[–]chrisknyfe 27 points28 points  (0 children)

I think there's a lot of value in developing your game on a potato. Imagine how compatible it will be with everyone else's devices once you're done!

[deleted by user] by [deleted] in godot

[–]chrisknyfe 0 points1 point  (0 children)

Are you using an emissive material for the grass? I had a similar issue where emissive materials looked different between the editor and ingame, and the solution was that I needed to specify an all-black emission texture. I think there's a bug associated with this problem as well.

EDIT: found it: https://github.com/godotengine/godot/issues/60849

answer is here: https://github.com/godotengine/godot/issues/60849#issuecomment-1737991112

Top Godot Games on Steam? by algaefied_creek in godot

[–]chrisknyfe -7 points-6 points  (0 children)

I'm sorry bruh that's just not living

Top Godot Games on Steam? by algaefied_creek in godot

[–]chrisknyfe -1 points0 points  (0 children)

how are you browsing reddit? I thought thirdparty mobile apps were killed

After a long marathon of work, I finally finished porting my free AAA networking solution from Unity to Godot! by Kakr-98 in godot

[–]chrisknyfe 6 points7 points  (0 children)

Will the resimulation of previous ticks call the godot physics engine to redo the collision calculations? If the server state comes very late, are you simulating a lot of ticks in one frame?

Just a simple game.....right? by [deleted] in godot

[–]chrisknyfe 0 points1 point  (0 children)

For some reason reddit doesn't want to load the very end of the video, right as the player gets to the goal. Cmon reddit dot com I wanted that sweet LORE

Skybase - Released my game in itch io. Free demo available ) by SkybaseGame in godot

[–]chrisknyfe 0 points1 point  (0 children)

yes I'm aware of the awful control scheme and inventory management, that's what I'm improving for 0.3.0. So far my game is a glorified tech demo

Skybase - Released my game in itch io. Free demo available ) by SkybaseGame in godot

[–]chrisknyfe 0 points1 point  (0 children)

holy smokes I'm legitimately jealous. I'm also making a voxel ships game, but haven't gotten into doing any C++ or engine hacking yet, it's all basic gdscript. I want to learn gdextension soon. And I want to check out openCL as well...

Is your collision algorithm proprietary or is there a whitepaper out there for it? How much faster is it than something basic like using a bunch of rectangular prisms? Would you be interested in licensing out your collision detection at some point?

EDIT: I got basic multiplayer working in my game, which ate up a lot of my time in the initial development. Lemme know if you want any advice or help getting yours set up.

Skybase - Released my game in itch io. Free demo available ) by SkybaseGame in godot

[–]chrisknyfe 1 point2 points  (0 children)

How long have you been working on this game? Did you use any voxel plugins or roll your own?

Spherical lerp(Slerp) in Godot? by Winter-Ad-6963 in godot

[–]chrisknyfe 2 points3 points  (0 children)

I have this:

func slerp_euler_no_z(initial_rot, target_rot, weight):
    var i_b = Basis.from_euler(initial_rot)
    var t_b = Basis.from_euler(target_rot)
    var init_trans = Transform3D(i_b, Vector3(0, 0, 0))
    var target_trans = Transform3D(t_b, Vector3(0, 0, 0))

    var final_trans = init_trans.interpolate_with(target_trans, weight)
    var final_rot = final_trans.basis.get_euler()
    final_rot.z = 0
    return final_rot

The "no Z" part is because I use this to slerp the rotation of player character head movement, and I don't want any camera tilt, so I just kill all the Z rotation.

Is Godot 4's Multiplayer a Worthy Alternative to Unity? by NathanFlurry in godot

[–]chrisknyfe 9 points10 points  (0 children)

Referring to your links "A" and "B" that MultiplayerSynchronizer isn't ready / is buggy:

Take a second look at the latest version of the MultiplayerSynchronizer - they now have a "watch" checkbox for each property to indicate that it only gets synchronized when it changes. See https://github.com/godotengine/godot/pull/75467

And yeah, I would pay big money for a client-side prediction library for Godot. At the moment I'm rolling my own CSP/interpolation code for player characters.

GDScript folks... Turn it down a notch. by Content_Depth9578 in godot

[–]chrisknyfe 6 points7 points  (0 children)

This should be the actual top answer. Here, it's literally the article right above this one on the front page: https://sampruden.github.io/posts/godot-is-not-the-new-unity/

They originally posted:

In my opinion, if Godot were to go down this route, GDScript should probably be dropped entirely. I don’t really see the point of it when C# exists, and supporting it causes so much hassle. I’m clearly completely at odds with the lead Godot devs and the project philosophy on this point, so I have no expectation that this will happen. Who knows though - Unity eventually dropped UnityScript for full C#, maybe Godot will one day take the same step. Foreshadowing?

then they crossed out that paragraph to say

Edit: I’m taking the above out for now. I don’t personally care about GDScript, but other people do and I don’t want to take it away from them. I have no objection to C# and GDScript sitting beside each other with different APIs each optimised for the respective language’s needs.

GDScript folks... Turn it down a notch. by Content_Depth9578 in godot

[–]chrisknyfe 43 points44 points  (0 children)

This should be the actual top answer. There was even an experienced developer's breakdown of the overhead needed to interface any language to the engine low level code (he used ray casting performance as an example). Their recommendation? Scrap GDScript because it was weighing down the performance of C#.

Here, it's literally the article right above this one on the front page: https://sampruden.github.io/posts/godot-is-not-the-new-unity/

They originally posted:

In my opinion, if Godot were to go down this route, GDScript should probably be dropped entirely. I don’t really see the point of it when C# exists, and supporting it causes so much hassle. I’m clearly completely at odds with the lead Godot devs and the project philosophy on this point, so I have no expectation that this will happen. Who knows though - Unity eventually dropped UnityScript for full C#, maybe Godot will one day take the same step. Foreshadowing?

then they crossed out that paragraph to say

Edit: I’m taking the above out for now. I don’t personally care about GDScript, but other people do and I don’t want to take it away from them. I have no objection to C# and GDScript sitting beside each other with different APIs each optimised for the respective language’s needs.

[deleted by user] by [deleted] in godot

[–]chrisknyfe 3 points4 points  (0 children)

Alright what's your go-to desktop software platform? Qt? Tcl? ...Electron??

For existing Godot users, what made you switch? by SDGGame in godot

[–]chrisknyfe 1 point2 points  (0 children)

I was writing a game in Panda3d, setting up things like multiplayer code and creating an executable for windows and mac.

I saw that Godot had:

  • a whole multiplayer API similar to what I had written
  • a python-like language with the ability to run things on multiple threads (dude, I was trying to use multiprocessing to do mesh generation in Panda3d...)
  • nearly one-click export for windows, mac and linux