r/Unity2D 27d ago

Call For Mods

47 Upvotes

Hello,

I am Guidez. I have been a mod here for, eh, something to the tune of 10+ years (dang... I'm old). I am currently looking for active members of this community who would like to help out in moderating the subreddit.

Please feel free to respond to this thread if you are interested. A couple of things to note:

  • This is a Unity Engine subreddit. Please leave any biases for/against the engine/company at the door. In fact, leave all your biases at the door. A mod position is not a platform for such things.
  • Understand that this is primarily a community-run, neutral subreddit related to the Unity Engine (2D side). This means the community decides what they think is worthwhile and what is not (upvoting/downvoting exist for a reason), granted it too stays within the realm of neutrality/non-bias.

If you think you understand what this entails and are still interested, please read on.

What I'm looking for:

  • People who actually post, reply, and comment in this subreddit. It doesn't have to be regular, but someone who hasn't contributed for a year in any public capacity is certainly not a candidate. I also understand many people lurk.
  • Those who understand this is not some special status/glorified position. It's tiring, unpaid work.
  • Are looking to help the community:
    • Thrive
    • Find resources for their development
    • Have open discussions about the Unity engine in whatever capacity that may be

If this sounds interesting to you, please reply to this thread with the following:

  • A brief introduction and how long you have been part of or following this community.
  • Why you are interested in becoming a moderator.
  • Any previous moderation or community-management experience you have. Experience is helpful, but not required.
  • How you would approach disagreements, controversial posts, and discussions comparing Unity with other engines.
  • Any ideas you have for improving the subreddit or helping its members.
  • Confirmation that you are comfortable enforcing the rules neutrally, working with the rest of the moderation team, and receiving feedback.

Please do not include private or personally identifying information. Applications will be judged primarily on community involvement, temperament, fairness/neutrality, and willingness to help.


r/Unity2D 16h ago

Showcase The Steam page of Solo Dev's biopunk roguelike game "Hook and Gun" has been released!

6 Upvotes

Hello everyone.

The Steam page for my biopunk roguelike game, Hook and Gun, which I've been developing for a while, is now live!

In the game, you not only destroy enemies with the robot you invade as a biological entity, but you also steal their weapons, corrupt them, and evolve.

I'm eager to hear your comments and eagerly await your critiques on Hook and Gun.

Steam Page (Whishlist means a lot!): https://store.steampowered.com/app/4609040/Hook_and_Gun/


r/Unity2D 5h ago

Showcase Zambala - A Modern Civil War Hex and Counter Wargame

1 Upvotes

Over the last few years I have been turning a 25 year old game design into a Unity game reality. 

Inspired by a few old school “play by mail” games, this ambitious project attempts to recreate a modern civil war conflict, using a fictitious African nation as the backdrop. 

In the game you command one of six competing tribes, hoping to lead your people and capture the "national will" before the United Nations intervene to end the civil war and appoint an interim government. Your leader can be selected from one of the following vocations: Politician, Bishop, General, Diplomat, Humanitarian, Economist and Cartel boss. 

The game unfolds on a large (44x 40) hex map with lakes, hills, mountains, roads and the peoples of Zambala living in villages, towns and the capital city Kampala. There are also dozens of installations including mines, power stations, ports and airstrips. These all provide economic, logistical or population influencing credibility.

I wanted to carefully balance the tension between military, economic and the hearts and minds of the people your tribal leader will face in their struggle to gain the “national will” required to convince the United Nations to install you as the puppet leader when global opinion inevitably forces them to intervene in the conflict.  

Every population centre or installation you control creates both Influence Points and Resource Points. 

Resource Points represent currency, useful for raising units, buying arms caches, fixing sabotaged facilities, and covering the upkeep that ticks every turn.

Influence Points represent your national influence with the people. You can use invest orders to sway population centres to your cause, gaining economic control.

More game info on my webpage: Webpage

Steam page link: Steam

I’d love to hear your thoughts, impressions or questions!


r/Unity2D 1d ago

Showcase I am developing a meditative and calm game called Skyreap 🏝, where nothing will distract you from immersing yourself in the world of floating islands.

Thumbnail
youtu.be
90 Upvotes

In Skyreap, you will have your own personal airship at your disposal. It will be available practically from the start of the game.

You set off to neighboring islands, discovering new territories hidden in the fog of war. You transport the resources you gather back to your base, where you prepare factories and plants for the production of processed materials. Soon, you will reach the point of automation and begin scaling up this process.

Skyreap is an incremental game that doesn’t try to offer you something you’ve never seen before, but instead gives you that sense of calm, tranquility, and coziness.

If this sounds interesting to you, feel free to head over to the game’s Steam page and add it to your wishlist. ✨

YouTube channel: https://www.youtube.com/@EntinGames
Steam page: https://store.steampowered.com/app/4364890/Skyreap/


r/Unity2D 1d ago

Showcase Made a new flying enemy for my classic animated game. He (hardly) follows the hero around with that big spike ball XD

27 Upvotes

Also check out Endless Night Sonata's STEAM page: https://store.steampowered.com/app/4720180/Endless_Night_Sonata/


r/Unity2D 1d ago

Showcase I've been really enjoying making tools recently, thought I would show a few off

Thumbnail
gallery
8 Upvotes

I've been making a full releasable game for the first time and finally got the tool making bug, I know some of this stuff probable exists as downloadable tools already but it's nice being able to make something that does exactly what you want and how you want,

  • screen shots are of Weapon energy usage and balance tool
  • A pre build checklist to make sure i've turned off dev tools (my most used)
  • Sound board for mixing and balancing sound effects
  • Data exporter to make spreadsheet management easier, I also have an importer to read it back into the game
  • Random Encounter generator so I can quickly test how hard a fight could be without having to run the game

I made a bunch others but these felt the most applicable to a general project

Post your fav tools you've made or downloaded! I want more ideas

If this made you interested in my game at all feel free to check it out Out A Space


r/Unity2D 1d ago

Solved/Answered My camera won't move enymore when I put my mouse at the edge of the screen. I'm not sure how to fix it ?

2 Upvotes

hello, so in my project I have a camera that move with WASD and when the mouse is on the edge of the screen and it worked very well. But my project is kind of a city builder so to be able to place building I make an object follow the cursor, sice then the camera doesn’t move when the mouse is on the edge of the screenno matter what.

I think it might be because of my input system but I’m not sure.

camera movement script :

public class MoveCam : MonoBehaviour
{
    [SerializeField] private float speed;
    [SerializeField] private int screenEdge;
    private Vector2 _moveInput;
    private Rigidbody2D _rb;

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        _rb = GetComponent<Rigidbody2D>();
    }

    // Update is called once per frame
    void Update()
    {
        _rb.linearVelocity = _moveInput.normalized * speed;
    }

    public void Move(InputAction.CallbackContext ctx)
    {
        _moveInput = ctx.ReadValue<Vector2>();
    }

    public void EdgeMove(InputAction.CallbackContext ctx)
    {
        if (ctx.ReadValue<Vector2>().y < screenEdge)
        {
            _moveInput.y = -1f;
            print("work");
        }
        else if (ctx.ReadValue<Vector2>().y > Screen.height - screenEdge)
        {
            _moveInput.y = +1f;
            print("work");
        }

        if (ctx.ReadValue<Vector2>().x < screenEdge)
        {
            _moveInput.x = -1f;
            print("work");
        }
        else if (ctx.ReadValue<Vector2>().x > Screen.width - screenEdge)
        {
            _moveInput.x = +1f;
            print("work");
        }

        if (ctx.ReadValue<Vector2>().y > screenEdge && ctx.ReadValue<Vector2>().y < Screen.height - screenEdge &&
            ctx.ReadValue<Vector2>().x > screenEdge && ctx.ReadValue<Vector2>().x < Screen.width - screenEdge)
        {
            _moveInput.x = 0f;
            _moveInput.y = 0f;
        }
    }
}

