Leaderboard Manager (2.1.0)

Leaderboard Manager (2.1.0)

While it is a little delayed, the new rather long awaited Leaderboard Manager update is here. So what’s new?

Summary of changes

Mechanically the asset is pretty much the same as the earlier 2.0.x versions of the asset but with some updated backend logic for future updates. A full rundown of the behind the scenes changes:

  • New saving system similar to the Save Manager’s setup with a JSON save setup instead of the legacy binary save file setup.
  • Updated the structure of leaderboards to allow each entry to have its own unique identifier so you can reference an entry easier.

There is a porting tool to update old saves to the new structure. More on this in a moment.

  • New settings structure to match the rest of the assets released recently with per user settings and a settings provider flow.
  • Offline documentation is now complete instead of a simpler version. The online docs are also updated to match the rest of the assets using Notion as a host (easier to maintain in a pinch and has search built in).

There are also a new editor to allow to viewing of existing leaderboards as well as a setup to port older saves to this new version, both in the editor and at runtime.

Editor

With the editor tab you can view all leaderboards currently in the save file. You can’t make new ones here as the API isn’t designed to have boards made in the editor, instead having them made at runtime. You can however delete board should you need to test the setup and view the entries to make sure they appear as expected which should help with debugging.

Porting data to 2.1.x from 2.0.x

As mentioned the new structure means any old data from the previous version will need updating. A full rundown is in the documentation for the asset. But basically if you used the old setup to save the score as time by saving the score in seconds etc. As you can now save score as into a time class instead. There isn’t any major work you need to do to achieve this, just define the board ids and the type to convert them to and the asset should take care of the rest.

Note: you will need to convert boards even if they were just a score field.

An example below of a board called “Arcade” being converted to a score board in the new version.

What’s next?

With this update done, I’m mainly focusing on support and getting back into my main side project for the year as I’ve had to take some time off of it to get this out. I do have a few game idea’s that I may prototype at some point or at-least write out some ideas for next year to work on proper. More on these when I have something to share.

Year In Review 2023

Year In Review 2023

Welcome back to another year in review. This is now a traditional post every year showing some of the numbers behind the scenes and giving some ideas to what will happen next year.


Summary

From last years A plan I managed to get 2 of the 3 tasks done. The Save & Audio Manager updates both went out this year. The Save Manager back in spring and the Audio Manager a few weeks ago. Sadly the Leaderboard Manager update didn’t get to be worked on this year, but it is in the pipeline and likely to be the next asset store thing I work on next year on the side.

Downloads

This years downloads were another all time high. Google play took the spotlight again with Detective Notes popping off a little through the second half of the year. The Unity Asset Store managed to weather the runtime fee to an extend, seeing a reduction in September/October before returning somewhat to normal. The biggest shock is a bit of luck really with Itch getting some traffic. The Save Manager managed to get some good SEO by pure luck and is currently getting daily views and a few downloads a day. This was a supprise, but one I’ll happily take.

Money?

I got a few donations this year, the first Carter Games has ever received. Nothing massive or life changing of-course, but much appreciated given the work I put into this side hustle.

Upcoming

Next years going to be different to the last again. Instead of having plans I’m just going to working on a main project with a few on the side if I get stuck or need a break from it. The main project isn’t actually a playable game or anything but a portfolio project. I started a little project last year on the side to re-create Persona 5’s turn based combat system from a code perspective. The visuals are trying to minic the style as well but don’t have to match or anything as long as the logic functions. Given the projects scale I really want to finish it. So I’ll be focusing on this next year for a change of pace. However, any asset support that is needed will come first dependant on the severity of the issue.

I have also roughtly planned out several side project tasks to do if I feel like taking a break from the main one. These don’t have any priority, but some of these may come out throughout the next year or so.

Closing

