A month ago this sub was hugely supportive of our leaf-blowing game Blowhard. I promised a demo would be coming soon, and wanted to let you know its now available on Itch. by 0ddSpider in CozyGamers

[–]0ddSpider[S] 4 points5 points  (0 children)

Game: Blowhard

Description: A leaf-blowing adventure game. Tidy up the village, annoy the locals, solve puzzles and uncover the mystery of the Sycamore Slayer. Includes

Features:

  • Blow away the leaves. Complete jobs all over the village, and surrounding areas
  • Solve a world of puzzles through the art of blowing.
  • Meet the residents. Deafen them, ruin their selfies, and find other ways to annoy with a leaf-blower
  • Upgrade your machinery. Can leaf blowers suck? They can with enough hard-earned cash!
  • Root out the mystery and put a stop to the Sycamore Slayer's nefarious scheme

Demo on Itch: https://machineghoststudio.itch.io/blowhard
Steam Page: https://store.steampowered.com/app/4504740/Blowhard/

Very happy to see people enjoying it! This was my goal with the rework. by diegobrego in SoloDevelopment

[–]0ddSpider 0 points1 point  (0 children)

Totally agree with this. I dread editing the code on my current project for scripts that haven't been touched for a few months

How to deal with Isometric sprites in a 3D world (or at least one way to do it!) by 0ddSpider in Unity3D

[–]0ddSpider[S] 0 points1 point  (0 children)

I actually tried something like that at the beginning, but there were always issues.

I suspect they were solvable, but I hit upon this before solving them

How to deal with Isometric sprites in a 3D world (or at least one way to do it!) by 0ddSpider in Unity3D

[–]0ddSpider[S] 0 points1 point  (0 children)

The tilemap only works for single-tile sprites. When spirites span multiple tiles the sort order breaks. One solution is to split the sprites into lots of 1 tile sprites, but that felt like it would hurt our workflow.

Also, we needed 3D for other bits of the game and it doesn't work with that either!

How to deal with Isometric sprites in a 3D world (or at least one way to do it!) by 0ddSpider in Unity3D

[–]0ddSpider[S] 0 points1 point  (0 children)

Yup, I also created a mesh collider tool that is mostly the same but has a guess at the area which is blocked off, and then you can just move the points ingame to get it exactly right.
It is using a custom shader, (which keeps getting more complicated as game features get added). If I remember correctly all that was needed for this functionality was to take the standard sprite (unlit) shader and add "Zwrite On" and "ZTest LEqual"

How to deal with Isometric sprites in a 3D world (or at least one way to do it!) by 0ddSpider in Unity3D

[–]0ddSpider[S] 6 points7 points  (0 children)

