Wednesday, October 1, 2014

Hauntings

I had a nightmare the night before last. I was at the house of my grade school years. I had gone into the garage to get something and the garage door was open. It was night and the outside was dark. I looked out into the night and had an instant feeling of fear. I quickly pushed the garage door button. I heard the familiar sound of the mechanism starting and in a slow motion sequence, as I turned to go back into the house a man with a deranged look on his face appeared from the darkness and grabbed me. I think I woke up screaming.
It's still haunting me today and has, in fact, become a source of inspiration for my current work on Imagine Me. weird.

Saturday, August 23, 2014

My Color

I have thought about inclusive-ity and diversity a TON lately.  I didn't like that my only option was to scream "Hey [under represented group] I want you to be a member of our community!"  There had to be something else I could do.  What was I missing?!?

Today I had an epiphany.  Today I realized for the very first time WHY I wanted the diversity.  It wasn't so I could champion about that I am inclusive.  It finally dawned on me that I WANT to tell the under represented groups they are needed and why they are needed.

We are drawn to things that are like us!! :D  I recently found out the founder of Adafruit is a girl!!  I was so excited!!  A girl!  Someone like me!  Doing something techy!  How cool!!  Google's "Made with Code" is about girls (like me!!) using code (I can do that!!).  I read an article in the Star Tribune featuring the La Semana Culture Camp for adopted kids from Latin America.  The highlighted quote was 'All the kids are my color.'  Meggan Scavio recently recalled a conversation she had with Rami Ismail on how he felt seeing Farsi on a slide at GDC and how moved he was.  It was because there was something he resonated with, something "my color."

That is it.  THAT is what its all about!!  Finding "my color" is why I want to scream from the rooftops:
"Please be a member of the Imagine Me community!!! Be the "my color" for someone.  Please bring your friends.  Find your "my color" with us.  Let me know how I can make that happen for you!  I want it to be a place you feel safe.  A place you can find your color :)"

You may not understand why it's such a big deal to me - especially right now.  That's okay ^_^ I just wanted to tell you, I've found "my color."

Monday, July 14, 2014

Tools: GitHub & Cloud9


GitHub, the world's largest code host.  Generally terminal command line, the instantly confusing black box with white Courier font, can be intimidating.  It feels if you type one wrong command, or miss a single letter, you could destroy your entire project!  Let's face it, with all these fears you could end up avoiding the tool rather than embracing it.


Familiarity.
I find I am most scared of the unknown or unfamiliar.  Get comfortable with GitHub.  CodeSchool has an awesome course entitled "Try Git" for free.  It teaches you the basics in a very practical and immediately applicable manner.  The "Advice" box to the right of the tutorial explains the vocabulary used within GitHub.

As you progress through the tutorial, you recognize you are starting to understand what "version control" means and most importantly, how to use it.

Freedom.
While Git is social (sharable), for an independent developer it is often just you, or just me.  I don't want to be stuck in my house at a desk all day long.  What if its nice outside?  What if an awesome coffee shop/cafe just opened down the road?  What if I'm feeling lazy and want to work from the couch?  GitHub makes that super easy!  I can download my entire project in a .zip and work away.

Cloud 9 IDE


Flexibility.
Downloading and setting up an IDE can be a bit cumbersome and working from Notepad might not offer me all the flexibility I want.  Enter new tool Cloud9 IDE.  This online platform connects with your GitHub repository (tutorial).  You can customize the development environment to suit your needs, then use the console to commit just like you would otherwise.  You cannot debug in Cloud9 as C# and JavaScript are not supported languages to Run/Debug (but the awesome-est language Ruby is!!!).  Just test back at your computer with Unity installed.

Your new ease of mobility can take you anywhere!  The "home office" isn't so limited anymore.  So, what do you think?  Where would you find yourself with this new freedom and flexibility??


Friday, July 11, 2014

30 Days of C# Unity and the Lifetime Love



Hey everyone!!

The Hiatus.
Its been a while.  Let's rewind a little bit.  I started 30 Days of C# Unity in April and have since then used Unity on a daily basis.  The reason for my absence?  We needed me to learn faster.

Imagine Me.
I worked on Imagine Me, a 2D-platformer, in various roles up to this point.  On May 16, Chris and I decided to pull the plug on our current random generation system in the game.  We were not happy with it (understatement) and neither was the community.  Chris was (and is) working a full time job.  The indie dev thing is something we have done in our home life because we love it.  He didn't have the resources (time and energy) needed to rewrite the random generation AND continue development on the rest of the game.  We desperately needed a second developer.

Refined by Fire.
The job fell to me - the novice, C#-hating, Unity hesitant, just-getting-her-feet-wet girl.  I was thrown into the fire with a community full of expectations waiting on the other side.  It couldn't have worked out better.  I used the tools already enlisted from my "30 Days of C# Unity" They were a huge help and I stand behind each one listed in this blog.

Today.
Today, work is almost done with Imagine Me's new random generation.  I am tweaking a final few things to give it an appropriate feel, and prepping for adding it into the current game.  Later, I will create a "Projects" tutorial of my own to share with you, but for now my 30 Days of  C# Unity has turned into a Lifetime Love for three words: "Made in Unity".

Wednesday, April 30, 2014

Day 4 of C# Unity


It's Day 4 and I'm back to the Space Shooter!  The hands on experience with these projects has become a wonderful compliment to the Beginner Scripting lessons, but more on that later...

Project: Space Shooter
I began today's session by covering a quick review of the last video I had watched in the project.  This was very useful to 1. put my brain in "Unity" mode and 2. refresh where I had left off.  The Camera and Lighting video was an awesome refresher on Unity's orientation.  Remember: Left Handed.  I practiced orientation by putting my left hand in weird positions, then guessing what the camera would show.  It helped a lot!



