Games are never actually done, but at some point you need to stop working on them because they need to be shipped or submitted as assignments. Still, there are a few things you should consider before publishing anything. Here’s a handy checklist:
Does the game run?
Does the game run outside of Unity (or whatever developing environment you are using)?
Does the game run on a computer that is not yours?
Did you build the game for the other major operating system that is not the one you use?
Does the game open in fullscreen?
Does the game look fine on different resolutions?
Does the game have a title and is it displayed in the game?
Does the game display the authors’ names or team name?
Can a player understand how to play without relying on external information?
Does the game have a splash image and a custom icon?
Does the game have sound?
Can you quit the game without alt-tabbing or killing the process?
Is there a way to restart the game without quitting?
Does the game restart when you reach game over or any end state?
Are the names of the files you are publishing consistent with the name of the game?
Does the game support game controllers (if they make sense for the gameplay)?
Does the game comply with the content guidelines of the platform?
Does the game meet the Technical Requirement Checklist of the platform you are targeting?
(the actual list may only be available when you subscribe as developer)