The current state of my to-do list. |
After months of thinking about things, sketching ideas out, aligning all the elements in my head and scribbling notes on paper, I started writing code this week. I am very unfit for programming right now due to my long break from it. My approach to countering this is to keep things very simple and work extremely incrementally. First I'll make a single piece of logic happen, then when that works perfectly, I will add a condition to that, and test until that works perfectly. Then I'll parcel that code up into a separate function that I can call with a single command from anywhere, then I'll expand the function to take multiple inputs, then add logic to check which input is the correct one if such a thing is not reliant on player input but other conditions. Breaking it down into extremely small steps like this allows me to accomplish one thing, then take a break, much like a newbie runner doing a short jog now and then just to get used to things before they try to push themselves.
The nice thing about AGS is that it's quite accommodating to debilitated programmers like me, and most of the things the game will need to do are handled in engine already. That makes the list of tasks necessary to get everything working for a basic prototype quite achievable. As long as I make a little bit of progress each day, eventually the list will be complete, and I can start designing the game. Eventually, too, my fitness for writing code should increase. That's something I'm looking forward to. This morning I finished implementing a function quite successfully and then checked it off my list, but then wanted to alter how the game responds when the player cancels this function to look better. I knew exactly the maths required to make this change occur, but had used up my energy for writing code, and so saved the project and put that simple calculation in my todo list for the next time I open the project up. Knowing the solution to a problem but not having the endurance to execute the solution is not ideal!
I was fortunate enough to be able to call on the advice of long time AGS member edmundito, who helped me overcome a few issues that were specifically related to the quirks of the AGS script language. For example, assigning an integer variable as the size of an array of floating point variables requires that you refer to the integer variable with the "float" type, despite the fact that you're calling an integer and that the array size cannot be a floating point variable, and yet AGS's rule for requiring an IntToFloat call to handle this conversion breaks the script. He pointed out that I could simply refer to the integer with the "float" type and that this would pass in this specific exception, which I had not thought to try. (Edit: this is just a misunderstanding of mine which is clarified nicely here) I consider it a fair trade for having done some quick graphics for a recent jam game he made. He ran out of time to get all of the writing and graphics in, but you can still check it out if such a thing interests you.
A little game jam entry I did the graphics for this month |
Design
One thing I wrote in my previous devlog was "I also think the fact that I aspire to create gameplay that's slightly outside of the current standards of "Inventory + dialog + closeup puzzles" for the point & click adventure genre will be challenging to accomplish." On reflection I don't think this is quite clear enough. It's perfectly simple to introduce limitations or twists on the genre - force your character to not use inventory. Make them unable to speak, make them have limited mobility and have this be part of the game's challenge. I think the difficult part will be making something that adds a twist and also feels really good to play and creates a satisfying gameplay style*.
A concept I've been thinking about that might be a way of addressing this is that unlike RPGs, we often don't start out an adventure as a character with many abilities. Usually with a role playing game even a very inexperienced character has some proficiency - maybe they can cast some minor spells, can at least brandish a spear to defend themselves (and bring a spear with them rather than finding it on their way) or have a chance to hide, pick a lock and disarm a trap. And then, importantly, the majority of the game's obstacles can be overcome by using these specific abilities, as well as auxiliary additions such as potions that aren't specific to that style of character but can be used by a variety of classes. In adventure games we often get a character with few real abilities, and they're usually solving problems using items, contraptions and conversation topics they encounter along the way. I think there's a lot of potential to be found as a designer in creating a player character that isn't a blank slate, they bring abilities and expertise to the situation and it's via the application of these abilities in creative ways that the player then overcomes the game's challenges.
So that's one thing I've been prototyping this week - my protagonist's abilities and how they interact with the world. Already while just setting the functions up, establishing some rules and connecting the logic I have seen interesting gameplay possibilities emerge, and I've adjusted my philosophy about the player's abilities a fair bit based on the things that I've noticed while just playing about with the system. But one thing that has concerned me is the possibility that I might unwittingly be designing a “puzzle game”. Often when you give the player specific abilities and then present them with a series of challenges based around those abilities that’s what you end up with. There’s nothing wrong with puzzle games, I like them, but that’s not the feeling I want to go for. After deliberating over this issue for quite a while I reached the conclusion that the difference between a puzzle game and an adventure game, for the purposes of my own goals here, is that in a puzzle game your abilities are primarily means with which you can overcome obstacles, and in an adventure game your abilities are means with which you can explore the world, and in the process of doing so also find and overcome challenges (puzzles!). Think about how many of the classic verbs in text adventures are simply about examining the world. This use of our abilities to explore and learn about the world is what I’m planning to aim for - as well as interesting puzzles.
Summary
As for how I feel about the whole process of starting to develop a game again - it feels great. I've spent over a decade trying to interpret other people's visions, and have gotten used to things not being quite right, to things not working quite how I expected in the final product, misunderstanding instructions or stylistic goals and largely hoping that I had gotten things correct. Doing this work I know exactly the vision I'm working towards, and I know precisely when things look and feel right to me, and am allowed to have more of an opinion on what's correct. It doesn't push me out of my comfort zone like the other work (which is good for skill development), but it's very empowering and immensely satisfying! Of course, it also means that I have to be the one having the good ideas, and that part is definitely more pressure and more difficulty.
Thanks for checking in on my progress! Hopefully by the time I update the list will have a good deal more red checkmarks, and a healthy amount of new items to tackle.
*And then, if I really play my cards right, subverting or exploiting some of the rules I've established to create interesting situations that require players to think more creatively about the logic I've introduced. That's the good stuff, that is - I probably want to talk about exactly what I mean by this in a future post.