Boll's Journey - Sume

Hi all

Since the last quick update I've turned things around. Rather than working with full models for the mountains, I decided to take another approach.

While the mountain itself only comes after the second part of the Silent Forest, I've had to make part of it already for that part, since I want a bit of continuity in the game, and not just a 'woop, here I am!' kind of vibe. It is taking 'a lot' of my time, and patience, but at least it's not wasted work since I can easily reuse what I'm making now in the actual Mountain part.

To recap last week's update, and to give a better view of the change, here's last week's photos:

As you can see the whole thing looks a bit bland and too much of the same. I know, last week I said it looked good, but the more I stared at it while making it, the more I felt I could do better, and that brings us to the following screenshots:

What you're seeing here is just a part of the mountain, it will still become much higher.

The new result looks a lot more natural, less repetitive, and takes about as long to make as a single model does. Once I got used to the tool I built for it, it even became faster.

So, let’s talk about the tool that made this all possible.

Technobabble

If you're into the technical stuff this little chapter is for you, if not, you can skip it all to the next chapter.

The tool I'm using I've named CustomSpawnZone, and works together with two other scripts CustomSpawnZoneEditor and ConnectedDirtSpawner. Now, the spawnzone script itself is what makes the zone, the polygons, etc. The editor script makes it all work in the Unity editor, makes buttons appear that I'd need to add and remove the points, and makes my clicks register the points. The spawner script makes the actual spawns, but more on that later.

CustomSpawnZone

The whole reason why I decided to go this way, as mentioned above, is because I didn't like what the model looked like. I had to find a way to make it all more flexible, as well, since working on a hard, big, dumb model would almost require me to redo it over and over.

The CustomSpawnZone script does exactly that: it allows me to define freeform areas directly in the editor, rather than having to work around a static model. Each zone stores its polygon vertices in local space, builds a triangulated surface for height sampling, and provides both fast bounding checks and precise 3D containment tests. It even supports snapping generated points to Unity's active terrain, which makes it feel surprisingly natural when placing the points.

There are three methods that are important for this to work. These methods form the foundation of the zone logic - handling everything from triangulation to terrain snapping an containment checks.

Firstly, the TriangulatePolygon() method, which builds the triangulated surface. The method creates a list of indices for the polygon vertices, after which it applies simple ear clipping triangulation for convex polygons. Here's a look at the method:

[c]private void TriangulatePolygon()[/c]

[c]{[/c]

[c] if (points.Count < 3)[/c]

[c] return;[/c]

[c] triangles.Clear();[/c]

[c] var indices = Enumerable.Range(0, points.Count).ToList();[/c]

[c] for (int i = 1; i < points.Count - 1; i++)[/c]

[c] {[/c]

[c] triangles.Add(0);[/c]

[c] triangles.Add(i);[/c]

[c] triangles.Add(i + 1);[/c]

[c] }[/c]

[c]}[/c]

Secondly, the IsPointInside() method does the containment tests, first by checking whether a point is inside the polygon in 2D, and then checking if the point is within the vertical bounds of the polygon surface. The method looks as follows:

[c]public bool IsPointInside(Vector3 worldPosition)[/c]

[c]    {[/c]

[c]        Vector3 localPos = transform.InverseTransformPoint(worldPosition); [/c]

[c]        Vector2 testPoint = new Vector2(localPos.x, localPos.z);[/c]

[c]        bool inside2D = IsPointInPolygon(testPoint, points);[/c]

[c]        if (!inside2D)[/c]

[c]            return false;[/c]

[c]        float surfaceHeight = GetHeightAtLocalPosition(localPos);[/c]

[c]        bool withinHeight = Mathf.Abs(localPos.y - surfaceHeight) <= heightRange * 0.5f;[/c]

[c]        return withinHeight;[/c]

[c]    }[/c]

TryGetTerrainY() lastly snaps a point to the terrain.

On top of that, random point generation (to spawn the dirt/rocks) uses rejection sampling inside the polygon's AABB - a simple but reliable approach for most shapes. To calculate surface height at any position, the system triangles the polygon (ear clipping) and uses barycentric interpolation between vertex heights, falling back to an inverse-distance weighted height when necessary. It is a nice mix of math and practicality that keeps results smooth.

