Multi Scene

🟣 Multi Scene

A multi-scene workflow/tool for using multiple scenes in one go in Unity.


Summary

Role: Sole Developer
Team Size: 1
Engie: Unity
Platforms: Unity
Studio: 🔗 Carter Games

Downloads
Github: https://github.com/CarterGames/MultiScene
Itch: https://carter-games.itch.io/multi-scene


Multi scene is a scene management tool I first developed while in my job as Fumb Games & later took on as a personal project to release. The idea is to make working with multi scene workflows a bit easier in Unity with a few editor tools & systems.


The development of the tool started with the 🎮 Merge Motors project at Fumb Games, with the game split into 2 main scene groups with an extra group for entering the game. This proved to help a little with merge conflicts and more, however did prove to not be overly useful for the studio at the time as most projects just had 1 developer and the art team hovering between projects. That didn’t stop me from going on to develop it further, having used it in a variety of personal projects that I haven’t released. Its most useful for bigger titles on platforms with more resources like PC. While mobile does work, it does take a little longer to long on older devices that can hinder the game overall.

Currently the tool has a fair few features that include:

  • Multi scene management
    • Loads groups of scenes together
    • Some helper methods for getting if a scene is loaded
    • Events for when scenes are loaded
    • All static
  • Scene grouping system
    • Scriptable object based
    • Custom inspector for ease of use
    • Group scenes together to be loaded by the manager
  • Scene group loader window with categories & sorting
    • Load a scene group in the editor at the press of a button via a custom editor window
    • Organise & group scene groups together
    • Show or hide groups of scene groups
  • Easy to configure & use
  • Cross scene referencing helper script
    • Use familiar methods such as GetComponent between scenes with a custom version of those methods
  • Custom Awake, Enable & Start interfaces
    • Simulates the normal methods of the same name when all scenes have been loaded
    • Can be used to sync any logic to multi scene loading
  • Do not destory scene accessor
    • Allows access to the do not destroy scene with all cross scene reference methods to match
  • URP camera stacking support between scenes
    • Stack URP camera between scenes

Build Versions

🟢 Build Versions

A build versioning automation solution for Unity.




This asset is a automation tool that saves developers from needing to manually update their project build numbers. Handy to both manage the version numbers of a project but to also ensure it happens on each build made.


This asset was mostly made while I was at work. I felt the need to make this as I was getting really annoyed at myself for not updating the build number when making builds to test. So I decided to automate it. The actual code to do this is pretty simple, its just a interface implementation really. I had a working version at work really quickly and I found it rather useful. Because of this I decided to check the market for any asset that do this and found only one that does something similar, but saves it differently and wasn’t free.

Because for these factors I decided to make it into a public asset. which is this project, the asset if free like my other assets and requires zero user setup which is thanks to some cool editor scripting that generates the scriptable objects for the user if they don’t exsist. I’m pretty proud with how this turned out and am happy to support it into the future.

Detective Notes

📱 Detective Notes

A clue/cluedo note-taking app.



Summary

Role: Sole Developer
Team Size: 1
Engie: Unity
Platforms: Android
Studio: 🔗 Carter Games

Download (Android): https://play.google.com/store/apps/details?id=com.cartergames.detectivenotes


This app is a replacement for the Clue/Cluedo paper detective notes into a digital form, as simple as that. I made the project public in-case others found it useful which many did.


This is a personal project, as when playing a game of camp cluedo with family I found it hard to read my notes, So I looked for an app. Which there were some for android, but none for IOS which most of my family uses. The app was based on an android app which I used for a bit, it was simple and I realised I could make similar app in a short period of time. I knew it wouldn’t be hard and could be done in a few days. It went rather well, I didn’t run into any major problems which was a nice change.

While this project was meant to be just for me, I have since decided to remake the project and plan to release it to the Google Play Store in the near future. The reason I’m remaking the project is because it is incredibily similar to its competitors on the market and I want my version to stand out. Most other apps on the market for this game were a bit crowded, had ads and didn’t look all that great. I aimed to make a modern looking app that was easy to us. I feel I succeeded as the app is one of my most popular projects as of writing.

C.W.I.S

🎮 C.W.I.S

A survival game where you shoot down missiles.



Summary

Role: Sole Developer
Team Size: 1
Engie: Unity
Platforms: PC, Mac, Linux
Jam Theme: Climbing
Jam Length: 3 Days

Download (Itch): https://carter-games.itch.io/cwisss9


C.W.I.S is a tatical survival game where you fend off endless waves of missiles heading right for you. How do you stop these missiles? with a C.W.I.S ofcourse! Your ship has two of these, one at the bow and another at the stern. While these can shoot missiles out of the sky with ease, they have limited ammo and can easily overheat. As you play you can shoot supply crates to get ammo and rank up your weapons over time when they make successful kills.


This jam was a nice one, though the theme made it a bit harder to work with. Climbing meant a lot of games would involving going up and down, so I went for an alternative idea using ranking up as the main idea for the game. The development process went reasonably after I got the main mechanics working. A full break down of my throughs will be in a video at the top of this page.

I picked up a few new skills such as:

  • Online leaderboards (via php/MySQL)
  • Game Minimap Implementation

This was a rated game jam and I finished around the middle of the pack. Doing well in some categories and worse in others. The worst being theme adherance, which I can see why lots didn’t see it, but I wanted to make something that was more abstract with climbing through the ranks being my interpretation. I was still happy with how the game turned out and it got played a fair bit which was nice.


After the jam I took a break from the project but came back to it several times as I likes the core concept of the game. I started the first remake around when I was looking for work and in my first job which was in game QA testing. After gaining my first programming role I ditched the project to focus on picking up new skills from work and trying them out instead.

However I decided to come back to the project again in 2022 to release the game as a proper small game. I’ve even gone out of my comfort zone to make a development log of the progress made at the same time. The series can be seen to the here and the new game pages can be viewed below.

Leaderboard Manager

🟡 Leaderboard Manager

A local leaderboard solution for Unity.



This asset is a local leaderboard solution for developers to make simple leaderboards to their games. It started out as a personal solution to the problem, but after a few interations I decided to make it public as well for all to use.


The Leaderboard Manager asset was designed to allow users to add leaderboards to their games with ease. Like most of the asset I have developed so far, this asset was targeted at beginner developers who might need a little help with some minor functionality. I worked on the asset for a couple of weeks during August 2020, with the aim to release it by the end of the month. The development of the asset was rather simple and problem free. However I did go ahead after I had spent some time in my industry job going through the asset and making it way better.

The latest 2.x version has a lot cleaner code with the option to have multiply leaderboard and more options to display the results with both a standard text & TextMeshPro display script provided. I also did a much better job with the documentaion, scripting refernece & changelog.

Crushing

🎮 Crushing

A survival game where you dodge crushers.



Summary

Role: Sole Developer
Team Size: 1
Engie: Unity
Platforms: Android
Studio: 🔗 Carter Games

Downloads (Itch): https://carter-games.itch.io/crushing


Crushing! is an endless survival game where you control and orb which is surrounded by crushers on all sides, your objective is the guide the orb away from the crushers for as long as possible.


This project was initially just a filler project to give me something to think about over the Christmas break of 2019-20. I had lost a family member and had their funeral shortly after and my mood was not the happiest, especially with my last semester coming up. I was updating my portfolio as I did most breaks, and noticed I had a lack of store released projects. Hence I came up with a simple concept for a mobile game and went about making it.

Initially I was wanted to add all of these amazing features into the game as you tend to think when starting a new project, these included:

  • Enemies that would spawn and target you.
  • Economy that would be collected as the player moved around the game scene.
  • Death recovery, where the player could shield against a crush or recover post death for watching an advert or something.

I made a start on a lot of these features in the early days as well as making a basic movement system where the player could tap and drag the player around to dodge the crushers. While this movement system worked, I would it to not be the best system as the player could easily break out of bounds as well as restricting the view for the player on smaller devices as their finger needed to be on the screen the whole time to move.

Shortly after making a prototype I had to direct my focus back onto my university work as my final major project was coming up. Though I later returned to the project after finishing my degree in early June 2020. This first thing I did was remove most of the code I had already made and refactored the remaining code to use the new standards I had been getting into including namespaces and interfaces.

One of the biggest challenges I had around this time was with the google play services, this was due to it being completely new to me. After watching a few tutorials on the matter I was able to install the plugin and then hit my next problem. When following tutorials you had to authenticate the user before you could use the services, I had it all setup, but it was not working! After a couple of weeks of troubleshooting it turned out to be a build setting that was causing the problem and all was fine.

Overall this was a nice project to work on and allowed me to experiment a little with new features

Save Manager

🔵 Save Manager

A game save management system for Unity.




The Save Manager was an idea I had one afternoon after spending most of a day helping an friend with their saving troubles. I felt that, while the code was really quite simple, that some people may find this type of an asset useful, esspecially for beginners.


1.x

The development of the asset was rather simple and only took a few days to get fully working. I already had the code for saving and loading down, I just needed a way of making the save class easy to use. I decided that I would make an editor window for this. The window was reasonably easy to create, though some of the scaling took me a little while to get the hang of again. I had been a while since I had done any editor window programming. The hardest part of the whole asset was writing the code that would convert the user input into lines of code for the SaveData.cs class. I ended up making a method that would convert the lists which held the user values into a list of strings that were formatted correctly for the SaveData.cs class. Then just using File.WriteLine to write each line into the script one by one. This proved to work well and as long as the user didn’t make a typo or move the script it would work perfectly.


2.x

Version 2 which came out in early 2023 was a total re-write of the asset. The save system uses JSON now with scriptable objects to hold the data. With the scriptable object usage, users can reference their save data with direct inspector referencing if they’d like as well as via code. This version also has new features such as a save editor where you can edit the save data in the editor without opening the save data. A save profile system to load states of the save data for testing & support for WebGL & encryption.

Transform Colours

⚪ Transform Colours

A transform component visual aid for Unity.



The idea for this asset was a simple one, I wanted to have the transform component’s X Y & Z boxes have the matching colours in the scene editor. This was a one day project as it wasn’t super hard to do and I found it to be quite a fun little asset to make. The asset itself is only cosmetic though I do plan to make a Transform Tools asset that will add extra functionality to the transform component as well as having it work with this asset if at all possible.

However, after the initial release I found several rather bad bugs that made using the asset more of a hinderance than a help. Such as having the rotations reset on select which would muck up rotation on any object selected. I addressed the majority of the issues that I found in the 1.1.x updates thanks to some help from a user on my discord server.

Audio Manager

🔴 Audio Manager

A game audio management tool for Unity.


Summary

Role: Sole Developer
Team Size: 1
Engie: Unity
Platforms: Unity
Studio: 🔗 Carter Games

Downloads:
Asset Store: https://assetstore.unity.com/packages/slug/149123
Github: https://github.com/CarterGames/AudioManager
Itch: https://carter-games.itch.io/audio-manager


The Audio Manager is a scripting solution to help developers implement audio into their games. The asset has several scripts for playing sound effects and music with custom editors to make a easier interface for the user.


The idea behind this project first came about in my second year at university where I started to get into unity editor scripts. We were taught how to make a simple audio manager using 2 lists, a dictionary & a simple play clip function. This became the basis for this asset. After I learnt the script and how it operated I added some additional methods that would play the audio in different ways, such as playing from a specific time or with a delay before being played.

A few months later I was introduced to unity editor scripting by some students in the year above in an optional seminar called VGA (Video Games Academy) which was run by final year students. This seminar inspired me to look further into editor scripting. As I learnt editor scripting, I began making custom editors to make the scripts more appealing in the inspector as well as automating the process of adding clips to the lists. I felt the result is a decent asset, with plenty of options to expand the asset in the future. This was the first version of the asset (1.x).

After having the asset out for a while, I decided to improve it further by making the inspector look better. I also changed the backend from lists to scriptable objects in version (2.x) which also re-worked the whole asset for the better in the backend. This helped keep the data clean and hidden while also making it possible to add even more functionality. This also had some more options for hotswapping audio libraries, a better music player & more. This version has been out for around 2 years with several patch updates to fix bugs found.