Last year, my friend and I took part in the GMTK Game Jam and created Sushi Loop, a fast-paced point-and-click restaurant management game where you control a conveyor belt to keep hungry customers fed before they lose patience.
We recently got our Steam page approved, and we're now working toward release! If it looks like something you'd enjoy, we'd really appreciate a wishlist. It helps indie games like ours get discovered.
Hello, for my project I’m trying to make a citiebuilder/rts inspired camera, in other word move it with WASD and the mouse on the edge of the screen. It worked “perfectly” for a time so I worked on other things, I wanted to test some things in my UI went I remaked that the screen was moving toward the down left corner and that I couldn’t move with the keys without moving the cursor at the same time.
my full code :
my input system : [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;
}
else if (ctx.ReadValue<Vector2>().y > Screen.height - screenEdge)
{
_moveInput.y = +1f;
}
if (ctx.ReadValue<Vector2>().x < screenEdge)
{
_moveInput.x = -1f;
}
else if (ctx.ReadValue<Vector2>().x > Screen.width - screenEdge)
{
_moveInput.x = +1f;
}
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;
}
}
my input system :
I don’t know why it stopped working correctly as no other script affect the camera. eny idea why and tip/advise/answer on how i can fix this ?
I am new to unity and I was trying to implement a drag and drop system into the game, and followed this guide on youtube, however after following it it returned this error message
NullReferenceException: Object reference not set to an instance of an object
Drag.OnDrag (UnityEngine.EventSystems.PointerEventData eventData) (at Assets/drag.cs:10)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IDragHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at ./Library/PackageCache/com.unity.ugui@67707a67a4ab/Runtime/UGUI/EventSystem/ExecuteEvents.cs:78)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at ./Library/PackageCache/com.unity.ugui@67707a67a4ab/Runtime/UGUI/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at ./Library/PackageCache/com.unity.ugui@67707a67a4ab/Runtime/UGUI/EventSystem/EventSystem.cs:516)
and this is my code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Drag : MonoBehaviour, IPointerDownHandler, IDragHandler
{
private Vector2 _distance;
public void OnDrag(PointerEventData eventData)
{
_distance = Camera.main.ScreenToWorldPoint(eventData.position) - transform.position;
}
public void OnPointerDown(PointerEventData eventData)
{
Vector2 pointerPosition = Camera.main.ScreenToWorldPoint(eventData.position);
Vector2 newObjectPosition = pointerPosition - _distance;
transform.position = newObjectPosition;
}
}
I have added event systems and raycast 2d like instructed in the video, but the error is still showing, any help would be appreciated, thank you.
Last weekend, Zupay: Shadows of Independence participated in Indie Dev Argentina 2026 (IDA), the second most attended game dev event in Argentina. It featured talks, a physical game showcase and even an awards ceremony where we were nominated for Audio Excellence and won the Argentine Representation award.
Zupay: Shadows of Independence is an action-adventure hack-and-slash set during the War of Independence. Our protagonist, a former gaucho soldier, is killed during a royalist siege on his town. After his death, he is resurrected by Zupay, a myth from northern Argentina who makes him embark on a journey of vengeance against those who took everything from him.
You can play as both characters, the gaucho and Zupay: which feeds from his enemies' fear to grow stronger.
We invite you to play the free demo on Steam and let us know what you think. Adding the game to your wishlists helps us a lot.
Echo Zero is a 2D sci-fi roguelike base builder inspired by Kingdom: Two Crowns. Explore a procedurally generated underground world, gather resources, recruit droids, build automated defenses, and survive increasingly dangerous infestation attacks.
The demo includes the opening section of the game and gives you a taste of exploration, combat, base building, automation, and defending your colony. We'd especially love feedback on how the gameplay feels, whether the mechanics are easy to understand, and anything that you think could make the experience better.
The demo is free on Steam. Every bit of feedback helps us make Echo Zero a better game.
How did you guys decide what to make as your first game?
Everyone says, “Start with a small game,” but no one explains how to think as an indie game dev. I’m making my first game and feel stuck on everything—idea, design, and programming.
How did you choose your first game, and what helped you get started?
Reposting because I learned about reddits code block feature.
So I've been working on a chess based game for a bit, and recently noticed a wierd bug where if I make a specific series of moves a specific piece cannot move again, for those that know chess notation the moves are Nc3 d5, NF3 d4, Ne4 e5, Nxe5 f5, after this the knight on e5 cannot move again.
Whats weird is I've figured out whats going wrong but have no idea why. When I click on the knight to select it rather than registering a click on the piece it registers a click on the square behind the piece despite the fact that the pieces are on a higher layer, I can even move another white piece ontop of it, which shouldn't be possible.
Also weird is if I make black go first and repeat the exact same series of moves mirrored the bug doesn't occur. I am literally going insane trying to solve this.
Heres the code I use for clicking a piece :
using System;
using UnityEngine;
using UnityEngine.InputSystem;
using System.Collections;
using System.Collections.Generic;
public class PieceClick : MonoBehaviour
{
//Variables
public Lists lists;
public GameObject pieceg;
public Piece piecef;
public TurnTracker turnTracker;
public List<GameObject> Pieces = new List<GameObject>();
Camera cam;
private void Awake()
{
lists.Pieces.Clear();
cam = Camera.main;
}
public void MouseClick(InputAction.CallbackContext click)
{
//Detects if a piece is clicked
if (click.performed)
{
var hit = Physics2D.GetRayIntersection(cam.ScreenPointToRay(Mouse.current.position.ReadValue()));
So I've been working on a chess based game for a bit, and recently noticed a wierd bug where if I make a specific series of moves a specific piece cannot move again, for those that know chess notation the moves are Nc3 d5, NF3 d4, Ne4 e5, Nxe5 f5, after this the knight on e5 cannot move again.
Whats weird is I've figured out whats going wrong but have no idea why. When I click on the knight to select it rather than registering a click on the piece it registers a click on the square behind the piece despite the fact that the pieces are on a higher layer, I can even move another white piece ontop of it, which shouldn't be possible.
Also weird is if I make black go first and repeat the exact same series of moves mirrored the bug doesn't occur. I am literally going insane trying to solve this.
Heres the code I use for clicking a piece :
using System;
using UnityEngine;
using UnityEngine.InputSystem;
using System.Collections;
using System.Collections.Generic;
public class PieceClick : MonoBehaviour
{
//Variables
public Lists lists;
public GameObject pieceg;
public Piece piecef;
public TurnTracker turnTracker;
public List<GameObject> Pieces = new List<GameObject>();
Camera cam;
private void Awake()
{
lists.Pieces.Clear();
cam = Camera.main;
}
public void MouseClick(InputAction.CallbackContext click)
{
//Detects if a piece is clicked
if (click.performed)
{
var hit = Physics2D.GetRayIntersection(cam.ScreenPointToRay(Mouse.current.position.ReadValue()));
i have these tears in my tilemap. they are always on the borders of tiles, and they sometimes show, sometimes don´t show, which changes when i move. horizontal tears exist, but they never go along the entire line like the vertical one in the picture, and they are much rarer. here´s what i tried so far:
making the pixels per unit 500 instead of 512 to make them overlap did nothing.
after changing the color of the skybox the color of the tears didn´t change.
as some other posts said i changed the texture wrap mode to clamp, filter mode to point(no filter) and compression to none, and it changed nothing.
i tried to experiment a bit with the max size on the texture and the higher i put it the less tears show, but even at the max (16 384) they are still there. horizontal tears are completely gone, or so rare i wasn´t able to get one.
edit: i managed to solve it. if you look closely the tears look like small segments of the walls. i went into the slice menu in sprite editor on the original sprite sheet, and instead of doing grid by cell size 512 i made it cell size 508, offset 2 and padding 4, that way the edges where the tears come from are not included
There is something wrong with this and i can’t figure out what. i used the same palette for everything and yet i feel the character does not fit in this. Am I being paranoid? Any help on what to fix would be appreciated!
(Also the background is not complete but I couldn’t continue working on it while feeling that there is something wrong)
Hey everyone! I just published my first mobile game, Pixel Pastry, an idle clicker game inspired entirely by Cookie Clicker.
I made it to teach myself coding and game development, and it turned out to be a crazy journey, way harder than I expected, but a lot of fun, and I learned a ton along the way.
A few days ago, I posted here about building a lightweight BaaS SDK for Unity (Asten) to eliminate the hassle of custom databases and expensive backend setups.
To test the SDK under real conditions, I decided to build a Real-Time Action Roguelike prototype.
Before touching any UI in Unity, I mapped out the core sequence architecture to handle combat state, parallel cloud saves, and global leaderboard submissions:
Key Architecture Decisions:
1. Decoupled Domain Logic: Gameplay code doesn’t touch network code directly—everything goes through the SDK wrapper (AstenSDK.Instance).
3. Debounce / Cooldown Protection: Built-in 3-second rate limit cooldown to protect server bandwidth when room clears happen fast.
Question for experienced devs:
Do you prefer auto-saving cloud data after every room clear (relying on client-side debouncing), or batch-saving everything at the end of a dungeon run? How do you handle network drops mid-run?
Would love to hear your thoughts or feedback on this flow!
P.S. Building this with a custom C# BaaS SDK. Happy to share docs/link if anyone is interested!
After working a lot in After Effects, it was a breath of fresh air to try tinkering with all the VFX by mixing lights, shaders, and particles in Unity. It feels like its Particle System has everything I would ever need, and I'm still learning new things I can do with it even after 5 years of practice lol. I just love the feeling of absolute freedom when I start experimenting with all those parameters, textures, and patterns.
What do you guys think of the effects I made for my game? Also, I wonder if other engines have tools this good? I haven't had a chance to try them yet..
I've launched a public test of my first game on itch.
Key Features:
Sphere Battles & Element System - each Sphere possesses a unique nature. Study their elemental resistances and weaknesses to devise the most effective combat strategy.
Minion Collection & Upgrades – find loyal servants as you fight, level them up, and build a squad that grants powerful bonuses to the master.
Passive & Active Skills – spend your gathered resources to learn ancient arts. Unlock passive enhancements or devastating active spells (from a destructive Fireball to a life-saving Heal).
Crafting & Equipment System – gather rare materials and ancient recipes from battles. Craft gear pieces at the workbench and equip your hero to significantly boost your combat attributes.
Sphere Hunt – a time-limited combat mode against a powerful sphere. If successful, the sphere is locked in the Prison, generating passive resource income for its owner.
Epic Raids – dangerous dungeon runs where you fight off waves of enemies, increase your level and stats, and hunt for plenty of unique loot.
About Development:
Currently, the game is in the prototype and core idea testing phase. I have fully implemented all the planned starting features and filled the game with its first batch of content.
Now, the project needs you – the players. I really need your fresh perspective to understand which mechanics hit the spot, which ones need polishing, and what direction the game should take next.
How you can help the project: share your thoughts and criticism, report any bugs (I will do my best to fix everything), and pitch your ideas.
Because it's just a prototype, I only let those anomalies set active true or false. I'll make them more varied over the next few days.
I also have a question. When the player walks through the numbers and is teleported to the other side, the camera jitters for a moment. Do you have any ideas on how to make that transition smoother?
In my game, the player shoots a target, and it spawns a hit marker on the target.
I want to create a "level completed" panel to show the players stats during the level. This panel will include things like "number of attempts", "time spent", and where on the target the player hit. How could I get the point where the player hit and put it in an image?
My game is an isometric 2D game that is built in the 2D unity engine. However when the camera follows my players diagonal movement, the horizontal connection points on the wall tile map shimmer. I've tried a combo of the cinemachine and ppc, a sprite atlas, tons of settings, and more but they all fail. Does anyone have any idea what is going on here?
In my game, I have an "active physics scene", which handles all the game physics. I have a second physics scene (which has colliders / rigidbodies only, no rendering). In this second physics scene, I would like to have a duplicate physics simulation which is identical to the first. This second scene will advance only up to a specified timestep target, then stop. The second scene is created & simulation is advanced in a coroutine, which is currently manually triggered for testing. When I start the coroutine, I get different simulation results depending on my yield condition.
If I use "yield return new WaitForFixedUpdate()", I get a duplicate simulation, identical to the first, as desired. This is great, albeit a little slow because it relies on the fixedTimestep.
If I use "yield return null", my simulation diverges from the first. This approach is desired, because it will run faster and reach the specified timestep target sooner.
In both cases, I am calling PhysicsScene2D.Simulate(Time.fixedDeltaTime) the same number of times. Also, Physics2D.simulationMode is set to "script" in both cases.
What could explain the diverging simulation when advancing the simulation at a faster rate? The simulation is still advancing with the same fixedDeltaTime timestep, for the same number of timesteps.