Customizable Navigation Bar

Sunday, May 13, 2012

President Dev Log # 1: 56 Hours Working, 4 Sleeping

Starting off the first development log with the first screenshot of the game sounds good to me.




It's amazing just how much progress we have made within the last two days on this project compared to the last two weeks. It has moved from a game that had a few pieces constructed to a something playable and working in a matter of 56 working hours. 

As the titles says, since Friday May 11th, out of the 60 hours that I have been doing the development marathon with the team, 56 of those hours have been working, and 4 of those have been sleeping. I feel fantastic, and I mean that in the most sarcastic way possible. It is a good thing that we are seeing so much progress on the game, because I don't know how I would have lasted this long otherwise. 

As of this post, in our working version of the game we have:

Working AI:
- our computer AI will determine the correct card to lay next depending on what is currently up on the table. It will also pass if it is unable to play.

An audio manager:
 - efficiently creates and plays music from anywhere. It saves us from having to attach components and take up memory that doesn't need to be taken up.

Custom Rules:
- Everyone that has played president has played it with different rules, now not only can you play different modes, but you can create your own rules and play with them instead

Custom GUI:
- Unity's GUI system has been called inefficient. While it is very robust and useful for rapid prototyping, I do agree that things could happen more quickly. So we created our own GUI system and even have fancy editors so that you can click and drag your GUI objects around.

8 bit sound effects!!!
- Yeah, we have an 8 bit sound effect creator, just so that we can create placeholder sounds for coding reasons

Card Cam
-We noticed that since this is being created for mobile, top down view is boring, and there is a really harsh angle on the cards on the table, that we needed to find a way to fix the problem without affecting gameplay. Card Cam was created to do just that. Now you can see the cards currently laid on the table in the corner of the screen in a window large enough to see the cards, yet small enough to stay out of the way.

So with all of these features currently finished, or at least 95% finished, I'd say progress has been fantastic. With that said, currently the next features to be implemented are:

Gestures:
- We want a gesture manager to take a look at what the player has been doing and if there's any sort of gesture that can be recognized to fire an event off

OpenFeint:
- Achievements, everybody loves achievements.

Facebook and Twitter integration:
- It is something that more and more apps are doing nowadays, and its more acceptable to see. On top of that it is like free advertising not only for games but for businesses in general. There really is no downside to integrating it.

Networking:
-We are starting with peer to peer networking. It is a much simpler approach and we currently don't   have a dedicated server to do player vs the world games.

That's where we are at so far coding wise. The art is also coming along great with Blake our artist. He's been pumping out 2D and 3D assets like a mad man and we currently have two environments worth of modelling completed, with another two to go. Things are looking very good now, it's nice to test with the game using a real table model instead of a cube.

Also I want to mention the guys at the Nexus Game Studio. They are Indie developers located in Barrie who are currently working on a game called Infinite. This is something that I think you guys should take a look at. http://www.nexusgamestudio.com/

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: http://bit.ly/91iqsr.

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: http://www.tojam.ca/home/default.asp

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!