Thursday, March 27, 2014

Ginger Can Walk...

Gingerbread Man Walk
    ...He just looks a bit goofy doing it.  Hey, give him a break, he is made out of cookie dough.   This is my second attempt in two days to get the animated gingerbread man to walk.  The yesterdays GBM was a bit more stilted due to only having 1 'bone' in each arm and 2 in the leg.  I added more bones this morning to the Ginger this morning, but he still is a bit wobbly in some of the frames.  Check out that head action...   Frame 5 is pretty wacked. The arms look better, but he still needs some work.  Given that he is going to be much smaller in the game, I don't really have to worry about it this week.
    The goal for the week was to get an animated figure to march into the line of fire from one of the towers and take damage.  In order to do this, I needed an animated figure.  Ginger, one of my first 3D models, was good enough to apply for the job.  I rigged some lighting, added the bones, and moved him around through 8 frames of animation.  It was a good learning experience and I feel it will go much faster in the future.    I got him walking in the game, but need to give him some direction now.  He just jogs in place today.  Kind of like above.   He never stops.  He is a machine.  I am jealous of his workout discipline.
   So the last few things to get working this week are:

  1.  Have Ginger walk from designated points on the path until he gets to the end of the line.  
  2. Fix the tower firing range circle to match the isometric map.  I had the a basic circle, like it was a 2D game, but a friend spotted that right away.  (Thanks Jaime.)
  3. Make the tower fire when the walker (Ginger) comes into the firing range circle.
  4. Show the tower firing animation and a particle strike from the tower to the walker (Sorry Ginger)
  5. Make the walker show the effects of the hits, either by dying or taking hits.  Frame 5 looks like he already told a shot to the head, so this may be easier than I thought.  (Really sorry, Ginger).
   Aaannd it is Thursday.  I am a bit behind, but think this still can be done in the next 24-48 hours.  Luckily, I am really having fun with this so I won't mind the extra time this weekend to catch up.  I just have to find out if the family is also cool with Dad disappearing into his cave at odd times.  Ah heck, basketball season is almost over and I need an extra hobby.

Tuesday, March 25, 2014

Rebecca: Watching Grass Grow

As readers of the blog know, Ben has been learning about 3D drawing.  Ben is very excited about the tools that help non-artists create 3D structures and animations.

When I get home, we have show and tell time.  He started with a gingerbread man that strutted like John Travolta in Saturday Night Live.  I think the strut is unintentional, but Ben sold it as "cool" animation that still needs a little work.  I have seen the slow progression of a room...with a table...with a chair...with a window...and finally, shadows.  He has made land maps that require isometric manipulation.  I cannot explain isometric, but I know the land looks funny without it.  Over the last 2 or so weeks, he has proudly shown me cannons, towers, roads, dirt, and grass.

I took for granted the cute, simple graphics in mobile app games. The graphics are not simple. And animations still need to follow the law of physics.  While listening to Ben's show and tell may feel like watching grass grow, I am impressed by what he has learned and what he has created.  The large games have a team of developers and a team of designers.  Because I am still stuck on isometric and shadows, Ben is doing this all on his own!

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, " 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.