Customizable Navigation Bar

Friday, May 11, 2012

President and My New GUI System

So it's been a while since I've posted last so I just wanted to give you guys an update on what was going on as of late.

I'm coming out and telling you guys that the new project I am working on is the President card game for Android. For those of you who don't know the rules, here is a link that explains a good chunk of it:

I am working with a team totaling five people. It has two programmers (including me), two artists, and our marketer and animation specialist. 

The real reason for my announcement of some of the details on this project is because of what is occurring this weekend. We are pulling a 72 hour marathon of development on the project in order to get a working version going so that this project can be released as soon as possible! This weekend is the weekend of the Toronto Game Jam, and that is what had inspired us to do this. 
Link to TOJam for the curious:

I am currently on the train to meet with the rest of the team and I decided that I was going to do development updates as the 72 hours passed, and possibly do a video blog afterwards so you guys can see how much of my sanity I've lost after coding for 72 hours or so. 

Something else that I am giving a heads up about is a new GUI system that I am making for Unity. The reason this GUI system is coming about is because of how Unity handles its GUI. It's not so efficient, and it is a little bit of a pain to compile and run every time you want to see how the GUI is going to look when you play the game.

The goal that I had set out to accomplish was to create an efficient GUI system, that was also extremely easy to use. So far it is definitely easy to use, you can set everything up in the editor and you don't have to hit play to see your results. Everything is in the editor window. 

One thing that I wanted to do to reduce draw calls on the GUI system was use a texture atlas. So what I created was a UV editor for your windows and buttons. This is what my basic version looks like so far:

All you need to do is click and drag where you want to move and scale your UVs to and it will take care of the rest. This makes it very easy for a designer to customize buttons and windows based on the texture atlas.

The position editor is also very basic and easy to use. My GUI system uses what I call a GUIBundle. It is basically a chunk of GUI that will either appear in front of or behind other GUI Bundles. The reason I went this route was because it makes overlays, new windows and just activating and deactivating GUI extremely easy. This also works the exact same way as the UV editor, where you just click and drag to move the position and scale of the GUI objects on the screen.

I'm thinking it would be nicer to see the actual GUI objects instead of semi-transparent grey boxes though.

Anyways, this is just the beginning of the GUI system. One thing that I forgot to mention earlier is that the whole design of the GUI system is to be component based. The reason that I went this route was because it allows you to create multiple types of objects with just a few scripts. Scroll bars for example are as easy as dragging about 3 components onto a GUI object.

Anyways, as development progresses over the weekend there will be more updates to follow! Keep coding!