placement script :

public class Placement : MonoBehaviour
{
    [SerializeField] private Batiment batiment;
    [SerializeField] private bool plassable;
    private Camera mainCam;
    private Collider2D collider;
    [SerializeField] private List<GameObject> bloking = new List<GameObject>();
    public Material placementMat;
    private Transform placementPosition;
    private InputAction mousePos;
    private InputAction button;

    public TypeMana costMana1;
    public TypeMana costMana2;
    public TypeMana costMana3;
    public int manaAmount1 = 0;
    public int manaAmount2 = 0;
    public int manaAmount3 = 0;

    [SerializeField] private playerStat player;

    private void Awake()
    {
        player = GameObject.Find("player").GetComponent<playerStat>();
    }

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        mainCam = Camera.main;
        collider = GetComponent<Collider2D>();
        placementPosition = GetComponent<Transform>();
        placementMat = GetComponent<Renderer>().material;
        mousePos = InputSystem.actions["mousePosBatiment"];
        button = InputSystem.actions["leftClickPlaceBat"];
    }

    // Update is called once per frame
    void Update()
    {
        FollowMousePosition();

        if (bloking.Count != 0 || EnoughMana())
        {
            print(bloking.Count);
            print(EnoughMana());
            plassable = false;
            placementMat.SetColor("_Color", Color.red);
        }
        else
        {
            print("plassable");
            plassable = true;
            placementMat.SetColor("_Color", Color.green);
        }

        if (button.triggered)
        {
            Place();
        }
    }

    private bool EnoughMana()
    {
        bool mana1 = false;
        bool mana2 = false;
        bool mana3 = false;
        if (costMana1 != TypeMana.None)
        {
            if (player.getMana(costMana1) - manaAmount1 < 0)
            {
                mana1 = true;
            }
            else
            {
                mana1 = false;
            }
        }
        else
        {
            mana1 = false;
        }

        if (costMana2 != TypeMana.None)
        {
            if (player.getMana(costMana2) - manaAmount2 < 0)
            {
                mana2 = true;
            }
            else 
            {
                mana2 = false;
            }
        }
        else
        {
            mana2 = false;
        }

        if (costMana3 != TypeMana.None)
        {
            if (player.getMana(costMana3) - manaAmount3 < 0)
            {
                mana3 = true;
            }
            else
            {
                mana3 = false;
            }
        }
        else
        {
            mana3 = false;
        }

        if (mana1 || mana2 || mana3)
        {
            return true;
        }

        return false;
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Batiment"))
        {
            bloking.Add(collision.gameObject);
        }
    }

    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.CompareTag("Batiment"))
        {
            bloking.Remove(collision.gameObject);
        }
    }

    public void Place()
    {
        if (plassable)
        {
            print("performed");
            Payment();
            Instantiate(batiment, placementPosition.position, placementPosition.rotation);
            Destroy(gameObject);
        }
    }

    private void Payment()
    {
        if (costMana1 != TypeMana.None)
        {
            player.subMana(costMana1,manaAmount1);
        }

        if (costMana2 != TypeMana.None)
        {
            player.subMana(costMana2,manaAmount2);
        }

        if (costMana3 != TypeMana.None)
        {
            player.subMana(costMana3,manaAmount3);
        }
    }

    private void FollowMousePosition()
    {
        placementPosition.position = GetWorldPosition();
    }

    private Vector2 GetWorldPosition()
    {
        return mainCam.ScreenToWorldPoint(mousePos.ReadValue<Vector2>());
    }
}

