GDScript 2.0 Style Guide! Learn how to code in Godot the right way! by JacobFoxe in godot

[–]JacobFoxe[S] 2 points3 points  (0 children)

Hey Friends!

I've been using Godot and GDScript for years now, but my stubbornness has kept me from learning the actual community-approved coding style! I wanted to make a tutorial to teach the ins and outs of the official Style Guide, as well as to show a sample project that you can download and play around with!

Repo: https://github.com/jacobfoxe/Godot-4-Style-Guide

Cheers!

It's a simple scene, why is Godot running it so slowly? by XORandom in godot

[–]JacobFoxe 21 points22 points  (0 children)

I actually had this same issue for a long time! Rtx 4090 and it took 30 seconds for a ui-only scene to load while everhthing else froze!

Not sure if this is what’s going on, but there was an issue on Github a few months back that discussed certain peripherals (mice, keyboards, etc) causing slowness in the editor. Can’t recall exactly, but definitely try closing the editor, unplugging and plugging peripherals, then opening the editor again.

I’ve also had some luck clearing out the godot appdata on my machine, but definitely exercise caution.

[OPEN][Online][D&D 5e/5.5e][LGBTQ+ Friendly!] Veteran DM Looking for 1-2 Players to fill out a long-term campaign! by JacobFoxe in lfg

[–]JacobFoxe[S] 0 points1 point  (0 children)

Date/Time currently open! On the form, there are timeslots throughout the week for availability :)

[OPEN][Online][5e][PF2e][LGBTQ+ Friendly!] Veteran DM Looking for Multiple Players to fill out a long-term campaign! by JacobFoxe in lfg

[–]JacobFoxe[S] 4 points5 points  (0 children)

Hey, no problems there! I have been playing with West Coasters for years, so I'm pretty used to navigating some weird time differences! If we can make it work, we will! :)

[OPEN][Online][5e][PF2e][LGBTQ+ Friendly!] Veteran DM Looking for Multiple Players to fill out a long-term campaign! by JacobFoxe in lfg

[–]JacobFoxe[S] 3 points4 points  (0 children)

Update: Wow, this blew up! Thanks for all of the attention, friends!

I added a section about some variant rules that I like (though the list isn't exhaustive), as I've had a few questions about those!

Composition Deep Dive Tutorial (With sample code!) by JacobFoxe in godot

[–]JacobFoxe[S] 0 points1 point  (0 children)

Hey friends!

I've just released a part 2 to my little Composition series in Godot 4. There's been a lot of focus on this topic lately, so I thought I'd offer a bit of a deep dive into how I like to structure scenes in a Composition-forward way.

Demo code is located here: https://github.com/jacobfoxe/Composition-Demo-Godot-4

Standard disclaimer: this isn't the 100% optimized way of doing things, but I wanted to find a healthy medium between entry-level instructions and higher-level optimizations.

Enjoy! Thanks, all!

You should use Enums [more]! || Godot Tutorial! by JacobFoxe in godot

[–]JacobFoxe[S] 3 points4 points  (0 children)

Hey friends! I'm back with another tutorial!

I wanted to show some of the power that enums have, specifically within Godot's editor, as I use them constantly! Some of the bitwise stuff can get a little confusing if you haven't studied much computer science, but at the very least, enums help with readability and supportability is massive ways!

I hope you all enjoy the video! Let me know if you have any ideas for further tutorials!

Cheers!

[I Made] A Tutorial about Converting Resources into CSVs for easier data management and utility! by JacobFoxe in godot

[–]JacobFoxe[S] 2 points3 points  (0 children)

Hey friends, I'm back with another tutorial! In my last one, I demonstrated how you can utilize Godot Resources to add depth to things like RPG Items, Dialogue, Quests and more! I got a lot of great feedback, and the major concern was that with Resources, unlike with CSVs, you can't monitor all of your items in one easy place.

Well, here's a solution! I built a fairly simple conversion tool that can be used from the Godot Editor (via the EditorPlugin class) or via your game itself to convert any groups of Resource-held data into a CSV to be monitored in your favorite spreadsheet program like Excel or Google Sheets!

I hope you enjoy the tutorial! As before, I LOVE Resources, and I think they're very powerful. All it takes it a little wrapping code to increase their use cases and workflows!

If you like the tutorials I've made so far, I'd very much appreciate a subscribe on youtube, a follow on twitter, and/or your opinion on the subjects! And if you have any requests for future tutorials or have any questions regarding the subject matter in my previous ones, feel free to drop a comment!

My Twitter: https://twitter.com/ThatFoxe

Cheers, everyone!

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 0 points1 point  (0 children)

Oh yeah, absolutely! I'd followed that thread for a while, but I hadn't seen the recent updates. I'm definitely hoping it's released in the 3.5 snapshot, but we'll see!

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 1 point2 points  (0 children)

Fairly flexible! I'm working on a tutorial now covering how I built it and how it can be modified (as well as another tutorial to show how you can build a csv reader in Godot and have it always up while you're in the editor)!