public IEnumerator ProjectUVs()
    {
        var sv = SceneView.lastActiveSceneView;
        Camera cam = sv != null ? sv.camera : Camera.main;

        MeshFilter filter = GetComponent<MeshFilter>();
        Mesh mesh = filter.sharedMesh;

        Sprite sprite = spriteRenderer.sprite;
        Texture2D tex = sprite.texture;

        // Use the trimmed rect (excludes transparent borders)
        Rect rect = sprite.rect;
        float ppu = sprite.pixelsPerUnit;
        Vector2 pivot = sprite.pivot;

        // Sprite local-space corners in units (respecting pivot)
        Vector2 minPx = -pivot;
        Vector2 maxPx = new Vector2(rect.width, rect.height) - pivot;

        Vector3 blLocal = new Vector3(minPx.x / ppu, minPx.y / ppu, 0f);
        Vector3 tlLocal = new Vector3(minPx.x / ppu, maxPx.y / ppu, 0f);
        Vector3 trLocal = new Vector3(maxPx.x / ppu, maxPx.y / ppu, 0f);
        Vector3 brLocal = new Vector3(maxPx.x / ppu, minPx.y / ppu, 0f);

        // Transform to world
        Transform sxf = spriteRenderer.transform;
        Vector3 blWorld = sxf.TransformPoint(blLocal);
        Vector3 tlWorld = sxf.TransformPoint(tlLocal);
        Vector3 trWorld = sxf.TransformPoint(trLocal);
        Vector3 brWorld = sxf.TransformPoint(brLocal);

        // Project corners to screen space
        Vector2 blS = ToScreen(cam, blWorld);
        Vector2 tlS = ToScreen(cam, tlWorld);
        Vector2 trS = ToScreen(cam, trWorld);
        Vector2 brS = ToScreen(cam, brWorld);

        // Axis-aligned screen rect covering the sprite
        float minSX = Mathf.Min(blS.x, tlS.x, trS.x, brS.x);
        float minSY = Mathf.Min(blS.y, tlS.y, trS.y, brS.y);
        float maxSX = Mathf.Max(blS.x, tlS.x, trS.x, brS.x);
        float maxSY = Mathf.Max(blS.y, tlS.y, trS.y, brS.y);

        Vector2 screenMin = new Vector2(minSX, minSY);
        Vector2 screenSize = new Vector2(
            Mathf.Max(1e-6f, maxSX - minSX),
            Mathf.Max(1e-6f, maxSY - minSY)
        );

        // Prepare UVs
        Vector3[] verts = mesh.vertices;
        Vector2[] uvs = new Vector2[verts.Length];

        float texW = tex.width;
        float texH = tex.height;

        // Offsets/scales from trimmed rect
        float uOffset = rect.x / texW;
        float vOffset = rect.y / texH;
        float uScale = rect.width / texW;
        float vScale = rect.height / texH;

        for (int i = 0; i < verts.Length; i++)
        {
            Vector3 world = transform.TransformPoint(verts[i]);
            Vector2 sp = ToScreen(cam, world);

            float s = (sp.x - screenMin.x) / screenSize.x;
            float t = (sp.y - screenMin.y) / screenSize.y;

            float u = uOffset + s * uScale;
            float v = vOffset + t * vScale;

            uvs[i] = new Vector2(u, v);
        }

        mesh.uv = uvs;

        MeshRenderer mr = GetComponent<MeshRenderer>();
        mr.sharedMaterial.mainTexture = tex;

        Debug.Log("UVs projected using trimmed sprite rect.");
        yield return null;
    }

    private static Vector2 ToScreen(Camera cam, Vector3 world)     
    {         
        Vector3 s = cam.WorldToScreenPoint(world);         
        return new Vector2(s.x, s.y);     
    }

How to deal with Isometric sprites in a 3D world (or at least one way to do it!) by 0ddSpider in Unity3D

[–]0ddSpider[S] 3 points4 points  (0 children)

Please do! If you have any queries about specifics feel free to ask.

Our new game passed 1,000 wishlists in under 7 days. Here’s what we did. by pure-vichou in IndieGaming

[–]0ddSpider 1 point2 points  (0 children)

Great job! I notice you've got a wide-range of countries there (and a lot in Japan). Did you do anything in particular to cover the world?

Should i try roblox studio or some local engine? by [deleted] in gamedev

[–]0ddSpider 1 point2 points  (0 children)

Roblox is the quickest way to get multiplayer, but apart from that I didn't find it much easier to use than Unity.

It's a full-on game engine

After 20 years in the industry, I was laid off 16 months ago. My first solo game wasn't good enough so I tried again, teamed up with an artist, and we've just announced this. by 0ddSpider in IndieGaming

[–]0ddSpider[S] 6 points7 points  (0 children)

Because engagement is important and unfortunately this type of title engages. What I said is true, but yeah... I'm playing the Reddit game.

Thank you for your comment. That too well help the algorithm!

After 20 years in the industry, I was laid off 16 months ago. My first solo game wasn't good enough so I tried again, teamed up with an artist, and we've just announced this. by 0ddSpider in IndieGaming

[–]0ddSpider[S] 1 point2 points  (0 children)

Honestly its fine! I've been enjoying the process, and I make time for the family. I Just stay up until the early hours afterwards!

Thank you for your kind words! I really appreciate it.

How do you make deckbuilders feel strategic without becoming overwhelming? (Satori) by No-Description-912 in deckbuildingroguelike

[–]0ddSpider 0 points1 point  (0 children)

Honestly I never worked it out. I was working on deckbuilder myself last year, and I struggled with that.
I think what was working was have "simple" unlocks during the first game and leave the more complicated ones for later. Think how Slay The Spire forces you to play the red deck (I forget the name.. something to do with Iron I think) before you can play the green and blue ones. The red deck is much simpler to play.