The core logic for this happens in two methods, the GetRandomPoint(), which handles random rejection sampling inside the polygon bounds, and the GetHeightAtLocalPosition() method, which determines accurate height from the triangulated data. Together they decide where objects should spawn and at what height, using either the barycentric interpolation or distance-weighted height sampling.

While there isn't really much to say about the GetRandomPoint() method - it's all about using Random.Range() etc - the GetHeightAtLocalPosition() is a bit more interesting to talk about. It first gets all the triangles from the polygon triangulation, to then find which triangle a certain point contains. It then uses the barycentric coordinates to interpolate the height of the point, with the method BarycentricHeight(), which uses 4 points. If it is unable to, it falls back to the distance-weighted average of all points with the method GetDistanceWeightedHeight().

Here's a look at the full GetHeightAtLocalPosition method:

[c]public float GetHeightAtLocalPosition(Vector3 localPos)[/c]

[c]    {[/c]

[c]        if (points.Count < 3) return localPos.y;[/c]

[c]        Vector2 testPoint = new Vector2(localPos.x, localPos.z);[/c]

[c]        List<int> triangles = TriangulatePolygon();[/c]

[c]        for (int i = 0; i < triangles.Count; i += 3)[/c]

[c]        {[/c]

[c]            Vector3 a = points\[triangles\[i]];[/c]

[c]            Vector3 b = points\[triangles\[i + 1]];[/c]

[c]            Vector3 c = points\[triangles\[i + 2]];[/c]

[c]           [/c]

[c]            Vector2 a2 = new Vector2(a.x, a.z);[/c]

[c]            Vector2 b2 = new Vector2(b.x, b.z);[/c]

[c]            Vector2 c2 = new Vector2(c.x, c.z);[/c]

[c]           [/c]

[c]            if (IsPointInTriangle(testPoint, a2, b2, c2))[/c]

[c]            {[/c]

[c]                return BarycentricHeight(testPoint, a, b, c);[/c]

[c]            }[/c]

[c]        }[/c]

[c]        return GetDistanceWeightedHeight(localPos);[/c]

[c]    }[/c]

For editor usability, I added visual gizmos that draw the zone's edges and world bounds. Seeing the triangulated surface right inside the scene view makes fine-tuning the zone layout far more intuitive, speeding up a lot of the work.

OnDrawGizmos() renders both polygon edges and its triangulated surface for a visual on where the spawn logic would succeed or fail. Failing usually results in 2 planes, of a sort, to show up. Rather than one smooth plane as it should be. Here's the OnDrawGizmos() method:

[c]private void OnDrawGizmos()[/c]

[c]    {[/c]

[c]        Gizmos.color = Color.magenta;[/c]

[c]        for (int i = 0; i < points.Count; i++)[/c]

[c]        {[/c]

[c]            Vector3 current = transform.TransformPoint(new Vector3(points\.x, points\.y, points\.z));[/c][/p]

[c]            Vector3 next = transform.TransformPoint(new Vector3(points\[(i + 1) % points.Count].x, points\[(i + 1) % points.Count].y, points\[(i + 1) % points.Count].z));[/c]

[c]            Gizmos.DrawLine(current, next);[/c]

[c]        }[/c]

[c]        Bounds b = GetBounds();[/c]

[c]        Gizmos.color = new Color(1, 1, 0, 0.1f);[/c]

[c]        Gizmos.matrix = transform.localToWorldMatrix;[/c]

[c]        Gizmos.DrawWireCube(b.center, b.size);[/c]

[c]        DrawTriangulatedSurfaceGizmo();[/c]

[c]    }[/c]

All of this, and more, make it so that, in the editor, it looks like this:

As you can see, even from this side view it’s perfectly manageable — and more importantly, flexible.

This setup means I can shape and rework the environment freely without touching a single model again. Every small improvement to the logic makes the mountain come alive a bit more — one spawn zone at a time.

CustomSpawnZoneEditor

Of course, just having the zone logic wasn't enough. I needed a way to actually work with it comfortably inside the Unity editor. So, I wrote a custom editor script (one of over a dozen already....) to make that possible. It handles point placement, snapping, live distance display, and visual feedback right in the scene view, letting me draw and shape spawn zones directly on terrain with ease.

