While Amazing Frog? QMMT (Quest for the Magical Mystery Toilet) is about to leave Early Access after 10 years, Amazing Frog? 2 — which we feel has so much more scope for the future — is, let’s face it, just getting started.
Hey everyone, it’s Hal again with an update on what I’ve been working on for the next release of Amazing Frog? 2.
Lately, my focus has been on finalising a more streamlined and stable version of the Swindonshire world. This involves implementing new technology and pipelines from QMMT to handle plant and grass placement and rendering, along with resolving some lingering issues — like fixing sunlight leaking into the rail tunnels.
As I’ve mentioned before, many of these systems will now be powered by Houdini, allowing us to place assets more intelligently and add new features faster. While building assets for AF2 takes longer due to our goal of higher graphical fidelity, these new tools — alongside the engine improvements Gaz is working on — should speed up content creation and variation in the long run.
This past week, I’ve been refining the terrain under the town. Some areas needed to be lowered to accommodate basement levels, while others had to align perfectly with roads and sidewalks. Although the process seems straightforward, moving everything into Houdini for better control has added some complexity. I sculpt the terrain in Unity, convert it into a mesh, and then use that mesh like a stamp to transfer the details back into Houdini’s heightfield. While more tedious, this workflow ensures the world remains adaptable and saves time in the long run, especially when making large-scale changes or adding new plant types.
I’ve also been refining the trees and the tools I’ve built to generate them. I’ve developed a tool in Houdini where I can ‘design’ a tree and have it generate multiple variations (so that they don’t all look exactly the same). The system also generates all necessary LOD (Level of Detail) and collision meshes for different viewing distances.
We now have four LOD stages for our trees:
- LOD 0: The closest LOD uses a shader that distorts the surface by scaling the vertex positions. This adds a “fluffy” appearance without relying on too much geometry, keeping rendering efficient.
- LOD 1–2: Simplified versions of the trunk and foliage, using non-transparent materials for better performance.
- LOD 3: An “imposter” — a flat quad that displays a baked image of the tree, drastically reducing the cost of rendering forests as distant trees are just billboards.
One of the perks of using Houdini for tree generation is the ability to add creative touches without spending extra time. For example, I baked vertex colour noise into the foliage meshes and projected it onto lower LODs. This allows the shaders to apply subtle colour variations to the leaves, ensuring consistency across different LOD levels. We’ve also implemented crossfading between LODs, reducing the visual “popping” that often occurs when transitioning between levels of detail.
Looking ahead to next week, I’ll be tackling one of the more exciting tasks. Now that Gaz has migrated the codebase from QMMT, we can better utilise physics zones and populate the world with more frogs and content. Expect AF2 to feature more frogs than ever before, each with distinct roles and purposes!