Saturday, July 25, 2020

Characters: done

It has, once more, been too long since my last post ;_;

I've been working much slower than I would like, and I believe I know why. But first, what have I been doing? I've been ploughing through the characters, still. I completely finished the character portraits and am just about through the sprites as well. Hooray! It's been a long process, much longer than I am comfortable with, but the results are good at it's just about over.

So let's start with the character portraits:


I'm pretty happy with these. Actually, very happy. It was a really fun time drawing them and I feel like I learned a lot about what I was doing as I went. I would be a lot more confident drawing more in the future, that's for sure. The portraits also really helped me when writing the characters. Having a face to look at helped me write what sort of people they would be like, and of course the character descriptions also informed the portraits. Two-way street.

These will be used in the game when talking to these NPCs. 

But the rest of the time in the game world, the characters will be represented through their sprites. I hoped the sprites would be much faster to draw than the portraits due to already having the colours and features worked out, but alas I was still only able to do perhaps 3 a day. At the moment I have a few left to do, but most of the sprites are done. Here's the new ones in no particular order:





Of course, working in 32x32 is much more limiting, and it can be hard to get across facial features. I think I've done a good job overall though so far. There's a few that might need to be revised to raise contrast or add detail, but I will wait until I have seen them in game to decide to do that.

Of course, all the sprites come in sheets. They look like this:



With this I can animate my charcters shuffling about or standing around in different directions. I left one column empty for two reasons: I wanted to save that in case I needed another pose later, and I wanted to keep my sheets power of two sizes.

Here's some example animations:


I already wrote my own animation script for this which I mentioned a few blog posts back. I've also since then had some more experience with manual animation work, having written two sprite animators in JS for both Three.js and HTML canvas. I think it's worth mentioning the Three.js project. I won't go into detail here yet because it's not super relevant to this project, but I spent about a week working like a madman on a 3D FPS engine thing in Three.js just to see if I could. I could, and it turned out ok. I never implimented physics and didn't want to import a library for it, so the enemy behaviour isn't great on the terrain, but other than that it's fairly complete. It was a fun project and I learned a great deal about game development techniques and fundamentals; things like game loops/render loops, the purpose of coroutines, and so on. You can see the result of it here -> http://www.squidempire.com/plutonium/index, and you can see the code here -> https://gitlab.com/SquidEmpire/plutonium

Anyway, I said I had an idea why work is progressing too slowly here. It's the same reason I did the project I just mentioned I think; I'm driven and motivated by results. I like to see things happen. It's been a very long time on this project since I made anything happen. Drawing characters and writing their stories is fun and productive, but at the end of it there's no tangible result. The actual game isn't any further progressed. And so, I started getting demotivated. I didn't want to fire up paint and just draw sprites and then go to bed. So, hopefully now that I've forced myself through this period I can start making things happen again and the game progress will speed up once more. I would like to have a demo ready before the end of the year. I don't think it's an unresonable goal, the game logic is sound, the characters and writen and drawn. I just need to find a way to build the level and start laying the content down.

Sunday, June 14, 2020

Burnout + my characters

I burned myself out about a month ago on this project when I had the genius idea of making a video about the game's world using archive footage. I three solid days collecting archive footage, scouring through hours and hours of videos to find relevant clips, and assembling a video from it all. And after all that...

The video was "ok". It didn't really have a solid purpose or direction and was in the end just a rambling series of clips. I should have known that that would be the outcome from the start, but I was excited and having a good time, so it didn't bother me at the time. However, the realisation afterwards that I had spent hours on something that was never going to be useful, combined with the deep dive I had to perform into my game's lore and setting and the concentration that required left me deeply exhausted.

It's taken me weeks to get back on track afterwards, which has been a bitter pill to swallow, but now that I am back on track I'm working at a good pace again. The video was not 100% wasted time, I'm confident that later on I can make a much tighter cut using the best clips I acquired and make something really dazzling and punchy, but for now I've moved on to the characters of my game.

I started a character document with the details of all the NPCs planned for my game months ago, but progress was very very slow. I never seemed to want to write, and the illustrations for the characters were similarly stop and start. After I recovered from my self inflicted burns I focused on this character reference, planning on finishing it all. It dragged on and on, taking longer and longer than I expected. I was really not prepared for how long it would take me to invent and polish my characters. Turns out writing interesting people is hard! I did end up enjoying myself immensely though once I got the swing of it, and I'm really proud of a few of my NPCs especially.