Overall, not a bad year of operation for a side hustle. I’m really happy how the Save & Audio managers turned out and hopefully I’ll get the rest of them updated at some point next year and finish the portfolio project too. I’m hoping for 2025 to start a full on game project as the main task for that year. So we’ll see how it goes. See y’all in 2024.

~ J,

Audio Manager 3.x Release!

Audio Manager 3.x Release!

, , , ,

A post annoucing the release of Audio Manager 3.x & an update to the Save Manager as well.


Audio Manager 3.x

Its been a long time coming, but today the new Audio Manager version is released. Unlike previous releases I’m going to stagger this one to release on the Unity Asset Store next year. This is mostly due to the asset’s stability not being great and the high likelyness of bugs from the total re-write. The new version has a lot of new features that have been teased before, but a quick rundown of some of the features:

  • Automatic scanning of audio clips in the project without any user input needed.
  • Dynamic start time for each clip to start where it starts playing audable audio, cutting out deadspace on clips and saves editing out of Unity.
  • Flexiable API for playing audio clips or groups of clips. The setup is more modular than before for easy debugging and fixing.
  • Editor to manage the library, assign groups of clips together and music track lists. Saves workarounds that were needed in the 2.x version of the asset.
  • No setup needed, just import and go. Before you needed to setup the inspector the use it.
  • Entirely static API, no scene references needed. As the static instance was the more common setup, this change makes it way easier to access the API without needing lots of scene references.
  • Music playing setup. Still a simple setup, but plans to make it better with further updates.
  • Inspector players for quick prototyping without needing to write any code. Like the old audio player class, but allowing for edits to be applied in the editor at will instead of needing a messy inspector with all options avalible.

So as of this post the asset is avalible from its Github repository and the Itch page. With the asset store coming early next year, partly for stabilty fixes, partly due to the review process which will likely take longer around this time of year as is. Links before:

Github: https://github.com/CarterGames/AudioManager

Itch: https://carter-games.itch.io/audio-manager

Save Manager 2.0.15

Along with the Audio Manager release, there is a small update to the Save Manager also coming out at the same time, more or less. This update will go live to all stores and mostly fixes some editor stuff that I worked out in Audio Manager 3.x this week as well as some issues with the save editor not refreshing to the latest data.

Links can be found here: https://carter.games/savemanager/

That’s all for now xD

~ J,

An Update

An Update

, ,

An update on the whole Unity situation for Carter Games.


Just a quick post to update y’all on the whole Unity thingy. So as you’ll have likely seen by now they have announced they were reverting pretty much every change with the runtime fee thingy. The news is pretty good actually. Had they announced that to start with everyone would’ve liked it for the most part. Sadly they didn’t and the damage in trust is done. The fact that the original plan was what they though was good, despite their insiders from the community & staff supposedly warning them it wasn’t, just shows what matters to Unity as a company. Money & greed.

I’ve never been a fan of public companies & shareholders etc. Being a shareholder should mean taking the risk of paying out when a company is doing bad as well as getting some extra money when its doing well. Not just free money which it seems to be treated as today. I could rant about that for ages, but you get the idea.

As for Carter Games and its future developments. I’ll still be working in Unity for now with the assets I’ve made. Sadly other engines don’t quite have the things I like about Unity in them in quite as nicer setup. I’ve given both Unreal & Godot a go over the last few weeks. Godot certainly has promise, but its missing some key things for me currently. Those being a more in-depth inspector for exposing data classes, world space UI & some 3D bits that are early days. I do like the whole node setup though, that is nice. As for Unreal, looks good, but like 0 docs for C++ code which is a bit annoying. Blueprint is good and all, but I’d prefer to do the C++ a little if I went that route.

So future plans. I do plan to keep with Unity development stuff for now. So Audio Manager 3.x is still on the books to be released this year with an update to Leaderboard Manager sometime early next year. Next year is still in the air for what I’m doing, I do have some active side projects I want to finish as well as a game idea or two to flesh out and maybe prototype. But more specifics will be posted in the year in review post for this year. As for porting asset and stuff to other engines, some of them may be portable in a slightly different setup to Godot. But I’d need to do a lot more research. I’m also not sure I’d be able to make the same quality of asset automation in other engines, but we’ll see, it’s not totally off the table in the future. Audio Manager 3.x will likely be a bit delayed again…..I know, its a pain, but I want to get it right. That and it just takes time to develop, just like how games take a long time to make. I’ll keep y’all up to date on how that’s going.

That’s all for now xD

~ J,

Common Library

Common Library

, ,

A new release of my personal code library that I’ve been using in some assets and had public for a while.

What is this?

The common library contains a load of useful scripts for game development in Unity. Previously known as Scarlet Library. I’ve been adding to it as and when I found a feature I needed, wrote a solution for and found that I could use in other projects. Some bits are complete systems to aid with a specific problems while others are just helpers to save writing loads of lines of code. The library is a work in progress and will have some scripts not written fully occasionally in the code. But features are tested before they are added so it should be stable enough to use in projects.

Used in assets

I’ve been using some of this library in the asset store updates I’ve been making recently. You’ll notice the events system & serializable dictionary are in the latest Save Manager updates for example. I also use the same settings setup for storing the settings for the library as I do with assets.

Get the library

Only on GitHub: https://github.com/CarterGames/Common

Key elements

Some of the key features of the library so far include:

Data Setup
A setup that allows you to reference a scriptable object at runtime without a direct inspector reference. Handy if you are working with a lot of data. You just inherit from a base class that is just a standard scriptable object and your good to go.

Events System
A well used system that essentially just handles unsubscribing from a standard system action when you subscribe to it, helping to avoid over-subscription by mistake. The system also allow you to add identifies to anonymous listeners so you can remove them as well when needed if you don’t want to match the method params for the event etc.

Runtime Timers
A handy setup to let you run logic after some time. Can be used even in static classes without any issues. Handy if you can’t write a coroutine or just want some logic to run after a short pause.

Game Ticks
A handy optimisation feature that lets you run logic on update but not every frame. By listening to the tick instead you get updates every x frames instead of every frame. Helping with performance. You can use a global tick or instantiate instances for different systems.

Custom Time
Make instances of time, instead of using delta time for everything, you can set systems to use a custom time setup. Making things like pausing your game trivial without needed to pause the global timescale for everything and running into further issues due to that.

Random
A system to help generate random numbers, with options to choose a provided from Unity Random.Range, System Random and Alea PRNG.

Referencing
A handy helper setup to reference object in a scene or all scenes. Also comes with a CacheRef class to help making properties that are ensuring a reference is made if one isn’t already. Saving some typing.

Static Instancing
Love it or hate it, its handy to have some things static. You can have a class have a static reference without the whole class being static, use a base singleton class or run coroutines from a static instead generated at runtime.

Hierarchy Headers
A small editor tool to add header/separators to your hierarchy. These are really clean and easy to setup, making it easy to organize your hierarchy.

Panels
An easy way to have a popup in your game. Just inherit from panel and you’ll have ways to listen to when the panel is opened/closed and be able to track all open panels in your game.

And lots more!


There is a lot more to the library including extension methods galore, string formatting help and more. But if was to cover every script I’d be hear like all day writing this post. There is documentation some systems, but as this library is still in development, only some sections have links to documentation. When the library hits 1.x all setups will have docs, but its takes a while to write it so bare with as it gets written.

I am still working on Audio Manager 3.x as well. Currently testing to core logic as I refactored how it worked to accommodate different playing options for groups. I have also got some life admin to do over the next week or so as my car broke down… A bit stressful to deal with so I’ve been taking it easy the last week or so. But Still hoping to reach that end of September deadline if I can….

I’ll update you’ll soon on the progress of the Audio Manager update when I have more the share. Speak to y’all soon

J,