Saturday, March 30, 2013

Universally inspired

On of the great things about doing stuff is that any experience could be the catalyst to creating great new things.

This was the case yesterday when I went with my family to Universal Studios Hollywood for my sons birthday. There are so many experiences from annoying to amazing and any one of these could inspire in me the next newest fun idea I might use. For example...

At the start of the day we had to drive down the freeways of LA to get to Burbank. This is in itself an interesting environment with lots of possibilities of excitement depending on what kind of game i was interested in writing. but lets move forward from more daily stuff to more memorable Theme park excitement.

We were at first treated to lots of crowds and navigating through them to get into a good line with our tickets etc. Not bad, but it was frustrating, and might be for a player too.

In the theme park we encountered a lot of fun things to do and experience. From the Scary Maze to the Transformers 3D spectacular and new ride. This was amazing and the kind of technology they employed was fascinating. Lots of movement linked with fast shocking visuals. These kind of things inspire me to want to create fast action games, though of course Transformers is not interactive. something of course I feel like I could add.

I am going to skip a whole lot of amazing experiences and jump to the final few shows of the day, Waterworld, which is a live action spectacular and makes me want to create wonderful scenery and story to go along with sweet effects, and Shrek 4D. Which make me feel like I need more interactivity with the player, though of course I cannot yet blow wind on the back of the players neck, or spray them from some Dragon sneezes. Still It gets me excited to think how wonderful some games could be if they had more tactile interfaces and additions. Of course I am always on the lookout for tech developments that add on to real world connectivity.

It was an inspiring day and watching my family and my kids friends have such a great time, smiling, laughing and being so buzzy. It makes me want to help make people feel that same way through my games and books.

Laters
Da Voodoochief

Wednesday, March 27, 2013

Sfx stands for.. Silly?

I have started the sound effects for the game. Althuogh I don't actually have real ones, or even a full list of required SFX it never stops me from proceeding. The one way I have found to get a full list of effects for the sound guys is to simply put some in. This way I quickly find out which ones I have missed off my notes/list.

So a few nights ago I was recording 32 sound effects for all sorts of things, from starting level ditties to explosions, from gutteral 'urgh' to flying chairs. I did this not by searching libraries of sounds (that takes real time!), instead I decided to record them all with my voice. I even managed to get my kids to help me out with a few, as they wandered in to see what all the noise was about. Only to find me slapping my face while making gurgling noises to simulate a smack to the face of Kal. Ahh the fun of it.

In the end about half of the sounds are in fact not terrible, but there are still a bunch of really silly sounds. This is not a bad situation though as replacing a sound is pretty easy, and simply having a placeholder sound helps me do the code or get the timing right for a sound to happen. All good and necessary work.

So I put it on the iPad and let the kids laugh at the cacophony. It sounds worse than it should as I have not yet implemented the individual effects volume settings.. so a swish of air is as loud or louder than a big explosion. That will most likely be my next job. then I can balance some of these effects a bit.

It was a fun time recording these effects and it took me about an hour in total to get them ready for use in game. Not bad for 32 sfx eh!

Laters
Da Voodoochief

Monday, March 25, 2013

Down Time

Sometimes during development I get down on the project in general. This weekend is one of those troublesome weekends, and now I wonder just how many more days I will feel this melancholy towards my current game dev project.

Team:
One of the most awesome things about working in a team is that when one of the members gets a bit down as always happens, you know the weight of what is left to do, or the burden of a difficult and annoying task is getting us down. Their spirit can be buoyed by the other teammates, which always feels good for everyone on the team. Seeing that member suddenly brighten and become productive again can give the whole team a great boost.

Individuals:
By oneself it is hard to sort out when stuck on a particular problem for too long, or simply things are not going as well as hoped. For myself I find my artwork is not coming in anywhere near the degree I would like, also I find my scoreloop programmer is not producing the work needed to get the job done, and I am now waiting on that. Yesterday I was going to knock out some temp SFX to put into the game as place holders, but I cannot get my super microphone to work on my laptop, gah! Along with these external problems the one I am stuck on is a bit stupid, simple even. Yet I seem to be unable to solve it. This I am starting to find is grinding on my nerves.

Solution:
My usual solution is to simply move onto another task that can easily be accomplished. Then I start to get my mojo back and will build up enough of it in a few days to re-attack my current stumbling block. Meanwhile I will continue to enquire about the external dependencies I have.

Well that is enough moaning for today, off to work I go :)

Laters all
Da Voodoochief

Friday, March 22, 2013

Dangerous Flying Chairs

Sports can be so dangerous it seems, especialy future sports played out on your iPad.


flying dangerous chairs from Robert Toone on Vimeo.

Above is one of the enemies I have written for Hoop Fighter and I want to talk about some of the elements that went into this final incarnation.

The chair above when I first put it in was simly spinning across the floor, and that was just boring, it was also none threatening, and I wanted something threatening to liven up the level of the game this enemy is going to appear on. So throwing it in at you, as though an opposing player had urled the thing your way seemed a lot more fun and  exciting. Once I threw it in I detected when it hit my floor level and simply reversed the vertical velocity, only I dampened it 50% to make the next bounce up smaller than the last. This happened to be a nice value from a looks perspective. My gravity balanced with the amount of velocity I rmeoved seemed to give a nice look and feel (though of course not an accurate simulation at all).