The script adds a gid system, real-time distance measurements from the last point placed, and even smaller helper visuals to make sure I'm following my roadmap correctly when transferring the layouts into Unity. Toggling Add Mode lets me click directly in the scene to define new vertices, while grid snapping ensures everything stays consistent and evenly spaced. It's a big help for building large, natural-looking areas quickly.

Under the hood it's just using Handles, Undo recording, and a bit of math for snapping - nothing fancy - but it makes the entire workflow feel ten times smoother. What used to take several back-and-forth tweaks between Blender and Unity now happens in a single scene view, interactively.

I could go into a lot more detail with this, but since it's more on the developer side than the player side, I’ll keep it short and just show a few screenshots. It’s one of those tools that quietly makes things possible behind the scenes.

If you’re curious about how it actually works or want me to go deeper into it in a future devlog, let me know in the comments!

ConnectedDirtSpawner

Last but certainly not least - this is the thing that actually makes thing visual, after all - the ConnectedDirtSpawner script. It is the last piece of the system and probably one of the easiest to explain. While the CustomSpawnZone defines where things can spawn, the ConnectedDirtSpawner decides what actually goes where.

The script loops through each part of the zone, figures out where the dirt pieces (or rocks, or anything, really) could fit, checks if the point is inside the polygon, and then spawns one of the assigned prefabs at that position. It adds a bit of randomness to the placement and rotation to avoid patterns, and even applies a slight color variation using a MaterialPropertyBlock, so no two dirts look exactly the same.

Each spawned object is also scaled up a little, and optionally snapped to the terrain if the zone supports it. That keeps the visuals consistent across slopes or uneven terrain. And, since we're talking about a mountain, there's going to be lots of that...

The placement logic itself is pretty straightforward:

  • It takes the prefab size to determine spacing.

  • Iterates over the zone's bounding box.

  • Randomly offsets each position slightly.

  • Uses the IsPointInside() check to make sure the point lies within the polygon.

  • Uses GetPointOnPolygonSurface() to find the correct Y height.

  • Spawns the object with random rotation and color tint.

Here's a look at the helper method that calculates the surface height, making sure each piece aligns perfectly with the zone surface:

[c]private Vector3 GetPointOnPolygonSurface(CustomSpawnZoneDirt zone, Vector3 localPosition)[/c]

[c]{[/c]

[c]    float height = zone.GetHeightAtLocalPosition(localPosition);[/c]

[c]    Vector3 worldPos = zone.transform.TransformPoint(new Vector3(localPosition.x, height, localPosition.z));[/c]

[c]    return worldPos;[/c]

[c]}[/c]

The script also includes an editor-only context menu that lets me preview the whole spawn setup right inside Unity.
That’s been incredibly useful — I can clear and respawn the dirt layer instantly without entering play mode.

Lastly, for debugging and visualization, there’s an [c]OnDrawGizmosSelected()[/c] method that outlines each zone and shows where the spawn points might appear as little green spheres. It’s an easy way to see how dense the spawn grid is and where the logic succeeds or fails.

Forests, Mountains... and beyond

Now that I've got everything in place to make the mountains - something that was kind of a bigger hurdle than you might imagine - I'm starting to think beyond it again, what the rest of the game will look like, not just in terms of levels, but how players experience the world as a whole.

I've already mentioned I prefer continuity in the game, being able to move from place to place seamlessly (not talking about the loading screen, but the journey of Boll itself). So... What really is next?

The original way I saw it was that Boll ends up on a glider or a small plane of some kind, at the top of the mountain, and then glides off to the next part of the journey. The issue I have with that, however, is where does that glider come from? Isn't it all too convenient for there to be a glider? But then I'm also thinking: anything I'd do would end up being too convenient.

What's new between the original plan and how things have turned out so far, is the whole dimension thing. And I think that's exactly what I'm going to be using. Maybe I'll skip whole parts of the original plan altogether.... Who wants to see more Forests, anyways? Or head back into suburbs? Or walk along a river?

Maybe I better start focusing on heading into a city, an industrial area, or an airport, rather than more of the same. There's still time to think about it, I still need to get up the mountain, after all. One thing's for sure, however: What goes up, must come down. The question is just: how?

