Sunday, January 31, 2016

In the Mood to Debug

Oddly I have been in the mood this last week to fix bugs. Small things mostly that have been annoying me, and in fact some things I have never even seen to be wrong yet.

It is vitally important for me to take advantage of this mood. You see some programmers are primarily focused in their genetic make up to debug and fix bugs, some are more disposed to create new content. Then again some are more focused on all sorts of differing aspects of the codding jobs needed to create a finished game. For me I love to create gameplay, game balance and features that people can play and enjoy. That means that I am not disposed primarily to debugging the game.

Though of course I know that I need to fix bugs in the game to make it worth playing.

So now I am actually enjoying fixing my game. As each bug is fixed I like the more solid, reliable complete feeling game that I am creating. Leilani is helping by locating some of the bugs for me to fix as well. Which is a GOOD thing as it makes the game more hers as well. Also everyone needs help finding bugs. That is why we have testers at work, and believe me they are great at finding bugs in the stuff we work on there.

How long will this mood last me? Well that is a good question, but I do not know, but I am good right now... so onwards. Better, cleaner game... oh yeah.

Go make the most of your mood, creative, cleanup, whatever it is... use it!

Da Voodoochief

Thursday, January 28, 2016

Overnight Coding Solutions

I have stated this before, but I will state it again.. and probably again and again.

I do some of my best coding while I am asleep!

Sounds weird doesn't it. Lets take last night as an example. I altered the way a certain system works in Very Bunny Haha. I used to have each NPC that you touched register themselves into a list using the OnTriggerEnter2D(), and then unregister with the OnTriggerLeave2D(). Somehow I was occasionally getting ghosts left in the list when combinations of the same NPC names touched and untouched the player. I really felt this was not the best way to do this and so wanted to go to a more live list instead, using the OnTriggerStay2D() function. Then each frame they register themselves and I simply have to clear the list at the beginning (or end) of each frame.

When I changed the code to do this it appeared to be working perfectly, but I knew there would be a bug somewhere from such a fundamental change. I never expected to find it where I did, duh! Terrible tester am I! haha. The bug turned up when I tried to accept a quest. I could trigger the quest offer popup but could not accept it as the list was somehow empty when it ran through that piece of code. I was clearing the list at the end of the Update() function for my player. I felt this should be ok, but it always felt dangerous.

Last night I found this issue and though I was tired from a hard days work and an excellent tennis match in the evening, I felt this should be solvable in an easy way. Nope, not at all. While I watched some TV at the same time as trying to solve the issue I failed. Went to bed instead as I was not getting anywhere after looking at it for like 1.5 hours.

This morning I awake with knowledge of how to solve it. All I had to do was move the clear to a better place in the code. Before all the Updates are called and before Events are handled. Well that seems easy... So I moved the clear to the beginning of my FixedUpdate() for my player and now it all works. The only questions remains... is there another bug waiting for me to find, hidden, seething, ready to pounce when I least expect it?

Have a great Sleep Coding night everyone :)
Da Voodoochief

Monday, January 25, 2016

Plong the Minigame for VBHH

This is new Minigame I have created for Very Bunny Haha. It is obvious where the inspiration comes from for this Minigame, but let me fill you in on a few of the more subtle design decisions.

1. The Piston. This may seems like an odd thing to add to the game, but it pushes the gameplay in an unusual twist compared to Arkanoid and Breakout games that have gone before.
2. The spawning every 10 seconds gives a beat to the game. Ramping up if you are doing well, but keeping going if you are not doing so well.
3. The 5 lives limit along with the 10 second spawning is what really controls the length of the game.
4. The accumulating scores. This is so there is some good incentive to keep the balls around as long as possible.

The game is pretty fun and turned out really well. Which is always nice when you have an idea for a game.

Hope ya liked what you saw,
Da Voodoochief

Saturday, January 23, 2016

The Cakes are not a Lie

