I’ll never use Algebra or Trigonometry, why do I need to learn it in school?

Lucky for me I enjoyed math in school, so I never asked this question. Up to this point, Unity3D has handled all the reflective forces on a rigid body so I haven’t had to do any calculations like that…THANK GOODNESS. I might like math, but I’m not quite that crazy…yet. During development of Shape Sprout, I realized that I needed to shoot a “shape bullet” from the tip of her wand out to where the player touched the screen. “Oh, that’s easy…I’ll just use Lerp() or MoveTowards()!”, I thought excitedly. That works great…until the shape bullet stopped at the spot the player touched the screen and didn’t continue on like I wanted it to.  *FACEPALM*  Ya, I really should have known that was going to happen, lack of sleep maybe? Now how do I figure that one out? Hmm…I seem to remember something about slope and  y = mx+b in algebra. No, that was slope intercept form…I need just the slope. Thank goodness for Google, there isn’t anyway I can keep all this stuff in my head. So, its y2 – y1/x2 – x1. Easy enough, we know start x and y position (wand tip) and we know end x and y position (where the player touched the screen), we can get slope! Okay great, that works now and the “shape bullet” is following the path like we want it to! Now…how can I make Kari’s arm rotate in line of where the shape bullet is going?  Trigonometry to the rescue! I already extensively use COS in the movement of Jumble’s hot air balloon, I know there is something that would help. Google to the rescue again! ARCTAN…yup, looks like we just feed it the slope and it gives us back what we need. Or so I thought. Something isn’t quite right, her arm is rotating but it is moving at a different speed than what it should really be rotating. That is when I discovered the value you get from ARCTAN is in radians and not degrees *FACEPALM*, why didn’t I know that? Luckily we have a constant we can use called Mathf.Rad2Deg so I don’t have to figure it out. Now just offset the angle slightly since our arm sprite is at about a 45 degree angle and voilà, it works as intended! Only and Indie Dev would get excited about something like this. I’m pretty sure there is probably an easier way Unity lets you do all this and I just don’t know it yet.  But, don’t say you will never use Algebra or Trigonometry.

Are you more like a Hacker or a Scholar?