The next lesson Adding a Background was pretty straight forward.  Create a quad, add texture/material, adjust shader, scale, and transform.  One cool trick I didn't know before involved dragging a texture directly onto the mesh in the scene.  Unity creates a material for you!  While creating a material yourself is not difficult, eliminating a couple steps eliminates possible errors and mishaps - always a good thing.



One thing to note, the shader step was very shallow. The reference material, provided in the links to documentation, was either too vague or too advanced. I really hope to find more on shaders and materials later.



 Moving the Player provided an awesome opportunity for me to practice the Beginner Scripting lessons from Day 3. The lesson reviewed public variables, FixedUpdate, Vector3, and rigidbody. It also provided an introduction for the next lessons in the Topics tutorials including an introduction to data types, GetAxis, and using classes.

I most enjoyed the segment on Mathf.Clamp.  This is probably the first time I've thought C# had a useful function.  Clamp is awesome.  It allows you to constrain a game object to whatever space you define, and all in just a few lines of code!



I followed along quite easily until the last segment using Quaternion.Euler.  Yikes.  When I clicked on the reference material it brought me to Intermediate Scripting.  I knew I wasn't ready for this level of scripting, but felt unsatisfied blindly typing away.



Overall the lesson was perfectly paired with Beginner Scripting.  I highly recommend using the Beginner Tutorial Scripting and Space Shooter project together.  Tomorrow is back to scripting lessons!

Have you found any useful beginner tutorials on shaders?? Please link them in the comments.  I would love to understand them better.

Monday, April 28, 2014

Day 3 of C# Unity

     

     After the weekend break, I'm back at it.  I started today with every intent to continue Unity Gems, however, I realized very quickly "Common Unity Gotchas" was a bit more advanced.  Rather than get frustrated with GetComponent and all the rules and scenarios (and a StormTrooper ??), I switched back to the Unity Topics: Beginner Scripting.

  

Beginner Scripting
     I instantly felt more comfortable.  I worked through lessons 5 - 10.  The first two were awesome "gear ups" reviewing "If Statements" and "Loops."  These bits of code in C# are not terribly different from their JavaScript counterparts.

     Lesson 7 covered "Scope and Access Modifiers".  I already knew Scope. I did not fully understand how Access Modifiers work within Unity.  In my first exposure, I might have complained about the redundancy between setting variables in scripts and then changing parameters in the Inspector tab.  I now wish I would have worked through the scripting primer from the start.

     The lesson used a variable called "alpha" as an example.  When set to public, you can adjust "alpha" in the Inspector tab.  This made so much sense now!  How convenient to be able to tweak a parameter and see the effects immediately?!   The lesson explained the value of a variable can be set in Start().  This overrides the Inspector setting, but once game play is under way, adjustments can be made in the Inspector.  What is Start()? A perfect segue to the next lesson!



     Awake() and Start() were the subjects of lesson 8.  A solid foundation of Unity requires understanding the difference, use, and timing of these functions.  I am a bit shocked I was able to finish a project without grasping how these functions work.  The script calls Awake() first, and Start() immediately before the first Update().  I had a bit more understanding of Update() and Fixed Update(), but truly enjoyed the refresher and iteration.  It does wonders for my coding confidence.

     The final lesson reviewed "Vector Maths."  I must admit how surprised I was to enjoy this lesson.  Speckled with humor, the video covers 2D and 3D coordinate basics, explains how unity is "Left Handed," and provides useful example applications  (Tank! Tank! Tank!).

  


I am loving the Unity Topics tutorials and can't wait to get back to my Space Shooter project tomorrow!



Thursday, April 24, 2014

Day 2 of C# Unity


Day Two brought me to Unity's own tutorials which they have titled Learn.  Simple and straight to the point.  Under this tab you can find Tutorials, Documentation, Live Training (if something is scheduled), and other Support options.  The Tutorials consist of Topics - specific sessions and assignments that you choose from and Projects - guided, step-by-step from set up to final build of example games.

Scripting
As I am most concerned about my scripting practices, I decided to start with the Topic: Scripting.  There are a total of 47 lessons, over half of which are for beginners.  Perfect!  The topics are a series of YouTube videos, and not interactive, but each provide downloadable code and links to reference documentation.

The first four lessons are foundation builders.  I felt they were there to make sure everyone was on the same page.  Collectively, lessons covered the concept of scripts, basic components, and best practices for conventions and syntax within Unity.  I truly enjoyed all of them.



Project: Space Shooter
If you have not yet done a Unity Projects tutorial, I highly suggest it.  By far it was the best experience for me during the Global Game Jam.  The projects allow you to get your feet wet, experience all the things, and provide links to reference material if you have any questions.

The projects come complete with all the assets you need to finish the game and are awesomely organized. This is a big plus for me as I find Unity's importing and file structure something I definitely need to learn.  I watched the videos, took notes, then completed the tasks on my own.  This helped me iterate what I was learning a couple of times. My notebook is a best friend and I often use it as a reference later.



The one downside: these projects can be a bit over the top with the hand holding.  If you just follow the steps are you really learning it?  The notebook helps, but I try and make sure I don't use it as a crutch.  I also take time to play with the tools outside of the project lesson's "scope."  A good friend of mine recently said "When you get a new tool, you should ask yourself 'How can I "break it"?' and then learn from that process."

The first few lessons in the Space Shooter give you an overview of the game you will make, orientate you with creating a new project, and give you a good understanding for creating a player game object.  Each video has a single concept that is fleshed out in a series of tasks.  I really enjoy the setup.

Day 3 is already here! Let me know if you have a similar "notebook" experience in the comments below.