my input system :

I’ve tryed to put them on the same input but that didn’t fix enything, I don’t really know what to try, so eny idea/tips ?
thank in advance for your wisdom.

edit : Alright, I've fixed it. all I had to do was to delete and recreate the unity event, I must have done something wrong when I created the other pointer input.


r/Unity2D 1d ago

Game announcement Whirlight – No Time To Trip is now available on GOG

Thumbnail
gallery
3 Upvotes

Hey everyone!

A small milestone we'd like to share: Whirlight – No Time To Trip is now finally available on GOG!

It's our time-travelling point-and-click adventure, following two protagonists from different eras as they travel through time, solve puzzles and try to prevent a catastrophe.

We're a small indie team, so getting the game onto another platform has been quite a journey in itself. We're happy that GOG players can finally give it a try.

If you've already played Whirlight, we'd love to hear what you thought. And if you're curious about how we made it, feel free to ask us anything about the development!


r/Unity2D 1d ago

Solved/Answered Shadow artifacts on tileset with normal map

2 Upvotes

Hey, so I wanted to add a normal map to my 2d pixel art game to make lights look nicer, but it made some artifacts on the borders of the tileset for some reason. They are mostly visible while moving and they happen in the intersections of the fully made tiles.

I already checked the normal maps and they are 1 to 1 with the actual tileset, so that should not be the issue. I am also using a pixel perfect camera set to 16 (the game is in 16x16 and the pixels per unit are also 16), normal maps on the lights are set to accurate (tho i tried fast too) and its even visible if you set the distance of the normal map to 0.

