To coincide with the release of our remastered update of STAR SHREDDERS to Steam, we wanted to highlight some areas to think about whilst developing a game using Unity.
Everyone’s workstream may be different coinciding the end goal and the games genre and features but these are some methodologies and tips we have used whilst developing and optimising the build to its new 2020 standing.
Community & Feedback
Game development can be challenging and extremely long so the number one rule we have is not being shy and if you need help with anything, the community is always there to help!
Having access to forums and communities across game development has been key in keeping up to date with news, learning new technologies or getting feedback from early players.
We have been using Unity since 2010 from our days at University, followed with many games on the web, powered by ActionScript for Flash games or UnityScript for HTML5/WebGL games. STAR SHREDDERS was our first attempt to get a game onto Steam Early Access so we could continually create iterations from player feedback. During this development, we hit issues with performance and rendering which crashed our build.
Alongside this the game was initially developed in JS as JS was a good way to get ideas built for testing but as the build progressed, the limitations with Unity’s pseudo-JS script UnityScript started to appear.
The JS utilises no powerful feature like prototypes, first-class functions or closures and help can be hard to find in tutorials where C# is much more powerful with better functions whilst being more optimised. You can find more help and assistance on sites & forums with code snippets or video tutorials greatly available.
This accessibility will help with build time and development as you won’t have to worry about prerequisites with any assets found and updates to the Unity system will usually be okay with your build.
To ensure you don’t go off in tangents or discover whilst developing ideas, there is weight in preparing yourself and creating a plan of action before kicking off.
This could be the GDD, state machines, designs, lore, competitor research, market analysis, business plan or all the above but all this needs to be together and organised. I know it sounds pedantic but idol minds wander and if things are all over the place, most chances are the game will be in the same way.
Google Drive or Dropbox allows you to save all assets in folders that are in the cloud for safety with files. If you work independently or within a team, either will allow you to share documents with ease or use folders to save resources to share.
This ease of file sharing and access across multiple devices keeps the project alive as you can constantly add to the documents at any time from ideas to go into the design folder or add the 3D model you finished into your assets folder or a contact that you can add to your publisher doc.
As well as files, it’s good practice to fit the game files with some sort of version control. This can be achieved through Google Drive and Dropbox but you may find issues with multiple people opening the build in sync as temporary files are made which cause errors as it’s constantly being updated by all machines.
For us keeping our builds and resources on Dropbox seems to be the best method as STAR SHREDDERS only when working with one developer. This way the game could be worked on and saved in the cloud for the whole team to be able to open or have a built game ready to test when developments hit milestones.
Unity Cloud Build supports git through BitBucket and SourceTree so if you are familiar with version control on web projects, this is the same as you creating a repository which connects to unity through SourceTree. You can set the parameters and ignore what doesn’t need to be backed up then utilise Unity Cloud to create a build from your files in the cloud. This can be a great help if your build time takes forever to create a playable build due to power restrictions.
As we are using Unity, we have access to the Unity Asset Store, a marketplace of assets where developers across the world have lent their skills to create templates, shaders, animations and more to assist in your game development.
From help with UI, multiplayer resources or help with sound effects, the assets found on the store can greatly help to shape your vision as it’s essentially like working with various developers, animators, sound designers and core function creators at the drop of a hat.
Now depending what you get you will still need to put time in to execute the new asset with your game but smaller things can add flair and that extra level of attention you may miss as a developer.
Being a game developer means putting on a lot of different hats pertaining to aspects of game development so getting help to better your vision can be a life saver as time is precious so being able to utilise assets in areas of your game can bring it all together more consistently.
As your game builds so does the files and folders!
This is understandable as you will be adding resources and creating new assets throughout your development. This naturally will start to grow and can cause performance issues when its build time.
To remedy this, it’s best practice to start to clean up unused resources and organise the files in folders to easily find assets. This will be essential when migrating the files for future Unity updates as that can cause files to be obsolete so being able to locate is key.
You could even use tools to help like the Asset Hunter PRO, a tool that analyzes your project for unwanted files and decrease the project size.
Most of all enjoy the process!
The early design days thinking of game ideas and characters is usually the sweetest as creatively, these are the times you are inspired and excited to create.
As you go into development, this can start to diminish as it starts to feel monotonous with the amount of changes you need to commit too so we recommended switching roles from time to time. If you are coding for a while, switch to finding appropriate sounds for your game or create that needed promotional image.
This will add vibrancy to the development process and allow you to experience all aspects of the development and production if you want to take to market.