In hindsight, this post does stand out as off-topic and unrelated to the rest of this blog but I couldn’t help but share it anyway.
“Whether the future is wonderful or terrible is, in part, up to us.”
– William MacAskill’s “What We Owe The Future”
Over the past few years, I’ve collected some principles:
A good world is not natural. For a good world to exist, it must be carefully curated into reality and then indefinitely nurtured by a certain number of individuals in each generation.
Whether one’s impact is on institutions, on other people, and/or on one’s self: as individuals, each of us will dramatically transform the world and its future during our lifetimes, for better or for worse. (ripple effect)
Effort without talent will surpass talent without effort.
Talent itself is an illusion, as it’s actually the result of accumulated time and effort spent acquiring skills, knowledge, and experience.
Success is also an illusion, as it’s actually the result of enduring through many doubts, setbacks, and failures until an unexpected and previously undefined state of relative ‘success’ is reached.
There are simple metaphorical building blocks (including kindness, compassion, selflessness, stoic optimism, and action on that optimism) that all individuals can create on a daily basis, which then directly help to build a good world.
Human to human connection is the ultimate catalyst for the development of a good world.
All in all, listen to the heart, it knows the way.
These aren’t original – I’ve paraphrased them from excerpts and quotes from philosophers that I’ve read over the years that live rent-free in my head. William MacAskill and Stephen Covey are contemporary inspirations, while John Stuart Mill and Edmund Burke are more dated ones.
I accept these principles because I cannot accept their opposites. I cannot accept that we as individuals do not have a dramatic impact on the world and its history-in-the-making, regardless of our background and status. I cannot accept that the lighthouse keeper, the cashier, or the truck driver has any less of an impact in the world than the president or the pope. Dare I say that we are each the president and pope of our own reality, with the direct power to change the tiny locale of the world that is immediately around us, which thereby carries consequences downstream of our locale, permeating locales of neighbors, family, friends, colleagues, competitors, and even arch nemeses (should you have any). The effect again ripples onto those people’s connections, and on, and on. I’d argue that even your actions today, even within the past few hours, have been impacted by your past interactions with others, whether those interactions took place 5 years, 5 days, or 5 minutes ago. For those who may have read Bradbury’s ‘A Sound of Thunder’, we are all little golden butterflies who play some large part in shaping the future. We, as mere individuals, matter more than we can conceive.
In the process of developing Emberwood, philosophy in a sense reigns as a major guiding light. I feel like the whole point of why I started Cider Mill Studio in the first place is to express myself and the nuances of the philosophical ideas that might make the world a better place via story-telling and art. There might be nothing more apt to change the hearts of others than through art. Quoting Alan Moore,
“I believe that magic is art, and that art, whether that be music, writing, sculpture, or any other form, is literally magic. Art is, like magic, the science of manipulating symbols, words or images, to achieve changes in consciousness… Indeed to cast a spell is simply to spell, to manipulate words, to change peoples consciousness, and this is why I believe that an artist or writer is the closest thing in the contemporary world to a shaman.”
In summary, philosophy gives the why to everything that is sought (and thereby, if we have one – a philosophy – it gives us a boost to our self-efficacy, or our belief that we can achieve something). Self-efficacy is a pre-requisite to finishing any meaningful project, so I just wanted to dive into it a bit here. Perhaps some of you are working on meaningful projects of your own. I wish you the best of luck in your pursuit of successful completion of these endeavors, and please feel free to share about your journey in the comments, and perhaps any principles you have picked up over the years – I’d love to read your thoughts and I’m sure others would too.
I first want to say that I’m alive, and I’m sorry for taking so long to post! In short, it’s been a wacky 15 months since the last update.
Since then, I learned just enough C# scripting and Unity to make my first portfolio piece, which I published on itch.io about one year ago. Click here to play the game in your browser. Any comments and/or criticism is much appreciated!
I also dabbled a bit with music composition using FL Studio. I have a long way to go, but I’ve started my musical journey by releasing three demo tracks so far. Please let me know what you think!
(I embedded Sound Cloud media players for each track below – but if they don’t work on your device, you can listen to them by clicking the link here, which will take you to my Sound Cloud profile page).
Lastly and most importantly, I’m working on my first original indie game project. Currently, it is code-named Emberwood, and it’s enroute to being a top-down RPG with a pixel-art aesthetic set in a technomancy/high-fantasy setting in which the world lies in ruin after the collapse of an eldritch empire. The world-building behind the game’s story is gelatinous and underdeveloped at the moment. Before focusing on art, music, world building, character development, and dialogue, I’ve been heavily prioritizing the game’s core mechanics.
I guess you could say I’m building the ‘engine’ of the game right now. This includes designing systems such as combat, stats, skill trees, inventory, UI, NPCs, branching dialogue, questing, cut scenes, crafting, farming, etc… It’s a beefy and disorganized work in progress to say the least. It’s certainly not ready for demo testing at the moment, but it’s getting there.
I started working on Emberwood back in March of 2024. Since then, I’ve completed a first pass of all the game systems mentioned above (minus the cut scenes… Haven’t gotten to those yet). The harsh reality though, is that despite having these systems largely functional and bug-free, they don’t jive well together – YET! That’s where the next few months come into play.
The big goal for the first half of 2025 is to perform a full second pass (and for some stubborn mechanics, maybe even a third pass) to improve the overall cohesiveness and feel of the game. Once everything feels right, my hope is to conduct some pre-alpha playtesting with a small cohort of retro RPG enthusiasts to get some feedback regarding game mechanics, difficulty, and overall feel of the game. If you like the RPG genre and you’re at all interested in being part of this early testing phase, please leave a comment on this blog post (or any post), or send me an email at cidermillstudio1@gmail.com.
Another goal that I have for this year is to get serious about growing the Cider Mill Community via Discord and of course, our YouTube Channel! Ideally, I’d like post regular dev logs once every two months or so. I think my goal will be to post by the end of this month, so expect a proper dev log by the end of February 2025! [I don’t know much about how to host a Discord chat yet, but I’ll also aim to get that up and running by the end of the month as well.]
That’s all for now everyone. If I’ve gained anything over the past year or so, it’s a feeling of respect towards those who have the persistence and the hope required to pursue their vision, be it to its realization or to its dissipation. Just consider, for a moment, that the finished works of human expression we experience in life as consumers (e.g. of books, movies, paintings, plays, games, etc…) are but a infinitesimally small sliver of the pie which is all of the works that were ever begun. Kind of mind blowing, at least to me.
Haunted Castle is a brief dark fantasy platformer in which you can use a stat-driven combat system to slay skeletons, collect loot and currency, craft equipment to bolster your stats and gain new abilities, and unlock a plethora of skills within a comprehensive skill tree. The game is browser based and exhibits save-and-load functionality. No download is required to play. It is approximately a 30 to 40 minute experience.
This week, I delved into Unity and C# programming, and – wow. This stuff is beefy, and my progress feels, well, small. Unity itself is an incredibly sophisticated piece of software that will take me years to learn – perhaps the better part of a decade. To make things even gnarlier, proficiency in C# is somewhat of a prerequisite to Unity mastery.
I have a feeling that I’ll need to change up my learning strategy for these rather technical skills. Coding is extremely finicky and sensitive to bugs and glitches, and Unity has literally hundreds of features to learn before one can make a complex game (for example, Stardew Valley).
This week I stuck to the bare-bones-basics of game mechanics like player movement, object collisions, physics, and triggers. These mechanics alone took me several days just to become familiar with. I learned through YouTube tutorials, including a tutorial on how to make a Flappy Bird knockoff game. Another tutorial that I enjoyed but struggled to follow was a crashcourse on how to make a 2D top-down game, which taught movement, combat, tile sets, enemies, etc… While I was able to complete the Flappy Bird tutorial without much trouble, I ran into some dead-ends and code glitches that I couldn’t figure out during the 2D top-down game dev crashcourse, so I stopped that one about half way through.
In conclusion, while I may be able to learn the basics of pixel art and animation through YouTube tutorials, it might be more efficient to learn Unity and C# through a more structured online course. I opted to enroll in the following Udemy courses (Udemy is currently having a 90% sale for Black Friday weekend, so the following three courses costed approximately $40 total).
Complete C# Course for Unity 2D (focuses on learning C# basics, then takes you through several tutorials to make small games from scratch)
Roguelike Unity 2D Course (make one big dungeon crawler, complete with randomized dungeons, enemy pathfinding AI, and more)
Collectively, these courses offer roughly 100 hours of lectures. There may be some redundancy between the three of them, but that’s okay because redundancy is a good way to cement things while learning.
Wow, we’re already four weeks into this experiment. I’ll be honest, the difficulty of learning Unity and C# is extremely daunting, and making progress can be frustrating (especially when the only problem is a lacking semi-colon!!!!!!! AGH!!). I sincerely enjoy learning this stuff. Nevertheless, in the face of a pragmatic world, I work daily to protect this dream I have of developing indie games. In short, I’m taking it slow, and keeping level headed about expectations and progress. As long as I enjoy the journey (which I anticipate will be many years, if not forever), the work continues, and the dream becomes closer.
Goals for this week:
Continue to learn the basics Unity and C# through the Udemy courses listed above (Start with the C# course)
To those who are realistic yet choose chase your wildest dreams anyway: On Sunday nights, my wife and I welcome the week ahead by watching our favorite youtuber named Martijn Doolaard. He releases an hour long video each and every Sunday, in which he uses vlogging and breathtaking views captured with drone footage to tell his story: as a 39 years old man from the Netherlands, he is single-handedly renovating an abandoned ruins in the middle of nowhere in the mountains of rural Northern Italy. Martijn himself is a person to look up to. He’s humble, fair, stoic, clever, and quiet – but what’s most important is that he’s an pragmatic realist yet somehow he’s also a cultivator of beautiful dreams.
In his early twenties, he began his career in graphics design (a skill he still uses to make income), and eventually decided to start finding ways to make passive income on the side. One of the ways which he achieved this was by blogging, which led him to eventually take a break from his job and start an epic biking journey that took him all the way around the world. Now, he works primarily as an off-grid homesteading vlogger who endlessly finds ways to improve his rustic property. He works on a variety of complex projects all by hand – plumbing, stone-carving, masonry, roofing, and so much more.
During last night’s episode, Martijn was doing a Q&A, and someone asked him how he prevents himself from becoming overwhelmed by large projects, or when he makes mistakes.
“You have to keep going. Because the alternative, giving up, is worse. So you have no choice other than to keep going. And I like big projects because they give me purpose. That’s why I did the bicycle journeys. They sound like insane, big projects which you can’t do. You can’t cycle around the world…
“But you can, if you take it slowly.”
Martijn Doolaard, November 2023
And with that, welcome back to the Cider Mill! Let’s dive into this week’s post – we’ve got some good cider brewing.
Goop, my First Character Sprite
Meet Goop. He’s a blue beetle guy, but with eight appendages. I tried giving him wings:
I was quite happy with Goop’s wings themselves, but I thought that they didn’t really fit the calm, cute nature of Goop. Also if he’s a beetle, you’d expect to see more beetle-ish wings rather than dragon wings! So I ditched the wings for now.
But what if you wanted to see Goop from different angles? For instance, what if he was an NPC or an enemy in a videogame? These questions gave rise to Goop’s left, right, and rear aspects:
So now, all that’s left to do is animate Goop! (this may be a project to work on for next week).
Experimenting with different color schemes, Goop’s friends were born:
During this upcoming week, I’ll try to animate Goop and his friends in the idle state. Maybe in the future, we can even give Goop other animation states like a “sleeping state” or an “defensive state”, perhaps adding an attack animation.
Barn Upgrade
Remember the barn from last week? It now has a roof and chimney!
While I’m happy with the whole composition, I feel like the roof looks too simple, and I want to add some variation to the material. Right now, it looks like a brand new shiny metal roof with no flaws or variation. It’s also incredibly tall. I made the roof very vertically long to give the appearance that the barn extends backwards behind the front of the barn, to make it look like the barn’s depth is about twice its width.
Also, I love the colors of the chimney, but I feel the shape is a bit off. Looks a bit wonky. This is something I would like to improve in the future.
The next thing I added were some simple animations. I added smoke to the chimney an animation for the door opening and closing. A close friend of mine suggested that I could add a baby cow sticking it’s head out of the barn when the door opens, and perhaps it could take a little stroll in front of the barn before heading back in. I loved this idea and I will try to work on realizing it in the coming weeks.
My first Tile-Sets
The last thing I worked on this week are creating Tile-sets. In Aseprite 1.3 (currently in beta), you have the ability to create a set of 2D tiles that you can use to build structures in your game. I watched a video by AdamCYounis (one of my favorite pixel artists on YouTube) on how to create these types of tile-sets. Here’s a link to that video.
Keep in mind, these tile-sets are not done! They’re just the skeleton of a much more detailed series of tile-sets that will probably take a few days (each) to complete.
Here’s the first preliminary tile set, titled “simple grassy tiles”:
There are two main squares, consisting of 13 total tiles. The square on the left consists of 9 tiles (3×3) that make a box with lighter shades of green on the outside and progressively darker shades on the inside. The smaller square on the right consists of 4 tiles (2×2) that make a box with the opposite color sequence. Here is what these squares look like divided into tiles:
With Aseprite 1.3, you can easily use tiles like these to make structures very quickly. Using these 13 tiles, I was able to make this “landmass” (which may be used later for a 2D platformer game) in less than 5 minutes:
Here are some other color schemes for the same exact tile-set, along with the landmasses which they produce:
My hope in the future is to use this feature in Aseprite 1.3 to efficiently design immersive levels. An exciting task would be to challenge myself artistically by adding convincing details – grass, rocks, flowers, etc… But for getting a prototype up and running, all I currently need are these basic tile sets I can at least import these assets into unity and begin designing my first games. Speaking of which…
Goals for this week:
In terms of art design, my skills are still well beneath the par of the indie standard. The fact is, my ability to make art is the rate limiting factor of getting my first indie games published. So, that being said, my goal for this week is to begin diving into the meat and potatoes of game design – programming! This will be a long journey. Coding is complicated and I have no idea where to even begin. I’ll download Unity, look up some tutorials and see where I can get.
Simultaneously, I’ll still work on pixel art, and hopefully traditional art technique as well. Although I haven’t posted much about it, I’ve been delving into linear perspective recently. I’ve tried my hand at drawing some boxes using one point and two point linear perspective. Here are some digital drawings I made from two weeks ago:
Thank you all for joining us here at the Cider Mill this week! This past week I’ve been on overload with school and family stuff. But this week is Thanksgiving in the US, and I have a few days off for the holiday! I plan on getting some work done during that time.
See you all next week, and have a wonderful and cozy Thanksgiving!
Today’s introductory paragraph of proper and mindless optimism: It’s noon, I’m currently at our local cafe sipping some house roast, and there just so happens to be three huskies to my right, each of their own color and variety, basking in the sunlight. They all have a base of white fur, but their outlines are different – red, brown, and black. They all have bright blue eyes, which contrast well with the orange and yellow leaves dominating the background. Today is a good day.
Hello to you, dear reader! If you’re new to the blog, welcome! Please make yourself at home, get cozy and have some nice hot apple cider as we continue our journey together.
Recap from Last Week:
This past week was the very first in my journey of realizing a pipe dream of becoming an indie game developer. In my first post, I introduced this blog, defined its purpose, and set some goals – namely these goals are to continuously build a set of skills (visual art, pixel art/animation, music composition, story development/world building, and coding C# in Unity), all of which are required in order to craft a videogame from complete scratch.
My first challenge – and somewhat (?) of a solution
The obstacle that I encountered on day one (November 6th, 2023) was finding (any) time to dedicate to learning the skills of indie game development. This is difficult, especially while balancing time between working, studying, and meeting family/friend obligations – this is perhaps a universal challenge that all of us face when initially starting a new project, hobby, or sidehustle. So, how do we overcome it?
Here’s a brief list of potential learning times throughout the average workday: Before work (1-2 hours), while eating breakfast (15-20 minutes), during commute to and from work, lunch break (25-30 minutes), and before bed (30 mins – 1 hour). This adds up to about 2.5 to 3 hours per day that I can dedicate to learning and doing things about game design.
While this schedule sounds pretty straight forward, there was just one problem: for me, personally, it was unrealistic to go from spending zero hours per day of game development straight to 2.5+ hours per day. I tried sticking to that unrealistic schedule, and quickly realized that it was not sustainable – I would be burnt out in no time. So, beginning on Wednesday, I switched to a more realistic goal of 90 minutes per day.
And it worked! With this schedule, I was able to learn (by watching/listening to YouTube videos) for roughly ~50 minutes per day, anddedicate ~40 minutes per day to actually making stuff!
Using an amazing piece of pixel art software called Aseprite (which costs $20 on Steam), this what I was able to make this week:
A seedling sprouting out of the dirt
Four trees, one for each season of the year
A Barn (more specifically, the front of one)
I started off early Monday morning by trying my hand at making one the most basic entities found in any farm simulator game: the sprouting seedling!
I used a total of 6 shades of green, 3 shades of brown, and a bold black outline to help make the seedling stand out from the background. Finally, I tried animating the leaf to make it look as if it’s gently drifting along with the breeze.
Tuesday morning, I decided the next thing to make would be a tree trunk! Quite quickly, this tree trunk evolved into a lonely tree surviving the harsh, cold winter, covered in snow and dripping with icicles:
You’ll notice that the snow is actually made up by 2 shades: white and gray. The icicles hanging from the trees consist of a single shade of very pale blue. The trunk is made up of 3 shades of brown, with the darkest being strikingly close to violet, but you don’t notice the violet hue when you look at the entire image – all you see is a nice brown tree trunk. Cool, right?
After making a winter tree, I had absolutely no choice but to make one tree for each season. This was simpler than you’d imagine. I was able to copy and paste the same trunk for each tree, and only draw the leaves once. Then, I could change the color of the leaves depending on the season! For instance, here’s a spring tree (it’s pink hue strikes me specifically as a dogwood tree):
Here’s the summer tree (to give this tree more fullness and depth, I added an underlying background of dark green foliage):
And of course, an autumn tree (saved the best for last):
One way that I hope to improve my tree-drawing in the future is to make the leaves look more like… leaves. In the above images, they kinda look more like whimsical clouds of colorful smoke, ensnaring the branches.
As the weekend approached, I decided to attempt to make my first pixel art building: a barn!
Building the barn was a bit discouraging at first. Rendering the red and white wood, the glass, and the shading was quite difficult. As with real life objects, pixel art objects are made up of materials that have their own textures. Through tiny pixels, it’s actually quite difficult to render real-world materials convincingly.
As you can see below, the barn looked quite terrible at first, with too much solid red and white coloring. I was quite disappointed at this stage.
Then I added some shading by creating a second semi-transparent layer of black. Next, I blurred the edges of the shading to make it look more natural. But even after this phase, the barn still looks dull and overly cartoonish. My suspense of disbelief was still low at this point.
But alas, I found guidance and inspiration! Below is a snapshot from a videogame called Stardew Valley. This game and its creator (Eric Barone) are perhaps the largest inspirations for me to pursue indie game development. Single handedly, Barone crafted all the art, music, story, and code that makes up this farming simulation game, and the final product really couldn’t be more perfect in my opinion. I fell in love with this game back in high school and still play it from time to time to this day, seven years later.
If you look closely at the pixels that make up the wood of the buildings, you’ll notice that each horizontal plank of wood is made up of 3 different shades of brown, and the panels are divided from each other by a one-pixel-wide line of very dark brown. See here more closely:
So, I decided to try and emulate this technique in my barn. First, I picked a shade of red that was slightly darker than my base red, and used this color to create an uneven shadow beneath each horizontal wooden panel. I also added a barn door:
I used an uneven line of shadow assuming that this wood is old and rugged, and perhaps the paint is flaking and uneven, so light would interact in a non-uniform way with each different segment of wood.
Next, I picked a slightly brighter shade of red, and used it to create an uneven line of brightness at the bottom of each panel, as if light was more able to strike the bottom of each wooden panel compared to the middle and top of each panel. I also decided to edit the windows because I didn’t like the black lines, they gave too much contrast with the white window frame. Also by dividing the windows up into 4 glass panes rather than 9, each glass pane became significantly bigger and allowed for more convincing renditions of the glass material:
Next, I added an additional two shades of white (one darker, one lighter) to the white roof and window frames. I then rounded the bottom corners of the barn, another technique used by Barone to convey 3D shape in his 2D buildings. Finally, I rendered the wooden materials in the barn door, and called it a day.
I’m happy with the end product of the front of this barn, but I have yet to really bring this building to life by adding a roof. By extending this image backwards with a proper roof, my hope is that it would feel more like a three-dimensional space rather than a flat image. My hope is to work on that next week!
I’d like to thank you for joining me for another moment here at the Cider Mill. If there’s anything I’ve learned this week, it’s that oftentimes, the biggest barrier in achieving one’s dreams is the barrier to starting! Before you start, it is quite scary – it feels like you’re standing at the edge of a rocky ledge, about to dive into the ocean waters below. It’s a bit intimidating at first, but once you just take the leap, what comes next is quite amazing! Not too long ago, I couldn’t imagine myself taking that leap at all, yet here I am, mindlessly counting the fish underwater, having a blast.
Now, regarding the following quote, I want to clarify that I’m not trying to change the world on a massive scale or anything. To make maybe a ripple in the changing tide would be enough for me. But to celebrate the end of week one, here’s one of my favorite inspirational quotes of all time.
“Here’s to the crazy ones. The misfits, the rebels. The troublemakers. The round pegs in square holes. The ones who see things differently. They’re not fond of rules. And they have no respect for the status quo. You can quote them, disagree with them, glorify or vilify them. About the only thing you can’t do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.”