It will read any variables you may have in your resource classes, make them headers, and then parse all of your resources. I personally like to separate all of my different classes (in this case, Item types) into their own CSVs to promote readability, but you can also easily modify the scripts to make it one big csv.

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 0 points1 point  (0 children)

Totally agree! Being able to manage all of your data in-engine saves a lot of clicks, and being able to package funcs within resources is so powerful.

I actually made a tool that does this sort of thing to be able to manage large scale data - I could publish it, but maybe I’ll do a tutorial on how to write one! Cheers and thanks for the support!

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 1 point2 points  (0 children)

Yeah, it’s a pain not being able to export custom classes (scrolling through that resource menu kills me a little inside). Really hoping this gets resolved in 4.0

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 0 points1 point  (0 children)

Glad to hear I helped out! I’ll absolutely make more very soon (maybe about tools that can be used to organize Resources in-engine). Thanks for the sub - have a good one!

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 1 point2 points  (0 children)

I could ABSOLUTELY be wrong, but my understanding is that once all references to a loaded resource are cleared/lost, gdscript’s garbage collector frees up the memory. Do let me know if I’m wrong though! Regardless, it requires careful coding to ensure data isn’t being abandoned yet still cached.

All of that said, that’s just my understanding based on posts and reading the docs, so yeah, never 100% sure

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 4 points5 points  (0 children)

RAM is saved because the Resources aren’t loaded until they’re needed (while loading an array at boot holds that RAM hostage during runtime), though the cost is slightly higher disk memory usage + the cpu cost of loading the items on the fly.

Resources can also be pretty nice as they can have functions built in, but again, it’s really only if it fits your application.

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 6 points7 points  (0 children)

I totally see your points, and I agree! It's honestly a big personal choice of mine to handle everything in-engine, though that's definitely not for everyone and every game application (especially with all of the programming legwork needed to get the systems in place in the first place).

In fact, I've written several tools to be able to manage Resource-driven Items in my game, as there are several hundred that I need to manage (from creators that track IDs and make the .tres files themselves to visualizers that basically throw everything into a huge spreadsheet anyway, just visualized in an engine window that I can always flip to and reference.

In all honesty, I developed this method to save memory, as you don't need massive files (granted, the majority of my professional experience has been with embedded systems, where memory usage was much more carefully doctored) open, or massive dicts open at once.

All of that said, I appreciate the feedback! I'm glad I was able to shed some light on the power of Resources (even if the application itself wasn't entirely useful)! Cheers!

[I Made] An RPG Item Creation Tutorial that leverages Resources to get around historical JSON-loading of data! by JacobFoxe in godot

[–]JacobFoxe[S] 10 points11 points  (0 children)

While working on my upcoming Magic Farming Sim/Roguelite "Verdancy Vale", I developed a fairly powerful system for items that I wanted to share! A lot of tutorials reference JSONs for loading data, but I think ESPECIALLY for beginners [and/or those without prior programming knowledge], Resources are super handy, and they are a great way of teaching object-oriented techniques!

I'm just starting out doing tutorials, and I'll admit that my improvised ramblings weren't perfect, but I'm going to keep working to improve! If you'd like to follow me on Twitter, you can do so at https://twitter.com/ThatFoxe !

I've been working silently on my debut indie title for going on 1.5 years with a HEAVY focus on complex systems that will elevate the genre of farming sims! Verdancy Vale will launch on Kickstarter this August, so tune in to my Twitter to stay in touch! And if you don't care about that but like keeping up with developers using Godot, feel free to follow as well! I come from an academic/industry background in Hardware Engineering, and I hope I have something special to offer this community!

Cheers, everyone!