• Register
Post news Report RSS [Blackreef Pirates] Unity3d custom tools

Warning: This is a pretty long technical post and a sort of love-letter to my game engine of choice. If you're not interested in game development technology or if you're trying to exit from the "NIH syndrome" tunnel please feel free to skip this entire post - The Captain

Posted by on

Unity 4

Unity version 4 was announced a few days ago and there are some features I'm really eager to use for Blackreef Pirates like "Mecanim" and the Linux export. The first is a great tool for creating better character animations and the latter is something the Linux gaming community was waiting for a long time (including me). This also means that the game will be available also on Linux from day one. Isn't great?!

Custom development tools

Talking about Unity, sometimes people ask me why I'm using it instead of other game engines...well, to me the greatest feature of Unity is the ability to create tools inside the editor itself, expanding or adapting the editor workflow to match our needs.

Here's a list of custom tool I wrote to speed up the development of Blackreef Pirates:

Node-based dialogue tool
This is the tool we're using to write all the dialogues and related actions (like starting or completing a quest, exchanging items, etc..).

Being a graphical editor, it's very easy to see where the phrases and player choices will lead allowing us to create believable characters or even entire "puzzles" inside the dialogues.



Game database
This is the central point where everything (actors, classes, abilities, item types, altered statuses, variables, world map points and quests) is stored.

Again, having this database built inside Unity is a big time saver: we can add or modify values while the game is running.


Mesh painter
Unity has a similar tool but unfortunately it can only be used on standard terrains.

Our approach instead allows us to paint (per texel) on arbitrary meshes, including terrains, caves or anything else :)


Custom "Asset Server"
Using a generic version control system (like SVN, GIT, Mercurial, etc..) has always been a problem for us when dealing with Unity projects. Try using very big files, or try to moving/renaming an asset inside the unity editor and you'll agree with me that using a generic VCS is not the best choice if you want to avoid headaches.

Clearly inspired by the Unity Asset Server, it's a very artist friendly tool we use to sync (and backup) the project. The client is directly integrated in the editor and designed keeping in mind how Unity works: it's based on the concept of "Unity asset" and not on the concept of "generic file" (all the .meta files handling is hidden from the user).

Sure, it's very minimal and it's lacking branches or more exotic features, but in our case it just works :)


...and more little tools...
There are many other little tools including:

  • Texture processor (for creating PC/iPad textures with different gamma)
  • Automatic minimap and ambientmap textures creator
  • Patrol points editor (for NPC)
  • Conditional NPC spawner editor

Good, you're still awake! Next week I'll show you what we created using all these tools :)

Post comment Comments
figalot
figalot - - 795 comments

You should drop that mesh painter on the asset store. It would sell a fair bit.

Reply Good karma Bad karma+5 votes
Experimen7
Experimen7 - - 41 comments

Yes, yes, and yes. 10/10 would buy.

Reply Good karma Bad karma+4 votes
bgarate
bgarate - - 3 comments

I started following your game some time ago, and I like very much how your project is going on. Please both of you, continue with the good work!

Reply Good karma Bad karma+4 votes
booman
booman - - 3,651 comments

I am all about Linux gaming! Thank for considering Linux in spite its popularity! I would be happy to do some game testing in Fedora 16 or even Mint 13

Reply Good karma Bad karma+3 votes
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: