Thursday, August 24, 2023

8/24/23

 Time Worked: 1 hour, 45 mins

Made progress today. just gotta keep moving along. I've been readying Tynan Sylvester's book (Designing Games), and it has been super informative. The thing is, I am a professional programmer - so actually making things isn't really that hard. The hard part for me is having any fucking clue what to make. 

Well that's kind of overboard; I have ideas. It's just I have not been educated in Game Design. And neither have I really been educated in entrepreneurship. So there's a lot I have to learn in those areas. And other areas of course.

Anyway it has been super informative but it has been stressing me out - I'm second guessing every decision I make because I'm learning so much new stuff.

I think I just have to stick it out - keep feeling it out and just going with the flow on this to make it the best it can be until October since that's the original 3 month check-in. At that point, if I wanna completely pivot I can. Still this work is extremely useful and meaningful even if it gets tossed. I mean I'll share my work as a portfolio piece regardless.

And I'm not really saying I'll give up on this project. I'm just saying now is not the time for pausing and thinking - now is the time for doing as much as I can and working hard on producing, just being at the thought level that I am at. I can't read my way into being a good designer; I have to just make stuff. So that's what I'll do for now.

Anyway I've been spending a lot of time on the AI. It's been very neat and cool and I feel rather impressed with myself since I've never done something like this - but there is a lot to do. So sometimes that makes me wonder if I should even be focusing on AI - maybe not. But I think I'm just gonna let this play out, and we'll see. At the very least, I'll have some decent experience programming AI in my own games. Knowledge I can draw on when I inevitably eventually need it.

Something really important I am learning about from the book is about certainty and uncertainty. And the fact is right now I'm very new still - second (actual) game here (beyond game jams). So I'm not going to be very good at estimating things as there's so much I am new to. So I have to take things one step at a time - I shouldn't even be writing design docs beyond like 1-pagers etc. I just need to accept that I'm going to have to be flexible and just keep chugging along.



Tuesday, August 15, 2023

8/16/23

Time Worked: 2 hours

Still working through the AI state machine update. I don't know if I mentioned anything last time, but I'm implementing a concurrent state machine system for the AI since I had no data structure at all before. So it has taken weeks now and has just been a really challenging task, but I feel like I'm really getting there. 

It's exciting but I am so looking forward to doing some more drawing or something to give me a break from this hard shit. Or maybe just implement a smaller fun feature.

Anyway, still working. Haven't quit. I'm still at it.



 

Wednesday, August 9, 2023

8/9/23

Time Worked: 2.5 hours

Hello there.

I've been stuck for quite a while (probably a week or two) on improving the enemy AI. The problem was definitely that I tried to implement new behavior into the big-ass update loop with a bunch of conditionals. Basically the existing AI was just conditionals in a loop. And it was disgusting. I made a ton of progress implementing a seeking-cover feature, but it just became such a confusing sweaty mess that I realized I needed a better solution. 

So I picked up my copy of Game Programming Patterns and read through the State Machine section. I drew a diagram of states that made sense to me (having 2 concurrent machines, one for attacking and one for moving), and then I began implementation. It's kind of hard because I haven't done this before, but it's a really good step in the right direction.

I already knew about state machines etc., and knew that I would need to have a better data structure / system for my AI, I just hadn't done any work on it in a while so didn't think it was time to upgrade it. But, I definitely have come to see that it's probably worth implementing a state machine if you have anything more complex than "Find Player -> Attack Player".

Anyway, this is quite the slog, a ton of code, but it's gonna be really sweet when it's done and I'll get there. I have the endurance. I just have to stick with it until I'm through - then it's time to do some artwork again!

Here's a diagram of the state machines. Just a rough draft here.


 

Friday, August 4, 2023

8/4/23

 Time Worked: 1 hr, 30 mins

Hey there. Been a while. I've been going ham on "NextSoldier", but I just haven't been in the habit of posting here. I need to get back to it because it really helped me get off the ground with game development. So, I'm back at least for this post. lol.

I wonder if I should start being more professional. This has been basically a diary for me, because I don't want to spend a bunch of time editing my thoughts to make them presentable to others. I'm just thinking and writing and recording my progress.

Anyway I'm not sure where I left off last, but EndSoldier is done, now the next project (temp name: NextSoldier) is in the works. Doing really really well, I think especially in terms of organization I'm going a much better job. I've got a good system going where I don't have a very specific deadline (because at this point how could I), but I'm going to check in October to see where I'm at and decide if I should continue or not. 

I'm also doing things iteratively; I drew out a whole diagram of the basics of the game in Mural and at the beginning of each sprint, I draw another mural just showing the parts that will be worked on. But the idea here is that the game will be a playable game every sprint. Every sprint just adds more mechanics and improvements. This is really good because it's very motivating for me to see a working game, and also at the end of any sprint I could leave it and it could be "done" or at least showable.

I also started organizing my tickets in Trello better, writing down maintenance tasks as I think of them. And each sprint I try to pick at least one maintenance task to do, ideally something that is local to the stuff I'm working on for that sprint. I think that's a really good system.

Pull requests are also being used; even though it's just me it means I have to review my work which helps me avoid putting in bad code.

Finally, I've been doing my own artwork for the game which has been unexpectedly very fun. It's just cool because I always liked drawing, but I just haven't been doing it, but now I have a reason to do it, so that's awesome. Like it's just fun, that right there does not feel like work. At least not yet.

Today, I have been working on the cover-seeking algorithm for the enemy AI. It's been a really cool thing to work on because I've never done anything like that, I feel like a smart person. It actually works pretty well, surprisingly I think I did it. I just need to also implement taking cover behind low objects by crouching (right now it's just hiding behind walls, etc.). I also really need to clean up the Enemy class by adding a state system; the massive amount of if statements is only gonna get worse when adding more behavior.

One thing I can improve on is deciding when I'm going to work on this project and when I am not. Because I need to take care of other parts of my life, right now I just do this whenever I can and whenever I feel good. But I feel like I need to be more structured; I need to tell myself "At these times, I am working. At these times, I am not". It's the same with my day job; I think I'm a little too loose with it.

Here's a sample of the prototype character art, and also a GIF of the game as of now.





 

Continuing the Work

 I have been thinking a lot lately. This is a hard thing. There's only so little time... I'm just one person. I'm one person, wh...