The document as it stands is 8700 words, and describes 11 Union NPCs and 12 Arcadian NPCs. Each NPC is designed to represent a certain aspect of their faction, some good, some bad, some inbetween. They are going to be met and interacted with by the player character at different stages of the game, and provide different insights and responses. Here's what I have for one of my Union characters:


Hamish Broom

Alignment: Union
Job: Particle Physicist 
Location: Cervine Tower
Appearance: Hamish is 46, tall, dark skinned, and with bad posture. He keeps himself well groomed but smokes heavily.
Summary: Long long ago Hamish was born in an Unincorporated region in central Africa under a different name. The Union arrived when he was only 3 and he was soon processed and registered along with the rest of his family. While the Central AI tries to make special accommodations for families that enter the Union system “whole”, eventually they have to be fully integrated back into the regular Union system and the family unit split up. The child who would be renamed “Hamish Broom” was sent to a separate Union facility from his parents at age 11 and began his new life. Hamish was a quiet child who, although he was different to his classmates, was never bullied or exploited. He did well at his studies, and eventually fell into working as a particle physicist in one of the labs at Cervine Tower. He has been there ever since, for 4 years so far, making minor discoveries in the field of neutrino dynamics. He works closely with a lab at the antipode of Cervine Tower to do this, sending beams of neutrinos there through the earth.
Interaction: Hamish is a man who is not fully Union, though he chooses to be there. He is unlike many other Union characters in that he is aware of the Arcadians and is willing to talk about them; he is curious about his ancestry and history. His skin colour makes him feel vaguely out of place, even when no one else around him seems to notice. He likes to debate with the player about the Arcadians, and whether they have the right idea for humanity's future, but ultimately cannot get over their abandonment of scientific progress. He will talk practically about his work, and admits it is not immediately “useful” but believes strongly in the cause of science for science’s sake.

And here's one of my Arcadian characters:


Timo Lahtinen

 
Alignment: Arcadian (Lahtinen) Job: Lahtinen patriarch / fisherLocation: Teljä homestead, surrounding terrain, Lake GoodeAppearance: Timo is a solidly built man. He is of moderate height and is generally unassuming in appearance. He is around 40 years old.Summary: Timo is a restless soul, attracted to the solitude of remote places. He left home at the age of 15 to roam the wilderness, travelling by boats he made to cross lakes and seas multiple times. Eventually his roaming concentrated on this region, which he found to be particularly beautiful. He discovered and soon fell in love with Lyyti and signed up with her father Pekka’s war party to try to get closer to her. The party was a disaster facing Union drones in great numbers. Lyyti’s father pushed the party onwards despite the casualties, until there were only three left - Pekka, Timo, and Sean Temple. As the three entered a clearing a rush of bullets tore into them - knocking them all down. Pekka demanded they rise and continue, goading Timo by calling him a coward, while Sean lay dying and Timo’s leg ached. Timo crawled to the collapsed Pekka and murdered him with a knife, then dragged himself to Sean to bandage his wounds. Horribly wounded, he made the arduous trek back to Teljä, supporting and protecting the semi-conscious sean all with a broken leg and rib. Timo told Lyyti little of the events, claiming Pekka died a hero. Lyyti was heartbroken by the death of her father but the two bonded over caring for the critically wounded Sean. Eventually Sean died without regaining consciousness and Lyyti and Timo were married soon after. They had three children, the firstborn being a son who died at age 2.Timo genuinely loves Lyyti, while Lyyti is content with him. He is very proud and protective of his two daughters, but worries they are too dependent on Lyyti to survive on their own. He avoids the more militant Arcadian groups out of fear they might hurt Paula. He continues to trek into the deep wilderness at least once a year, vanishing for months at a time to visit distant mountains or lakes. He is acutely troubled by his betrayal of Pekka and his supposed cowardice, and is secretly terrified of the Union and fighting in general.Interaction:Timo presents the player with a neutral look at the Arcadian life. He is a non-violent, unpretentious, quiet man who simply lives the way he knows. At the same time, he is strong and independent, having little interest in the opinions of others and needing nothing to be done for him. He is slow to talk to the player, but may be coaxed to talk at length if met in the wilderness.


In addition, I finished all the portraits for the Union characters, and started the Arcadian ones. Drawing the portraits was very relaxing for me, and I learnt a lot about portrait drawing as I went along, getting better by the end. I went back and touched up some older portraits as I went and refined my work.

Union character portraits

That is about all I have at the moment unfortunately. It's been a bit of a rollercoaster recently, but I'm hopefully back on track now. The next thing I'm going to do (after finishing the Arcadian portraits) will be the NPC sprites, and then some investigations into how I can make level editing easier.

Monday, April 20, 2020

Animations!

Hello!

It's been a bit over a month, and I've been busy. I've been working on all the major aspects of the game concurrently. This is a bit odd, because so far I've generally jumped from one aspect to another after a few weeks solid of each. It's been fun to work on the "whole project almost at once, but also confusing and a bit exhausting. I think this experience further cements in my mind that it's better for me to work in a single area for a time, before changing it up. Anyway. Let's get on to what I've been up to:

Sprites!

The first thing I've been up to is hardcore sprite work. I went back and totally redid my Union building sprites for the third time: they've come a long way now and are finally approaching what they should look like now. I have further work still to do on them, especially with the floor tiles that will go around them, but it's great progress and feels good to have made it!

I also did some major work on the natural and interior sprites, but I don't have anything to show here for those yet.

Character animations!

I finally bit the bullet and drew the walk cycles for my characters. Further, I wrote my own animation system in Unity to manage them. Woah woah woah, I know, I know. Unity has an extremely powerful keyframe animation system in it, and I'm fairly comfortable using one after my experience with SFM, so why didn't I use that? The main reason is that I'm lazy and prefer programming to clicking buttons and dragging sliders. The keyframe animator would be wonderful for kinematic rig animation or tweened animations or anything like that, but my animations consist of hand drawn sprites in a spritesheet. To animate them, all I want to do is show a different image each frame. If I were to use Unity's animator I would have to split my spritesheet into individual sprites and then click and drag them on to the animation timeline one by one for each animation. Left_01, Left_02, Left_03, Left_04, adjust the timing, save as player_walk_left. Considering I'm planning on doing unique animations for up to 30 characters, repeating this pattern one by one for each of them is lame. Plus the clutter of files everywhere is just unsightly.

Instead, I import my single spritesheet containing all the animation frames in a specific predefined order:


And then all I have to do is put it in the character folder in Unity. My scripts take care of the rest! Automatically, my animation helper script will load the required files and find the needed frame at any time, displaying them in custom orders and loops to produce the animations in the game. I won't lie, this script was an experience and a half to write (mostly me fighting Unity's coroutines and monobehaviour patterns out of inexperience) but I expect it to save me a lot of time in the future, and the results in-game look great! I don't have a clip of that to show you, but here's a gif of my player's sprites:



Story work! Character designs!
I've continued writing the story of my game this month, with a special emphasis on writing the NPC characters that will appear. It's been a lot of fun fleshing out their backstories and motivations and has been a great chance for me to try some narrative concepts I have developed. Whether they work or not will remain to be seen...

One character I've finished this month is Timo Lahtinen; patriarch of the Teljä Homestead, which is located on the shore to the far northwest of the game's world.

Timo Lahtinen

Timo is a quiet introspective man, uninterested in conflict or grand pretentions. He will present to the player the worldview of an Arcadian who is most like an "ordinary man"; he just wants to live his life in peace with his family. But he is still an Arcadian, and chose the hard life for reasons dear to his heart, reasons which the player may uncover...

Timo's walkcycle


The Central AI:

The central AI's portrait


The other major character I've worked on has been the Central AI of the Union. The Central AI is exactly what it says on the tin. It oversees the Union's resource pipelines, human wellbeing, and general operation. A monumental task for any human, but what the machine was built for. Central is omnipresent in the lives of the Union's people but is never intrusive. Interactive panels in the walls glow softly with the AI's colours, ever ready to be activated by a person, to provide advice, information, or accept orders.

Designing the AI's interface was an interesting challenge. The AI rarely initiates interactions but must always appear ready. It must exude confidence and power without being overbearing or frightening. It must appear obviously non-human, but still personable so as to be 'friendly'. And through all this, it must appear to suit the world - that is, the design must look retro. I'm lucky to work around a lot of UX people, so I've been able to pick up bits and pieces that I think informed my designs.



Two concept interfaces for the AI - note my attempt to create screen colour pixels


I'm not confident the design is finalised yet, but I'm very happy with the current iteration at the moment. I went through a number of designs, some more complex and some simpler, before settling on the existing one. A bit influence was HAL from 2001 A Space Odyssey; with HAL's design principles and design context being similar to my Central AI's.  But obviously, I couldn't design anything too close to HAL or risk the obvious conclusion that my AI must be poised to become the antagonist as well. Ultimately, my AI is the most powerful mind in my universe, but has no ulterior motivations, no complex personality, and is just a very efficient machine. 


A Hal-like interface


Next on my plate is to continue with my character writing. I'm about halfway done. After that I will continue with the sprite work and attempt a few more of the programming challenges that stand before me.

Thanks for having a read!



Also here's a track I've been using to inspire the industrial zone design work I've been doing:

Monday, March 9, 2020

Design work

It's been too long since my last post! I've been busy, but not as busy as I could have been. I'm still yet to set up any of my gameplay or game in Unity and have spent the last month doing spritework and designwork. I've also been working on polishing my gameplay and story as I can without actually laying it down in game, but I know that's just a stalling tactic. I really just need to fire up Unity and start...
But there's so many things to worry about. What if my systems aren't up to scratch and I end up having to re-write massive chunks of my content later one? What if my map design tile layout is catastrophically small and I have to start from scratch? Alas, these questions are great at stopping me from diving in. I know in my heart though that the only thing I can do is just do it. I will face big challenges no doubt, but they will in all probability be completely unknown until they happen and will not be the imaginary ones I've agonised over.

Enough with the excuses, let's get down to what I've actually done. First up, I started work on the industrial zone sprites. I left these a bit later because I had many ideas of ways I could do this area of the map. The industrial zone is between the wilderness and the Union, and is meant to allow the player to see firsthand what the Union has to do. From a gameplay perspective, the area is dangerous and hard to navigate, providing a challenge to traverse. 

So, my initial thoughts were to make it mostly brown and black like a wasteland. But I also had a strong inclination to make it white instead. This sounds odd at first, but in 2018 I saw a movie called "Vinterbrødre" from Denmark. The movie is set around an industrial estate where everything is coated in a gritty white powder. I thought it was a fascinating visual twist on the normal grimy brown/black industrial look and strongly considered using it in my game's industrial sprites.


A still from Vinterbrødre showing the white/blue industrial look
(retrieved from No Film School and attributed to KimStim)

In the end, I decided to not go this way. I decided it was too confusing with my pixelart to try this, considering it's very hard to tell the white powder apart from snow - and I didn't really want to have some guy lick it and go "it's silt!" to try to explain to the player what was going on. I also decided a brown toned industrial area suits my yellowish colour pallet best.
I did try using the same desaturated sky-blue colour from Vinterbrødre for my industrial building sprites, however. I'm not sure the colour matches the rest of my art style in the area though, and I might have to go back and recolour them later. Anyway, I should show what I have now:


Tada!
It's a start. The new cliff sprites took me an entire weekend, believe it or not. I ended up having a really hard time balancing the detail with the tiling and perspective. I'm pretty happy with the result - but I will have to redo the tiling on the front facing long cliff faces. That's some pretty rough tiling...

A big thing I learnt from the above sprites is that I'm going to have to make a lot of special junk pile and building/girder/scaffolding sprites. There's just not enough variation or density with the sprites I've come up with so far. We can help the effect a little though by adding some filters:


Wow, now that looks grim doesn't it? I have four filter layers applied here in this mockup, and I'd like them all to be in the game in the end. Firstly, there's a layer of fractal noise - clouds. The clouds I imagine would slowly move across the screen, perhaps even slowly changing shape as they move. The clouds help to break up repetitive tiling and add depth and contrast to the scene. After the clouds comes a layer of fine dust - white particles that drift around in the industrial zone to remind you the air is full of grit. After that comes a colour filter, a dark brown/orange colour that dampens everything and makes it all look gross.

The industrial zone will only be visible through filters like this. The filters help make it look very different to the clean areas of the map without requiring me to make another entire set of sprites for the terrain, trees, etc. I'm all for using programmatic and graphical solutions to ease my art workload.

The final filter above is one I intend to apply to the game at all times, a yellow tinge designed to make the game resemble film from the 1960s.

Above is without the filter, below is with

I've been designing my sprites from the start with this filter in mind and adjusting my pallet as need be. I'm a big fan of warm hues and I like the nostalgic look the filter gives. 



That's all I have for my spritework. I'm going to continue with the industrial zone sprites for a bit longer I think, and that'll leave only the unincorporated and Arcadian sprites left to start. I still have sprites I need to redo/add for the Union and natural areas, but those are lower priority now that I have those spritesets mostly figured out in terms of tone and layout. 


