In the process of getting the first chapter ready for testing - yes, it's all designed and built and works more or less and has been played by a couple of people - as well as a proper Steam page, there've been a few interesting challenges that have arisen. Usually I kind of know in advance what challenges a game is going to give me. To have a project where I'm doing different things, and therefore dealing with unexpected challenges, has been interesting, and frustrating, and educational. I think it might be interesting for others too, so I'm going to share the ones I can remember.
Magic numbers
Look we all know magic numbers are stupid and nobody should use them, but also the way Adventure Game Studio handles room objects in arrays that can be accessed with ID calls in other scripts just lends itself so beautifully to being in the middle of the dialog editor and going object[13].SetView(34); and leaving that for yourself to find 3 months later where you're trying to adjust something you never anticipated would need adjusting, and you have no idea what object[13] is, which room this is in, and can't remember what view 34 is. Yes, it's very, very easy to add a #define pete_house_cupboard_door 13 and give your views clear names so you can actually go object[pete_house_cupboard_door].SetView(VPETEHOUSE); but it's also easy to kid yourself into thinking that you will never have to change this and you're a genius who is perfect and then curse your foolishness down the line. I was doing this today, believe me.
It turns out you need more than just a nice hook?
In trying to get things ready for the Steam page, one of the things I already had in my bag long ago was a really good hook sentence that everybody I tried it on agreed worked very well in getting their interest, wanting to know more about the game and the protagonist and what this thing is. I was quietly confident that this would serve me well when it came time to give a brief summary of the game, and so never bothered trying to take things further than that. Now I have to try and explain the plot in as few words as possible to people and I have no idea how to sum this all up. My hook sentence, which is good, still doesn't really tell you enough. Devastating.
In trying to put a really succinct plot summary together for Emily Morganti this week I think I edited all of the extraneous nonsense out about 20 times and still ended up with what was probably too much. There's just too much stuff in this game and I somehow have to condense it all into a paragraph. I am bad at this.
When I'm the one controlling the show, my vision gets loftier
The game has over 3000 sprites, and it's only the first chapter, and I haven't even done all the animation for it yet. It's far too much, and I've also thrown out plenty more that didn't work or needed redoing. It's much worse to be looking at someone's list of assets and trying to catch their vision and bring it to life, but it's such a trap to have something cool that you want to make and the ability to stay up until 1am fiddling. Look, the game will look cool. It has a bunch of interesting visual things that you don't see in AGS games much, if at all. But also I'm an idiot.
Divide by zero errors
The tween module is a beautiful module that does many wonderful things but I'm using it in a way that takes values based on constantly changing parameters and sometimes things just go wrong, including divide by zero errors. I put in the following as a 'fix' and apologised for it, but everybody I've talked to tells me that this is a normal solution to this kind of problem. Everything still works so maybe I'm not a fraud after all. But I felt like such a fraud editing this into the module:
I'm bad at state machines
This is devastating because I've written much more complex functions for this game than a simple state machine but the one I'm using to handle my GUIs is a mess of stupid exceptions because I'm doing too many new ideas at once. I rebuilt my GUIs this week and then spent forever fighting my stupid state machine because I thought of "clever gameplay" with GUI things. Don't come up with "clever gameplay", nobody will be impressed* and you will regret everything when it's Friday evening and you just want to get this damn build solid so you can upload it for people to look at and suddenly oh that important button has disappeared again. It feels like such a betrayal to have cool functions using trigonometry and stuff to do interesting visual effects and then be unable to turn your stupid GUI on when you want it to turn on.
I wrote my chapter skip menu in a stupid way and it has caused nearly as much time trying to bugfix it as it has saved me time in not having to play through the whole game each time to get to room 10
Okay not really but gosh I should have done that in a much more intelligent way. Also did you know that if you skip a cutscene that includes a dialogue, and you do important things in that dialogue (such as affecting your stupid GUI state machine) it gets bypassed and just doesn't happen? I learned that today. The hard way.
Transparency != Opacity
Look I'm an art software man. All art software that I've ever used calls it "Opacity" and 100 is all of the image and 0 is none of it, and the amount of times I've happily set oThingStuff.Transparency = 100; and then scratched my head as to why it doesn't show up in game is not insignificant. I get that 'transparency' is a legacy AGS thing and it's always been this way, but maybe I should request an Opacity property also for simple art men like me.
Yes, you can do this:
but that hasn't stopped me from making the stupid mistake multiple times, and isn't the same as typing the nice "thing = number" one.
I am bad at communicating gameplay critical information to players
I'm actually not that worried about this one at the moment, because all people need to do is play the game and go "I don't understand how this works" and then I ask them what they do and don't understand, and then make things more clear based on their feedback. I just have to trust that people will be really honest with me when my puzzles are really annoying because I didn't make something clear. I know what it's like to be on the other end of that (here's an example I came up against earlier this year):
I got a new PC this week
This should be (and is) exciting, I have more RAM and all my image and animation editing software works much more smoothly now. But also I had to reinstall every program and all my hotkeys are wrong now and I can't remember how I had everything set up. Change is bad and I am tired and grumpy.
I keep having ideas
And I want to put them all in the game and look this one isn't a surprise but it's still annoying to have to build all this stuff that's exciting until it's not working. Every time I go for a walk I get a new great idea. I regret trying to be healthy. Don't walk. Adventure games would also be much nicer to animate if the characters didn't walk.
I don't remember stuff
Whenever I play the game I have a dozen "Oh yes, I need to fix that!" moments, and I never write them down, and so I have the same epiphany about the same glitch 100 times because my brain can only contain one piece of information at any one moment. Eventually I do end up playing with a pen and notepad and I write down every single thing I notice that needs fixing and fill up an entire page, and then go through and fix all of them except one in the middle that for some reason I skip past and then go "hey I thought I fixed that? It was on the list!". This happens to me every second day. I even had another entry to put in this blog post but I didn't write it down and so I don't remember it. I think that filling myself up daily with a mixture of coffee and regrets is gradually taking its toll.
Oh I remembered the other one after I posted this so I'm coming back to edit this in: fonts
It's impossible to find the fonts I want at 640x360 resolution so I've made three of my own. One works perfectly, one needs more adjusting, one I will either give up on and redo completely or just settle on because when I redid it completely earlier this week it came out even worse ugh. Yes I need three fonts it's vital to my vision okay. I love letters and calligraphy and signwriting and things but folks don't make your own fonts for your game, it's entirely unnecessary. You've got too much to do already. Give yourself a break.
I'm honestly having the best time working on this game and I think it's nearly time to show people stuff in action, thanks all for reading this still. <3
*okay at least two people have been impressed by it but that's no reason to subject yourself to trying to make it happen