Monday, August 9, 2021

The post of shame



It's been a long time since my last blog post and I have next to nothing to show for it. I know, it's bad. A combination of the problems I've been talking about for a while now with stuff happening in my life outside of this project deflated my motivation to get anything done. Deflated, but not destroyed.

I still have a personal commitment to completing this game, come hell or high water, even if it takes another 3 years. But I need to revaluate some things now, considering as everything stands now nothing is getting done. I need to make some changes. As far as I see it there is one main major issue stopping me, and a bunch of side issues that might be contributing to the main problem. Some of these peripheral problems include:
  • The dialogue system I have is still clunky and frustrating to work with
  • Unity is slow and complex to work with (compared to what I am used to)
  • There is no concrete roadmap or gameplay design

The main problem? Motivation. I need to be able to spend hours working on things without it feeling like a waste of time or a chore. I achieved this early on because of that great rush you get towards the start of a project where every minute you spend on it gives immediate and multiplicative dividends.

I could spend hours drawing character portraits because each one was self-contained and fun to do, but spending hours researching dialogue systems or debugging UI code is Not Fun and doesn't give an immediate satisfying feeling of productivity. Couple this with the chore that is starting up Unity (downloading updates, launching the program, compiling for debug, etc.) and it becomes more and more difficult to find the motivation turn the abstract desire to "make game" into the practical steps that have to be done. It's frustrating to be in this slump because the desire to work on this project is still there, and has been there the last few months, but all it's resulted in has been extended note taking and some half-hearted research.

Some of this has been useful, but not in a tangible way. I'll go over my general thoughts though, as they relate to my ideas for ways to change up what I'm working with to start making progress again.

Firstly, I've been doing a bunch of thinking about the gameplay mechanics of the "game". My goal and focus has always been on the meta narrative that the player will experience. Their experience with the world, the way they will be presented information and what sort of impact I want to have on them. The gameplay aspect of my game was always secondary to that, but since the very beginning this attitude has proven to be a thorn in my side. Without an actual plan for the gameplay it has become impossible to plan things such as the map layout, or even the way the UI should work. If I went with one of my earlier designs for a sort of survival gameplay element for example, I would want to re-design vast areas of the map, and change a lot of NPC dialogue to refer to this part of the game. I don't think I'm going to go that route, however.

I wanted to avoid from the very beginning standard RPG mechanics, because they have no relevance to my actual goal (the meta narrative), and would instead just be a pointless distraction. I held off for the longest time putting some sort of gameplay mechanic in to replace them in the hopes I would come up with a big brain play, that I would find some sort of perfect solution that would create fun and engaging gameplay while also bolstering my meta narrative. Alas, it is probably time to admit I failed. I don't have the experience or insight or sheer genius to solve that issue for this project, and I may have to just cash in and choose something established I know will work. While it pains me to think it, if I can't come up with something else quickly I may resort to just slapping on a generic RPG combat system with robots you can whack.

This ties in to the second problem that I have been thinking about, which is just a specific case of the first. I have wanted from the beginning for the player to walk on foot between the two faction's bases, the Ecological Arcadian's areas, and the industrial Utopian area. The meta narrative idea behind this is to make sure the player experiences the impact these two worldviews have on the environment, so they can draw their own conclusions later. From an even further meta point, this gradual movement between areas is specifically designed to be a cognitive break for the player, and a gradual refocusing of their mind as they transition between the two extremes, reminding them of the policies of the factions they are leaving behind or moving towards. Great, that all sounds good. It's just that slowly walking between two areas is Not Fun. Now there are ways it can be made engaging if not fun, using techniques from cinema or walking simulator games, but the thing is I'm not convinced I can pull those off. Exceptional sound design, a varied and evolving landscape, or a monologue reflecting on past experiences are all things I would love to be able to try, but they would take me months and months of work and might be dead ends. I had the idea of instead allowing fast travel between the areas (avoiding the need to make the journey engaging) but with a quick camera pan instead of the standard cut/fade/loading screen, so that the distance and contrast is still seen and felt by the player.

The other idea to make travelling engaging that ties in to the gameplay issues I mentioned above would be to include puzzles. Mazes or basic movement puzzles like seen in Pokémon or other RPGs could be mildly interesting, but again the idea pains me because it has nothing to do with my meta narrative.

Speaking of, the third major issue I have been thinking of is how to make the player actually want to go between the two areas in the first place. My most up to date version of my main storyline has the player wandering until they find either the Arcadians or the Utopians and then learning about them by talking to NPCs. The end goal of the player is the vague "find somewhere to belong", with the plan being they will join one of the two sides. But what incentive is there for them to visit both and learn about both sides? A player might just beeline right for one of the factions and join it without thinking, instantly ending the game. Is that an issue? Maybe it will encourage replayability? Maybe joining a faction requires a long questline that eventually forces them to "check out" the other faction?

One earlier idea I keep thinking about was a concept of the player being a messenger between the two factions. It is their job to relay diplomatic messages between them. The player then has a reason to travel, a reason to learn about the faction's beliefs and stances on each other, and a means to impact the world (by choosing what information to withhold/edit/present at each meeting) - or remain passive (just presenting everything truthfully). I think I might return to this idea, and perhaps try to combine it with the "join one side" idea as well. The player starts by visiting one of the factions and then is tasked by that side to be their neutral representative to the other before they are allowed to join. In doing so they are shown both sides and both sides attempt to recruit them. The main problem with this idea is that it will require even more writing from me. Very complex writing with many complex branches. Still, it's the best I have at the moment and I might just have a crack at it.

Finally, too, I should elaborate on my issues with the dialogue system. I did get Fluid Dialogue to work ok for me, and it's mostly alright, but it's just not that much easier than my own code. I bought a licence to Unity Dialogue System, which is a professional tool (on sale!) and have been reading through some docs. It does everything, perfectly, but I can't help but feel apprehension at the learning curve and the size of the project. I worry that in the end my little 2D pixelart game may be a GB in size just because of Unity asset bloat and I have no idea how to deal with that. The feature that got me on board was the import function that can take text formats such as Twine2. I watched a video by Josh Sawyer on dialogue systems in RPG games where he talks about how much easier it is these days to develop dialogue due to tools such as Twine, and I'm curious to see if it can help me. I'm especially interested in the idea of writing dialogue quickly in Twine and seeing the result online instantly, without having to run it through Unity, and then being able to import it later. It would be a dream come true to be able to debug and test the dialogue live on a website externally to Unity.

That's all for now, hopefully the next post will be a lot more optimistic ;_;











p.s



Here's something else I've been working on on my weekends unrelated to this project: http://squidempire.com/iso/



It's an extension/rework of my Three.js FPS engine into an isometric RTS/city builder engine with the idea of making a city builder style game where you go into some horrible polluted wasteland and have to rehabilitate it!
My concept art

The idea sort of came from my enjoyment of C&C Tiberian Sun. I used to always think about the idea of "red zones" in that game, and how people would react to that sort of thing happening. I think if we could, we'd do our best to clean them up. So this is sort of a post-post apocalyptic game.

Current in-game screenshot



The engine has been cool to write so far, and I've learned a lot! I even messed around with shaders (the water in the above screenshot), which had instant payoff when my job required some shader work.

It's been a fun side project but it's hard to say how much more I plan to work on it. I'd need to start making custom models soon and doing performance passes, which are two things I'm not really enthused about.