Here's some additional news; I may have a new name for the game. I've considered a few things many of which are too embarrassing to write down here but one of which was "Cockaigne & Arcadia". At the moment, the name I have is "Bentham's Lighthouse". This is mainly a reference to Utilitarianism, using the metaphor of a lighthouse being the guiding light of a person's morals. It is also an oblique reference to the panopticon, hinting at the sinister side to the political directions my factions take in the name of ethics. I drew some sketches for logo concepts using a vector editor. This is my first time working with vectors (outside of editing SVGs as text) and I think the results are promising. 

The above are my first batch of concepts. I was experimenting with representing a lighthouse and text placement. I think overall they ended up looking like fine logos for restaurants or companies maybe, but none of them really evoked anything relevant to my game. I did some mockups putting the logos on screenshots of my game, and they always looked out of place.


This is my second batch of logo concepts. I'm much happier with the feel of these logos, which contain my representation of Fresnel lenses. They pop a lot more and are very memorable. I tried using some more "retro" tech-y fonts to try to evoke the art style of my game, but I'm not entirely convinced I achieved that. Oh well. Onwards and upwards! 


Finally, here's some more music I've been listening to to help inspire me to get the feeling of the game right in the natural/industrial areas:

Wednesday, January 29, 2020

Eureka!


I've done it! I've finally bolted down my game's story and gameplay. I know what the player will be doing and why, and how this will present my world and themes. How did this happen? It was a combination of two things:
  1. I've had a lot of ideas and tried out many of them, narrowing down the things I liked and the things I didn't, forming a nebula of concepts and fragments
  2. I employed one of my best friends to sit down and "rubber duck" for me while we talked over my game, distilling down my ideas finally into a single liquid
We wound up in a tennis themed bar at the end of the night after spending most of the evening in the botanical gardens; I left grinning ear to ear with exuberance that I had finally solved the great challenge of my project. I am endlessly grateful for my friend acting as my sounding board, and thoroughly recommend the tactic to anyone else stuck like I was, with a cloud of concepts but no tangible solution.

I'm not going to lay out my entire story here in this blog (spoilers!), but I'll go over some of the ideas to lay down how the process unfolded. 

Our conversation started like this: my game looks like an RPG game. So, we talked about our favourite RPG games (mostly Fallout: New Vegas), what made them fun and interesting, any flaws we noticed or things we loved. We then talked about my original idea for my game's story (the 7000 word "timeskip" version involving massive branching faction decisions that affected the whole world), and my ideas I'd had since then, before talking about what I actually wanted to get across in the game. I talked about various "scenes" I wanted to have take place, how I wanted the player to feel and what I wanted them to be doing. We came up with a few problems that were at the core of my dilemma:
  1. The player needs to feel like they have something to do, a reason to take actions
  2. I want to have the player project themselves into the decisions they make in the game
  3. The purpose of the game is to make the player consider what they think humanity is "for"
We then decided to work out the start of the game. What's the player's motivation? My friend suggested that we reused my original concept from my first draft from the "timeskip" version; the player belongs to a neutral settlement caught between the Union and Arcadian lands. The settlement is slowly being destroyed by the Union's expansion, while the Arcadians are murdering the people of the settlement to stop them polluting "their" lands. My friend said perhaps the player is the leader of this town, and they have to broker a deal with one of the two factions to take their now homeless people in, this being a challenge because both the faction and the settlers would have to agree. I did really like this idea, but there was a fatal flaw in my eyes: by making the player responsible for the wellbeing of a town their decisions were no longer based entirely on their own wants and needs. They might make decisions they personally disagree with (without considering whether they agree or disagree with them at all) in the interests of the settlers. 

So, we tweaked this premise: the town is entirely wiped out. There will first be an introductory segment/cutscene/scripted scene where the player is introduced to the settlement, and the player character's life. They are shown the Union via tourists that ogle the settlers and wonder why anyone would live like this when anyone can join the Union and be looked after forever. Drones would also arrive and start disassembling parts of the town for parts to carry back to the Union. The Arcadians are met too, as murderers in the night who kill townsfolk and burn buildings. The player leaves town, or there's a fade to black timeskip, or a voice over or something, and the player finds themselves all alone in their destroyed settlement. There would be an Arcadian or a note from one letting the player know that by being the only survivor, they have proven themselves strong enough to survive and will be left in peace. The player is now thrust into a hard wilderness knowing about the two factions and being given hints that they can join either. 