Future-me will likely have all the answers. For now, I'll just focus on the present.

Happy playing!

SANABI - hanal

Hello, everyone! This cold winter, SANABI: A Haunted Day will be joining G-STAR 2025, held at BEXCO in Busan.

  • Location: NEOWIZ Booth, BTC Hall 1, BEXCO (Busan)

  • Date: November 13 (Thu) – November 16 (Sun), 2025

At our booth, you can play spin-off DLC, SANABI: A Haunted Day. And after playing, you can get some SANABI goods such as a Can Badge and Photo Card!

We wish you all good health until we meet again!

#SANABI #G-STAR2025 #IndieGame

Hypnosis Card 2 Happy Life - 猫猫

Meow meow! Long-awaited shovelers, this is Kitty! (=ↀωↀ=) 😻

After a year of careful "milk stepping," the third installment of the 《Sexuality with Girlfriends》 series is finally here to meet everyone!

This time, we've arrived at a seaside town where even the sea breeze carries secrets. Four "yandere-style" girlfriends are ready to "occupy" your entire summer with their fiery ways~

Their moans, entanglements, and those blush-inducing secret touches—are you ready to sign this heart-fluttering contract and sink into their embrace? (≧▽≦) 💦❤️
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Story Background: When "One-Day Contract" Meets Unpredictable True Feelings…… and the Tide of Desire 😏🌊
#Discussions_QuoteBlock_Author
Welcome to the seaside town, experience this heart-fluttering encounter called "one day"!
In this serene seaside town, life should be as gentle and soothing as the waves: opening the wooden door of the corner flower shop in the morning, holding a cup of steaming coffee; leaping into the sparkling pool in the afternoon, fully enjoying the water play; strolling along the cobblestone paths at dusk, with seagull calls lingering in your ears.
However, everything changes with the intrusion of four distinct "contract girlfriends"…… Four seemingly casual "one-day contracts" quietly descend, pulling you into a sweet yet dangerous adult game. 😈🔥
Encountering the Four "Contract Girlfriends": The Town's Secret Invitation
It all starts with those unexpected encounters: the panic of taking shelter in an abandoned wooden cabin in the rain, a street-side chance meeting with a sketch maniac who never parts with their drawing board, the ambiguity of a coach "correcting" your posture by the pool…… These seemingly accidental moments quietly close the distance like a breeze, yet hide heartbeats and temptations.
Rika🌼—— Gentle Flower Shop Trap

The flower shop owner with light golden bound hair, emerald green eyes hiding voyeuristic desires. From an awkward "apology" invitation to soft whispers in a rainy night cabin, her body entwines like flower scent, unrelentingly, gradually revealing inner loneliness and longing in the embrace. 💋 (灬ºωº灬)♡
Natsumi🌹—— Thorny Rose Control

The big sis with deep red long hair, amber eyes full of possession. She captures every flicker of your hesitation with scrutinizing gaze, rose fragrance aggressively invading the senses, her body is the way she administers "punishment," and jealousy ignites dangerous flames between the sisters. 😘🔗
Lua🎨—— Yandere Brush Prisoner

The street artist with gray hair and blue eyes, always with a lazy expression. Starting from nude sketching, she weaves an obsessive cage with tracking texts, softly whispering in your ear: “1——2——~, you can't escape, oh.” 👅 (/ω\)
Nai🌾—— Vibrant Pool Temptation

The little coach with a radiant smile and cute tiger teeth, curves confidently overflowing after getting wet. From intimate touches during "swim pose correction" to sincere confessions by the hot spring, she is as fresh and sweet as summer waves: “Beyond the contract…… I want to be by your side forever.” 🏊‍♀️💦 😍


These seemingly casual promises gradually weave into an invisible net, where you will master your own fate—from a newcomer stranger to an eternal part of this seaside land.
😻Please sign this contract, and in this encounter starting from "one day," find your eternal answer……💕
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Explore more of Lovely Games' sweet world:
💜 Purple Temptation | 《Hot and Lovely: Purple》
Spoiled rich widow vs perfect neighbor wife, plus twintail maid awaits your commands~
https://store.steampowered.com/app/3783040/Hot_and_Lovely__Purple/?curator_clanid=37430609
❤️ Hot Sequel | 《A fascinating story 2》 Free demo now available!
Continuing the exciting storyline from the previous work, five unique beauties and tons of upgraded experiences await your exploration!
https://store.steampowered.com/app/3427110/_2/
One Night of Romance with my waifu - 猫猫

