Thursday, December 12, 2024

Devlog 13 - Nobody will ever grasp exactly how much effort I have put into getting the tiniest things feeling good.

It's so nice to know what I'm making now. Having actual solid direction on what I need to do is great, although it means that my todo list has gotten both longer and more filled with stuff that takes me way too long. Sometimes I think how much simpler things would be if I would allow myself to just design a straightforward AGS game, with inventory and dialog and that's it. But I know my heart wouldn't be in the project, it would scratch my urge to experiment with gameplay, and I feel like I've made enough of those already to do something different. It's just that everything takes so long now and while I can feel my skill at working with AGS script improving literally every single day, I also spent 3 hours yesterday fighting with room overlays and I still haven't solved all my problems there and I don't know how much more time I can justify spending on learning how to use them right now while the rest of my todo list looms.

This week I want to shout out vga256's EXiGY project, which was announced last week. I've been hearing about this for around a year, and we've spent many hours talking about design ideas, development woes, and the usual things that two people working in similar fields always talk about. There's some blogging about the process going on over there, too, so if you like reading these, you will probably like reading those.

Graphics

The build I sent out had the scenes roughly painted up, but being unsure about the solidity of the gameplay I didn't spend too much time polishing them, so I've quietly been seething at myself for these half finished, amateur looking scenes while I try to remember how to make computers do what I want. Anyhow, with things working better I started painting the scenery up properly this week, and found solutions to some of the problems* with the scenes ended up being a bit simpler than I thought. 

Of course, nothing in the scenery has changed at all. In essence they're exactly the same scenes, just now I've worked three times as long on them and am less dissatisfied with them. I expect some testers will struggle to notice even one difference between the 'bad' version and the 'fixed' version. But that's the way of the illustrator, I'm used to this. See the title of this blog post.

Coding

After my efforts last week, the last thing I needed to learn was performing a modulo operation in AGS. I know this is probably considered very easy but for some reason I have a hard time visualising how this works and so my three different effects that require this took me far too long to put together. At one stage I actually had an effect indexing through an array backwards. I'm a graphics person, right, I haven't done utility maths in years, so some of these operations I had to write out with a pencil, stare at them with my head in my hands for a while and then go "Oh, it's that easy? *sigh*". At one point James Spanos gave me some information on what will make the engine run slow that helped me understand the issues with something I had written which allowed me to refactor it, which was immensely helpful. Prior to that it was one of those problems where the issue was that I didn't even know what the issue was.

I have everything working more or less how I want it to at this stage, in terms of how it feels to operate your character's abilities in the world (with the exception of every single edge case that I *know* will crop up) and so after some more tweaking and adjusting I'm going to send out another build with the clarification that there's no more gameplay, I just need feedback on what's annoying and what's fun in my UX. 

I have no doubts that some stuff that I think is really cool will be horribly annoying to some people. There's one detail that I know is inaccurate, but feels so nice to use to me that I hope nobody cares. I had thoughts on how to fix it but it involves another two modulo operations and I don't even know how well the fix would work and I need a break from maths. I also have no doubts that some of the fine details will not be noticeable at all. See the title of this blog post.

Design

There's a fun thing in illustration where you make a change to an image and you can't decide, so you turn the layer on and then off again. Slide the opacity up and down. Maybe it's somewhere in the middle, but 47% opacity feels like too much, 46% opacity feels like too little. It's a kind of ensnaring vacuum that eats hours of your time. I'm finding the same with design - I move an element to the bottom of the screen, I move it to the top. Not sure. Let's make a hardcoded element a variable now so I can experiment more. Every script in the game has an expanding list of things that were once hardcoded and are now variables while I tweak and test and repeat.

It's amazing the things that I've found myself doing in the background because a mouse mode didn't feel right, or something felt too static, or things just felt wrong. Sometimes I find the solution very quickly. Other times it's the sad understanding that all the endless tweaking isn't fixing anything, you have to throw everything out and start over. Some things that seemed like a solution to something not feeling good ended up making it feel even less good. I want the player to always know what power they're using, intuitively. I want the act of using that power to feel good, like you're dragging that power around the screen as you move your cursor. Some nights I have stayed up until 3am trying to accomplish this. See the title of this blog post.

Summary

Sorry for the long post this week folks, I was out singing and playing guitar for 3 hours tonight and so my usual editing process was skipped over. These are the ramblings of a tired man who is trying to do illustration, animation, programming, music and various other things all at once and I know everybody reading this will think "Yes, Ben, that's ALWAYS the way it is". I know. I know the person making pizza crusts has attention to details doing that I will never even conceive of, as is the person painting lines on the road, the person writing a book about moths, etc. It all takes way too much effort and time and it's not fair that making good things takes a silly amount of work. But I'm enjoying the process so much, despite all my moaning.

I'm also still playing loads of Jagged Alliance 2 because it's the time of year I always get sentimental about long sessions in strategy & RPG games over summer holidays. It's probably how I ended up here in the first place. And Jagged Alliance 3 is really good and I enjoyed it so much, but Jagged Alliance 2 is Jagged Alliance 2, you know?

Thanks for reading :)

*the problems, in general, being variations on "this looks bad and I want it to not look bad"

Wednesday, December 4, 2024

Devlog 12 - Dynamics