At this point we talked about another concept a friend of mine had suggested earlier. And that was the survival concept. When I was in the early stages of my second story draft I talked to this friend about the themes and ideas. He suggested that a good way to make the player appreciate the factions and force the decision to join them would be to make them see what life is like surviving on your own. I liked this idea, but considered it to take too much away from my concept of a dialog and theme driven experience. I didn't want the player doing stat and inventory management busywork when they should be talking to people and thinking.

But with careful planning and a new direction, I think it is the way to go. So, after the player is thrust into the world with little to go on, survival becomes a problem. I haven't decided how this will work completely yet, but it will be fairly simple. The player will need to find shelter, food, etc. The goal of this section is to make it clear to the player that survival on their own isn't an option. The character will fail to light fires, or get food poisoning from berries and so on. There will have to be some reminder here to the player that the Union and Arcadians exist to prompt them, probably though roaming drones and Arcadian Journeymen. If all goes well, they will make their way to one of the factions.

At this point I'll bring up New Vegas again. One thing my friend and I loved about that game was the player's ability to hear most of the story of the various factions before committing to one side or the other. That is a requirement in my game, and what it needs is the player to see both the good and the bad of each faction, before being given a chance to leave (and come back if they want) or join. The Arcadians were fairly easy to do this with, their faction lending itself to having very simple markers for both their "good" and their "evil" aspects, and their complex initiation rituals making it easy for the player to see where the point of no return is. The Union were more of a challenge. My friend and I discussed various things about this, without any real result. We got side-tracked and talked about other things for a while, before I off-handily mentioned I was hoping to find a way to fit a Union "re-education centre" into the story somewhere as well. In a wonder eureka moment, my friend suggested that after talking to enough people in the Union on arrival the player would be flagged by the Central AI as a problematic citizen (asking weird things, making people uncomfortable) and they would be dumped into a re-education facility. This was a glorious victory! Not only does it let me show the player the ominous "evil" aspects of the Union, it also allows me to temper it with nuance. The "re-education" is sincere - perhaps unexpectantly unlike something like 1984 - with the AI asking the player things such as "are you aware that your actions caused discomfort in those around you?" with the goal of helping the player be a more empathetic and civil person. They can pass this test and are free to re-join the Union - but on the way out of the facility they meet some people who though genetics or accidents are mentally unable to pass the test, living their entire lives in forced isolation. This would serve as a potent reminder that nothing is perfect. 

The end goal of the game then is to join one of these two factions. Once that's done the game is over. This might happen very fast. Perhaps too fast. I'm not sure yet how much time I have to have my game take up. I'm happy for it to be fairly short. The goal isn't to speedrun it, but to take your time and reflect on your own. Perhaps the time can be padded by smaller "sidequests" or through making the survival aspects more challenging. I'll worry about the fine tuning later. The point for now is that I'm finally ready to lock this down. The game is go!


To wrap this blog post up I'll talk a little about what I was doing before I had this story breakthrough. Basically, I was spinning wheels again, just working on sprites. I ended up drawing more variations of my grass and natural sprites and tweaking my existing ones:



I also went and drew my initial ideas for the Union drones. These are the suckers the Union central AI sends out to do all the work required to keep the Union running. They'll mostly be seen by the player mining, digging, welding, and carrying things. 


It's difficult to get the amount of detail I want for my drones across with such a small canvas. The look of them is meant to be dirty and functional, sort of like flying lawnmowers. I ended up giving them jets in this version because of the limited space, but that doesn't make sense given the amount of fuel they'd need. Instead I'm going to try to redesign them again to use propellers. I think this will also give them a more "power tool" look. 

Things are looking up though, and I'm going to spending the next little while writing up my story while also tweaking some of the more specific sprites. I still haven't started tackling the industrial zone sprites, the Arcadian sprites, or the neutral zone sprites. 


Sunday, January 12, 2020

Some more sprites

So I was supposed to just work on my story and my gameplay until I actually knew what they were going to be. Oops. I instead went back and worked on my sprites...

New exterior building sprites for the Union, and some new groundcover varieties


I've made a few observations and discoveries since writing the last post. The first, seems to be that I'm stuck on a "scope see-saw". You hear a lot about scope creep - where as the project goes you keep thinking about new things you could squeeze in and before long your project is way over scope and impossible to complete - which is a real problem, but I've been having a new problem where I recognise myself scope creeping, counter by cutting down massively on scope, and start creeping all over again. Hence the see saw metaphor... I started this project with a very simple gameplay idea which slowly grew into something much more complicated, before I cut it all back to a much simpler idea. Only to start thinking of new things to add once again...