Check out those Awesome cakes that Leilani has drawn up for Very Bunny Haha. They are almost good enough to eat off the pages she drew them on.

As a note on this, the colorful Donuts and Cream cakes are colored Grey and that means I can color them up myself. I chose bright colors to show off the technique here in this picture. I know they are spread out funny, but that is because the rest of this scene is a simple test set up. We will get it all finished once we get the cabinets finished and scanned in. Then we can spread literally 40 baked goods around.

Finally I have a Cake script running on each of these items. The script is real simple. This is it in fact!

void Awake() {
   if (Random.Range(0, 100) < EATENCHANCE)

As you can see from the script, it simply has a chance to delete itself when spawned as the scene is loaded. This is good though as it means that every time you go into the Bakery the display will vary. Hopefully giving it a more lifelike and livable feels as some cakes have gone and been eaten. Yum.

Da Voodoochief

Friday, January 22, 2016

Logo design work

My mate is a great artist. He has helped me on a number of projects and always comes through. In fact he is so good he usually surprises me with something in his artwork that I wasn't expecting. He sort of volunteered himself a few days ago when I was chatting to him about looking for a Logo design, and I have to say I am glad he has.

This artwork above is what he knocked out. Amazing... it fits the game so well with all those bunnies and he has the farming aspect in there as well.

I love it, and I am very excited to see what he can do as far as tidying up and coloring the artwork. This area is of course his expertise and not mine, but I think I can be quite picky at times. Perhps not this time as I see not just this nice complete logo artwork, but also the VBHh Icon along with a cool silhouette logo. Pretty freakin sweet.

Da Voodoochief

Monday, January 18, 2016

Reputation gets a Heart

This picture above is a follow up to yesterdays images. That is because Leilani created me a lovely set of new artwork. Most of it is the Bakery and lots of cakes and bakery goods etc. However she also did the heart so we can get this look a bit more completed in the game.

I think the heart adds a nice look and feel compared to the Apple I was using hehe. what do you think?

Alrighty, Time for bed,
Da Voodoochief

Sunday, January 17, 2016

Reputation Menu in VBHH

This a picture of my newly designed and created Reputation Overlay Menu added to Very Bunny Haha. Which means that I have added the Reputations to the game. The idea is that you can earn Rep with various Characters within the game. Usually by completing a quest for a Character, but there will also be other ways to earn some Rep. Rep is good for stuff as well, from a discount from the Vendors to being allowed to buy special items if you have earned enough Rep.
So this picture shows the way I have the Rep Menu looking in game. The name of the Character followed by a display of the amount of Rep at your current Rep Level. Finally on the right there is the written name of the current Rep Level you are at. The Apple will be changed to a Heart very soon.
Following is a picture showing the code I wrote to accomplish adding the Reputation set up to the game.
In the code for the game I wanted an easy way to add the Reps for various characters easily. So I created a little Struct to use for this task. As you can see above I set up 3 characters currently for testing with. Then I simply repeat them a number of times to test the scrolling of the Rep list.

I am now in the process of adding the rest of the code to up your Rep with the characters... Hopefully in the next few days or so.

Rep is an exciting element for RPG players to earn, I know I love to earn Rep where I can in Wow.

Da Voodoochief

Thursday, January 14, 2016

Arcade Task - new Minigame

Arcade Games is what I have been titling the Minigames I have written. It says 'Zoomy the Porcupine Arcade Game' etc.

Now I have invented something new for Very Bunny Haha. This is something I will call Arcade Tasks. These are Minigames that you have to play to solve or complete a given task. I could give you the player a Quest that requires you to solve a Jigsaw Puzzle for example. When you complete the Minigame you are told 'success' instead of 'game over'. Then the completion screen of the quest pops up over the Minigame.

I have just spent the last 5 days or so working on this area. I want to use it for all sorts of aspects of the game, and completing quests by playing Minigames gives me a LOT of scope for interesting gameplay. Lets take the first one I just wrote shall we :)

