Friday, March 21, 2014

I Love Grass

Grass - close view
     Wow!  Is it Friday already?  The week has flown by, but every day I am adding something new to the game framework.  This week was tower placement on a map.  I have been designing structures like towers to represent different types of pieces.  For example, the Cannon Tower needs to have a cannon in the tower design.   At the moment, I have just build 4 basic types of tower, War, Mage, Cannon, and Archer.  I am not even sure if these are the categories, but they are close.    Of course, each tower had to show shadows on the ground in a consistent manner to keep up the illusion.  I did manage to hit this weeks goal and now have a nice little selection of different towers in building locations.  
    So that was good, but the map level itself looked like crap.   I tried using some of the nifty effects from GIMP to 'paint' grass, rocks, and other stuff, but it still looked odd.  90% of the reason is my lack of knowledge of the tool and artistic design.  After spending an afternoon playing with different effects and background colors, I still was not happy with the overall look.  In fact, the only parts of the map I liked were the 3D generated artwork that I had stamped all over the map.  What is a frustrated programmer to do?  "Grab a beer and forget about it", said the Crow.  I decided that this map would look better with just a bit more grass covering, but not painted on with GIMP.

Non-Grass backed Map

Geek Side Note

I am sure that I could have used a combination of GIMP filters and tools to simulate the grass very nicely, but decided to stay with the 3D images instead.  Don't judge me!


  Having to create grass in Blender was way above my expertise, but not beyond the Interweb.  I found a nice tutorial on creating grass in Blender and this morning created my very first 3D grass brush.  The tutorial uses the Blender 'hair' particles system to create pretty darn realistic grass.  Mess with the color nodes a bit, and you have a grassy square.  Once scaled and placed in the background layer, the map looked much better.

Tower Selection - On real grass map
Like all tutorials, I had to go through it slowly the first time and then try to recreate the product from scratch using memory.  I am still a bit intimidated by the Color Node Editor in Blender, but forced myself to play with it a bit to get more comfortable.  Once I get over the initial hurdle of trying to use it a few times, the fear factor gets reduced a bunch.  That said, I still am a bull in a china shop in Blender and rely on 'undo' a lot.  A LOT!
    Next week is more map related goals so, this grass work will dove-tail into that work nicely.   Maybe some dirt patches or water effects?  Ah, that is next weeks problem.













Wednesday, March 19, 2014

Art Work is Captivating

Cannon Tower - Plain Tower - Trees
  Lately I have been throwing together a Tower Defense type game for Zenerdgy.  I haven't a name or even a working level yet, but have been enjoying building the parts.  Since I like the look of the 3D look of an isometric game, I have been modeling the game pieces in Blender.  It is forcing me to increase my 3D modeling skills, but also compensates for my lack of artistic drawing ability.   I use the tools ability to simulate the look I want, instead of trying to draw the effect myself.   "Hey, I need some subtle shadows here.  There must be a lighting rig I can setup for this..."  There are definitely good and bad in this approach.   The good is that I get the look that I want without artistic budget or copyright issues.  The bad is that it takes a while to build each piece.   While I am picking up speed with building models, it is still a slow learning process at this point.   Luckily, it is also pretty fun to learn.
   I find myself doing a lot of 3D modeling, importing the rendered image into GIMP for final image clean up, and then importing this into the game project for testing in a simulator.   I jump around between Blender, GIMP, and XCode all day to see if the pieces are looking good in the game.  It is easy to get caught up in any one of the 3 steps to add some extra work or refinement.   Once I have the basic game pieces created, I will switch over to XCode full-time to finish up the game.  Until that point, I am finding myself building a lot of models.
    In order to not get too involved with the artwork, I have been setting a programming schedule each week to make sure the game itself gets equal time.  This usually means setting a goal of what the game should show the family each week.  For example, this week was placing towers on the level map.  It sounds easy, but I had to create the level map, confirm scale, lighting, etc.  Once I have the weekly goal performing correctly, I show off the parts to the family.   I then go back and clean up the code and refactor it to make the project more modular.
    Like anything that you are doing for the first time, it helps to be flexible.  I have been studying as fast as I can, but the overall schedule is pretty loose right now.   This means I really don't know what month I will be targeting for delivery, but am hoping to have something ready in the next 3-5 months.    If I do my job right, I should be able to build additional games of this genre a lot quicker in the future.   We will see.

Tuesday, March 18, 2014

Rebecca: Death and Taxes

When Ben decided to start his own company, we thought he just needed to hang his shingle and start  attracting customers, who purchases goods, that pay the bills...ahh, life is good.  Actually, the very first step is obtaining a business license.  Although it is a relatively simple process in Washington state, it has many implications.  What is the nature of the business (retail, consulting, manufacturing, farming, etc.), how is the business owned (LLC, partnership, corporation, etc.), and many other questions that Ben and I puzzled over.  The answers are important primarily for tax purposes.  In Washington, the business classification determines the tax rate for revenue; and it may affect how you declare your income for federal tax purposes.  The IRS.

A few months after starting the business, we finally contacted a CPA to help us understand taxes.  ADVICE:  Hire an accountant BEFORE starting your business.  The IRS does not like do-overs.  It is a process to change your business classification.

Our CPA helped us to understand the tax implications of different business structures(LLC or sole proprietor, or many other options).  There is no right answer, but it is important to make the choice with some understanding of the tax code.  Honestly, I still find the tax part very confusing and intimidating.  Because of this, the accountant completes our taxes.  She explains what expenses are allowable, what receipts I need to retain, how the business affects our personal tax liability, and how to stay compliant with a voluminous tax code.

While the business is still in the "struggling" phase and revenue is limited, paying a CPA is well worth it.  If one decides to complete their own taxes, I believe it is still valuable to get some professional tax advice before hanging the shingle.  As Benjamin Franklin said, "...in this world nothing can be said to be certain, except death and taxes."




Tuesday, March 4, 2014

Map Building for Fun and Profit

  Last weekend I decided to spend some time with the excellent GNU Image Manipulation Program (GIMP) program for doing some image manipulation and design work.  Specifically, I needed to create a good map overview for the next game we are planning.  The map is to be used as the background for the levels screen.   The user is progressing from location to location, where each location is a new level.  Now I could have just hand-drawn a map like those in the Tolkien books, but I wanted a more realistic look.  Hey, its the details that can make something interesting.  
  I have known about GIMP for a long time, as it is free alternative to such programs like Adobe Illustrator and Photoshop.   I have used it whenever MS Paint or Art Text could not get the job done.  I don't use it often due to my inexperience with the tool.  Once I strayed off the simple path and started playing with the various options in GIMP, I would get frustrated and shut it down.  It was a matter of getting familiar enough with the tool to make it useful more often.  I used this map project to build up those skills a little more.   I also ran through some of the tutorials at the Cartographer's Guild, which really helped me a lot to understand how GIMP can be used to create nice maps.  


Original Map Drawing


GIMP Designed Map
  I am not 100% happy with the results, but now understand the layers used to create the look a lot better.  The map is also needs additional features like rivers, roads, and cities.  I imagine that a Blender 3D rendered image could make a great backdrop for the mountains and some of the more detailed geography.  Then I could use GIMP to enhance the look, at more shades and colors.  Maybe I will try this out next weekend.  
 


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!