Meow meow! Long-awaited shovelers, this is Kitty! (=ↀωↀ=) 😻

After a year of careful "milk stepping," the third installment of the 《Sexuality with Girlfriends》 series is finally here to meet everyone!

This time, we've arrived at a seaside town where even the sea breeze carries secrets. Four "yandere-style" girlfriends are ready to "occupy" your entire summer with their fiery ways~

Their moans, entanglements, and those blush-inducing secret touches—are you ready to sign this heart-fluttering contract and sink into their embrace? (≧▽≦) 💦❤️
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Story Background: When "One-Day Contract" Meets Unpredictable True Feelings…… and the Tide of Desire 😏🌊
#Discussions_QuoteBlock_Author
Welcome to the seaside town, experience this heart-fluttering encounter called "one day"!
In this serene seaside town, life should be as gentle and soothing as the waves: opening the wooden door of the corner flower shop in the morning, holding a cup of steaming coffee; leaping into the sparkling pool in the afternoon, fully enjoying the water play; strolling along the cobblestone paths at dusk, with seagull calls lingering in your ears.
However, everything changes with the intrusion of four distinct "contract girlfriends"…… Four seemingly casual "one-day contracts" quietly descend, pulling you into a sweet yet dangerous adult game. 😈🔥
Encountering the Four "Contract Girlfriends": The Town's Secret Invitation
It all starts with those unexpected encounters: the panic of taking shelter in an abandoned wooden cabin in the rain, a street-side chance meeting with a sketch maniac who never parts with their drawing board, the ambiguity of a coach "correcting" your posture by the pool…… These seemingly accidental moments quietly close the distance like a breeze, yet hide heartbeats and temptations.
Rika🌼—— Gentle Flower Shop Trap

The flower shop owner with light golden bound hair, emerald green eyes hiding voyeuristic desires. From an awkward "apology" invitation to soft whispers in a rainy night cabin, her body entwines like flower scent, unrelentingly, gradually revealing inner loneliness and longing in the embrace. 💋 (灬ºωº灬)♡
Natsumi🌹—— Thorny Rose Control

The big sis with deep red long hair, amber eyes full of possession. She captures every flicker of your hesitation with scrutinizing gaze, rose fragrance aggressively invading the senses, her body is the way she administers "punishment," and jealousy ignites dangerous flames between the sisters. 😘🔗
Lua🎨—— Yandere Brush Prisoner

The street artist with gray hair and blue eyes, always with a lazy expression. Starting from nude sketching, she weaves an obsessive cage with tracking texts, softly whispering in your ear: “1——2——~, you can't escape, oh.” 👅 (/ω\)
Nai🌾—— Vibrant Pool Temptation

The little coach with a radiant smile and cute tiger teeth, curves confidently overflowing after getting wet. From intimate touches during "swim pose correction" to sincere confessions by the hot spring, she is as fresh and sweet as summer waves: “Beyond the contract…… I want to be by your side forever.” 🏊‍♀️💦 😍


These seemingly casual promises gradually weave into an invisible net, where you will master your own fate—from a newcomer stranger to an eternal part of this seaside land.
😻Please sign this contract, and in this encounter starting from "one day," find your eternal answer……💕
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Explore more of Lovely Games' sweet world:
💜 Purple Temptation | 《Hot and Lovely: Purple》
Spoiled rich widow vs perfect neighbor wife, plus twintail maid awaits your commands~
https://store.steampowered.com/app/3783040/Hot_and_Lovely__Purple/?curator_clanid=37430609
❤️ Hot Sequel | 《A fascinating story 2》 Free demo now available!
Continuing the exciting storyline from the previous work, five unique beauties and tons of upgraded experiences await your exploration!
https://store.steampowered.com/app/3427110/_2/
Cute Honey - 猫猫

