• ChickenLover19

Ok so uh. It's been about a month... Hi, how have you beeeeen? Laziness/Life got in the way and I didn't get as much as I wanted to done. So... the usual. I thought I should update this blog if only for my own sanity haha.


TL;DR: I got more art done! Not a whole lot, but some lol. Got some NPC reaction images done, got the text box for NPC interactions done, drafted up and then implemented a good looking NPC interaction (with typewriter text effect and everything), storyboarded out the opening animatic, contemplated 2D animation and then gave up, drew up some donut portal concept art, and started (hardly began) on the art for the various Underground Lab scenes.


OK, So the Things I Got Done:


NPC Interaction Art

Per last update, I did actually get some NPC art done!! But uh... only two. Listen. Motivation ran low these last weeks 😂 However! It's back and I'm working on things again!

Here's the two reaction images:



These are both of a character named Fynn who is an extremely eccentric scientist lady who I love. She's super energetic (to the point of annoyance for a select few of her coworkers) and I like to think of her as maybe a personified sour candy belt... I also did my first speedpaint of the second image here!


I also got the dialogue text box completed based on the concept art from last update. You can view it here in the mockup of an initial NPC interaction screenshot:

I think it turned out pretty well imao.


Opening Animatic and Donut Portal Concepts

So allow me to divulge a bit more about this mysterious donut game I've been making...

You play as a character who's working name is Dr. Satellite who is a scientist working a well established laboratory. During the beginning of the game you run into a couple of your coworkers; Dax, Jo, and most notably, Fynn, bringer of the Donutpocalypse. Long story short (and so as not to spoil too much), you end up chatting with Fynn and she convinces you to help her acquire an infinite supply of donuts for team meetings. This of course, results in the destruction of the world. Naturally.

Anyway, between the player's conversation with Fynn and the beginning of the end of the world, there's a perfect spot for an animatic. So I storyboarded it out! Here, have a really bad picture of it:

While I was in the process of coloring the first panel, I thought to myself, "You know what would be super cool and definitely not an f ton of work?"

"Actually animating this."

>_>

So I tried animating Dax's hair in the first panel. Here it is:

Took me like, 3 whole days. Kill me.


Also!! Here are my concepts for the Donut Portal! and the WIP for the settled on design.



Game Level Art!!1!!1!

I'm finally, FINALLY, getting to game level art. I've been putting it off for so long, but you know what, we're at that point (also I'm realllllyyyy putting off 3D modeling haha, so this is a good in between for the time being).

My process for this is to take a screenshot of the tilemap in Unity, throw it into Clip Studio Paint, super size the resolution by like 5 times, sketch the initial features over it, and then start coloring (keeping in mind the various layers that are going to need to be imported into Unity). Here's my working example of that process:

Granted, we'll see how this all works out when I actually try to import it into the editor 😂


To Do List

Ok, now with some renewed motivation, I'm going to try to:

  • Continue working on game level art (2 or 3 levels in 2 weeks would be good by me)

  • More NPC art

  • Set up more game events

  • Posssssiiiiiibbbbllllyyyyy, take a look at modeling some donut enemies >_>

So much to do hmmm


"Here's some dunky donuts because... you're epic"

~ChickenLover19

  • ChickenLover19

So... I got kinda sidetracked and may or may not have taken a mental vacation from Donut Theory for about a week. However! the week before that I actually got stuff done! Let's just hope that that productivity comes back >_>;;


TL;DR: Got the game logic tree working and also made some pretty diagrams for it. Thought about doing NPC art but bailed. Also thought about NPC interaction text boxes. Those are harder to design than you might think. Got some concepts for it going, but then, like I said, lost motivation and binged all of Futurama.


Actual Stuff I Got Done:


GAME PROGRESSION LOGIC (this was a big one)

Like I mentioned last update, I was going to bulldoze my first attempt at game logic. And I did. Allow me to ramble about it (basically this blog in a nutshell):

When contemplating game logic design at 2:34 am on 8 cups of coffee, one may be tempted to hallucinate a system of flags/booleans to be set for various events over the course of them game. DO NOT SUCCUMB TO THIS WICKED THOUGHT. Actually it's not a horrible system, but thinking about how it would actually work, this system would require the logic for progression to be all in one place... or all over the place... Regardless! my implementation of this design would be less than desirable.

