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
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!
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,