My Indie Game Development Journey

In the summer of 2022, I set out to make an indie game with my friends. When we started, we set a goal of securing investment by Q1 2024 and agreed to shut the project down if we failed to reach it — which is why the project ended in 2024. This post is a retrospective looking back on our achievements and failures, and I hope my experience can be of some small help to anyone interested in, or about to attempt, game development.

How We Ended Up Making a Game

My background was originally in app and web software development. Then, at the end of 2021 after the college entrance exam, I started a project with my friend Jongwoo to build VR middleware — a sort of PiP system that let you overlay traditional 2D applications on top of an app that fully occupies an HMD’s display (like a game) without leaving it. Building simple test VR games in commercial engines like Unreal and Unity for that project was my first encounter with game engines.

That project was discontinued after three or four months due to market and technical issues. From there we naturally drifted toward making a game — though honestly, when I try to recall what I was thinking when I made that switch, it’s quite hazy. I had always been interested in games and game development, but it was only a vague interest; I had never actually done it, and it wasn’t part of any career plan. What really set things in motion was that, as the other members of the VR project drifted away one by one, I kept spending time with the two who remained: Jongwoo and Geonhyeong.

The three of us are high school classmates. In high school, Jongwoo and Geonhyeong entered a school competition to build a game using nothing but C — no libraries — and made Catamiles, an Enter the Gungeon clone. Geonhyeong and I used to debate all kinds of game ideas in the dorm. Our interest went beyond playing games to making them. I can’t pinpoint exactly when we decided to take on game development, but around June 2022 we started exchanging thoughts on game design and building things together. After testing several game ideas, in January 2023 we all took a leave of absence from school, turned my studio apartment into a studio, and began development as a team of three.

The Game We Made

Our game, Project Hana (working title), was a survival crafting game centered on creatures. You would hunt creatures with unique traits — a bison with axe-shaped horns, a squirrel whose tail glows — craft useful items from them, and explore a world of distinct ecosystems: deserts, wetlands, snowy mountains. Around that creature core, we wanted to blend in elements from other survival crafting games, like building and farming. We drew a lot of inspiration from Durango: Wild Lands, Ark: Survival Evolved, the Monster Hunter series, and Valheim.

Game screenshot

Game screenshot

Game screenshot

The game went through two major pivots: one in early 2023 and one in early 2024. The first was a switch from a top-down view to an over-the-shoulder view. The second changed the genre from multiplayer survival to a single-player adventure, stripping out survival-genre systems like building and farming. The first pivot was an ambitious early change made to build a more fun game while preserving the genre and core gameplay systems. The second was about shrinking the game’s scope as the deadline loomed — reusing as many of our existing assets and systems as possible to finish something and secure investment. So while what we ultimately pitched to publishers and studios was the post-pivot single-player adventure, when someone asks us what game we made, we usually describe the one from before the pivot.


Project Timeline

Experimenting with Ideas (2022.07–2022.12)

From mid to late 2022, we spent about half a year prototyping and evaluating various game ideas, mostly within the survival crafting genre. Since the team had started out making simple VR games for the VR middleware, we naturally tried VR games first. But VR wasn’t what we had grown up playing or dreaming of making, so we soon turned to PC and console.

Before the concept we actually built was chosen, the most seriously discussed idea was a single-player top-down action adventure with pixel art — something like Core Keeper mixed with Enter the Gungeon. Like the Horizon Zero Dawn series, the player would crash-land on an alien planet roamed by hostile machine creatures, fight them from a mech, harvest machine parts to upgrade that mech, and escape the planet. Even the working title, Project Hana, comes from Hana Song — the real name of D.Va, the mech-piloting Overwatch character.

The biggest reason this concept was dropped wasn’t dissatisfaction with the design itself but our longing to work in 3D. So we kept as much of the concept as we could while swapping machine creatures for living ones, single-player for multiplayer, and pixel art for 3D — and that became the foundation of the game we actually built.

Development Begins in Earnest (2023.01–)

I was more familiar with the IT startup ecosystem — build a prototype, raise investment, grow the business — so from day one we developed on the premise that we would use funding to finish a game bigger than we could complete on our own. Producing and releasing a demo with one to two hours of playtime within a year, in order to raise that investment, became the project’s single biggest goal.

Our studio, converted from my apartment
Our studio, converted from my studio apartment. Jongwoo is the one looking at code; Geonhyeong is on the tablet.

The three of us were confident in software development but unfamiliar with game art, so art was our biggest weakness — and yet, contradictorily, we cared a lot about achieving a distinctive, high-quality art style. From January through March we poured almost all of our time into learning the tools of the trade, developing a Kuwahara Filter plugin, studying 3D art, and developing a new style.

From Top View to Shoulder View (2023.03)

Initially we decided to build the game with a top-down view to cut costs on both art and engineering. The strategy was to model in 3D only the things that needed movement or interaction — the playable character, creatures, buildings — and render the environment in 2D using illustrations as much as possible. Think of the art of Durango: Wild Lands or League of Legends.

A render from Durango: Wild Lands
A render from Durango: Wild Lands

But a top-down view turned out to be quite limiting for content built around observing and hunting creatures. Flying creatures like birds and aquatic creatures were hard to portray, and when a creature fled after being hit by an arrow, it would be within sight in first-person or an over-the-shoulder view but would quickly slip off-screen in top-down. So after much deliberation, we made the ambitious call to switch from top-down to an over-the-shoulder view.

The next six months or so passed without major events — like office workers, we gathered at my apartment at 9 on weekdays and worked until 6. During this period, high school classmates and people we met in college joined full-time or part-time, and the team grew from the original 3 to 7.

The Pivot (2023.10)

As September 2023 rolled in, many of us — myself included — had come to believe we could not finish the demo on schedule with the original design. I remember it as my most mentally painful moment. We had many conversations about the future. Finishing the original design would require leveling up our skills considerably, and the sheer amount of work meant at least another half year — far beyond our original timeline.

What we all agreed on was that we wanted to keep the team together, and for that, a demo had to exist before February 2024 — three months away — so we could start conversations with studios and publishers. So we decided that whatever genre it ended up being, we would build a game we could demo within the original timeframe, reusing as many of the gameplay systems and assets we had built as possible, and keep the team alive.

The original design depended on a rich ecosystem: creatures interacting with one another, and the player exploiting their traits to hunt other creatures and craft tools. That required a critical mass of creatures in the game. We had planned around 20 species of flora and fauna for the demo’s biome, but we couldn’t even get 10 implemented — the world looked terribly empty, creature interactions grew scarce, and the game’s core fun and identity failed to come through.

So we cut multiplayer along with systems like building and farming, and made one last attempt: a single-player action adventure with a bigger emphasis on combat, where commercial assets could get us to “fun” relatively easily.

Building the Playable Demo (2023.11–2024.02)

Creating combat-quality animations was beyond us. So we tried a strategy: take the free Paragon assets from Fab (formerly the Epic Games Marketplace), pick a few characters that worked as combat-ready enemies, and modify the models to erase their original visual identity and fit our game.

The video above is the technical demo we made back then. If you look closely from around 4:06, you can tell the three enemy types are modified versions of Terra, Grux, and Rampage. We reshaped the downloaded T-pose meshes in Blender, adjusted the weight maps, and used the animations almost untouched. We then procedurally generated normal textures with the brush strokes that defined our art style in Substance Designer, brought everything into the engine, and implemented combat.

Artstation Challenge (2024.03)

While development continued, an Artstation challenge for projects made with Unreal Engine was announced, and we saw it as a great opportunity to participate. It was a simple online competition — produce and submit a 30-second video — and this is what we entered:

Failing to Raise Investment, and the End (2024.04)

We polished the game by watching friends play it and wrapped up the finishing touches, and in February 2024 completed a gameplay demo with about an hour of playtime. But in the end, we sadly failed to secure investment from any of the publishers or studios we contacted — and since we hadn’t raised funding within the window we had agreed on at the start, the project came to an end.

Honestly, it was the expected outcome. As sad as it is, the fun and polish of the demo we showed fell short of the goals we had set for ourselves — if I had been the publisher, I would have hesitated to invest in that game too. Afterward the team scattered: some returned to school, some got jobs, and I enlisted in the military. Whenever we met up, we would say, “Someday let’s organize the project records and at least post a little retrospective!” — and after two years of putting it off, that promise is finally being kept now.


Art and Technology

When the three of us — Jongwoo, Geonhyeong, and I — first started the project, none of us had deep experience with game art. We still poured an enormous amount of time into it in pursuit of a game with high-quality art, and while that taught us a great deal about computer graphics and game art in general, it also stole a lot of the time that should have gone into making the game.

And even the art we had at the project’s end isn’t that satisfying to look at. There are things we researched deeply that look lovely in isolation — clouds, foliage, campfires, grass — but the playable character, the creatures, the large props, the animations… so much fell short of the quality we wanted due to limits on time and skill that, taken as a whole, there is still plenty to be embarrassed about.

Our Push Toward Stylized Art

From the beginning we had a strong desire for stylized art. We wanted humans and creatures with realistic proportions rather than heavy deformation, and an overall mood closer to a bold, oil-painting-like, brush-drawn look than a cartoon or anime style.

Since the team’s art skills fell short across the board, we made many attempts to compensate with engineering: researching procedural texture generation in depth, and reshaping commercial assets from different creators to match our target style by tweaking post-processing and other parts of the rendering pipeline. Some of it worked — but in the end, there were also cases where hand-painted textures simply looked better, or where the research itself devoured far too much time.

Kuwahara Filter Plugin

Like many student-level game developers, we knew we couldn’t produce every 3D asset ourselves and would need to buy assets. At the time, marketplaces like Fab were full of photorealistic assets, and in Unreal Engine you could use Quixel Megascans’ vast library of high-quality photorealistic environment assets for free.

So, to turn these photorealistic assets into something stylized, we extracted them into a separate custom render pass and applied a Kuwahara filter in post-processing. Here is the result:

A scene built with Quixel Megascans (Kuwahara filter off)
A scene built with Quixel Megascans (Kuwahara filter off)
The same scene with our Kuwahara Filter plugin applied
The same scene with our Kuwahara Filter plugin applied

Clouds

For the sky and clouds we purchased a commercial asset called Ultra Dynamic Sky. We wanted the clouds to keep their volumetric lighting while looking painted, just like the other background elements (rocks and so on), so we ended up customizing them quite heavily.

Left: default UDS / Right: our customized UDS
Left: default UDS / Right: our customized UDS
The customized UDS at night
The customized UDS at night

Normal Painting

To get that brush-painted effect, we tried putting brush strokes into the normal map instead of the albedo map — and it turned out to be surprisingly effective. We procedurally generated brush-stroke normal textures in Substance Designer and refined them a little in Blender, which let us quickly produce normal textures for the meshes we had made or bought.

Normal painting

Normal painting

This approach let us keep the albedo relatively simple, and for props like campfires and berries we could use flat colors outright — which made them easy to manipulate, like recoloring a prop right in the engine’s material editor. It also lit beautifully under Unreal Engine’s Lumen GI.


Mistakes and Lessons

Spending Far Too Much Time on Visuals

In today’s game trailers and reviews, you often see comments criticizing games that have beautiful art but miss the core fun due to thin content or systems. Once I was on the making side, it turns out I was committing exactly the same mistake.

We effectively started as two programmers — Jongwoo and me — and one artist, Geonhyeong, who was himself just learning art, so we were a team whose strength was engineering. Our heavy investment in art was an attempt to overcome that weakness, but looking back, I had an irrational obsession with art quality. Worse, since I couldn’t model or animate — I couldn’t do anything hands-on in 3D art at the time — I had no choice but to lean on Geonhyeong for so much, and I committed the classic mistake of being a manager who doesn’t know the work.

Of course, there were upsides. Thanks to the small team’s curse-slash-privilege of “you have to do everything,” we experienced the entire 3D game art pipeline from concept art to final render, and gained an enormous amount of knowledge and know-how in a relatively short year. When I talk with my old teammates, we often say that from the project’s perspective, indulging our desire to do 3D — choosing stylized 3D over pixel art — was a fatal misstep, but from a personal perspective it was a good decision because we learned so much.

Wanting to Do Too Much

Trying to cram too much into the game design caused major delays across production. To be fair, the survival crafting genre itself has a buffet-like tendency to bundle many game systems. Think of the games in this genre: beyond basics like hunger and health, they pack in farming, fishing, building, animal taming, automation, and more.

But each has a defining centerpiece: Ark: Survival Evolved has its iconic taming system, Don’t Starve has sanity, The Forest has its terrifying cannibals, The Long Dark has the relentless cold. For our game, that role belonged to the creatures — yet I poured too much love and time into designing everything else, like the building and hunting systems. It was an effort to make a good game, but it was decidedly not an effort to make a good game within the time we had.

Perfectionism and Embarrassment

Recording SFX ourselves on Bukhansan

At one point, while hunting for SFX like footsteps and chopping wood, I ended up hiking Bukhansan — the mountain near my home — with a microphone to record them myself. We processed those recordings a little in Logic and put them in the game, and the results were better than expected. Recording a variety of footsteps on dirt, fallen leaves, and rock, and wiring them to play according to the landscape material, sounded far better than the free asset packs that only had one or two sounds.

But was this really a high-priority task? Definitely not. Looking at the situation objectively, rather than recording footsteps myself to raise their quality, adding even one more creature and using any old asset for footsteps would have served the goal — finishing the demo — far better.

Throughout production, I was committing the grave error of being a perfectionist without the skills to back it up. When you learn to draw, you learn to judge which parts of a picture deserve more rendering and which parts to let be. I should have done the same here. Whether visual or audio, even when something came out looking like a beginner made it, I needed to be able to accept it and move on for the schedule’s sake — and I couldn’t.

When I think hard about why, I believe it was embarrassment. Most people are embarrassed to show their immature creations — all the more so when it’s something they are pouring themselves into. Even while writing this post I’ve spent ages hunting for the prettiest screenshots, so perhaps I still haven’t fully learned my lesson… In any case, I’ve come to feel that avoiding exposure of your immaturity is a huge obstacle to growing as a creator.

The Surprising Power of a Mechanical Critique Process in Collaborative Art

I was used to doing UI/UX design in tools like Figma, taking on small freelance jobs or working in a team, but I had never experienced anything like 3D game art, where four or five people in different roles work on a single scene. Still, my experience in the similar-but-different field of UI, combined with the confidence of being twenty, led me to the delusion that “with enough effort, I can direct game art well enough too.” Evaluating design from a functional standpoint and evaluating aesthetics turned out to be quite different. Even if you can instantly tell whether a scene looks good or bad, articulating why logically was far harder than I had anticipated.

Beyond my own shortcomings, collaboration in game art differed from collaboration in UI/UX design. The biggest difference I felt is that game art has vastly more elements to evaluate aesthetically than an app or web UI. Take a rough screenshot while wandering a game in development, and you have sky and clouds, trees and rocks, foliage and landscape, playable characters and creatures — and each of those contains its own layers of detail. And there were many subtly different paths to achieving any given aesthetic goal.

