Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

EmaceArt

160
Posts
38
Topics
219
Followers
221
Following
A member registered Sep 10, 2018 · View creator page →

Creator of

Recent community posts

The river in my demo scene was a flat patch of colour. Now it is water

Free Fantasy Medieval Houses – [Godot,Unity,Blend] by EmaceArt

A free pack of medieval houses and props for Godot. Its second demo scene is a whole valley: a village on both banks, footbridges, walkways, a palisade of poles driven into the current. A river runs through the middle of it, and until yesterday it did not run at all.

What it looked like

The river surface sampled the same palette tile as the rest of the pack. What came out was a strip of flat colour lying between the banks. It reflected nothing, showed nothing of the bed, and never moved. The rocks standing out of the current looked like they were sitting on a carpet.

The river before the fix: a strip of flat colour between the banks.

Where that came from

The terrain mesh has three surfaces and the first one is the river surface. It has its own material, so technically nothing was wrong — the material simply held the palette texture instead of water.

I already had a water shader, released separately, so it went onto that surface: colour driven by how far the bed sits below the surface, banding instead of a smooth gradient, foam along the waterline, refraction of the bed and light patterns crawling over it.

Attaching it without touching the scene

The scene file in this pack is eight hundred kilobytes and holds a few thousand nodes. On the previous lighting change I repacked it and it grew four times over, because Godot flattened the prefab instances along the way.

The same shot once the water went in.

This time I did not touch the scene at all. The surface material lives in the terrain mesh file, not in the scene, so swapping it there was enough — the scene points at the same mesh as before and has no idea anything changed. The scene file did not grow by a single byte.

The first attempt came out milky

I set green-teal colours, rendered a shot from above — good. I rendered a shot at eye level from the bank — the river was white. Not pale green. Milk white.

Three things added up to that and none of them was wrong on its own. The grazing-angle brightening went more than halfway to white, and with the camera just above the water that applies across the whole visible surface. The shoreline glow colour was almost white, and it also feeds the colour of the patterns on the bed. The foam band was wider than the shallows, so it covered half the river.

The fix was narrowing the grazing-angle brightening, taking the shoreline glow down to a pale green and tightening the foam band. Three sliders, one control render.

The river after the fix, camera at the bank.

The whole valley with the river running through it.

The river in motion.

What I left switched off

The shader can move vertices and turn the surface into a wave. That is off here, because the river surface shares its edges with the bank surfaces in the same mesh. Moving the vertices would tear the water away from the bank and leave a gap behind it.

A cloud fix went into the sky while I was at it. The clouds were built from noise on a square lattice, and stretching them produced straight horizontal edges — rectangular patches over the valley. They now sit on a triangular lattice, so no edge lines up with an axis.

The pack is free and it is on the Godot asset store.

Free Fantasy Medieval Houses – [Godot,Unity,Blend] by EmaceArt

Yes :)

Stylized water for Godot 4

Cool Water - water shader for Godot 4 by EmaceArt

I wanted water that looks stylized and drops into a scene as a single plane - no cutting the pool into a shallow part and a deep part, no mask painted to say where it gets shallow. What came out is a shader for Godot 4, with a demo scene included: a test terrain with a basin for a lake and two pools. Open the project, hit F5, and you are standing over water.

I wrote the code with Claude: the model typed the shader, I said what should show up on screen.

Water in motion: shoreline foam and bands of colour over deeper areas

Lake shore: a band of foam along the waterline, rocks with a foam collar of their own

Everything from one number

The shader measures the vertical distance between the surface and the bottom, and derives the rest from it. Shallow water is turquoise and clear, deeper water shifts into dark blue, and between them you get distinct colour steps - one to eight bands, as many as you set. A rock or a pier post breaking the surface gets a foam collar on its own, because the water right next to it is shallow.

Pool with pillars: every pillar wearing a collar of foam

The caustics are projected onto the bottom in world space. The patches of light sit on the terrain and crawl over submerged rocks instead of sliding along the surface. You can switch on chromatic aberration at their edges - the rainbow fringe you get from real refraction.

Glow along the shore and caustic patches lying on the bottom

Foam comes in five patterns: one texture and four procedural ones, from soft clouds to fine cells. The specular highlight is toon-shaded, with separate control over size, softness and strength. A separate slider breaks it into glittering specks on the surface.