ANYway, another option was having a main game events scheduler as a list where events would be triggered by incrementing an index. The scheduler list would contain little lists of game events that would be set up in whatever scene they were set to. This is great, but also slightly moronic in design. It was also what I ended up first programming. >_>;;;; The issue with this design is similar to the flag progression system described above and crops up with the question "how do you progress to the next set of events?" Well, certain events would call back to the scheduler and move the index along, right? Yeah but that gets messy with a lot of custom logic for various player interactions, custom logic with cooouuuulllldddd be more generic.

While anguishing over that design as well as implementing it, never did the thought cross my mind "hey this would actually be better as a tree!" And we all know that a tree is basically just a linked list, come on people this is common knowledge right.

So anyway, I coded the up the main game scheduler design and i cant really remember how it worked. BUt it did. Sort of. nOT GOOD ENOUGH.

How would this prettier implementation of a game logic tree work? Here's a very handy dandy diagram to help you visualize it!



Now, granted, I haven't actually settled on an ending for this game, let alone multiple endings so who knows, but going off this design I could have multiple endings if I wanted.

Based off the diagram above, I drafted out what the classes might look like, shown here:



So yeah! This is basically what I ended up coding. Hopefully that's pretty self explanatory, but each node and each event inside of a node are each separate scriptable objects. Game progression happens when set linked events' OnInteract methods are called by subscribing to an onInteract delegate of specific GameObjects that they've instantiated. Here's the super simple inspector for a node:



And here's how a random node might look:



Now in the first diagram, optional events are mentioned. I wanted the UI in the inspector for these events to be foolproof because I am, in fact, a fool. I didn't want to accidentally mess something up like linking a node when an event should be linked or vice versa. I also didn't want to handle null checks. Down the long rabbit hole of custom editors for the inspector I found my answer. Creating a custom inspector for the base class allowed me to modify what fields were shown based on what values the user (me) had set. Then I just called DrawDefaultInspector at the end, and voila! All the fields for inheriting classes would show up below. I'm a genius (LIESSSS).

After I got this up and running, I started setting up events and got a good start to the beginning of the game. cool.


Dialogue

So I ended up getting most of the dialogue for the very start of the game written and a good chunk of it implemented in actual game events. I need to do a couple more drafts of it and send it to my editor, but it's starting to come along.


Art

So, remember how last blog post I said I was gonna work on art for the game? Well, I did draw the characters. More as concept art. Even though I already know their design. <_<;; Here, have some moody character portraits of Dax and Nadia out of context:



I'll go more in depth on who exactly those characters are when I finally get their in game art finished, but all you need to know right now is that they are my favorite to draw 😂


Apart from slacking on actual in game art, I did draft up some concepts for the text boxes that pop up to display NPC dialogue. I never thought about it before, but those are actually kind of hard to design. How do you integrate it with the theme of your game?! Never will I take text box art for granted again. Never, I say! Here are some of the concepts I came up with so far:



I like the one circled in red the most right now, so I think I'll render that and see how it works.


To Do List

  • Set up more game events

  • Write more dialogue

  • For the sake of all good things, PLEASE actually finish some in game NPC art

  • Mostly settle on a text box design (for now at least) and get it implemented

  • Prototype scenes (because I def slacked on that from last update)

Lotsa things to be done. Maybe I should get on that 🤔


Thanks for reading as always and I apologize if this doesn't make any sense; it barely makes sense to me.

Go, be the nugget you want to see in the world,

~ChickenLover19

  • ChickenLover19

Today is marking a historical occasion: the first dev blog post for Donut Theory. 2020 has been a rough year so far, but do you know what makes everything better? That's right. Donuts. And chickens.


As for when this blog is going to update? Who knows... Certainly not I. But, I am going to shoot for every two weeks which seems somewhat reasonable. That way I can treat it like a mini sprint (AGILE BIIIIIIOTCH). (☞゚ヮ゚)☞ Also I don't think anyone is going to read this, so this is for me, to gauge my progress and also to keep my sanity. Don't go crazy, self. One day you will be able to hang out with friends again and be able to sit down and eat in a restaurant. Be strong. UwU

WIP of one of the prospective NPCs

TL;DR: I did some things, messed around, made a game. It was horrible (it was also for a final project in college, which is horrible in and of itself). Now I'm remaking it for some reason. Not entirely sure why other than it's just a really stupid and funny idea. 🤔 AnYwAy, So far I've gotten a rough idea of the game flow, made a buncha scenes, wrote a buncha code, got combat working (really badly), enemy spawning, NPC interaction (actual dialogue is still WIP), and implemented a game logic system. A system which I am now completely redoing because the first attempt was fffFFFUU- such is game dev tho AMIRIGHT.