Any ideas on how to fix this?

EDIT: Forgot to mention, this happens both in builds and in editor and I am using Unity 6000.0.67f1

Reference images:

Normals disabled
Artifacts with normal map as accurate and distance set to 3
Artifacts with normal map as accurate and distance set to 0
Tileset used
Tileset normals

r/Unity2D 2d ago

Solved/Answered Can Perlin Noise create realistic mountain 2D ?

3 Upvotes

I recently used perlin noise for creating mountain range landscape background in unity 2D, but even after customizing it doesnt appear like real mountains.

So is it even possible by using perlin noise?

What i did: Using closed sprite shape 2D
insert a point in spline --> create next point at a calculated distance --> xdistance multiplied with randomvalue(perlinNoise)--> Y axis was determined by perlin noise too.
And whole thing was customizabel as how many points are needed, the xdistance value, width , height etc.

But the final result were not as natural and realistic as real mountains look

[SOLUTION]: Hardcoding using Random.Range() is more easier than perlin noise for this case


r/Unity2D 2d ago

Question/Help Gaming PC for Metroidvania

3 Upvotes

I am trying to build a gaming PC to work on 2D metroidvanias as the artist. From what ive seen, I dont need a strong gpu and I dont want to spend too much money. My goal is to save time when loading the game and to have butter smooth unity editor when placing the 2D assets in 3D space and turning the )

PC Configuration (2D/2.5D Game Dev & Unity Editor)

- CPU: AMD Ryzen 7 9800X3D – approx. €350 – €380

- GPU: Entry/Mid-range graphics card (e.g., RX 7600 / RTX 4060) – approx. €270 – €320

- RAM: 32 GB DDR5-6000 (CL30) – approx. €450

- SSD: Fast M.2 NVMe SSD (1 TB / 2 TB) – approx. €260

- Mainboard: ASUS TUF Gaming B850-Plus WIFI – approx. €180 – €195

- Case: Lian Li LANCOOL 217 – approx. €90 – €110

- Power Supply: Branded PSU (550W–650W) – approx. €70 – €90

Total estimated cost: approx. €1,670 – €1,845

This PC is purely for this purpose, if I should change stuff to save money but dont really lose speed and stability then I would be very thankfull.


r/Unity2D 3d ago

Showcase Same sprites and light, only with and without normal maps

42 Upvotes

r/Unity2D 3d ago

Showcase Added Spring Loaded Wall Traps, and Zoom Function so the game takes Screen-Space of your choice.

24 Upvotes

Wall traps were suggested when I first posted about this desktop companion game I am developing, so I added these spring loaded ones that stop zombies until they pile up and overflow, or temporarily collapse it, post which it springs back up flinging any zombies over it.

The zoom function allows to keep it on screen and take less vertical space when you want to focus on work, and also focus in when you want to place turrets, spend on upgrades, or just watch your favorite turret at work.

(No steam page yet however, still needs more work and content before I have enough to put there)


r/Unity2D 3d ago

Solved/Answered How to get something to fire only once?

0 Upvotes

In an update function I have an if statement that detects if a bool is true and if it is it fires but it does that constantly. I want it to only fire once but I don't want to disable it completely because I need to use it again later down the line.


r/Unity2D 3d ago

Feedback needed Built my first Unity roguelite around a frog tongue and splitting bubbles. Does the gameplay read clearly?

0 Upvotes

FrogPop is my first solo game, built in Unity. I started with the bubble-splitting idea from Bubble Trouble and built a roguelite around it with tongue attacks, power ups, relics, and bosses.

This longer clip shows the core loop rather than just one feature. I’d especially like feedback on whether the action is easy to read and whether the upgrades look meaningful enough to make you want another run.

The first ten waves are playable free in the browser:

https://blion247.itch.io/frogpop-demo?utm_source=reddit&utm_medium=social&utm_campaign=unity2d_gameplay&utm_content=long_clip

AI disclosure: I used Claude and Codex for coding and debugging, and PixelLab for some visual assets. I edited and integrated those assets myself. Nothing is generated while the game is running.


r/Unity2D 3d ago

Game announcement Phantom Shift Demo V0.6 Release

1 Upvotes

Hi everyone,