A week lost to concentric rings

My worst week came from the round pool. The water drew motionless concentric rings on it - regular circles that reacted neither to time nor to the waves. We checked the noise, the gradients, the curves, rewrote half the shader.

The bottom was the culprit. On a sparse mesh the wall of a round pool descends in steps, and since colour comes from depth, every step became its own band of colour. Subdividing the bottom mesh fixed it in a second.

If you see something similar on your own scene, look at the bottom mesh first, not at the shader.

Three materials

Tropical turquoise, pool blue and green lagoon. Each body of water in the demo uses a different one, so you can compare them in a single shot.

Three bodies of water in one shot: the lake, the round pool and the rectangular pool with pillars

Where it comes from

The same water runs in my Unity Asset Store package, where it is paid. Here the shader is written from scratch in GDSL, with the material values carried over one to one, and I am releasing it for free. One note for anyone porting: colours from Unity materials are in linear space, and without converting them to sRGB the whole thing comes out too dark.

Requirements

Godot 4.7 or newer, Forward+ renderer. The shader reconstructs the position of the bottom from the depth buffer, so it will not start on Compatibility.

Cool Water - water shader for Godot 4 by EmaceArt

If you run it and something looks off, say so - I will fix it.

I've read the Getting indexed docs and the Hosting a sale docs before posting. This isnt a search indexing question - my projects are indexed and come up when I search their full titles. The problem is the sale itself. It never appears on itch.io/sales or itch.io/bundles.

Straight from the sale edit page: published, runs 17 July to 21 September 2026 at 50% off, custom bundle price $12.00, earnings goal $1,500.00, coupon field empty, no sale conditions. The discount badges show correctly on my project pages and on my profile, so the sale is clearly active. As far as the docs go that's everything a sale needs to be listed, which is why i expected to find it there.

I used to run two overlapping sales that shared some packs. Disabled all of them except this one, waited a day, nothing changed.

While looking into it I found a thread from 2017 where leafo answered the same question and mentioned "no pagination on that page", with some bundles "getting cropped out". That still matches what I see now: the bundles page lists 63 entries, has no pagination, and page paramaters do nothing.

So, two questions. Is listing on those pages automatic for every published sale, or is the list capped? And if it is capped, what decides which sales make it in?

The sale in question: https://itch.io/s/192609/massive-worlds-bundle-30-packs-8000-assets

Thanks,

Maciej (EmaceArt)

Awesome work on this pack! As a fellow asset creator, I really appreciate the clean, vibrant stylized look. Speaking from experience, these kind of friendly, cozy assets usually perform the best—it’s often better not to dive too deep into overly niche territory or force overly complex art styles on the market ;)

Having a free starter kit for the community alongside the full release is a great move. Wishing you tons of downloads and great sales on itch.io!

I took the blame for the GLB file confusion—I announced the update before everything was fully polished and ready to go. I saw it as something that needed fixing, so I decided to make amends with a proper project cleanup. 😄

I’ve been planning to overhaul my entire 3D workflow pipeline for a while now—not just in Blender, but in Unity, Godot and when prepping assets for the Asset Store. I’m already making progress, and I’ve gotta admit that custom tools I’ve been developing over the past six months have been a lifesaver. They handle the organizational heavy lifting for me, because honestly, nothing is worse than having to constantly micro-manage project cleanliness manually.

A messy project drains an artist’s time and energy, but having to manually maintain order all the time can just as easily destroy your creative flow. In the worst-case scenario, you lose days of work—not because you’re creating anything, but because you’re trying to navigate or clean up a chaotic project. It quickly turns into a vicious cycle of frustration and burnout.

So I decided to save myself from that loop, and in the process, build something that benefits users of my assets. I want them to have maximum creative freedom with minimum friction fighting the files. That’s how a developer's workday should be: energy going directly into making a great game, not digging through messy asset hierarchies.

You can sometimes tell in released games when production frustration started building up. You get a subtle feeling that halfway through, the artists simply ran out of steam to polish the details. I don't want my asset packs adding to that kind of friction for anyone.

After your comment, I decided to turn this into a mini-sprint for the upcoming week. I'll be applying this cleanup across my free packages and flagship products on itch.io as well.

