site banner

Tinker Tuesday for November 12, 2024

This thread is for anyone working on personal projects to share their progress, and hold themselves somewhat accountable to a group of peers.

Post your project, your progress from last week, and what you hope to accomplish this week.

If you want to be pinged with a reminder asking about your project, let me know, and I'll harass you each week until you cancel the service

2
Jump in the discussion.

No email address required.

Day 12 of NaNoWriMo, and I've just crossed the 20k mark. I'm really enjoying the whole process, I forgot how much fun it is to get into that creative flow state where the ideas are just pouring out of me.

My initial understanding of NaNoWriMo was that one had to write a complete novel of at least 50k words in the month of November. To that end, when mapping out the structure of the story in October, I'd envisioned it being made up of 5 "acts", each roughly 10k words. But of course, I quickly found that I had much more to say than that: act 1 is already 14k words and it isn't even finished yet, and at this rate a complete first draft will be more in the range of 70-80k words. Fortunately, the rules of NaNoWriMo stipulate that you can use the month to write a 50k-word novel or the first 50k words of a novel, so I'll still win the competition even if I don't have a finished first draft by December 1st.

That sounds real good. My November so far has also been going well. Maybe it's in the air.

Rock on!

Redot

With the limited amount time that I have recently, playing around with Redot feels like something more doable than slogging through bigger Highspace features I got stuck on, so it looks like this is what I'll be doing until my brain resets and/or I'll have more time to push through the block there. Contrary to @Southkraut's pessimism, it looks like they're pulling through. Last week I took it for a spin and saw that everything seems to work pretty much like with old Godot, so I dusted off some old projects to see what I can do with them. Ages ago I took a GPU programming course, and made a little simulation of a swarm chasing the player, while respecting some basic rules of physics (like collisions with each other). This was still done in Unity, and while it mostly worked, I started running into some performance issues as complexity grew.

Years later GPU programming is still a niche, but it looks like there's more experience around it, and I can strip-mine other projects for insights. Specifically what I'd like to do is see if I can adapt this into Redot, and push my old simulation to really high numbers (aiming for millions, go big or go home).

@Southkraut, you mentioned you probably wouldn't have time over the past week, but I'll traditionally ask how are you doing anyway. Also, last week you said:

Looking back upon my Unity project and comparing it to my current Godot/Stride iterations, I am struck by one fundamental difference that wasn't even intentional. My old project is primarily a physics simulation, and whatever abstract logic or behavior happens is a consequence of physical entities interacting. In the new version, everything is abstract entities that possibly project into the physical realm. Huh. I'll need to do some more thinking about this.

Can you elaborate on this. I think I know what you mean, but I don't know what consequences, if any, it would have on picking an Engine, for example.

Also, congrats on the new job! I recall you posted about being burned out with the old one a while back. I've been in a similar position not long ago, so I'm glad to hear you took matters into your own hands, and hope the new job is a better fit.

Redot

I'm happy to hear it. If they can make it so that compiling for double-precision AND C# actually works, then they're winners in my book. I'll check it out once I've established a new weekly routine that makes some suitable time for sitting down and tinkering.

@Southkraut, you mentioned you probably wouldn't have time over the past week, but I'll traditionally ask how are you doing anyway.

Thanks for asking, and please do keep it up, even though it's a bit of a drought right now. I did not get around to anything at all - I was always at work, or making up for my absence by going full hog on dad duty, or just plain tuckered out.

Can you elaborate on this. I think I know what you mean, but I don't know what consequences, if any, it would have on picking an Engine, for example.

It wouldn't. It's not related to the engine question. It's rather a change in how I approach my cluster of projects, and a change that snuck up on me and I only recognized it long after it happened. Let me illustrate the comparison a little.

Old: There are many Physical Entities. All these entities have complex physical properties and interactions. All these entities are always rendered and physically simulated. Some of those entities may contain so-called Functional Structures. Some of those Functional Structures might support Behaviors. Some of those might be Agents, who actually act upon the game world. All their actions and interactions go through the physical properties of their Physical Entities.

New: There are many agents. All these agents have goals and sets of possible actions. Some of those agents have physical bodies. But the actions and interactions of the agents only account for their physical bodies in the broadest sense, i.e., usually just location. Those physical bodies that are very close to the player's location are actually rendered and physically simulated, but the abstract behavior of the agents has priority over the physics simulation, and they can interact with non-rendered, non-physically-simulated agents just fine.

Also, congrats on the new job! I recall you posted about being burned out with the old one a while back. I've been in a similar position not long ago, so I'm glad to hear you took matters into your own hands, and hope the new job is a better fit.

I didn't really take the initiative on this until the last job really started falling apart, but it's still a sound improvement overall. Better salary, conditions, benefits, location, and most importantly I get along with my new colleagues very well, which was sadly not really the case in the old job. That last point is very important to me; I'm much more motivated when people I actually like depend on me. I'm also on premises all the time, which helps a lot with actually focusing on the job - no more distractions on the home front. The work itself is extremely dry and technically uninteresting, but I suppose you can't have it all. I'm honestly surprising myself with how easily I manage to adapt to the new working conditions after four years of practically pure home office, and how much energy I can muster for work after so much time spent just dragging myself along in a job I hated. It's nice. Exhausing, too, but I'm happier than I've been in a long time.

How did your similar situation turn out?

New: There are many agents. All these agents have goals and sets of possible actions. Some of those agents have physical bodies. But the actions and interactions of the agents only account for their physical bodies in the broadest sense, i.e., usually just location. Those physical bodies that are very close to the player's location are actually rendered and physically simulated, but the abstract behavior of the agents has priority over the physics simulation, and they can interact with non-rendered, non-physically-simulated agents just fine.

Yeah, makes sense, that's how I like think about my projects as well, though back to the engine question, I get the feeling that Unity / Godot is often an obstacle to it. It's like they really want you to think agent == scene node, and decoupling the game world from the scene / physical simulation often feels like a pain in the ass. Is this an issue you ran into, or did you come up with some cool way around that (alternatively - can't relate with the issue at all)?

How did your similar situation turn out?

Much like yours. It was a step down financially but that was unavoidable, for all the misery the old job was causing me, it paid quite well. Otherwise nothing but upsides - better management, colleagues I get along with better, a more up-to-date tech stack (which was a big relief, I felt I was in the danger of becoming a fossil with the old one). I also relate suddenly having energy after years of dragging myself.