In the interests of preserving some of the ideas I've had that I will most likely abandon for scope creep here's a short list of some of the tangents I've taken the gameplay concepts:

  • A survival concept where the player character has to manage their various survival stats like hunger or sleep, and this provides the impetus to join one of the factions and gives the player something to do (this was suggested by a good friend)
  • A complex series of player choices all over a large free to roam world that interlock and affect each other. Such as blocking a drainpipe that might cause somewhere else to flood.
  • Playing with 3D/2D by having the 2D world "expand" into a 3D world at some point in the game. This could be a fun metaphor for something like Plato's Cave, with the game presentation suddenly and unexpectedly becoming much richer. Alas it would require a massive amount of work to redo most of the game's art in 3D.
Until I manage to finally lock down how my game is actually supposed to play, I don't think I'm going to be able to get off the scope see saw. It frustrates me not yet having that sorted out, and I feel almost like complaining about the story guy on the project for slowing down the art and programming, before I remember that I am the story guy ;_;



I'll talk a little more about my sprites now to take my mind off that again. I spent a lot more time than I expected during this sprite cycle redoing what I was working as I was doing it. I found I would draw something, place it on my demo scene, move on to something else, and then come back and tweak the lines and colours of the first things I drew for a while. Of all the new sprites I've drawn, I would have substantially redrawn about 70% of them. Here's a comparison shot of a small section of the above photo as I was working on it:

Note the small changes to e.g. the lightglobe or chimney

A lot of these changes were to increase or reduce the contrast of certain sprites relative to other ones. In the above one of the most obvious changes was the dimming of the ceramic tile texture from white to beige. I might end up undoing this change. It seemed to make the building easier on the eye and more harmonious, but when I showed this building to some new people that had never seen them before, they had no idea what the tiles were. They guessed they were small windows or bricks! The brighter white texture was clearer, I think. 

In terms of sprites I want to try drawing either some of the industrial textures for the Union wastelands, or instead jump back into unity and try to make some simple particles for things like butterflies or smoke from the chimneys. While I could do these with animated sprites (and indeed I will include some animated sprites for things such as ventilation fans or television screens), I would prefer to do them with particles where possible. Particles will allow me to add a lot of variation programmatically instead of through countless sprite variations, which will greatly ease my sprite workload. I enjoy drawing the sprites, but I can't spend all my time doing it!

So next on the agenda is more sprites, unless I get a brainwave and manage to clear up the gameplay/story mystery.

Saturday, December 7, 2019

Tracks: switched. Story work: engaged

As I predicted multiple times, I have finally switched tracks. Hooray! I've spent the last week working mostly on my game's story. This proved difficult and I haven't made as much progress as I would have liked. I'm stuck on a few main things, mostly to do with the big picture. It's strange that I've managed to fill in most of the smaller details but still lack my big overall concept, but we'll get into that in a moment. First up, I'll go over what I did that wasn't story related.

As I wound down my programming sprint, I thought more and more about my NPC conversation system I had developed. I worried and toiled over how I could possibly make it easier to use. How I could remove the dependence on mysterious global state enums, or the anonymous functions passed in to each conversation fragment to let it know when it's ready to be displayed. But I came to a conclusion. It wasn't so much anymore that my data structure was garbage (I'm not claiming it's perfect though) so much as it was that my tooling was lacking. There's no interface to add conversations, no way to visually see the relationships between fragments and responses except to trawl through C# source files. I really think that to make creating conversation trees and story flow logic easier, the next step will be to develop tooling that will generate my C# object code for me. I don't know if I actually will do this, but I believe if I were working on a team where multiple people were required to work on conversations it would be a necessity. It might end up being a necessity regardless, but for the moment I'm betting that because I'm the only one working on this I can store the links and relationships in my own brain well enough to get by without having to spend weeks on tooling. We'll see how it pans out.

In the art department, I did another concept drawing for some Union characters.


This was a fun task and I had a lot of feedback from some artists I asked about how to make these characters look better.

Now, on to the story!

What I decided to do was to define the NPCs that will exist in my game. There will be a set number of NPCs, and if I can define the number and interactability of all of them properly, I can come to terms with how difficult it will be to write/program my NPC conversation trees into the C# files directly. This simple task ended up causing more problems than it promised to solve. I started off with a basic list of something like 40 characters I was interested in. I progressively culled this down to the 22 I have at the time of writing this. Even this many is too many, so I will have to cull some more. Ideally I think I would want around 12-16 characters. The problems raised while defining these characters arose quickly, with one of the first being; what do I name them?