If I slipped up with the GLB files, at least I can turn it into something positive. 😄

The GLBs were actually uploaded - they just got marked as hidden in the panel during publishing, which is why they never showed up for you. While sorting that out I found a second problem: the textures weren't embedded in them, so simply switching them visible wouldn't have helped much.

I've been on it since morning. I'm attaching the correct textures and re-exporting everything from source. The update will include GLBs with textures embedded, glTF versions with a separate texture folder, a fully cleaned-up and reorganized .blend file (you wouldn't recognize it), and a fresh FBX set in both LOD and non-LOD versions. It'll be up by the end of the day.

Beyond the raw files, I'm also planning a full Godot project port of this pack - proper scenes and materials, not just the meshes. It's a large pack, so that side will take me a few days.

Thanks for the report.

Thanks for catching that and for taking the initiative to look into it — much appreciated. For the sake of consistency I'll hook up the correct texture on my end and re-export the project, so everything lines up properly. Thanks again for supporting the pack and for keeping an eye on my work.

Good to see the update land. Hope the review goes through quickly.

(1 edit)

Good to see an update from @Awbmecreations — GLB opens the pack up for Godot, not just Unity.

Snale — you were right, and I'm sorry it took this long. The .blend was pointing at PSD files that never made it into the download, so nothing had textures.

It's fixed now. Textures are packed inside the .blend, so it opens with colors straight away, and the GLBs carry their textures as well. There was an earlier update that still had issues — this one is the final pass.

@kayborowski — thanks for the ping.

No problem. And since the topic came up — the thing I just put up is exactly that case: a stylized grass shader, ported from my Unity pack over to Godot 4. The Godot rewrite was done with Claude: translating the HLSL logic into Godot's shading language and tracking down where the two engines disagree.

The whole Godot project is free, so anyone can open it up and see what's inside: https://emaceart.itch.io/emaceart-stylized-grass-grass-shader-for-godot-4

This is my first release for Godot, so I'd really like feedback on it — what breaks on your setup, what's missing, what you'd do differently. I want to keep improving the shader and reviews from actual users are the fastest way to get there.

Art side stays as I said — models, textures and environments are mine.

— Maciej / EmacEArt

(1 edit)

Godot: Porting a FREE grass shader from Unity to Godot 4 

I rewrote the grass shader from my Roadside Tales pack from HLSL to GDSL, because the pack is getting a Godot version and the vegetation was supposed to behave the same as in Unity. The first version of the port compiled without errors, the grass stood on the terrain, the wind moved it. And it looked dead.

Project Godot DOWNLOD For Free
https://emaceart.itch.io/emaceart-stylized-grass-grass-shader-for-godot-4

Three grass fields in the demo scene. From the left: dry, green, dead.

Symptoms

Three at once.

The clumps swayed like rigid blocks - every blade in a clump leaned the same way, in the same rhythm, as if someone were tilting a flowerpot.

The field was one flat color across its whole surface.

Anything standing in shadow dropped almost to black.

Three symptoms, so I went looking for three separate bugs.

The cause: four simplifications

Rewriting the shader from HLSL to GDSL, I simplified four places.

Wind phase. The original computes the phase offset per vertex, from its position inside the clump. I computed it from the position of the whole instance. A one-line difference, and the whole clump moves like a single piece of plastic.

Tinting. The original has two independent noise layers, small and large, each with its own color and its own mode. I replaced that with a single smoothstep. Hence the single-color field.

Shadow lift. In the original the value is added to the lighting result. I blended it in instead, because blending seemed more correct. Blending gives gray instead of brightened green.

The normal. Grass cards have normals pointing sideways, so with the sun coming from the side the meadow turns black. The original blends the normal with world-up, half and half. I cut that out because it looked like an eyeballed hack.

Each of these four places looked like a decoration the shader could do without, just cheaper. It looks like a list of four mistakes, but it was one mistake made four times: I decided that a thing I didn't understand was a decoration.

After the fix: each blade sways on its own phase instead of the whole clump moving as one block. Two of the five wind presets from the demo scene.

Traps on the Godot side

The four things above are my simplifications. Engine differences are a separate pile, and you won't find them in the Unity code.

Normal flipping. With culling disabled, Godot flips the back-face normal on its own. Unity does it manually in the shader. Ported one to one, the flip happens twice and the underside of the foliage goes black.

Vertex colors. In the grass mesh they are not colors - they carry helper data for the shader. The importer pulls them in as albedo and the grass turns almost black. Third time in one session I got black grass, each time for a different reason.

Color space. Material colors carried over from Unity are linear, and uniforms marked as color in Godot expect sRGB. Without the conversion the whole field is a full step too dark. This one is the easiest to miss, because the result is not wrong, just different, and you assume it is the scene lighting.

Headless mode. It drops MultiMesh buffers and does not compile shaders. A script then saves a file that looks correct and is empty.

A separate project instead of patching inside the pack

Fixing the shader inside the pack means reloading a big scene after every change, just to see whether a blade bends slightly differently.

So I made a separate project for this one thing. Three grass fields side by side, F6 and you see it. Time can be paused to look at a single frame of wind instead of guessing from motion.

A single clump. Silhouette cutout, color variation between blades, self-shadowing.

A second scene came in that I had not planned at first: a row of five clumps, each with a different wind setting, labeled from calm weather to a gale. It turned out to be the fastest way to tune parameters - five answers at once, instead of turning a slider and trying to remember how it was a moment ago.

Three variants

The scene has green, dry and dead, the same ones as in the pack. They differ in color, silhouette cutout threshold and wind strength.

The border of the green and dead fields at grass level. The difference is the color, not the blade shape.

The dry variant had an empty base texture in Unity. With no texture there is nothing to cut out and you get solid rectangles instead of blades, so in the port I plugged in the same texture as in the green one. The colors alone make the difference.

What I have not checked

I have only seen the material panel as a screenshot generated from the shader's uniform list, not in an open editor window. The groups should match the headers from the Unity version, because that is how I laid them out, but if the mode subgroups fold out differently - that is still to fix.

Parameters of the green material, taken from the shader's uniform list.

Where this shader is used

The same file draws the grass in Roadside Tales: Backroad Bridges, where it is scattered over the terrain and avoids the roads. The demo project and the pack share one copy of the shader, so changes go both ways.

Grass in the demo scene of the Roadside Tales: Backroad Bridges pack.

AI assistance

The HLSL-to-GDSL rewrite, hunting down engine differences and the documentation were done with Claude's support. The decisions about how the grass should look and what goes into the pack are mine.

- EmacEArt

Hi! Fair question. This one is tagged as AI-generated because AI was involved in producing it — hence the label.

Some background: the original shader was written for my Unity Asset Store pack with AI assistance, and later I used AI again to rewrite it for Godot. So the tag covers the whole history of this one, not just the port.

Where I'd draw the line: shader code and tooling are one thing, actual art assets are another. My models, environments and textures are hand-made and I have no plans to change that. If AI is involved in anything I release, it gets tagged, every time.

— Maciej / EmacEArt

(1 edit)

Download Godot Asset: https://emaceart.itch.io/roadside-tales-iowa-covered-bridges

The Godot build of Backroad Bridges had been sitting at ninety-something percent for a while. Meshes, prefabs, LODs and the demo scene all came across from the Unity original. The terrain did not, and in a landscape pack that is the piece everything else stands on.

The symptom 

Terrain before the fix

One colour across 750 metres. No roads, no mud, no sand on the banks. The heightmap survived the conversion intact and the silhouette was right, but the surface read like an untextured blockout.

The cause 


Unity stores terrain painting in two RGBA textures held inside the terrain asset, one layer per channel. Both of them came out of the conversion as empty files — 236 bytes each, no pixels in them. The terrain shader still asked for those textures. Godot substituted white where they should have been, and white means every layer at full strength. Seven ground textures averaged into each other. That average is the colour in the shot above. It also explained a second thing I had been blaming on the wrong cause. The ground looked stretched, so I assumed the tiling had been lost in conversion. Tiling was fine the whole time. Averaging seven textures flattens the contrast, and flat contrast reads as smeared.

Recovering the masks

The painting itself was never lost — it was still sitting in the Unity terrain asset. I pulled both alphamaps out and wrote them back into the Godot project as PNGs

The seven terrain layers recovered from the Unity alphamaps

Seven layers. The entire road network lives in the alpha channel of the first texture: Mud_Path, 35.6% of the terrain surface. Rock_Slope runs in thin ribbons exactly along the banks. Leaf_Forest is empty, a layer I set up early and never used. Before trusting the vertical orientation I checked it against the heightmap rather than by eye. The correlation between the Rock_Slope mask and actual terrain slope came out at 0.71 the way I imported it, and 0.03 flipped. Getting that wrong costs an afternoon and you usually only notice three scenes later.

The terrain shader

The shader the converter generated had two faults worth replacing it over. It sampled the albedo texture when building the normal map, so ground lighting was reading colour instead of surface detail. And it divided by the raw sum of layer weights, which is exactly why an empty splatmap could quietly wash everything together instead of failing in a way you would notice. The replacement normalises the weights before mixing and reads normals from the normal maps. Tiling is set per layer at 50 repeats across the terrain — the 750 m terrain divided by the 15 m tile size the Unity layers used.

Terrain after the fix, same camera


Ground level: painted track, pebble bank, meadow

The grass pass 

Unity terrain details do not survive the conversion either, so grass in the Godot build is re-scattered from the terrain mesh: height, slope, and a patch noise for meadow shapes. Without the splatmap there was no way for it to know that a road was a road, so it seeded straight across the tracks and up the pebble banks.

Grass before: seeded across roads and banks

The scatter now samples the same two masks the terrain material uses, through the terrain's own UVs, and weighs every layer by how welcoming it is to grass. Grass and flowers 1.0, leaf litter 0.6, sand 0.25, mud and rock and pebbles 0.

Grass after: roads, ruts and banks left bare


The field went from 72 385 clumps to 35 313. Rather than judge that by eye, I exported every clump position and looked up which layer each one actually stands on


Between the cutoff and full strength the density falls away gradually, so verges thin out instead of ending on a cut line

Ground level before

Ground level after

Where the pack stands 

The Godot version now carries the terrain the Unity original always had: the same painted backroads, the same mud pools, the same pebble banks, with grass that stays off them. The layer weights are exposed, so anyone rebuilding the field can decide how much grass belongs on sand or leaf litter and bake it again. Still open: the pebble banks read brighter than I want them under strong light. That is a texture and lighting call, and it is next.


EmaceArt

(2 edits)

Thanks. Anytime — good luck with it! Nice logo!  🙌

Really clean look and instantly readable board — grabbed me right away. Watching the map flip color as you push out is super satisfying. Nice one.

Really nice mood in here — the cobwebbed dungeon, the barred door and that big padlock give it a proper creepy, claustrophobic feel, and the top-hat character has a lot of charm even as a placeholder.
The key-hunt + backtrack on limited life, with the timer ticking, is a strong tension hook. Simple to grasp, hard to master — exactly what a trap platformer wants.
One small thing from a level-art angle: since the whole game hinges on precise jumps and reading hazards, it might help to give the traps (spikes especially) a touch more contrast against the dark background — even a subtle warm highlight would make them pop without breaking that gloomy palette. It makes deaths feel fair instead of surprising, which keeps players coming back.

Hi everyone,

FREE PHILIPP | Stylized modular low poly character by EmaceArt

PHILIPP is a free, stylized, modular low poly male character for Unity — rigged, animated and drag & drop ready. He's built in a half-polygonal style, so he doesn't blend into the usual low poly crowd.

With the latest update he moved to a Humanoid rig, which means he now works with Mixamo and other Humanoid animation packs out of the box.

In the pack

  • 12 prefabs
  • Modular clothing
  • 10 animations
  • Humanoid rig (Mixamo-compatible)
  • PC and mobile ready

Free to grab here: [link]

Feedback welcome — happy to hear what you'd build with him.

— Maciej / EmacEArt

 If anything else comes up, just let me know.

aaach... Ishar... mhmmmm

(1 edit)

The bundle just got bigger — and this time it's characters.

CreatorBundle

The bundle just got bigger — and this time it's characters.

Good stuff, everyone. We've added brand-new paid character packs to the bundle, and honestly this is the part a lot of you have been waiting for. Ready-to-use, modular low poly characters are one of the hardest things to find on the 3D asset market — most of what's out there is either environments or overly generic humanoids. These fill exactly that gap.

New paid characters in the bundle

Free character — grab it and test the workflow

Fresh FREE releases

Now shipping as complete Godot projects — not loose files, but full ready-to-open projects These aren't just exported meshes dropped into a folder. Each one opens as a proper Godot project: scenes set up, materials wired, ready to run the moment you hit play.

Everything stays handcrafted, stylized low poly — same aesthetic across the whole set. Grab the free ones, dig into the bundle, and let me know what you build. Cheers!

I fixed the issue. Thank you for reporting it!

I fixed the issue. Thank you for reporting it!

Solid set of vehicles 🙌 And nice touch making it CC0 — that licensing helps a lot of small devs out.

Funny you'd call this your worst pack — don't let anyone be fooled, the mood and readability here are spot on 🙌

Jumping in as one of the creators too 👋 RG nailed it — there's a bit of everything here. My slice is the handcrafted low-poly environments, and seeing them sit next to all the vehicles, characters and tools makes the whole thing feel like a full world-building kit. Excited for people to dig in 🙌

Clean, characterful work 🙌

Really clean modular city work — the GTA-style comparisons above are spot on. Great pack 🙌

Third creator here 👋 RG's right — the amount of content we crammed in is a bit ridiculous. My part is the handcrafted low-poly environment stuff, and seeing it sit next to everyone else's work makes the whole thing feel like a proper world-building kit. I'm having a blast with it myself 🙌

Cheers, glad you like it! 🙌 Godot + Unity in one drop was the whole plan.
(1 edit)

Hey everyone,

I just added a new free pack to my itch page — it slots right into the Roadside Tales series as a modular bridge set. >span class="_animating_yu34g_10" data-newtext-seq="158">Unity Asset Store, and now it's here on itch, free.

👉 Roadside Tales Free – Modular Bridge [Godot, Unity, Blend]


A ready-to-use collection of handcrafted low poly bridges, designed to fit seamlessly into stylized open-world, RPG, and adventure environments. Each mesh ships with optimized colliders — drop them in and play.

Godot users get a full, ready-to-open Godot project — scenes wired up, materials and colliders already set, everything sitting where it should. The pack also ships in Unity and Blend formats.

What's included (21 prefabs, 5 types):

  • Bridge Type 1 — 5 variants (520–1200 tris)
  • Bridge Type 2 — 5 variants (600–1500 tris)
  • Bridge Type 3 — 5 variants (520–1200 tris)
  • Bridge Type 4 — 5 variants (170–250 tris)
  • Bridge Type 5 — 1 variant (1200 tris)

All prefabs include LOD0 meshes and optimized mesh colliders, plus a demo scene with everything arranged for preview.

Technical details:

  • 21 prefabs total
  • Optimized colliders on all assets
  • Demo scene included
  • Godot: full project, ready to open and run
  • Compatible with Unity's Built-in Render Pipeline

Grab it, use it in your projects, and if it works for you I'd love to see what you build. Cheers!

This asset completely changes the rules of the game. !!!

Hi everyone,

I’ve started bringing my asset packs from Unity to Godot. The first projects are already finished and available on itch.io.

For now, I’m only releasing the packs that I feel have reached a solid enough quality after conversion. I’m still improving the workflow, so feedback from Godot users is very welcome.


Free packs already available for Godot:

Paid pack available for Godot:

The Statues pack now includes a ready-to-use Godot project alongside the Unity and Blender versions.

I’ll be adding more packs gradually as they become ready. If you find anything during testing that should be improved, let me know.

Thanks! 😄 I’m really glad you like them — and yes, more Godot updates are coming!


I really like this approach. Optimizing assets from the start instead of treating performance as an afterthought is something more asset creators should think about.

Shared textures, low-poly geometry and reasonable material setups can make a huge difference — not only for developers on low-end PCs, but also for mobile games and larger scenes where every bit of performance matters.

You definitely don’t need a monster PC to start making games. Good optimization can take you surprisingly far. 🙂

Mogę też zrobić wersję krótszą, bardziej koleżeńską i brzmiącą jak komentarz jednego asset creatora do drugiego.

Love It!!!! 1981

It’s already included in our current bundle, which is live right now! 🙂

Beautiful 2-bit graphics! I grew up with the Atari, and this game reminds me of Spiky Harold.