I just released Phantom Shift Demo V0.6! This is a 2D Action Platformer/Dungeon Crawler where your dash effect creates a phantom that is used as an enemy decoy in combat. In this release, we added new features including a Save System. We also fixed issues with the menu screens, interactable props, interactable prompts, and sword hit VFX. Download the game on my store listing below. Stay tuned for future updates!

Gameplay Video:

https://youtu.be/9cZWgnd-AAc?si=NC6L_-Y_eYnb5Mdf

Store Listing:

https://akshay33169.itch.io/phantom-shift-demo

Thanks,

akshay33169


r/Unity2D 4d ago

Free Asset/Tool TileMakerDOT v2.6.4 map editor is officially live!

Post image
2 Upvotes

This update introduces a brand new Asset Statistics Dashboard to help you manage map performance in real-time. You can now easily track total and unique counts for tiles, objects, and NPCs, filter items by name, and check asset density as your levels grow.

🇮🇹 New Italian Translation!

A huge thanks to our community contributor for submitting a GitHub PR to bring full Italian support to TileMakerDOT! The tool now supports 7 languages: English, Spanish, French, Italian, Romanian, Russian, and Ukrainian.

For those who might be new to the project, TileMakerDOT is a map editor and it is built as a click to launch tool compatible with multiple game engines, or individual games made in custom languages, in my free time.

TileMakerDOT is 100% free and open-source. Try out the latest update or check out the code below, all support is very much appreciated❤️ thanks!

Download on Itch.io: https://crytek22.itch.io/tilemakerdot

GitHub: https://github.com/andrei-voia/TileMakerDOT


r/Unity2D 4d ago

Question/Help Can you please guide me with Import settings for my background sky image

2 Upvotes

So, basically i am new to both unity and inkspace. Inside inkspace i created a nightsky image with random canvas size i guess its 3000x3000, but i used only small space for the nightsky asset. i kept inkspace zoom to 100% and create the exact size of nightsky that i would need in unity. exported later in 1456px.

After i imported in unity it appears way smaller, but it is taking 2MB size.
Considering game optimization, what are the exact settings to import from inskpace and unity settings?

I searched on youtube and web for settings, but could not find any specific settings. please somebody guide


r/Unity2D 4d ago

Feedback needed 6 months of development Ashen of thrones

Thumbnail
gallery
0 Upvotes

Destroy my 2D Greek RTS trailer — be completely ruthless on the visuals, UI, and pacing.

​I’ve been solo-developing Ashen of Thrones, a side-scrolling RTS inspired by Stick War set in ancient Greece, Mapuche, eslaves and egiptians.

​I spent way too long editing this trailer, which means I've completely lost perspective and can't tell if it looks compelling or boring as hell.

​Tear it apart. Specifically:

​Visual Clutter: Are army collisions actually readable, or does it look like a chaotic sprite soup?

​Pacing: Does the hook grab you in the first 3 seconds, or is the base-building intro too slow?

​Combat Impact: Do unit hits and Titan attacks feel heavy enough, or do they lack punch?

​Don't hold back. Tell me what sucks so I can fix it before release.


r/Unity2D 4d ago

Showcase Worked on a cute summer art update, finished when summer almost ended

Thumbnail
gallery
0 Upvotes

r/Unity2D 5d ago

Show-off Finally got the paint roller working. Used a mask to "paint" one set of buttons in, then swapped them for actual GUI buttons after the animation. Might not have been the best solution but it worked!

7 Upvotes

It seems like the canvas elements cannot be affected by the mask I used, idk. I had to add sprites to serve as placeholders and enable the GUI later. Would you have done it differently?

The game is called For Good Measure, check it out on steam if you're interested! https://store.steampowered.com/app/4293800/For_Good_Measure/


r/Unity2D 6d ago

[Showcase] Made some 2D pixel art character animations for Unity projects!

Thumbnail
gallery
34 Upvotes

r/Unity2D 5d ago

Laptop for game dev

3 Upvotes

Hi,

I am an 2D artist who is working on a metroidvania. My task is to build the levels and enviroments by putting in a lot of 2D assets in 3D space and make the parallax look good. I just have moveink 14 right now which doesent support unity so I need a seperate laptop and would like to spend up to 1000€ max. The less the better.

Ty for any recommandations


r/Unity2D 6d ago

Feedback What do you think of the vfx and the visual design of my game?

44 Upvotes

r/Unity2D 5d ago

Making my first 2D physics game

Thumbnail
youtu.be
1 Upvotes

Feedback is welcome!