It is called 'Catch Alex' and the reason is very self explanatory. The Mayor has a son who loves to skateboard. Only when he is busy skateboarding he tends to wander off. This gets the Mayor a little concerned for his sons safety, and so he asks you early in the game to let him know to come back to the village if you see him. As it happens you do find him and are taken into this Minigame when you get close enough to Alex. You complete the Minigame and also complete the Quest, earning a bit of money and reputation along the way.

Here is a picture of the game taking place. A few things of note are... There are three layers of Parallax. This gives the scene a nice speedy quality. There are in fact pop up scores and a high score for this Minigame (like all minigames). The timer is counting up, and is used to calculate a catching bonus.
Here is a bonus picture of what the scene looks like. Odd looking thing in my mind, though the parallax works great.

I am so very pleased with how well this has worked out. After you come out of this Arcade Task, Alexander is no longer where he was. You will in fact find him in the village where he is supposed to be.

Da voodoochief

Sunday, January 10, 2016

No More Pirates?

I read this interesting article a few days ago.

This is saying that there could be an actual end to piracy.

I cannot quite get that to sink in. The reason is fairly obvious. I have been creating games now for over 30 years, and ever since the first one Piracy has been a part of my life. I used to collect pirate copies of my own games so I could see who and how they were trained. Unlimited lives, infinite health or invulnerability etc.

I have always tended to believe that the publishers have never really lost a lot of sales because of pirate copies. I know this does not fly with what the publishers tell us of course. My reasoning is fairly simple... I think a lot of people that end up with a pirate copy of a game would not have bought the game anyway, and the only reason they are playing the game is because it was free.

A number of years ago I created a game with me mates at Gremlin Graphics for the Commodore 64 called Bulldog. I love scrolling shooters ya know, always have!

This game was supposed to have been at the time one of the most pirated games around. I am not sure if so many people would have played it without that notoriety or popularity with the pirate community. This was what I would call a fast creation title and was put out there to see how it would do. It did have advertising, but not the kind of coverage of a bigger more expensive title would have.

Anyway, back to my point here.
This article states that piracy might be on the way out, and I have to say I feel good about this. Though I have no belief that the publishers will reduce the cost of games to the public, I do believe that piracy is very wrong. I also wonder where pirates will put their energy if games become un-piratable.

Hmmm, a strange new world.

Da Voodoochief

Friday, January 8, 2016

Need that Logo

I have been feeling something now for a while. I just have not been able to put those feelings together to allow me to come to a conclusion for what they mean.

Today I got em together and now I realize I need a Logo. Yup, that is it... I need a Logo for 'Very Bunny Haha'

I need one to use for the Web Page, I also need one for the game, as that will be the first thing anyone will see for this game. So what am I to do about getting a Logo? is sort of famous for people obtaining Logos. This seems like a good place to start. And at a Fiver for a Logo I can obviously ask several different people to do a Sketch for the Logo. Then pick the one I like best. In fact I need two types of Logo anyway for the game. I want one full title Logo and one Logo that just represents the initials 'VBHh'.

Now I realize that just giving the Artist/Designer the string of what I want is not going to get me a very applicable Logo. So I believe I want to accumulate a small portfolio of information and artwork for the game that I can present to the Artist. I might try doing this with video. Record some of the gameplay and various pieces of artwork etc. Then I can simply link that for the Artist to use as inspiration.

I do wonder if this is the way other people get Logos etc created, or am I missing an important ingredient ?

Da Voodoochief

Wednesday, January 6, 2016

Minigames Tabletified

Yeah, I made that title up, I could have gone with Touchified as well, and perhaps I should, as not everyone will play on a tablet. Still I think it gets my point across, that I have modified the Minigames to be touch controlled for Tablets.

