Ana | Making Tiny Glade ๐Ÿฐ๐ŸŒฟ Profile picture
Jul 2, 2022 โ€ข 11 tweets โ€ข 5 min read โ€ข Read on X
In my tiny building game, I want your creations to exist in a world that feels alive. As a first step, I tackled ivy ๐ŸŒฟ As time passes, ivy grows on walls, bringing a bit of life with itโœจ

Brief tech overview in the๐Ÿงต

#screenshotsaturday #indiegamedev #rustlang ๐Ÿฆ€ #bevyengine
A new system needs to interact with all the previous systems. Finding a suitable algorithm took me a few iterations ๐Ÿ‘€๐Ÿ’ฆ

Ivy needs to know if a wall gets changed...
... or if a wall gets erased. (either via the player's input or by the undo system)
In my first prototype, ivy was directly tied to a wall it spawned on. That had a number of issues: (a) if wall changed, its UV->WorldSpace changed too, and ivy shifted - like a texture; (b) if wall got split with the eraser, that reordered wall IDs, and was messy to deal with๐Ÿ˜–
Thus for ivy to properly react to changes, it needs to know all the nearby walls. To make that query fast, I made a spatial hash (2D grid). This also allowed ivy to grow from one wall to another, as the data structure yields the closest wall as ivy grows towards it. Image
With some additional intersection checks ๐Ÿคช ivy can now continue from one wall to another ๐Ÿ˜Ž (thank you for giving me a primer on AABBs and segments and stuff @h3r2tic!)
Making ivy work with arches was waaaay more straightforward. I simply discard the fragments (pixels) that overlap with the arch.
I also learned not to discard vertices in vertex shaders xD that resulted in some serious cyberpunk looks ๐Ÿคฃ
I've been developing this game in my spare time. It's been a lot of fun, but - not gonna lie - tough at times๐Ÿ˜…

However, in September I'm switching to being full-time on this project ๐Ÿค˜๐Ÿš€ Maybe I'll even finally come up with a name ๐Ÿ˜‚

But! that's not all...
I'm not going to be doing it alone anymore ๐Ÿ˜ฎ

@h3r2tic is also joining the project in September โœจ๐Ÿ’–๐Ÿคฉ I'm beyond excited!! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰ wooooo!
I don't know about you, but I'll take a proper Summer break now: get some sun, maybe dip my feet in a lake, and just slow down for a bit๐Ÿ˜Œ

I'll be back in late August. Stay tuned by following the newsletter ๐Ÿ’Œ tinyurl.com/2p8u9rzp

Have a wonderfully delightful Summer! ๐Ÿ’š

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Ana | Making Tiny Glade ๐Ÿฐ๐ŸŒฟ

Ana | Making Tiny Glade ๐Ÿฐ๐ŸŒฟ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @anastasiaopara

Mar 11, 2023
Okay, I'm back! Part 2! Where were we?.. oh yeah!

Once we had a trailer (and a name!), we had something that was easy to share around. TikTok videos, Youtube mentions, articles - they all compounded in a VERY long tail for us, that lasted all the way until February!
We also had a huge discovery queue spike from Steam. I'm not exactly sure what happened there. If you correlate it with our daily wishlists from last month, you can note that we didn't get a proportional spike again. My theory is that more people were on Steam during Christmas ๐Ÿคทโ€โ™€๏ธ
Read 20 tweets
Mar 11, 2023
When starting as indies, the scariest thought was that we'd pour thousands of hours of love & hard work into a game no one would know about.

Today, Tiny Glade is #87 top wishlisted game on Steam, having gathered 257,387 wl 3 months since the reveal.

So, uh, HOW, right?๐Ÿ˜…

๐Ÿงต๐Ÿ‘‡
I'm NOT a marketing expert or anything like that๐Ÿ˜› so I'm simply going to share what we did, to hopefully provide a useful data point for others. Maybe something here could work for you too!
Quick facts:
* Tiny Glade is our first game
* we're a small team of four (2 full-time, 2 part-time)
* we're self-publishing
* we haven't paid for any marketing.
* almost all of our wishlists came from social media (we haven't even done any festivals yet!)
Read 26 tweets
May 28, 2022
This month I finally convinced myself to tackle the undo-redo system since it was becoming a premonition of a technical debt๐Ÿ‘€

And of course I decided to make it animated. How hard can it be, right!? ๐Ÿ˜‚ [1/10]

#screenshotsaturday #indiegamedev #rustlang ๐Ÿฆ€ #procgen #bevyengine
[2/10] Undo is essential for this game to stay playful and relaxing: if you misclick, a cat jumps on the keyboard, or you simply change your mind, it should always be easy to go back.

I had been scheming an undo system for a while, and now was the time to roll up my sleeves ๐Ÿ’ช
[3/10] Undo-redo for terrain and paths was pretty straightforward. Since the interactions between systems are procedural, a lot of animation is happening for free ๐Ÿ˜Ž For ex, arches appearing where paths cross walls, stones arranging along a path, or walls sticking to the ground
Read 10 tweets
Jun 5, 2020
My genetic drawing toy project is now opensource github.com/anopara/genetiโ€ฆ Disclaimer: the project is from when I was getting into programming, so dont have high expectations of the code hehe๐Ÿ˜…I also added an automatically generated sampling mask [see thread 1/4]๐Ÿ™ƒ
The algorithm starts with uniform sampling, then a mask is created based on edges to allocate more samples around regions of high frequency. I finish it up with a custom mask created in Photoshop to annotate semantic centers of attention (such as the face, or people, etc) [2/4]
More examples [3/4]
Read 5 tweets
May 2, 2020
Continuing archaeology of my old hard drive ๐Ÿง here's another project from 2017 where I was playing around with genetic algorithms. The algorithm has ~100 "tries" to arrange 20 brushstrokes after which it repeats the process, overlaying on top of the previous iteration [1/5]
With each iteration, the brushstrokes were progressively smaller (to imitate drawing finer details). For portraits, I also used a hand-painted mask that would allocate more samples in the region of face and hands [2/5]
here are just some more examples ๐Ÿ™ƒ [3/5]
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(