Tuesday, February 18, 2014

Rebecca: Money to burn

We do not have money to burn.  And it does not grow on trees planted in our yard.  My children, however, act like it is plentiful and renewable.  One reason that I pushed for Family Bank (iPhone app) is to track each child's deposits (earnings from chores or gifts from family) and expenses (toys, candy, iTunes).  

In the past, we had lots of money mishaps.  Sometimes, they handed the money to a "responsible" parent.   I usually placed the money in an envelope, which we never had handy when the child found the perfect toy at the store.  Since Ben and I never remembered the amounts in the envelope, we relied on the child's memory.  They always swore that they had enough money, but that often was not the case (funny, how they forget money spent but not money owed).  

Many times, money was lost.  Not huge amounts, but a dollar or two left at school, lost in their room, or allegedly stolen by a sibling.  When money went missing, if realized, the affected child would share his/her loss with the entire family.  Listening to crying and blaming of thieves made me want to take all their money and burn it.  

With Family Bank, I deposit their earnings and gifts into their virtual accounts (I just add the money to my wallet).  I act as the bank.  When we are at the store, I look on my phone and check their account.  I know if they have enough money for that "must have" toy or candy bar.  If they do, I just deduct the amount from their account (I pay for the items and then deduct from the appropriate account).  

Since my children rarely want to share money with each other, each child has his/her own account.  Attached is a screen shot.

Yes, one of my children received $70 as a gift.  I wanted to charge a handling fee.  How much money does an elementary school kid need?  I think he realized that I was eyeing his money because he immediately spent $70 at the on-line Lego store.  

Disclaimer:  There were a few times that I "borrowed" money from the envelopes to feed my Starbucks habit.  It is not shown on the screen shot, but each transaction has an explanation i.e. -$70.00 at Lego Store.  This feature has kept me honest.  

Mid-Winter Break

    Personal Note - This week is the kids week off for "Mid-Winter" break.  It is not Spring Break.  They still get this time off too.  I swear we did not have so many vacation days when I went to school, but it could just be rosy memories.  It is good to be a kid now a days, but can be hard for working parents to handle the kids at home.   We have the benefit of me being here during the day, but it certainly crimps my style when I want to program.  On the other hand, the kids will never be this age again.  I should embrace the week and enjoy the extra time with my family.  Even better, I get some extra company on the daily dog walks.
    So not much will be accomplished for the company this week, but I am going to try and steal an hour or so daily to experiment with Blender (3D) and Sprite Kit (Game Building).  I just need to pick smaller tasks that can be finished in a partial day.  Otherwise, I will just jot down ideas and thoughts in my notebook to be pursued next week when I have more consistent time to follow up.
    So it is a weird week for programming, but a break in work should be cherished, not despised.   I choose to embrace the weird and enjoy this week with the family.
   You will get your time, Computer.  You just have to wait a bit.

Friday, February 14, 2014

The Heartbeat of Me

  I don't normally like to call out the fact that I have a wonderful, loving, and supportive wife.  If you have read her blog entries, it would probably come to the same conclusion.  I prefer to concentrate on the company and keep the other personal items out of the blog.  Our family life is safely in her domain and I welcome her to it.   I entrusted her with my heart a long time ago and the decision was the best of my life.
   So on this Hallmark day of declaring your love for your significant other, I want to say:
Thank you, Rebecca.  Without you, I would not have accomplished so much or aspired for so much more.  
  I Love You, Rebecca.

Geek Side Note:  Did you see the 3D heart, honey?  I made that for you!

Wednesday, February 12, 2014

Lost in Training