Plong was pretty easy. All I had to do was control the height of the Blocker or paddle. This is easily done with a single input from anywhere on the screen. I take the touches Y value and then convert it to game coordinates and compare with the current center of the paddle. Then I add velocity to the paddle to move it towards the Y value. One of the good things about this is that you can control the paddle from any X across the screen, so you can play it left or right handed etc.

Zoomy the Porcupine was also very easy. This is already a one button minigame so all I had to do was take a Touch on the screen (from anywhere again) and if there was a touch I add my velocities to the player Ring to help it defy gravity. Hold the finger on the screen longer and you will float for longer. This is in fact an exact copy of the control I had in there using buttons. Again this can be played with either hand and any finger.

Water Balls was a bit more difficult as the game uses Left, Right and Fire buttons. I had an idea how to easily make this a single button game, but I wasn't sure about it. That is until discussing this problem with Leilani and she suggests the same exact thing, without me even pushing that way. I did consider adding touch areas (buttons) onto the minigame screen, but I hate that kind of thing on tablets. So in the end you simply touch where you want the cannon to fire and it will rotate to that angle (if possible) and fire, all in one touch. Pretty neat and not really any easier than with the joystick.

I have some minor bugs where things are not quite right when touching the Inventory items, but I have found the issue, but now gotta fix it, and a few others. Still I also modified the House (cut it into parts) and modified the Village South scene a bit more. So moving onwards,

Da Voodoochief

Sunday, January 3, 2016

New Android Tablet, not connecting

Man it was frustrating for me. I got my new tablet

I got it pre-Christmas so it was only 130 dollars, which I find amazing considering all the great stuff in this particular tablet. I really wanted several of these features to be able to show off Very Bunny Haha to people more easily than opening up my Laptop etc.

Here are a few of the elements that convinced me to buy this tablet:
  • HD screen
  • HDMI output
  • Fast Processor
  • 10 inch screen
I got all this and a 32GB tablet for only 130 bucks. Wow eh!

Now at some point I thought I was going to have to send it back. As this was to be a development machine I needed to be able to debug bridge to it from Unity. However.... When I tried to download to the tablet it simply wouldn't work. Unity could not find my tablet.

I emailed AmericanPumpkins and asked them about it and they got back to me fast, and it was a Saturday as well. Thanks guys! They linked me this useful tool

However this showed my tablet and said that the USB driver was already installed for it. hmmm. more investigation required. So I read all sorts of references to these kinds of problems and couldn't seem to find any real help. This made me want to dumb down the problem. To do this I realized that there is a way to know IF Unity will see my device (Unity simply asks for an Android devices name so it can use it). This is done by typing 'adb devices' into your command prompt, that is if you have a path to the correct place, or you can do what I did and open a command prompt in the correct location to allow me to play with the SDK. That is here on my machine:-
    C:\Program Files (x86)\Android\android-sdk\platform-tools
Well that tool showed me that it did not see any Android devices attached. AHA! so it means there is something wrong with the USB driver after all. Odd that the previous tool shows it is ok.

Well after following a fairly large number of other web pages looking for a clue I found one. Someone mentioned that the USB computer connection (under Storage on your Android device) should not be the PC mode and should be Camera mode. Well I looked over mine once more and I found mine was set to Media Device (MTP), in other words PC mode. So I switched it to the Camera (PTP) mode and suddenly my laptop moaned about not being able to find a driver for the device... Woot! getting closer....

Then I used the adbdriver tool list up above to and it showed that this time my device did not have the correct USB driver. A quick press of the install button and it says I am good.

I went immediately back to my CMD prompt and tried the 'adb devices' once more, and this is what I got.
As you can see I also tried other suggestions to kill and restart the server to no avail. The at the end you can see where I went back and my device showed up after the install. YES!

First this I did of course was to put VBHH onto it and it works so smoothly. That powerful processor working fast. I will have to uprez some of my graphics to full look good in this resolution, but that's ok (I hope).

Good luck with your Android problems,
Da Voodoochief