This changed for the better around September 2023, when Jihyun — who studied both fine art and computer science — joined full-time. She started with gameplay programming and gradually moved toward art, from painting textures and making VFX to introducing normal painting, contributing hugely to the art we ended up with. But just as valuable as her technical skill were the methods she brought to our production process. For example:

  • Set a deadline, and when it arrives, hold a group feedback session even if the work is unfinished
  • Record what needs fixing along with its priority — don’t fix it immediately
  • Always attach reasoning to judgments of good and bad
Meeting notes from that time
Meeting notes from that time

Before, if work on one element — a character, foliage — didn’t produce good results by its intended deadline, we would usually just spend a few more days on it. After she joined, we would move on first, work through the other elements, and then circle back. Rotating across elements like this felt like an excellent way to work when the art style wasn’t yet established — when we lacked even a common reference scene. Personally, I found it fascinating that leaving known problems behind to work on something else felt a lot like the concept of technical debt.

Underestimating the Importance of Concept Art

Early in production, we underestimated the importance of concept art for creatures and props. In app and web development, I had often seen good UI/UX emerge without detailed PRDs or wireframes, so I assumed games might work the same way. My high school friend Jaehee kindly drew concept art for us now and then, but she couldn’t spare much time, so realistically we couldn’t produce concept art usable across production. That skill gap and those team constraints led us to jump straight into modeling without detailed concept art — and it was not a good choice.

Most obviously, revising a finished mesh takes far longer than revising a concept sketch. And we weren’t making minor props that flash by in a scene — building creatures with distinctive traits and complex animation requirements without concept art was, in hindsight, far too bold an attempt.

The Team Growing Too Fast

The project that started with 3 people eventually grew to 4 full-time and 3 part-time members. I’m deeply grateful to everyone who volunteered completely unpaid — but it caused real problems. At some point I was spending too much of my time as a manager: giving feedback on everyone’s work, adjusting schedules, planning their future tasks. Meanwhile I — one of the more skilled people on the team — could no longer properly do engineering or art myself.

Game industry or not, in a small team the project lead is usually both the manager and a primary contributor. If you focus on management out of a resolve to be a good manager, that person stops producing. The smaller the team, the more objectively you should ask whether adding one more member actually raises total productivity by one member’s worth.


If I Were to Make a Game Again

Focus on the Core Gameplay Idea

As mentioned above, I spent far too much time on things that weren’t about building the core gameplay. If I were to make a game again, I would focus much harder on building the primary source of fun that distinguishes that game from every other — not just early on, but all the way to the finish line. Unlike linear media — dramas, films, comics, animation, music — games are usually built for long play sessions, and the player, as the audience, chooses what to enjoy among the game’s content, like picking which side quest to pursue. That gives game developers unusual freedom to add all sorts of elements, and a strong pull toward doing so — but whether the things you add that way (some lore, a quest, a system) are really what the player expects is worth stopping to consider.

Build Fast, Share Fast

Late in the project, finishing the gameplay demo, handing it to friends, and watching them play was a truly important experience. I saw play patterns I never imagined: players wandering off in directions I never intended and getting stuck for a while, failing to clear sections I assumed anyone would just jump over, feeling no fun at all in the parts I thought were fun, and finding fun somewhere else entirely.

Our game’s original creatures made this especially stark: we, the developers, knew them intimately, but a first-time player obviously didn’t. So for some creatures, most players never noticed or exploited their traits, and the fun we meant to deliver collapsed into an unpleasant “what on earth is that creature supposed to be?”

If I were to make a game again, I would get a demo out fast — somehow — and have friends play it often, collecting feedback from the earliest stages of development. Having someone play your game is not just an end-to-end test. Meeting what the player expects at each moment of play is critically important. Making the game I want and imagine matters — but having others love what I love matters more.

Aim for a Game I Can Finish with My Own Money