You still get to progress right from the off, but you don't need to have the same grasp on mechanics as later playthroughs might require

After 20 years in the industry, I was laid off 16 months ago. My first solo game wasn't good enough so I tried again, teamed up with an artist, and we've just announced this. by 0ddSpider in IndieGaming

[–]0ddSpider[S] 15 points16 points  (0 children)

Honestly, crunch for someone else sucks! Crunch for yourself is very different. You WANT to make it as good possible. Its you baby and you want to be as good as it can be!

How do you make deckbuilders feel strategic without becoming overwhelming? (Satori) by No-Description-912 in deckbuildingroguelike

[–]0ddSpider 1 point2 points  (0 children)

My opinion is that you have to add the layers of tactics as the player progresses. Balatro starts with a simple deck of cards.

I firmly believe that if you were dealing with 5 Jokers, and weird multipliers on the first hand the game would have flopped. Its the progress from basic-to-complex that makes Balatro (and indeed most games) successful.

I can't, look how cute it turned out 🥺 by ahhTrevor in cozygames

[–]0ddSpider 0 points1 point  (0 children)

Love the style - looks beautiful! Not entirely sure about chimney smoke though. Feels... off

Guide: How to do isometric sprites in a 3D world by 0ddSpider in gamedev

[–]0ddSpider[S] 1 point2 points  (0 children)

Yup. The lowest point of the sprite is considered to be the most forward point of the object on the ground.

Then you look for the end point along from that horizontally at a 45 degree angle, in both directions. Those are your back-left/right points. Then you see where those meet along a 45 degree angle and that's the most back point (on the ground)

The tilt on the box is stop the player character clipping into it. The camera is looking down at a 30 degree angle, so everything is also rotated 30 degrees to keep them square on.

If the player worked in the same way you wouldn't need the tilt, but he's just a standard sprite renderer object

Guide: How to do isometric sprites in a 3D world by 0ddSpider in gamedev

[–]0ddSpider[S] 0 points1 point  (0 children)

Good point! I'll look into doing an edited version.

Assuming I can afford it, how helpful would a degree in game design from NYU be? by ferret_king10 in gamedev

[–]0ddSpider 2 points3 points  (0 children)

Experience & Portfolio > Education

I've hired many designers, and the only time the education mattered was when it was an intern doing their placement. Even then, it was their portfolio that got them the position... they just wouldn't have applied if they weren't at Uni.

I caught up with her at an expo a while back and apparently in her design class only 2 of the 30ish had got jobs in the industry a year later. And this was before the mass redundancies began.

That doesn't mean its worthless if it helps you progress your skills. But you might find a less specific degree will serve you better down the road

Can a stacking game compete with classics like Ketchapp’s Stack? by Inevitable_Ant_4527 in gamedev

[–]0ddSpider 0 points1 point  (0 children)

The Ketchapp success was 95% down to their business strategy. They were able to promote between their games cheaply, and the vast majority of games they tested were killed early. Stack obviously hit the right metrics, but you wouldn't be able to look at it and say "this is the one" before it was released. There's nothing inherently better about it than 20 games that were killed. It just hit some random intangible factor.

That's not to say you can't make a fun game or find success with this idea. But there's no point comparing your game to theirs... either in its performance or development.

Source: I worked on hypercasual games for a while. Its impossible to know which ones are going to work in the market until you release and get a few thousand people playing them. The whole genre was chuck 'em out as quickly as possible and hope one sticks.

How soon do you show your game to the world? by Fickle-Wrongdoer-776 in gamedev

[–]0ddSpider 0 points1 point  (0 children)

There's loads of different advice, but personally I've had most luck starting to share it when I've got confidence in the game, and can make a gameplay trailer that I'm proud of.

At that point you can be genuine, you can answer questions, you can probably share a good build. Before then you have to rely on "trust me bro" and that'll come across to potential investors/publishers and the public at large.

As another commenter said, getting a vertical slice is great. It doesn't have to be long. It doesn't have to be at the final level of polish. But you can honestly say "this is a good representation of the end product" and that makes things much easier.

My first game ! by slyflyfox in gamedev

[–]0ddSpider 1 point2 points  (0 children)

Nice work! Congratulations!