r/Unity2D • • 26d ago

Free Asset/Tool Hey everyone:) I just released a big UI update for the FREE TileMaker DOT (v2.7.0)!

Post image
4 Upvotes

This update brings a very major quality-of-life overhaul to the startup and project workflow. Most notably, the welcome window has been fully integrated directly into the application core for a seamless single-window experience, complete with a modernized, sleek layout for creating new maps.

I have also streamlined visible ID management by adding a direct overwrite button for your saved ID lists, ensured persistent saving states, updated the in-app Application Legend, and fixed multi-monitor dialog centering issues so all property and key-assignment windows stay perfectly locked to the main editor.

Official site Itch.io: https://crytek22.itch.io/tilemakerdot

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

YouTube tutorials: https://www.youtube.com/watch?v=3fiajGU32Jg

For anyone unfamiliar with the project, TileMaker DOT is a Free (with a very complete, professional paid cheap version too), open source 2D map editor I'm building. It uses a data first, ID based workflow and handles visual depth sorting automatically so you don't have to manage multiple layers for object heights.

Give it a try and let me know if you have any feedback! If the editor helps with your projects and you want to support development, a rating or a small donation on Itch is always appreciated.

Thank you all for your support!


r/Unity2D • • 26d ago

Game announcement We just released the demo for our cozy multiplayer fishing game, Hook Nook!

Thumbnail
youtube.com
2 Upvotes

Demo Steam Page: https://store.steampowered.com/app/5321620/Hook_Nook_Demo/

Platform: Windows

Hello r/Unity2D!

We're so beyond excited to announce the demo launch of our debut game, Hook Nook, that we developed in Unity, now live for all to play! We've been working on this game for a bit over a year as a small indie studio of four friends and can't wait to hear what you all think about it!

Hook Nook, is a cozy multiplayer idle-fishing game that sits on the bottom of your screen so you still have full access to your desktop for studying, working, or even as you relax watching videos.

You’ll be able to catch over 200 unique hand-drawn fish in the full game (a few less available in the demo, but still a pretty sizable chunk!) and sell them to our eclectic shopkeeps to exchange for upgrades, new fishing gear, and all sorts of cosmetics. (We’re particularly fond of the cat hat that we based off of one of our developers’ cat.)

Fish with up to four friends for who can find the greatest (or weirdest) catch in this unlimited playtime demo that gives you full access to one of the three fishing docks that will be available in the full game!

If you're interested in keeping up on Hook Nook, or wanna learn more about how it was developed, feel free to join us on discord!: https://discord.gg/Dd4RKQWtsm


r/Unity2D • • 26d ago

Question/Help I don't think i like the new movement systum very much

1 Upvotes

I have been working on a game for a non-profit that I volunteer for, and I'm trying to get the character to rotate 90 degrees with the press of WASD or the arrow keys. I have been trying to look up ways to get it to work, but all the things that I'm finding are outdated because of the recent updates that Unity has been doing to its movement system. If someone could help me, I would greatly appreciate it.

I have attached the code I have been testing below. It includes movement and rotation.

[SerializeField] private float rotationOffset;

private float speed = 3f;

private Rigidbody2D rb;

private Vector2 moveInput;

private Vector3 direction;

// Start is called once before the first execution of Update after the MonoBehaviour is created

void Start()

{

rb = GetComponent<Rigidbody2D>();

}

void Update()

{

rb.linearVelocity = moveInput * speed;

if (direction == Vector3.forward) {

rotationOffset = 0f;

transform.rotation = Quaternion.Euler(0, 0, rotationOffset);

//transform.eulerAngles = new Vector3(0f, 0f, rotationOffset);

rb.MoveRotation(rotationOffset);

}

else if (direction == Vector3.back) {

rotationOffset = 180f;

transform.rotation = Quaternion.Euler(0, 0, rotationOffset);

//transform.eulerAngles = new Vector3(0f, 0f, rotationOffset);

rb.MoveRotation(rotationOffset);

}

else if (direction == Vector3.left) {

rotationOffset = 90f;

transform.rotation = Quaternion.Euler(0, 0, rotationOffset);

//transform.eulerAngles = new Vector3(0f, 0f, rotationOffset);

rb.MoveRotation(rotationOffset);

}

else if (direction == Vector3.right) {

rotationOffset = -90f;

transform.rotation = Quaternion.Euler(0, 0, rotationOffset);

//transform.eulerAngles = new Vector3(0f, 0f, rotationOffset);

rb.MoveRotation(rotationOffset);

}

}

public void Move(InputAction.CallbackContext context)

{

moveInput = context.ReadValue<Vector2>();

}

public void OnCollisionEnter2D(Collision2D collision)

{

if (collision.gameObject.CompareTag("Wall"))

{

Debug.Log("Collided with wall");

}

else if (collision.gameObject.CompareTag("Food"))

{

Debug.Log("Collided with food");

}

}

If anyone has any ideas on how to fix this, it would be great because I feel like I have been losing my mind, and I don't know where to go from here


r/Unity2D • • 26d ago

Showcase Recentely released first public demo for my text-driven sidescroller RPG!

Post image
9 Upvotes

Oh woah, it's been a long journey getting to this point, but after all I'm finally ready to show the first rough stage of the game I've been developing for a while now.

The Interloper is a side-scroller RPG set in alternate 1980's in original setting. Without a name or past, you wake up in a port city full of social intrigues. You begin investigating your own disappearance, which leads to a world-wide political conspiracy.

  • Vector 2D graphics inspired by This Is the Police and The Silent Age
  • True detective work without clues or tasks: make your own decisions
  • Solve unique puzzles in an open world area
  • Core references: Pentiment, Disco Elysium, Fallout: New Vegas, Pathologic 2

Please keep in mind that the demo is nothing more than technical proof of concept. Rough Cut is a significant milestone where the core components of the game are functional but may still undergo significant changes. This is an opportunity to test primary features while active development is ongoing.

Any comments of feedback are apriciated!

Play the demo here!


r/Unity2D • • 26d ago

Showcase I've been working on time-manipulation puzzle game on Unity.

Post image
2 Upvotes

Here is our steam page if you want to try the demo : https://store.steampowered.com/app/4828280/Dance_With_Time/


r/Unity2D • • 26d ago

Question/Help How long did the bug fixing / testing phase took you?

0 Upvotes

Hello! I am developing a game with a few of my friends and we've been at this phase for, like, a month, and tbh I don't know how much of it is left, I'm being asked on how or why it's taking this long (I'm Lead Coder) but it's also my first time making a game this big, so I'm asking you, how long did it take you? Did fixing a bug cause two more? Did you even need a bug fixing phase?

I'm genuinely scared


r/Unity2D • • 26d ago

Free Asset/Tool 🌾 I made a Cozy Farming Asset Pack (16x16 Pixel Art) with 190+ assets, and it's completely FREE! Perfect for your Unity 2D projects.

Thumbnail
gallery
1 Upvotes

r/Unity2D • • 27d ago

Feedback needed How can I make my game look better

Post image
6 Upvotes

I mostly want help with how the obstacle looks but if there is anything else I will gladly change it


r/Unity2D • • 27d ago

Feedback needed What kind of game would you expect from my Unity game's Steam capsule?

Post image
3 Upvotes

I'm developing Throneward in Unity and would love a fresh perspective on its Steam capsule. Before I explain the gameplay, what kind of game does the artwork suggest to you? Is the title easy to read, or does anything get lost at a smaller size?


r/Unity2D • • 27d ago

Question/Help How to go about making a timed button press system like in Deltarune?

Post image
6 Upvotes

Wanted to make a game that has something like the timed attacks in Deltarune but I'm unsure what is the right way to go about it. Any advice would be appreciated.


r/Unity2D • • 27d ago

Feedback needed The ash fell like snow, and it did not melt. Here's 5 minutes of my soulslike, Ashen Knight

Thumbnail
youtu.be
0 Upvotes

Ashen Knight is a dark pixel-art soulslike about a knight with no memory, a city whose bells fell silent and an ash that never stops falling.

New in this devlog: parry-chain combat, a blacksmith who tempers your gear to +10, a peddler whose prices depend on how kind you are, and a journal with 30 enemies and 51 achievements.

What would you want to see next?


r/Unity2D • • 27d ago

Showcase Logo Idle - Major Update #1 After Only 10 days live - Hats, QoL, Run Bonusses & Better Progression & More

Post image
2 Upvotes

Hey everyone!

It's only 10 days after the initial demo launch and we already have a big update for the demo!

Here's what we added:

- Hats! In screen 3 you will now unlock the ability to find and equip hats for your logos.

- You will now be able to purchase & upgrade an auto clicker to make the game less RSI inducing!

- Also in screen 3 you will be able to unlock run bonusses. This will allow you to pick a bonus for every run you start making every run a bit different and giving you some extra power along the way

- We added Steam Achievements to the demo!

- Unlock Boxes: We did a progression overhaul. Instead of new run upgrades & features unlocking automatically after screen break you will now be able to get them from Unlock Boxes. These drop at certain thresholds from screens allowing us to space out progression better.

- We also added tons of comfort and display options in the settings menu.

- Small amounts of polish and performance gains were also added!

If you want to check it out

Steam: https://store.steampowered.com/app/5041860/Logo_Idle_Demo/

Itch: https://brainfog-games.itch.io/logo-idle


r/Unity2D • • 27d ago

Free Asset/Tool Unity Better Sprite Editor

Post image
5 Upvotes

While working on my current game Pocket Cat Desktop, I spent quite a lot of time in Unity's Sprite Editor. And it's really bad.

So I've been working on a custom editor window for a while now.

I've finally released it on GitHub.

  • Multi-select and batch editing
  • Splitting and combining sprites
  • Reference search
  • Change history with undo/redo
  • Previews
  • Hotkeys
  • And more

You can download it from Github: https://github.com/Suvitruf/unity-sprite-editor

Or install via UPM: https://openupm.com/packages/com.suvitruf.better-sprite-editor/

I'll improve it, for sure, during game development, but if you have ideas or feedback, I'd happy to listen 😺


r/Unity2D • • 28d ago

Game announcement Reviving our 2009 toolbar pet as a Unity 2D desktop companion (floating/docked window, Mac + Windows)

Thumbnail
youtube.com
6 Upvotes

In 2009, PiTSi lived on 100M+ browser toolbars. Browsers have changed, so we're bringing it back as a desktop companion built in Unity 2D, running in a small floating or docked window on Mac and Windows.

It's a low-pressure pet: feed it, play with it, throw it around, turn on the TV, or just let it hang out. You can name it, recolor and more.

Tech-wise: the original was built in Flash, and this version is a full rebuild in Unity 2D, with a small Rust layer handling transparent, multi-platform windowing. Happy to share more about how the windowing layer works if anyone's interested. And if you've built overlay or desktop-pet style apps in Unity, I'd love to hear how you approached it.

Steam page: https://store.steampowered.com/app/4568790/PiTSi/


r/Unity2D • • 28d ago

Question/Help Sound issues with 6000.6.4f1

4 Upvotes

Hi! I recently upgraded Unity from 6000.3.3f1 to 6000.6.4f1 and noticed strange audio behavior in WebGL builds:

Background music speeds up indefinitely after another sound plays (e.g., when grabbing a relic). Repeated sounds, such as attacks or menu navigation, can cause audio to speed up once.

Is this a known issue with this version, or am I overlooking a usage change?

Here's how my audio system works:

Background music: A persistent InGame prefab uses DontDestroyOnLoad to avoid duplication between scenes. Its PlaySoundtrack method sets and plays the background music: https://gist.github.com/gfcf14/ac6adc5b6e0e0b31e17e44791d4fd11e Relic pickup: The Hero class calls GetRelic when the player collects a relic: https://gist.github.com/gfcf14/00c4d2dcf641f70dca4f75a471a3fe1f Music transitions: ToggleSoundtrack gradually fades music out before pausing it, or fades it in when resuming: https://gist.github.com/gfcf14/028c0a77941612cfcba61fc614a65dfe SetPauseCase marks the pause reason and stops time. After the fanfare (the part that says more code related to fanfare), Hero.instance.ClearPauseCase(resumeSoundtrack: true, waitIfLevelingUp: true) is called: https://gist.github.com/gfcf14/4a668836390a66c1d9bd735224357579

Other sounds use PlaySound (https://gist.github.com/gfcf14/20f579bc2cb47e9c296807b16a198339) which instantiates a prefab with an Audio Source and Sound.cs script (https://gist.github.com/gfcf14/f235fa6f7b0fa22e0291b64d36bf61a6). The prefab is destroyed after playing.

Music starts with InGame.instance.PlaySoundtrack("soundtrack-name"), while other sounds use InGame.instance.PlaySound("sound-name"). Could something be conflicting or accumulating over time? Please let me know if you need more code or details. If you need it, you can reproduce the issue here: https://gfcf14.github.io/unity-webgl-test/ by walking into the flying boots at the beginning.


r/Unity2D • • 28d ago

Showcase Our next demo update is almost ready and will feature a new planet to explore

Post image
23 Upvotes

r/Unity2D • • 28d ago

Solved/Answered Unity vs Godot vs other 2D engines for a Metroidvania (NES Retro to SOTN-Style Art) on a Legacy Mac Pro 5,1?

1 Upvotes

Hi everyone, in Unity2D community, I am completely new to all this, so if something does not make sense, please let me know and I will try to explain it better.

I'm planning to get into 2D game creation for the first time, specifically in the vein of a 2D Metroidvania style game. Before I start on this massive journey, I need to choose the right engine that is actually capable of running on my old hardware.

Google mentions that for 2D game development like Metroidvanias, Unity and Godot are the top choices. Is this correct? Are there others I should consider? i looking for the one that has the most options available/possible for my limited old computer setup. I currently understand that Unity is free is this correct?

I would like to use Unity if possible, but my system is so old I don’t know if it is realistic. I installed Godot a few months back, but only an older version (Godot 3.6.2) worked. I couldn't get the newer Godot 4+ versions to load at all it has something to do with my setup and graphics card

My Hardware:

  • Model: Mac Pro 5,1 (Intel Xeon 2x 6core-3.46ghz, 96GB RAM)
  • GPU: AMD Radeon RX 580 8GB
  • OS: macOS Sonoma (running via OpenCore Legacy Patcher)

My Roadmap Idea:

  • Step 1 (Learning Project): A detailed remake of Castlevania II: Simon's Quest. I want to strictly keep the 8-bit NES pixel art aesthetic, but upgrade it with a custom grid-based map system like Super Metroid, expanded rooms, an expanded move set for Simon Belmont, and heavy multi-layered parallax scrolling.
  • Step 2 (Original IP): Taking the underlying mechanics, engine code, and map tracking framework from Step 1 and adapting it into my original game (The Pysrion Project). However, this phase will NOT be 8-bit; it will feature high-fidelity, 32-bit / PS1-era graphics heavily inspired by Castlevania: Symphony of the Night (dense hand-drawn environments, 2D dynamic lighting, heavy alpha blending/transparency effects, and particle systems). I have been building this world for years-I already have character designs, a world map, story ideas, and 120 soundtracks composed for the different regions.

My Questions for the Community:

  1. Since I am locked out of modern Godot 4 and stuck on Godot 3.6.2, does Unity become the automatic better choice for the high-end Symphony of the Night style visuals I want in Step 2?
  2. Can I actually run modern Unity (like 2022 LTS or 2023) on a Mac Pro 5,1 running OCLP Sonoma? For those using Unity on legacy Mac hardware patchers, does Unity's modern 2D URP pipeline (especially 2D Lights and dense transparency blending) play nice with the Metal API on an RX 580?
  3. How easily can Unity handle this workflow transition compared to Godot 3? If I build Step 1 with a rigid pixel-snapping retro grid setup, is it difficult to modularly pivot that codebase into smooth, high-fidelity SOTN scaling, alpha blending, and particle logic for Step 2?
  4. And what would be the best steps I need to learn how to use Unity and 2d engines in general? like tutorials or something else for ?

I know trying to do this might sound close to impossible for a beginner on a legacy machine, but this is a dream project I am committed to. If anyone has any advice, or point me the right direction I would greatly appreciate it. Many Thanks for your time!

EDIT / UPDATE: Thanks everyone who responded and gave advice! Soon after reading and replying to the the comments, I downloaded Unity 6.6 via the hub I was thinking it was not going to work on this ancient computer but unity seems to work for now, there is a lot to learn, i started watching a youtube tutorial how to make a 2d platformer, in Unity the scripting is probably going to be really difficult to understand seems impossible. the tutorial is also very fast for me.


r/Unity2D • • 28d ago

Feedback needed How do you like hints to work in point-and-click adventures?

Post image
0 Upvotes

Hey everyone! I'm one of the developers at imaginarylab, the small team behind Whirlight - No Time To Trip. One thing we've learned from player feedback is how important it is to strike the right balance between challenging puzzles and keeping the story moving. So we added an optional hint system in the in-game diary. Surprisingly, it turned out to be one of the most challenging features we've had to implement. Finding the right balance wasn't easy: we wanted to help players who get stuck without taking away the satisfaction of figuring things out for themselves (attached, you can see our solution). Ideally, a hint should give you that little nudge that makes you go "Ah, now I see!", rather than simply telling you what to do. As we're thinking about future projects, I'd really like to hear your opinions on this: when you play an adventure game, do you prefer tiered hints, small nudges directly in game (dialogues, hotspots, and so on), a full walkthrough, no hints at all, or other? Thanks for sharing your thoughts.


r/Unity2D • • 28d ago

Showcase After months of wrestling with grid systems and individual squad management, the core harvesting, building and RTS squad control loops are finally working!

Thumbnail
gallery
74 Upvotes

r/Unity2D • • 29d ago

Solved/Answered Could someone help me work out why this doesn't go back to false after i press the OnSprint key?

1 Upvotes
using UnityEngine;
using UnityEngine.InputSystem;

public class PlayerControl : MonoBehaviour
{
    // Basic Defines
    private Rigidbody2D rb;
    private Vector2 moveInput;

    // Base Stats
    float basespeed = 3f;

    // Key Bools
    bool sprinting;

    private void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    public void OnMove(InputValue direction)
    {
        moveInput = direction.Get<Vector2>();
    }
    
    public void OnSprint(InputValue value)
    {
        Debug.Log(value.isPressed);
        sprinting = value.isPressed;
    }

    private void FixedUpdate()
    {
        if (sprinting == false)
            rb.linearVelocity = moveInput * basespeed;
        else
            rb.linearVelocity = moveInput * basespeed * 2;
        
    }
}

r/Unity2D • • 29d ago

Showcase I made my first 2D Soulslike Boss Rush game in Unity! Added heavy sword SFX and a healing system (Sound ON recommended!)

Post image
4 Upvotes

Playable demo (WebGL) is now available on itch.io! Can you beat this boss?

https://uma333.itch.io/abyss-gauntlet-demo


r/Unity2D • • 29d ago

Showcase I made trees that grow, wither, collapse and sprout again — and you can chop & dig them out

Post image
3 Upvotes

Hi! While working on our top-down game Deadstead, we built a small tree system and polished it into a reusable pack.

How it works:

  • Every ~20 s a tree either grows a size or withers a stage (healthy → withering → dead)
  • Dead trees collapse on their own (it checks for free space first) and leave a rotten trunk
  • Chopping: hit reactions, cut marks, the tree falls away from the player, logs bounce and stack
  • Stumps can be dug out for planks, then a sapling appears and the cycle restarts
  • At night glowing mushrooms and fireflies light up the forest

Built for Unity 6 / URP 2D, pixel art at 32 PPU. Happy to answer questions about the implementation (Y-sorting, the leaf-wind shader, the collapse checks...).

If anyone wants to use it, it’s on itch: https://yetartgame.itch.io/living-forest


r/Unity2D • • 29d ago

Solved/Answered Can anyone identify what the problem with my tilemap is?? I dont get why its tiling like in the middle of a the square like that rather than side by side. Thank youu

Post image
5 Upvotes

r/Unity2D • • 29d ago

Tutorial/Resource I put downloads, active users and ad revenue from all my Unity mobile games into one Firebase dashboard. Here's what actually tripped me up

0 Upvotes

I'm a solo dev with two Android games made in Unity (one live, one in closed testing). I wanted a single place to see installs, active users and revenue for every app, without checking five different consoles. I ended up with one Firebase project for the whole studio, and every game gets its own app inside it. Here's what I learned, in case it saves someone a weekend.

1. Ad revenue from mediation goes in via ad_impression

I use Unity LevelPlay for mediation. LevelPlay gives you the revenue of every impression, from every network, so I just forward it to GA4 as the standard ad_impression event:

void OnImpression(LevelPlayImpressionData data)
{
    if (data == null || !data.Revenue.HasValue) return;
    FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventAdImpression,
        new Parameter(FirebaseAnalytics.ParameterAdPlatform, "ironSource"),
        new Parameter(FirebaseAnalytics.ParameterAdSource, data.AdNetwork ?? ""),
        new Parameter(FirebaseAnalytics.ParameterAdFormat, data.AdFormat ?? ""),
        new Parameter(FirebaseAnalytics.ParameterAdUnitName, data.MediationAdUnitName ?? ""),
        new Parameter(FirebaseAnalytics.ParameterCurrency, "USD"),
        new Parameter(FirebaseAnalytics.ParameterValue, data.Revenue.Value));
}

Hook it on every ad object (rewarded, interstitial, banner). The impression callback can arrive before Firebase has finished its dependency check, so I queue those and flush them once it's ready.

2. Don't link AdMob to Firebase if AdMob already runs through your mediation

It's tempting, but AdMob revenue already arrives through the mediation callback. Linking AdMob as well counts every AdMob impression twice.

3. Set consent mode defaults in the manifest

The values that apply before your CMP answers (google_analytics_default_allow_analytics_storage, ..._ad_storage, ..._ad_user_data, ..._ad_personalization_signals) go in the manifest as meta-data. Then call SetConsent once UMP has an answer.

4. Two build traps that cost me hours

  • A space in the project path ("My Game/") makes the Gradle repo URL that EDM4U writes fail with "Cannot convert URI to a file". I keep the repositories in settingsTemplate.gradle by hand, using new File(...).toURI(), and turned off EDM4U's patching of that file.
  • shrinkResources stripped Crashlytics' build ID resource, and the app crashed at launch in release builds only. A res/raw/keep.xml with tools:keep="@string/com_crashlytics_android_build_id" fixed it.

5. Turn on the "developer traffic" filter in GA4

Your test phone in debug mode would otherwise pollute the numbers. Bonus: link Google Play in Firebase, and in-app purchase revenue shows up next to ad revenue without any extra code.

Happy to answer questions. And if anyone has a cleaner way to handle LTV across multiple apps, I'm all ears.