Log 1
Pre-Log
This is the first log I wrote for this project, but it wasn't the first day i worked on it. I think I might have lost one of my daily post-mortems, which I don't love. Maybe for the next one, I'll create an itch project, first, then add logs, here. That'd also fix the fact that I lose track of days, and when I work on it, and how often I get back to it.
Okee Dokee.
Day 2 of Day 06. I might need to come up with a better naming pattern for this...
And actually, it's not even Day 2. Ha. I've been trying to get back at the computer for a while now. I had my very nice date with Kate last night <3 and she reminded me about SMART Goals That helped me get back on track, really. I'm shooting for 18 hours a week, I think this'll be 5, when I'm done writing this? 6 if you include eating time/break, but I guess I'm a capitalist. But I guess now that I think about it, my Goall was ACTUALLY to allocate 18 hours towards GameDev mentality? So I guess I'm using different units of measurement for what my Goal is, and what I'm actually measuring... hmmm...
The other day i went back to ChatGPT to get help figuring out how to structure my project. SPecifically, how to structure GardenActions, liek AddingWater or SpreadingWater to adjecent tiles, and how to make it so StoneTiles and GrassTiles use the same SpreadWater, while SandTiles use something different.
AI is so fucking useful. Sorry fam, but it really helped. I don't have a human to ask these questions! And if I did, sometimes asking them is harder than asking and rephrasing to an AI!
So I asked a couple of questions about how to give similar objects, different behaviors. And then asked about the difference between instantiating a Scene/Resource with instance(), vs a Class
with new() (I still don't *totally* know the difference, but I think it's on the cusp of my understanding)
SO, I learned that asking AI to teach me about things, is SUPER useful. Evil, maybe, but that's only under capitalism where your marketable skills are directly tied to your ability to survive.
And it's really, extremely helpful.
Nodes belong in scenes when they're interating with the tree, Resources are good when you need to share information among many objects (Like a texture, or config), and when it's more about logic than interacting with other nodes. Classes are very logic and data driven, when things need to be NOT shared. When each instance has it's own data that it's controlling. ALso very useful when the object does NOT need to be preloaded, like a Res or Scn do.
Copilot (ChatGPT, AI, whatever) also saves your conversation between sessions? So... that's kinda cool...
With all of this, I dove back in. I decided to make my LimitExceeded Action a class, and new() it in a Global, then have them send actions up through Global. Global is a little weird though? I think the timing of things is hard to figure out/a little unintuitive like this. Maybe I'm using it backwards, or using Godot exactly opposite of how it was intedned. WhooOOPS. The timig of when variables are get() or set() hasn't lined up, so I had to speand a lot of time tinkering, to get the timing to line up.
I completely gave upu on the MoistureHandler, opting to set it up with code and inheritance, instead. Maybe composition would have been better, but Inheritance is what I know. Honestly, I don't think I really have needed inheritance, for what I'm doing so far. Like, I don't think I've gotten far enough in, that the payoff of all this matenance has paid off yet.
I set my World node to be a Global Autoload, and then created a new scene that it loads into. I think I might do this from the get, from now on. A problem I've run into a couple of times, is the tradeoff of Autoloading into a scene to have it accessable vs wanting to put it in manually and fiddle with it directly before the scene loads. But if I just autoload the whole world, then I'm golden!
But I did the thing I wanted to do! I extracted the action, SpreadWater. I made it so that anywhere can use it. I made it so anything can tell the map to add water to any tile. The general actions that I'm going to want to do are reusable, and accesable, and flexible.
I definitely rushed into this though. I don't fully understand what I did. I think returning to this is going to be a little difficult. I was really just trying to figure out how to make it work at all. So honestly, now that I'm talking through it, I think I did the best thing! Move fast and break things. that's what I did, and it got me products, it got results. I'm going to have to go over what I did, and try again, to figure out what I did and how to use it and how it works. But for now, I have a working prototype; I just need to refine it into something that can work for me. I think I'm still very very new to this. More so than I realized. I really need to keep at the small things. I'm learning so so much, so quickly, this way. I'm really excited for what's to come.
Umm, last notes on what I actually did. I used classes rather than Res or Scns. I did things at the code level rather than at the editor level. em. OH I need to learn more about the timing of calls. When vars get set, when does @onready happen, etc.
I think that's it. We'll say 6.5 hours of dedicated time down. 5 hours of really good work. Good job Conor. You're on your way.
Files
Day 06 Garden Grower
First step towards a tile game
Status | Released |
Author | Conor V O'Donnell |
More posts
- Log Final16 days ago
- Log 3? Maybe? I've lost the order of these.16 days ago
- Log 216 days ago