This lesson may not generalize. As I’ve said, I was someone more at home in the IT startup ecosystem, with its default assumption of raising investment to grow. Raising money to build a game bigger than you could make alone is neither delusional nor wrong. But if I ever attempt game development again, I would aim for a small game I can finish on my own budget. That would free me from much of the timeline pressure and, I think, let me enjoy the process of making it far more.


Closing

Looking back, when we decided to end the project and said our final goodbyes, it honestly didn’t hurt that much. The most mentally difficult period of my life was September 2023, as the project’s milestones kept slipping and I could feel that we weren’t going to make it.

If anything, the months after the October pivot were the most fun and the most memorable. Even while quietly knowing that the effort probably wouldn’t lead to investment and that we were racing toward the end, our production process had improved so much, and we shipped more working things than ever, enjoying the work. Watching the YouTube video from the Artstation Challenge quickly pass a thousand views, and watching friends play the demo we had built, were genuinely meaningful experiences.

Since being discharged from the military, I’ve returned to university. These days I focus on my studies, build small products of my own in the app/web space, and occasionally work at Clevon, the software outsourcing company Jongwoo founded. My life has drifted away from game development again, but there have been moments when this experience paid off in a big way.

In a project with a dermatology clinic, we had to build a simple sculpting tool for an iOS app that renders a scanned human face and previews post-procedure results. Without this experience I would have had to start from computer graphics fundamentals and stumble through every mistake along the way — instead, I built a simple renderer directly in Swift and Metal and moved fast. And an HMD maker awarded Clevon a sizable contract over competitors with longer track records and bigger teams, precisely because of our game development history. They say failure is the mother of success, but seeing it help in such unexpected places makes me genuinely proud.

People often ask whether I still work in games. For now, I probably won’t go further down that path — no new game project, no game studio job. My plan is to focus on my mechanical engineering degree at my university through 2029 and use that time to explore opportunities across technical fields. But I still hold deep affection for making things, games included. The three of us still talk about game design all the time, and we joke that we should take care of our health, retire from our respective careers, and try again when we’re old enough for the senior center. I’m about 70% serious about that joke.

If you’re curious about anything — our old project, or technical topics like the Kuwahara filter — feel free to reach out anytime via the email at the bottom of my site (contact@sangmin.kim) and I’ll do my best to answer. My deepest thanks to everyone who supported and helped my little adventure.

Credits

  • Sangmin Kim (contact@sangmin.kim) — Game design and management, plus assorted small engineering and art tasks.
  • Jongwoo Jang (jangjongwoo@clevon.io) — Everything engineering. He has since founded Clevon, a software outsourcing company running various app/web projects.
  • Geonhyeong Park (pritzker0113@gmail.com, X) — Everything art. Currently pursuing a bachelor’s degree in Film & Video at Dongguk University, and still draws from time to time.
  • Jihyun Ryu — As our TA, played a huge role in shaping the stylized art style we ended up with. Currently works as a software developer at a financial company.
  • Jaehee Choi — Drew much of our concept art, including the creatures. Currently attending university.
  • Somin Kim (minnie0175@naver.com) — Engineering; helped greatly on the audio side, including adopting MetaSounds and Wwise. Currently works as a forward deployed engineer at an enterprise AI startup.
  • Yeongmin Cho (arcde40@gmail.com) — Engineering; solved tough problems like the creature AI’s behavior trees and physics engine troubleshooting. Currently interning while looking for a full-time role.
  • Jaewoo Lee (jaewoo913@naver.com) — Provided business support during fundraising, from advice to reviewing documents. Currently runs Ddokdi, a digital education brand for older adults, and leads the accelerating team at EO.
  • Hanpyo Kim (han@znrt.studio, znrt.studio) — Made our awesome team logo. Currently runs a fashion-based multi-brand house.
  • Wongyu Do (iceman1011@naver.com) — Shared countless conversations and feedback on game design. Currently traveling while building healthy communities.