This week was off to a good start, with the feedback from all testers being very positive (except when Windows Defender accused my project of being a virus and deleted it - searching the forums shows that this is a reasonably common issue and I'm guessing that until builds are distributed by something like Steam it will continue, unfortunately) and the general consensus was that with a few little tweaks, everything is in a very solid place. It's very clear to me now, looking back at the build I sent out a few weeks ago, where all of my design mistakes were but play isn't something you can taste yourself, like a soup. It's hard to know if a crossword clue is good or bad if you set the clue, because you already know the answer. And so it's thanks to the extremely valuable feedback from my testers that the game's foundation is solid, and I'm now ready to start building an actual game with it.

I'm also giving a shout out to Amberspire which was announced this week. Nic has been a great source of feedback for this project I've been blogging about (the source of the note "I wouldn't want the game to feel like it has a systemic core underneath it, but in fact the solutions be very linear." I highlighted a few weeks ago), and they let me play an early build of this game and it's very frustrating to come across what is very much a "just one more turn" game when you already have lots to do, especially one with such a lovely aesthetic.

Coding

Following on from the wonderful range of suggestions given to me last week by a number of people looking at the code in my last post, I spent a good amount of this week taking my functions and cleaning things up. There were a number of very helpful suggestions that showed me how to make things more readable and aid trouble-free adjustments, and a few that solved a number of tiny issues that had been things I accepted because I didn't know of the alternatives. After the push of rapid changing and prototyping in the last few weeks I knew I would need some time to clean things up, and so had allocated this week to be time for renaming things properly, addressing new feedback, and refactoring code where necessary. I've still some work to do here but in general everything is much nicer to look at and navigate, so thanks again to everybody who gave me suggestions!

I initially suspected that this would be incredibly distracting, but actually it doesn't seem to be at all while in game. It also makes it extremely clear which ability you're using while this mode is selected, which is very helpful!

I also wanted to allocate a little bit of time this week to re-learning how to use dynamic sprites in AGS, which turned out to be reasonably nice and simple for the most part. One thing I was struggling with myself when testing the build was knowing which ability I had active, even with GUI buttons highlighted and the literal ability icons following the cursor around, so one UX thing I wanted to improve was making the currently selected ability immediately intuitive. Diving back into my poor, messy test room I made a simple dynamic sprite of a lightning arc that connects the mouse cursor to the energy meter as one of my first experiments, and while "Drawing some lines" is hardly the most impressive thing one can do with a game engine, I considered it a reasonably good "Hello world" starting point here.

Armed with that confidence, I then set out to recreate a warped glass sort of effect that I was playing around with more than a decade ago, adding in a few little extra touches to give that little 'science-fantasy' feel. You can see the result below, not too bad so far. I'm given some encouragement by this progress, and have banned myself from having any more fun with this until I've made some more of the actual game.

The first version of this I wrote this week had the FPS counter sitting around 35, which shows you that even a very low resolution game can run badly under the direction of a fool. This gif looks choppy because of the screen recording software which is missing frames (you can see by the loop counter), but it's very smooth and nice in game, even on my little laptop.

Writing

I still have only spent a tiny amount of time on writing, but in putting together a little bit of dialogue to help guide players through the build last week I arrived at an interesting thought. Often in game dialogue the player is provided with multiple ways to respond to a statement or question. A lot of the time in RPGs the choice is "Good alignment accept quest/Evil Alignment accept quest/No I don't want this quest", or Jon Ingold speaks on "Accept/Reject/Deflect". A lot of the time in adventure games we like to either just add some in for variety or comedy value. But what I found was none of these approaches quite suited the section I was writing, and yet it felt like I should have multiple options here.

Eventually after deliberating on this for a while, what I realised was that having the multiple options actually acts as a way of parallel information giving to the player. For example, let's say a character confronts you with "Why are you late for work again?"

You can give the player the following options:

-I slept in again, I had to deal with the baby half the night.

-Hey, go easy on me this month. Remember how much I covered for you in summer?

-Shouldn't you be focusing on your own work? Management says your sales are down.

Not particularly exciting examples, but the nice thing is that I might want to give all of this information to players, without having to force it out unnecessarily through linear dialogue. Even though the player only gets to pick one of these options, they are presented with all three points of information in parallel, so in addition to giving them the ability to pick a response that suits their style the best, the writer also gets to give them all of this information in a way that doesn't feel overlong. I'm sure writers think about this a lot, but to me this is a new angle to consider.

Design

One of the most interesting things to report is that I thought the prototype build would be far too obvious, be considered a little condescending, and almost be annoying to players. Not at all. In fact, some of the things that I thought were too obvious were perhaps not obvious enough. It's so interesting to be so wrong about these things. In any case, I've committed to making players as entirely aware of how the various elements work at all times so that the interface is never the challenge, only the gameplay itself. I went and played a little Commandos 2 to remember just how awful an interface can get*, and then threw myself in to making my own game as straightforward as possible. I even changed the name of one of the abilities so that all of the hotkeys are grouped together on the keyboard, which feels SO nice to use.

One thing about having things in good working order is that I need to now stop thinking about what abilities I am going to give the player and now start building a game around these abilities. It's a little like having all the furniture built, and now I have to decorate a house with it. I have more experience doing this part than I have with doing the part I have just completed, so I am expecting it to be harder, because of course I want to design gameplay that is satisfying, just the right amount of challenging, and memorable, and of course that is much harder than "I want to design some fun abilities to play with".

Summary

I am buoyed on the good response from testers, on the excellent suggestions regarding my code, on the fact that I managed to hit my goal of having an updated build out to testers before the end of November. This week was a more relaxed week after the big push of the last couple of weeks, but I'm back to designing and building new sections of the game next week, and I'm curious to see what will happen as this game gradually reveals to me what it is. Thanks for reading folks, the comments and suggestions have been a great motivating force. :)

*sorry Commandos 2 fans, but as a fan of the first game, it's incredible how much more complex the interface got for the sequel. I know many people love the game but I find the UI just about unusable. One of these days I'll learn it. Maybe. It doesn't help that there's no quick reference card, only half the hotkeys are listed in the manual and some of those are wrong.