Then I realised that the forward momentum also needed to be dampened because the friction of hitting the floor would slow that too. This time I experimented with a value that would work and ended up with a 40% dampeneing amount. With all the velocities now being dampened when hitting the ground the chair did what I wanted, so I simply had to alter the inital velocity values to get the chair to bounce in the right place to make me be able to jump it, but also have the chair land right in front of the player. The reason landing in front of the player was important was I wanted to fool the player into jumping a bit early, and as the chair lands in front and has it's velocities dampened, you can be fooled in this way.

Next up I had a problem that the chairs diminishing velocities made it stop just under my player character. Oh Noes, so I had to implement a minimum forwards velocity. Which worked surprisingly well to simply drag the chair off screen.

And that's my chair.

Laers
Da Voodoochief

Wednesday, March 20, 2013

Hoop fighter Todo list

I have been keeping this list and expanding it when I think of something in a program called Onenote on my windows phone. I have to say it is quite handy to do that, as I come up with things to add at all sorts of odd times. The one thing this list below doesn't show is the check marks telling me I have already completed that item. Which is a pity as I have completed about half of these below. Still, I will keep adding items and solving them as time passes.

I do wonder what other devs are using to track a todo list like this one, or if they simply remember everything. I used to write it all down on a pad with me pen, finaly I am coming into the next century haha.

Hoopfighter to do
• Popup numbers. Test completed move in collectables.
• Code entry screen.
• Adverts screen, page
• Video working
• Include cheer move
• Include ballistic move, or design a new move
• Use spiky ball in 1 or 2 modes
• Use chair for enemy
• Create flash in stands
• Use multiple lives
• Do save game system
• Design code features
• Design in game purchase features
• Design achievement s
• Get scoreloop in
• Finish credits
• Fix back/pause button on ipad
• Sort out continue or new game
• Put in test, placement sfx
• Finish dunk minigame, use dying anim for dunk anim
• Do more advert banners for my book games
• Find more sponsors for banners?
• Lay out the basic instructions and put them in game
• Talk to Scott about adding cheering manager,teammates in the background
• Fix shop item selector to match code entry version
• Put in the code to activate bought packages
• Put in code to activate code entered items
• Punching enemy should do damage
• Flying enemy should do damage
• Name all levels
• Restrict playable levels based on progression

Laters
Da Voodoochief

Monday, March 18, 2013

Tidy up Rewrites

One aspect that people do not generally consider when looking at how much work it is to write a game, is the time it takes to rewrite parts of the game. These rewrites tend to fall into certain categories and I am mostly talking about the little ones, the ones that always get overlooked, yet can take a significant amount of time. Big ones would be like replacing the rectangle to rectangle collision system with a more comprehensive polygonal area to polygonal area. To obtain more perfect collisions. Those kinds of rewrites are more what I would call re-developments, and should be planned for in the technical design phase of a game.

So tidy up rewrites are more in line with what tends to happen later in the games development process. Usually as a result of someone coming up with a better way to do something. such as an interface improvement. This is the case with Hoop fighter and my scrolling lists that I first wrote for level selection. The initial one used two buttons to scroll up or down through the list. Then I changed it to a swiping motion that felt more natural. So I was happy. Then of course it hit me that I now need to improve all the scrolling lists in the game to use this new method. Hence a rewrite... Only yesterday I improved the system even more and now I am retrofitting those enhancements into the other scrolling lists. As it happens I am very very likely to do yet one more rewrite, and that is to make a nice class for this new fandangly scrolling list control and display. Then I'll have to only change the class and get it in all the right places.. Still gotta make it work like that first, and that takes some tidy up rewriting.

My scrolling list has velocity, drag, finger drag, coloring and fading now all working. Quite a set of functionality that wasn't all designed in from the start. It is however a vast improvement over the classic button design I had when I started (I am more used to designing for controllers).

And the tidy up rewriting of course takes time from something else, which can make you late for milestone delivery.

Laters
Da Voodoochief

Friday, March 15, 2013

Escape char that Percentage

One of the unique aspects of programming is that it can sometimes need codes. These codes have to work in some specific ways and it makes things a little more complicated or unusual in its appearance.

My example for this is the Escape chars used in string formatting in C/C++ and also many other languages. These codes are necessary to complete a variety of jobs. Although I have been using these special characters and string functions now for about 18 years I can sometimes forget exactly what I need, though I admit it is rare.

Tonight I came across one that I believe I have never had cause to use. Let me explain the situation.

In the new Menu I just coded I enter a game code, this will allow a player to enter some special codes supplied by people on Twitter or Facebook, and entering a valid code would empower and reward the player in some way. One of the rewards happens to be +20% Energy restored Immediately. So I have a table of strings for the rewards so I can explain the valid code entered has given the player 'X'.

Well the string it printed on my screen was quite amazing. The '+20% Energy' became '+20 2.20000E+22 nergy'. Boy did it make a mess. Now my experience told me it was a simple escape char problem, however I have never encountered the % used with the normal escape char '/'. So I was initially puzzled.

Upon investigation I found that I needed to do this '%%' to escape the percentage symbol with itself. Wonderful.. and the result is good too.

Even after all these years, somethings I take for granted can still produce surprises.

Good Night,
Da Voodoochief