Iced Z
    "I've have lost my mojo."  - Austin Powers

    Lately, this quote runs through my head a lot.  I have been mentally spinning my wheels on the game design for a number of reasons.  One of those reasons is that I have been really cramming a lot of new knowledge into my overstuffed, books lying around, half-done experiments, wizard's attic of a mind.   "Don't mind the crow.  He always sounds hungry."  I like to think of myself as more of an eccentric wizard from an old Excalibur film, but most likely I am more kook than cook when it comes to creating things.  I usually have a ton of different ideas banging around in my head and just pull out a few to start turning them into a product.  This past week it feels like there are too many ideas and ways to implement those ideas to just focus on a few.  Nothing feels right yet and time is running out.
   Adding to this issue, and probably a major contributor, is my extra development training with 3D graphics and the SpriteKit API.   The 3D program, Blender, is very complex and oddly compelling to me.   When I have a spare moment, I like to crack open the program and tinker with a new 3D modeling task.  Usually with a tutorial video playing on the other monitor because I would never figure these things out by experimentation alone.  It helps to have an expert guide you through the process the first few times.  It would also help to have a bit more talent in the graphics area, but we work with what we have sometimes.  "Oh be quiet, Crow.  I am trying to write here."  Anyway, this takes up time and diverts my brain more than I would like.  I can't use the modeling at the moment, but does seem like there is something there...
   Where was I?  Oh yeah.  Distractions.   Along with the 3D modeling, a book about Sprite Kit that I have been waiting to be published finally arrived last week.  IOS Games By Tutorials has been pretty engaging and I have learned a few things and filled in some gaps in others.   The latest chapters have covered physics, level design, and combining actions to make interesting animations, sounds and effects.  It is a good book and I recommend it highly to those of you that just would like to tinker at building games.  I am half-way through the book and still picking up great tips on building a quality game that is fun and maintainable.  Unfortunately, it is easier to just work on one more chapter than to go back to my actual game development.  Given that we are approaching the middle of the February, I really should put the book down and finish the latest game App.
   Which brings me to the crux of my problem.  Every new technique or programming tip could potentially move my game ideas in a new direction.   Usually this is a good direction.  I have discovered better ways to handle level design and the way the game objects behave on the screen.  Other times, it is just reinforcing my knowledge on the subject or verifying something I had discovered through my earlier experiments.  In the end, it brings a lot of extra thoughts to my game idea and starts the wheels spinning again.   "Yes Crow, I was getting to that."  The worse part is, the more I train, the less I produce on my own product.  This adds to the guilty feeling that I am shirking my work.  Even though I have been training and studying a lot lately.
    I probably just need to pull back, look at the big picture, and pick a route to travel for now.  On the other hand, the next few chapters cover Tile Maps which could be really useful for a slightly different game.  
   "Yes, yes Crow.  I am ready to get back to work."


Friday, February 7, 2014

Rebecca: Random Acts of Kindness

It has been a hectic week or so.  I left last Wednesday for a business trip.  While I was away, Ben discovered a wet area in our home office.  After a few days of stress and 2 very nice plumbers, the cause of the wet area was found and fixed.  Over the weekend, we had guests.  Since we live in the  Seattle area, we got the Seahawk fever and cheered for our awesome home team.

As I started a new work week, I was already dragging from water leaks, house guests, and Seahawk mania.  And then...I caught the cold that everyone has been sharing (thanks to my daughter).  I have spent the week wallowing in self-pity, complaining about too little time and energy to do all that needs to be done, and giving myself lots of excuses for being lazy.

Early this morning (5:30am), I reluctantly and grudgingly headed out for a business appointment.  Needing caffeine, I stopped at Starbucks (actually drive-thru).  I got an extra special treat.  The car ahead of me paid for my coffee...a random act of kindness.  Wow, what a wake-up call to stop and be thankful.  Thankful that Starbucks has drive-thru, thankful that Seahawks won, thankful that we had wonderful family visiting over the weekend, thankful that Ben handled the plumbing hiccup, thankful that I was feeling better, and thankful for the kindness of a stranger.

Wednesday, February 5, 2014

Particles - Seahawks Edition

    I fear that I have not explained particles well enough in the last post, so I am adding another today.  The beauty of particles, is that you take one image, a small image, and replicate it in some way.  Maybe you replicate it into many places on a screen.  That is one particle system. A bunch of dots on the screen is one representation of a particle system.  The system is accurate at that moment, but the next second, it will look different.  Why?  The particles moved.  Hence, the term "particle system" with system being the more important term here.   
  The beauty of a particle system is the ability to describe how long one particle will behave.  Behave is a bit obscure, but to programmers this mean describing what will happen to this particle in its lifetime.  It is an example of the worse kind of interrogation:
