Adventure Creator and the great workaround festival

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).

menu

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.

dlggui

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.

2 thoughts on “Adventure Creator and the great workaround festival

  1. I’m still thinking about getting AC, yet I’m a bit of a puritan wanting to program all the stuff myself. Does Chris include source-code with AC by the way? It would be cool to see how he approaches things.

    Speaking of weird stuff when using the 2D Unity stuff – flipping scale axes will mess with the collision system. So having collision shapes that change position when flipping will result in not untouching things that it was touching when unflipped. Just one of those things, I guess.

    Like

    1. Ha wow weird! Stuff like that, indeed.

      Yep, AC is built out of regular .cs scripts, so you can open, inspect, and modify every bit of it I think. Very useful if you want to tweak a feature, like I said for example the extra inventory slots. You can also write your own actions that integrate with AC.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s