Maybe even a little bit of both? I’ve been writing code for some years now and dabbled in all sorts of languages, but my first experience with computers was when I guess I was about 8 or so. My parents came home with a shiny new Apple ][e and you can bet my brother and I were quite excited about the prospect of having a computer in the house. We had no clue how to work it, but it was cool nonetheless.  Sometime later, my brother just happened to be playing with some BASIC code that made text scroll like mad across that beautiful green monochrome monitor.  I still remember it to this day, funny the things that stick in your brain. Anyone remember something like this?

10 PRINT "HELLO WORLD!"
20 GOTO 10

To say the least, I was hooked after seeing that and the rest is history. From that point on, I’ve touched various other languages like Pascal, C/C++, VB, C#, Javascript, ASP, PHP, Java, HTML and Objective C. One thing I’ve noticed is the way you lay out your design and code is pretty much the same no matter what language you use, it’s just all syntax, semantics and features of the languages. I personally think the best developers don’t have a language they ALWAYS go to, they figure out what needs to be done and then pick the best language for the job.  If there happens to be more than one language that will work, then pick the one you want to work with! So what do I mean by Hacker vs Scholar? I really don’t think they are mutually exclusive, you need a bit of both to be a great developer. Hackers get an idea and before they put pen to paper, they are putting their fingers to the keyboard. I call them Cowboys. Code now, ask questions later. “Wait, that sounds bad, I thought you said you need to be a bit of a Hacker to be a good developer?”. Ya, I’m getting to that part. Scholars are very meticulous in the design of their game/program/app.  They spend many hours figuring out the best way to tackle what they want to do by creating design documents, flow charts, case scenarios, etc  to see how every little piece works. Once they have that all worked out, THEN they begin to code. “Okay, now that sounds like the way to go…why would you even want to be a Hacker?”. A full 100% Scholar sounds great in practice, but in reality things rarely go as you plan them to no matter how much time you put into it. Hackers are flexible and can make changes on the fly when needed, this is something Hackers excel at over a full 100% Scholar. Personally, I’m a 75% Scholar / 25% Hacker. The Scholar part of me takes time at the beginning of a project to work out the details as best as possible. During development, if there are any bumps that I didn’t foresee in the design, the Hacker part of me takes over. It allows me to be flexible enough to adapt while the Scholar keeps the Hacker in check so not to deviate too far from the original design or try to put something into the project that just doesn’t fit with the designed architecture. How do you see yourself?

Thank you, Spriter

I know full well my artistic skill are quite lacking and I’m okay with that. You can learn to do just about anything by putting a little elbow grease to it. This is one thing us Indie Devs excel at.  If we don’t know how to do something, we figure it out. I love the art styles of FF3 (FF6 for you purists) on the SNES and Odin Sphere on the PS2. One of these days I’ll get up to that level. While working on our current game, Shape Sprout, the main character, Kari the Shape Fairy (who is voiced by my 5yr old daughter BTW)  needed some…uh…tweaking. I believe one of the comments was something to the effect that her eyes creeped someone out and make them think of zombies. NOT the image we want to portray. I had spent a LONG time in GIMP working on each frame of the animation and was wondering how the heck I was going to redo each frame within a decent time frame.  There had to be an easier way. Enter Spriter! Thank you @GillisLLC for mentioning it in a Tweet. I have to say I’m very excited about this program, it gives you the same armature/bone control you have in programs like Blender but focuses it on the 2D realm. Now, creating sprite sheets for our games is a snap! All I have to do is get better with my artistic ability. I highly suggest taking a look at it, it is still in beta so there are some bugs (nothing major so far), but I see a LOT of potential in this program.  Give Spriter by BrashMonkey your support if you can, it’s only $25 to get an early adopter license. Price goes up when they announce the release of the full version. They DO have a free version that works great, just some of the features are disabled.

So, here was the first stab at Kari the Shape Fairy…okay, so the eyes do look a little creepy…

Shape Fairy v1
First stab at Kari the Shape Fairy

And here she is with a few tweaks.  Eyes don’t stand out quite as much anymore and the dress looks a bit bitter but I still am not 100% happy with the hair, but I think overall it is better.

Shape Fairy v2
Updated version of Kari the Shape Fairy

And this is Miss Shape Fairy in Spriter with armature/bones defined 🙂

Shape Fairy in Spriter!
Using Spriter to create animations

Unity what??

“So what’s this ‘powered by Unity’ screen I keep seeing when I play your games?”

I’ve never been more excited about game development than after discovering a little tool by the name of Unity3D about 4 months ago…and I use the term “little” very loosely. Why am I so excited about it? It takes a lot of the meticulous initialization and setup you used to have to do through code and handles a lot of it for you so you can focus on the code that handles the content and game play. Back in the days of C++ (am I showing my age now?) to do something like a simple animation, you had to load the sprite sheet, determine the location and size of each frame of the animation on the said sprite sheet, create a mask so the transparent parts of the image would be transparent and create an engine that would cycle through those images smoothly.  Yes, the “BitBlt” function was my friend during those times. That doesn’t even include the collision detection on the sprite itself! This was done ALL through code and was exceptionally tedious. Unity3D gives you the ability to do all of this without writing a single line of code.  Absolutely amazing. You can now focus your code on what your character DOES instead of how to just make your character appear on screen and walk. And that’s just scratching the surface, there is so much more to Unity3D that I haven’t even touched on yet. Oh, did I mention it also has this nifty feature for building your game on multiple devices and platforms fairly easily? How else could we get our games out for Android and iOS so quickly?  I’d really love to put together a 3D game sometime but I’ll have to get more familiar with Blender for that one. “Ummm…weren’t you just talking about Unity3D? What’s ‘Blender’?” I’ll save that one for another time.

So what exactly does Unity3D look like in action? Glad you asked 🙂 One of the powerful features of Unity3D is it allows you to “play” the game during development so you can see what each object is doing and how they are reacting to their surroundings. Debugging on steroids is what I call it. It also REALLY helps to have two monitors. If you are interested in game development, I HIGHLY suggest getting Unity3D and tinkering with it.

Unity3D - Shape Sprout
Unity3D – Shape Sprout

Shape Sprout Update

So after a bit of planning, configuring and development(a little over 2 months), “Shape Sprout” our second game is starting to take shape.  Pun intended!  I was able to take some screen shots of the game.  In the screen shots, I tried to get as much variety as I could.  Just realize the game is only 75% complete.  The pictures show the menu screen, Kari planting flowers, a rainstorm, drought and the flowers being harvested.  We are really excited for everyone to play the game.  Once we have released it to the App store, Google play store and Amazon App store, we will send out an announcement. It will even be available to play on Facebook! Let us know what you think of the pictures!

Michael and Nik

IMG_0385IMG_0386IMG_0361IMG_0392IMG_0396IMG_0395IMG_0394IMG_0362IMG_0363IMG_0389IMG_0390IMG_0388IMG_0391    IMG_0387