When are you born?  What is your life span?  What color are you?  What time do you change colors?  Whats your new color?  Are you changing sizes at any time?  Can we push you over here?
The system is what describes what the particle does.  Throw in all the variables that answer all of these questions and you have a bunch of seemingly similar objects behaving in a remarkably way.    The objects move in a manner that is similar, but unique to each objects manner.  
    That is confusing until you see one object behave according to a system of rules.  Just layer another object behavior on the same area, and you begin to see the complex system described.  Essentially, each object has their own agenda and will follow it's own system to complete the agenda.  Particle systems are like that.  
"Every one go left, but grow and shrink as you do it." 
    Take 30 objects that follow the command and you get an interesting jog to the left.

Seahawks Section

    The Seahawks 
    Watching todays local celebration of the Seahawks bringing home the Super Bowl trophy reminded me of a particle system.  (Not to knock on the celebration.   I am a local Seahawks fan and really was moved by the celebration and the team's excellent response to the fans.)  Everyone is there and moving around within a manner consistent with their individual system.  Looking at each individual moving around you would not notice any specific pattern.  On the other hand, pulling the camera back you can see a lot of people all enjoying the celebration.  They are moving all over the place and create a very unique view of fans enjoying a celebration.  Take a picture a few hours later and the the image would look very different.  It is all relative to time and the location and the clothing and the light of the day and... you get the point.  Each person is doing their own thing, but the picture of all the elements is surprisingly complex.  
    Much like a particle system.

Go Hawks!

Particles And Special Effects

Trailing Particles
Starfield Effect
Ever wonder how some games create those cool effects like a fire burst, engine flame, explosion or smoke?  Well unless they are big fans of creating every frame of an animation and then programming the way each frame's timing, they probably use particles.  Particle system are a programatic way of taking a small image and using a set of commands to make that image appear all over the place in a semi-consistent manner.   You can specify many different aspects of the particle system and get wildly different effects.  Each particle will move, grow, live, die all within the constraints you specify.  Oh yeah, they are super cool too.
    Game developers have been using them for a while, but you had to do some tinkering to get the effect you were thinking about.  In the past, you needed to experiment with a custom coded program to try out the different effects.  You could code up a framework to show off different particle effects  and then capture all the various elements to recreate in your App.   Myself, I found a nifty program called Particle Designer to experiment with the different effects to get my desired results.  It was well worth the money and many developers were creating some excellent examples of what can be done with particles.
    In fact, my first use of particles was in Letter Rain to show the rain drops falling in the background.   I did also use frame animation to show the letters splashing, but a more realistic effect could have been done using particles.  Building the rain effect was a matter of experimenting and adding some custom code overrides into basic UIView, which is the basic 'screen' for most Apps.  It was fun and educational, but tedious to work with when you needed to adjust the system.
   Last year, Apple really upped the ante for developers by making particle effects much easier to use by adding particle design to the XCode development environment.  Now you can view particle designs within the development tool and even better, save the environment file for later import into your App.  It is much easier now to add your favorite effect to a game.  One caveat is that you will need to be using the latest iOS 7 operating system on your device.  C'est la vie.  I had already made this choice when I started building the latest game in Sprite Kit, so I might as well use everything that is available.
    The last few days I have been trying to tie all the various programing elements like physics, 3D images, and now particles into a coherent game design.   It is fun and the effects are well received by the kids, but you can really see how most Apps need a team of specialists to get the right product created.   Given my limited resources, it is simpler to just scale back the expectations in order for the project to get completed on time.   Lucky for me, particles have become much easier to create and use in a game.  It is once less thing I have to scale back my expectations on.  Hopefully, the final product will reflect this.
    Now do I need flames or glowing fireflies behind those throwing disks?