I started off naming my Union characters with generic names I might use when testing software input forms. Jim. Tim. Kim. I then went back and started creating worldwide names. I googled various terms and countries, and followed Wikipedia links to the pages for all sorts of people from around the world, coping fragments of names out to create an extremely varied set of worldwide NPC names. After doing this, I stopped and thought about my Union and their people. Two cores element of the Union concept are their inclusivity and their homogeneity. This can present a bit of a paradox. Would the Union stamp out individual nationalistic names in preference to a homogenised naming scheme, even though this goes against their inclusivity doctrine? I'm not sure yet. I thought they might, (taking a cue from Brave New World), and so I went back and renamed all my Union NPCs to have generic Anglo fore and surnames. Part of this is to allow a contrast to the Arcadian naming schemes.

My Arcadian NPCs have very strong ethnic naming schemes. I chose a few nations for my Arcadian NPC groups, Spanish, Finnish, British. By giving these NPCs very strong ethnic names it helps to highlight the Arcadian prerogative in contrast to the homogenised weakly-Anglo Union names.

But I can't help but think the more I homogenise my Union the more their tenant of inclusivity fades to worthlessness. There's no point in being inclusive if everyone is already the same. So that is a fine line I have to traverse. I am tempted to go back to an older concept I had for the Union, related to how certain groups of ex-pats behave in the real world. I might have Union characters have various ethnic names and even keep various symbolic trinkets from their supposed heritage in their rooms (flags, furniture), which they proudly talk about making them who they are. I can then contrast this hollow pride in a past they have no real link to with the ultra traditionalist Arcadians. Perhaps I can have an interaction with a Union NPC who has only just found out they have faint Irish heritage and has started wearing all green. Or, another NPC who has decided they don't want to celebrate their Arabic ancestory anymore and would rather identify and celebrate their Peruvian past.

I came across a separate problem while naming and inventing my Arcadian NPCs. Unlike the Union, the Arcadians live and breath their ancestry. This means that if I, for example, create a homestead of Czech Arcadians, they will certainly speak only Czech. This is true in the Universe, but makes it impossible for my player character to talk to them, unless they happen to also speak Czech. Because of this I am considering that I will have to have my Arcadian NPCs speak English (localisation of this game to other languages is not something I am considering yet). This makes a British Arcadian group obvious. I also created a Finnish and Spanish group. I created these groups to fill other constraints I had, but having them speak English might be too long a shot. I'm not sure how to resolve this yet. I might just not resolve it, and leave it a hanging plot hole. I'd prefer not to though.

Having multiple Arcadian homesteads that do not communicate in the same language all living nearby raises other problems. The Arcadians are even less of a cohesive force than I was originally planning. They will be unwilling and unable to cooperate as a larger force. Perhaps I can get around this and the previous language problems by having a local cooperative of Arcadian homesteads, all speaking a common language and serving a common purpose when needed. It seems flimsy but might be required. That would certainly solve a few issues...

One issue I haven't been able to solve yet and which has been growing in importance is; what is the player's actual goal? I've decided the gameplay will consist of ferrying messages between the two factions with the ability to distort either side's message to the other. But why are the two powers negotiating at all? The Arcadians want nothing but destruction for the Union, and the Union barely acknowledges the Arcadians at all. I can use my ultimate cop out card for the Union at least if I absolutely have to and say "the Union central AI has decided this is what they should do" using the inscrutable nature of the AI as a get out of jail free card. But I can't do the same for the Arcadians, even if I wanted to. One theoretical story hook I've been considering goes this way:

  1. A travelling Arcadian missionary tasks the player to deliver a letter to whoever is in charge of the local Union tower. The letter is requesting the right to preach to the Union citizens.
  2. The player brings the letter to the AI, who convenes a council of Union citizens to handle the request. 
  3. The council is more interested in debating the Missionary and write a letter talking about the scientific evidence for God to be delivered back by the player
  4. The Missionary is perturbed and appeals to the local Arcadian homesteads to write a response
  5. The player delivers the response, thus starting the debate...
This might work but seems like an awfully low-stakes story. I would prefer to have something escalate to the point where both sides are fighting for their very existence. I'm not sure yet how to do this, but I'm sure I can come up with something eventually.

I should leave this here, it's been a long talk. Hopefully next blog I'll have the major story close to being sorted out.