Donut Theory was the result of a final project for my final quarter of university. It was an absolute disaster while at the same time a complete masterpiece. It was a weird platformer with horrible controls, absolutely no point or gameplay, and worse sound design. I'm not sure I can even call it a game. More of an e x p e r i e n c e.

Cut to this current year (og Donut Theory was only made last year though), and we're stuck in the midst of a pandemic. Since I don't have to commute to work I have basically 2 more hours of free time re-added to my day. I should make a game, and what better game to actually work on than a dungeon crawler where you beat up donuts. 👍

So yeah, that's what I've been working on. Here's a list of things I got done so far:


Implemented Enemy Donuts and Donut Spawning

This was done with a bunch of ScriptableObjects in Unity, which is what I'm using. For donut enemies, there's about three different ScriptableObjects/Parts that make up a donut enemy right now: the donut enemy object itself, which contains starting health stats, sprites, blah blah blah; the donut attack roster, which holds a list of the donut attack objects along with a percentage as an int (this is in the form of a list since Unity can't serialize/display dictionaries in the inspector); and finally, the donut attacks, which hold all the info for specific attacks for donuts. In order to make it easier on me to set up these attack rosters, I wanted to be able to modify the probability for each attack in the inspector, making sure that for total probability, 100% was not exceeded. ScriptableObjects have a handy dandy little function called OnValidate, which I used to do exactly this.

It's still a little wonky, but hey it works... This is also a very similar method I used for the enemy spawn roster and choosing the probability of different types of enemies spawning.


Player and Player Attacks

Started to get player attacks working as well (still figuring out how they actually work, what they do, and how much damage they cause >_>;;;;). Made some design decisions based around click and drag attacks. Started with this, where you could click anywhere on the screen and the attack indicator would start where you clicked (please ignore obvious prototype art, placeholders, and lack of colliders hahahaaaaa):

It ended up being kinda frustrating and not super great, So I changed it to this, where the attack starts at the player:

I like it better imao. Also the code for getting the indicator to behave like that at a certain set length was a challenge. Here's a snippet:

Big ooof. More player interaction and attacks to come!


NPC Interaction (and Art!)

So, for NPC interaction, I'm still not sure if the player gets to choose dialogue options or if it's just set what the playable character says is predetermined - I'm leaning toward predetermined but with branching interactions. Regardless, having a dialogue tree is super nice!

With this project, I find that I am taking a little more effort to make my life easier in the future, and that includes setting up a dialogue tree. I found a great tutorial on just that using Unity's GraphView API and it is amazing (link to tutorial here). I modified it so that instead of each node only containing a GUID, dialogue, and then dialogue options, the also contain NPC names, sprites (to display visual novel style), and audio clips. Saves and reloads great too!

With this modified dialogue tree, I've started working on writing out dialogue and testing actual interactions. As well, I've begun working on NPC art for the current characters I have planned. Here, have some initial sketches (WIPs to come soon):





Scenes and Various in Game Areas

So far, I have a pretty rough idea oh how this game is actually going to flow; however, that idea is starting to come together, albeit at a somewhat glacial speed -_-.

I do have a good idea of the certain areas that players will need to traverse through as well as how many scenes I need for each area and what the player will need to accomplish in order to progress. I've started to rough in these different scene layouts as well as randomly selecting and ordering these scenes as the player progresses. The environments (as seen in the gifs provided above) are uhm... not very pretty right now, but! It's all part of the process! And, having a general idea of how a scene should be laid out will really help me out when I go in and start working on the environment art!


This Blog

I'm super excited to see the progress I make on this game, and I think that having a site to maintain will hold me at least somewhat responsible to this project. With other projects, I know that I can loose interest fairly quickly, but if I'm responsible to provide updates on my progress, then maybe that will have a good impact on me! We'll see...

It's also just really cool to have a website to call your own, let's be honest.


To Do List

As for what I'm going to attempt to get done before next update, here's a handy dandy list(!):

  • Completely redo and finish Game Logic tree and events scheduling (you'll hear about this plenty next update, I'm suuuuuure)

  • Work on setting up more dialogue and game events to interact with

  • Prototype more scenes and get those down so that I can work on art sooner than later

There's always plenty to do, but I think this is a good amount for now.


If you are a person other than myself then thank you for reading.

This blog post will self destruct in 13 seconds,

~ChickenLover19

Become a donut theorist today 
  • Grey Twitter Icon
  • Instagram
  • YouTube

© 2020 ChickenLover19, Donut Theory