Friday, October 18, 2024

Devlog 5 - Getting it Right

It's very nice to try ideas out in loose pencil before I actually start drawing on the computer.

This week has been a good week. There's always a feeling when things start working together in greater harmony where I think "This feels like an actual game now". This project has taken longer to get to this stage than normal, but I'm starting to get that feeling. It's a good one.

Writing

I've been very design focused so far, but I have finally started trying to write a few lines for the game, and here's another area where I am very rusty. But I also think, looking back at my old work, that I never had particularly high standards for my writing before. I did very little self editing, always wrote far too much, and often wouldn't think about what information I was trying to convey with each line. This time I'm trying to reduce the quantity of spoken dialogue that I create and increase the quality of what remains. After lots of tinkering I think I have the opening lines of the game in place, which seemed to take me forever - but I know some of my favourite writers rework their lines endlessly to get them right. I can also tweak background paintings forever.

It will be interesting to see if I still believe in the quality of these lines after having written more. At least I managed to name four of the characters already.

Programming

Your friendly learner programmer is slowly getting back in the swing of things. I can write a for loop now without having to reference the manual to remember the formatting. I have started using enumerated types for my functions again, the declarations of which I did have to look up in the manual but are thankfully as simple as I’d remembered. I wrote my first switch statement ever this week, what a wonderful addition to the engine since I last used it. And, best of all, when I hooked up a few different little systems that I had been building for a while and tested it - everything worked. It’s all pretty simple stuff, I am not building a ridiculously complex game, but to see things I had envisioned working properly was a delight. It means that I can build my ideas with my current knowledge. Time will tell if those ideas translate well to player experience!

One thing I am being careful about is not getting too worked up in getting a piece of code "right" at this moment. There are a lot of places where I know that I have a function working but I've done things in a very inefficient way, typing out things manually rather than handling them in loops, functions, etc. The honest truth is that my brain is still quite weak at following the logical processes of everything, so every now and then I will have something that I know I could do in a neat and compact way, and so I give myself one chance at doing it that way. If I can't get that working, I don't waste more time trying to get it working in that compact form, and just manually write it all out, which is quicker for me at this point, and leave myself a note to come back and try again when I am more fit for coding. I think it's okay to work like this for now - eventually I aim to be competent enough that following these chains of logic is trivial. But I would rather get everything working properly and try the features in game instead of wasting time trying to find the neatest way to write a function that I haven't even tested with everything else yet.

Art

I have everything in place enough now that the art tasks for this game are just my normal day to day "Here are the items on your todo list, make sure you're getting a bit done each week". This part I know how to do. It's still work, and it takes a lot of time as always, but in this case I have the confidence so that I am not really intimidated by these tasks, even the more complicated ones. Every font looks wrong, though, and I have started trying to make my own. It also looks wrong, but at least in this case I can keep fiddling with it bit by bit until it's less wrong.

Design

Here's the weird part - I can play some of my game now. Can even solve some puzzles with the player's abilities. There's no inventory or interactive dialogue in yet, but I know how to make those things, and it's the other stuff that I have been more interested in getting working. I know I'm being mysterious about this but I want to figure this stuff out more before I talk about it because while it's quite simple, the implementation means that I have to see it myself to know if it feels good, and if my ideas are strong enough to merit basing an entire game on them. It's really satisfying to be refining the things that don't quite feel right (it's amazing how much an animation playing or any kind of feedback are an essential part of design feeling wrong or right). 

On Wednesday night I was hooking in a bunch of the animations that will make the design feel better and playing around with the elements and my brain went “Wait, wouldn’t it be more interesting for the player if…” and I figured out another layer I could add - just a small one, but this sort of thing was my hope. Build a set of simple systems, make them interact, and then experiment with them and see what emerges. I’m not trying to build puzzles yet, as this start section is designed to let players figure out how to use the game’s systems in a limited, not too challenging environment, but I think this sort of approach will be a fantastic way of designing interesting gameplay once I am. I know Jonathan Blow has talked about this sort of approach in discussing how he designed puzzles for Braid & The Witness. And I think it ties in nicely with my idea that an adventure game protagonist can bring a set of abilities and tools to a situation and we can encourage them to use those in interesting ways, rather than relying on players finding the majority of their tools in their surroundings.

Of course, people might get really bored with using limited resources. But I never got bored of the simple panel puzzles in The Witness. I plan on showing a build around to a few friends once I have a bit more interactivity in place, in order to get some feedback - I’m sure they’ll have thoughts on all of this.

Summary

Overall, the results of this week's labours have left me feeling quite optimistic. I always have the feeling that things should be moving slightly faster, but also the feeling that I'm solving new problems to me, and doing so takes time. Even more time now that I am re-learning so much. That being said, I've discussed parts of the design, writing and even shown a bit of art to various people and the response has all been positive interest, and that gives me energy. Yesterday I looked at the programming task I had set myself for the day and I did not want to do it. Even the thought of making it work felt overwhelming. But I broke it into smaller pieces, rewrote it several times, and eventually got it working. It's the only thing I got done on the game in the whole day before I got to working on some end of the todo list Old Skies art. But I got it working, and the next time I need to solve that problem I know how to do it. That's a good feeling.

Thanks for reading, all. I'm off to set up my telescope to try and catch another glimpse of comet C/2023 A3 Tsuchinshan-ATLAS.

This is the second comet I've seen with this scope since I bought it.

No comments: