I love the Adventure Creator plugin for Unity. It’s no secret. Chris Burton has made an essential piece of software for me to make games with, and continues to improve it dilligently.
That said, there comes a time in the life of any piece of software where you get so familiar with it that you want to do things that go outside the realms of its functionality. Many of these dreams I had became official features, but sometimes you gotta break open Monodevelop and just start hacking.
Here are a few examples.
By default AC only supports 10 inventory grid slots, with 30 slots max. I needed 12, with a maximum of 36, so I followed the declaration tree, deep into the jungle of AC’s core code base, and modified the values there. Because of the cumbersome way Unity has decided to handle the plugin upgrade process, I have to remember those modifications so I don’t accidentally overwrite that file.
The reason I needed that many inventory slots is because I am using them for something other than carrying around items – I wanted a 3-row grid of icons in the dossier that you can click on to read information. So instead of making 36 buttons and hooking those up, I made 36 items and used their interaction functions to call on an actionlist (essentially a piece of code).
And it works great! This greatly simplifies the code I need to unlock a new entry in the dossier, and because it is based on items, it integrates very neatly with the Dialogue System For Unity plugin, which syncs items and variables between itself and AC.
Don’t even get me started on making the Dialogue System GUI style look the same as the subtitles menu made with AC’s built-in menu editor… Both methods of making a GUI are radically different, but I’m proud to have gotten both up to the same standard.
Another problem I had was that a character’s collider would flip to the wrong axis if he or she turned around, which made the clickable area much smaller.
This would be corrected if I switched to the newer and better Unity2D mode, which I’m in the middle of now, but that is a big endeavour so I solved it by making a direct call to the right-facing animation of the character. This means that to the engine the character had not turned around, but did have that appearance because it used a different sprite.
Converting the game to AC’s Unity2D mode is not free of challenges either. I have to flip every game object to a different axis, use orthographic cameras instead of perspective ones, and swap some components around for their 2D counterparts. This might result in a scene like this:
Not that it’s not entertaining, but I’d rather it works normally.
AC is a great plugin, and these workarounds are only a testament to its flexibility and extensibility. If I think of any more examples I’ll write more about it. And check it out if you’re working in Unity. Or is anyone reading this out there working with it? Share your experiences or projects in the comments.