Meow meow! Long-awaited shovelers, this is Kitty! (=ↀωↀ=) 😻

After a year of careful "milk stepping," the third installment of the 《Sexuality with Girlfriends》 series is finally here to meet everyone!

This time, we've arrived at a seaside town where even the sea breeze carries secrets. Four "yandere-style" girlfriends are ready to "occupy" your entire summer with their fiery ways~

Their moans, entanglements, and those blush-inducing secret touches—are you ready to sign this heart-fluttering contract and sink into their embrace? (≧▽≦) 💦❤️
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Story Background: When "One-Day Contract" Meets Unpredictable True Feelings…… and the Tide of Desire 😏🌊
#Discussions_QuoteBlock_Author
Welcome to the seaside town, experience this heart-fluttering encounter called "one day"!
In this serene seaside town, life should be as gentle and soothing as the waves: opening the wooden door of the corner flower shop in the morning, holding a cup of steaming coffee; leaping into the sparkling pool in the afternoon, fully enjoying the water play; strolling along the cobblestone paths at dusk, with seagull calls lingering in your ears.
However, everything changes with the intrusion of four distinct "contract girlfriends"…… Four seemingly casual "one-day contracts" quietly descend, pulling you into a sweet yet dangerous adult game. 😈🔥
Encountering the Four "Contract Girlfriends": The Town's Secret Invitation
It all starts with those unexpected encounters: the panic of taking shelter in an abandoned wooden cabin in the rain, a street-side chance meeting with a sketch maniac who never parts with their drawing board, the ambiguity of a coach "correcting" your posture by the pool…… These seemingly accidental moments quietly close the distance like a breeze, yet hide heartbeats and temptations.
Rika🌼—— Gentle Flower Shop Trap

The flower shop owner with light golden bound hair, emerald green eyes hiding voyeuristic desires. From an awkward "apology" invitation to soft whispers in a rainy night cabin, her body entwines like flower scent, unrelentingly, gradually revealing inner loneliness and longing in the embrace. 💋 (灬ºωº灬)♡
Natsumi🌹—— Thorny Rose Control

The big sis with deep red long hair, amber eyes full of possession. She captures every flicker of your hesitation with scrutinizing gaze, rose fragrance aggressively invading the senses, her body is the way she administers "punishment," and jealousy ignites dangerous flames between the sisters. 😘🔗
Lua🎨—— Yandere Brush Prisoner

The street artist with gray hair and blue eyes, always with a lazy expression. Starting from nude sketching, she weaves an obsessive cage with tracking texts, softly whispering in your ear: “1——2——~, you can't escape, oh.” 👅 (/ω\)
Nai🌾—— Vibrant Pool Temptation

The little coach with a radiant smile and cute tiger teeth, curves confidently overflowing after getting wet. From intimate touches during "swim pose correction" to sincere confessions by the hot spring, she is as fresh and sweet as summer waves: “Beyond the contract…… I want to be by your side forever.” 🏊‍♀️💦 😍


These seemingly casual promises gradually weave into an invisible net, where you will master your own fate—from a newcomer stranger to an eternal part of this seaside land.
😻Please sign this contract, and in this encounter starting from "one day," find your eternal answer……💕
https://store.steampowered.com/app/3783060/Sexuality_with_girlfriends_III/
https://store.steampowered.com/app/3783080/Days_with_girlfriends_III/


Explore more of Lovely Games' sweet world:
💜 Purple Temptation | 《Hot and Lovely: Purple》
Spoiled rich widow vs perfect neighbor wife, plus twintail maid awaits your commands~
https://store.steampowered.com/app/3783040/Hot_and_Lovely__Purple/?curator_clanid=37430609
❤️ Hot Sequel | 《A fascinating story 2》 Free demo now available!
Continuing the exciting storyline from the previous work, five unique beauties and tons of upgraded experiences await your exploration!
https://store.steampowered.com/app/3427110/_2/
Goddess of Fate: Anime RPG - caosengames
🕯️【Rate-Up】Four SSR Saint Goddesses Descend Soon!
• Lanis – Debuff-type Support
• Lare – AoE Burst DPS
• Lunia - DEF-Scaling Support Tank
• Wendy - Support Healer

⏳ Event Duration: October 27th – November 10th | 7:00 PM GMT


👑 Meet Lanis, the All-New SSR Saint!
The Reigning Holy Popess
– Her sacred light brings both salvation and judgment.


✦ Lanis Skin Preview – Celestial Indulgence ✦
"Even a Popess deserves a little indulgence. Care to share this heavenly moment together?" 🍷



🎁 【Gift Code】The Popess’s Blessing Pack: Lanis (~11.11)

📖 An Old Soul’s Indolence, A New Heart’s Duty 📖
Lanis, the youngest Holy Popess, is a prodigy who governs with perfect poise.
Her purity was shaped by a forbidden ritual performed by the first Saintess, Lare —
who foresaw the Sanctum’s decline and separated her ancient wisdom from her newborn heart —
leaving Lanis with the authority and duty to guard the world with a fresh spirit.

You’ll often see the small and drifting Lare teasing Lanis as she critiques street food with divine decree, or insists that bedtime stories must be sourced from the Sacred Text.

A mother who relies on her daughter, a daughter who nurtures her mother.
⚖️ Twin halves of one soul… Which calls to you? ✦


💬 Join the Conversation & Light Altar Community Event
Join our Discord community to participate in the special Light Altar event and claim free, generous rewards!
Chat about your favorite goddesses, share team compositions, or show off your Light Altar pulls with fellow Knights of the Light!
🔗Join our Discord: https://discord.gg/HZX3n3ck7D

Who will you summon first—Lanis, Lare, Lunia, or Wendy?


🎁 Get ready!
Gift Code: DIVINE
(enter it in-game to claim 500 Gems!)
More exclusive codes and community events with amazing rewards are coming soon…
⚔️ Chosen Commanders, prepare to rise! 🌟
Sacred World - Asruan
我知道问题在于装备的法球效果B上,如果你挂机出现报错,可以尝试2种办法。
1.更新游戏版本。
如果1无法解决这个问题,参考2。
2.卸下所有带有法球效果B词条的装备。

这种小概率的问题测起来真烦人。
Cave Explorers - 紫色蜗牛

  • Upgraded Boss Models: Enhanced the appearance and details of bosses for a greater visual impact.

  • New Cave Map Added: Explore a brand-new scene and take on unknown challenges.

  • Shield-walking in Caves: You can now move freely while blocking with your shield in caves, allowing for more flexible tactics.

  • Performance & Experience Optimizations: Fixed several issues to improve overall game smoothness.

JumpFall Playtest - jezuG

Add two programs

From Glory To Goo - MillionMonkey

Hey Everyone,

0.2.3 is now live! Thanks to everyone who helped to test it and offer suggestions while it was on the beta branch. As always, feel free to provide feedback and report any bugs you come across on Discord or the Steam forums.

0.2.3 (Content Update #8)

New Game Mode - Operations

Operations is a new game mode with some roguelike elements where you unlock a variety of upgrades of different rarities and play 3-5 wave games across 3 missions. There are currently two different kinds of operations, Colonization and Search and Destroy.

  • Colonization – Play 3 missions with the same colony. Each mission involves defending the colony against 3 waves.

  • Search and Destroy – Play 3 missions across different maps. These maps could be either horde defence or destroy all bases (Like in Elysium Mons)

This mode also includes some new perks and map mutators.

My aim with this mode is to provide a way for people to play shorter, higher intensity games. While also enabling some experimentation with playstyle and unit design like bosses.

Long term, the Survival and Campaign mode are my main priorities. But this mode offers a good opportunity for people to experience the game in a new way.

New Buildings
  • Raised Platform (Human) – A tile that can be built under structures which lifts them increasing their health and range. Connectors inside them will become untargetable

  • Skygarden (Human) – A Tier 3 habitat for your colony

Bosses and other new units
  • Added 3 Goo bosses, one for each commander. Currently these will spawn on Endless Extreme mode and at the end of operations

  • Added 3 new Goo units, one for each commander. These are available across all modes, for now on Survival they'll only spawn on the two higher difficulties.

  • Added the Sentinel to the human roster, an alternative to the Skyranger. An unarmed drone with a large vision range

  • Added the Lancer Team to the human roster, an alternative to the Mortar Team. A weapons team with a high damage and long range gun designed for taking down large units

Laboratory
  • Construction of the Laboratory is locked until research tier 3 is reached.

  • Each laboratory gives a benefit from a pool of perks as well as giving research points.

  • Can now be constructed by The Robots

Endless Extreme mode
  • Past wave 10 enemy damage, health and speed will gradually increase with each wave

  • Bosses will spawn from wave 10, gradually increasing in number

Battle of Illian verge
  • The RFI have gained some buildings and turrets

QoL
  • Walls can connect to each other in all directions. Making vertical and horizontal construction easier.

  • Research can now be queued

  • "Clone Building" now works for both moused over buildings and if nothing is under the mouse, any building you have selected

  • The number of “Free” buildings available is now displayed on the building respective button

  • You can now hide the unit counter

  • Garden and thruster modules will highlight their relevant adjacent spaceship modules

  • “Free” buildings will now be built immediately on placement

  • Added some more tooltips to the robots to help explain heat and modules

Other
  • New Volcanic biome tile-set

  • Increased explosive force on corpses and improved their directional movement

  • New enemy commander portraits

  • Added an indicator if module choice is an upgrade

  • Added names for each upgrade step of modules

  • Unit command markers improved

  • Units have kill counters

  • Added debug command "out###". Give a number from 1-100 to change the thickness of unit outlines. Out25 is the default

  • Stopped an indicator appearing if no effort is produced

  • The show suppressed area button will now not include partially suppressed tiles

  • The captain panel will now list all modifiers currently applied. Added a scrollbar to the captain stats panel

Balance

Humans

  • Increased negative population penalty -150% → -250%

  • Solar Panels provide +2 power when placed on Desert tiles

  • Buildings won't use population until they receive their first construction resource

  • Increased the population upkeep of some late game units

Robots

  • Turbo Module - Base heat reduced 1.5 -> 1.2

  • Industrial Module - Extra effort production from being boosted increased from 3/3 to 3/6

  • Storage Tiles - Gain an extra +2 effort storage per connected module

  • Mecha Tarantis - Attack Speed 0.2 -> 0.25

  • Mecha Tarantis - can no longer shoot air targets

  • Strike Barge - Drone attacks apply an armour debuff

  • Strike Barge - Drones are released faster, move faster and both drones and the Barge now have firing SFX.

Performance
  • Improved the performance of large robot colonies

  • Fixed a memory leak relating to landmines that was causing performance to degrade

  • Fixed Map Editor performance degrading over time

AI

Noise System

These changes are a bit experimental and may be changed if they are applying too much additional pressure on players.

  • Enemies that detect noise will now move towards the source of noise rather than aggro directly to your Landing Pad.

  • Increased the sensitivity of enemies to nearby noises

  • Increased the amount of noise created by battles

  • Fixed a bug causing explosions to trigger very far away enemies

Other

  • Improved the enemy's avoidance of lava

  • Player melee units will try to surround the enemies they're attacking

  • Fixed units jumping in their previous direction when leaving combat and chasing a target

  • Fixed some animation stuttering

Map Editor
  • Added wreckage pickups and tribe placement

Modding
  • Added "aiPathRadius" and "attackSounds" variables. aiPathRadius lets you change the pathfinding radius of the unit. This can be helpful for people creating unit sprites which are larger than normal. attackSounds lets you assign other attack sounds to units, for now only attack sounds already in the game can be used. See readme for more details

Bug Fixes
  • Removed a tiny delay between explosions occurring and the explosion appearing

  • Fixed voiceless units (Tribes) sometimes inheriting voices from other units

  • Fixed spreader connection lines staying on if demolished

  • Fixed a case where The Swarm captain's building assistant animation would stay on

  • Fixed tutorial difficulty adjustments not carrying over on load

  • Fixed Endless Extreme initially scaling horde size slowly

  • Desert whirlpools should now blend in better with other desert tiles

  • Fixed resource perks not increasing storage

  • Fixed the wrong combat stat improving for captains if more than 1 unlock is waiting

  • Fixed being able to drop units off the edge of the map

  • Fixed some rounding issues with modules if they are impacted by heat

  • Fixed Robot Outposts spawning on lava and into mountains

...