Wednesday, March 26, 2014

Week 34 : RoseTree Compiler


It has been a hectic week already, have been writing papers, presentations and projects early so that all the interviews I am about to embark on won't impact my studies. I was very nervous about the latest compiler assignment, essentially we had to start from scratch using Yacc & Lex. Well it turns out Yacc & Lex make things easy, I finished my front end in one day!

When I was done with my project my boss said something that meant a lot "I am hard pressed to think of something you haven't learned now". That make me feel great, regardless of the outcome of these interviews I feel like I succeeded in learning computer science. I feel complete, now if I can just get a paycheck!

Oh and I sold my house last week.

See you in seven weeks

Monday, March 17, 2014

Week 33 : Lua Game Play Programmer


Let's look at the Tell Tale Position 'Lua Game Play Programmer' and breakdown how I am an ideal candidate.

Telltale’s Gameplay Programmer group is responsible for bringing the visions of the designers and artists to life, as well as contributing in meaningful ways to user interactions and overall game play.  Working on small product teams alongside industry innovators in game narrative design and cinematography, push the boundaries about how players consume and experience games.  Development is done entirely in Lua and Telltale’s multi-platform downloadable game development system; the “Telltale Tool”, you can help to create tons of amazing content for Xbox, PS3, Wii, iOS, PC, Mac and Android.

Essential Skills and Experience:
• A minimum of 1 year of professional experience in the games business or 3 years experience developing games in any environment.
• Experienced with languages such as Lua, Actionscript, Perl, Python, and C.
• Experienced at level building, prototyping, UI design, writing, and other game design elements.
• Self-motivated and diligent, with good habits for tracking one’s own tasks, seeking out answers when needed, and actively participating in the entire production effort.
• Posses strong knowledge of programming data structures, logic, and algorithms.
• Passionate about being in a highly iterative environment with a desire to participate in many areas of game development.  This is a position for a ‘Jack-of-all-trades’ programmer!
  
Preferred Skills and Experience:
• B.S. degree in Computer Science or equivalent experience.
• Experience building your own games or levels from scratch with the ability to demo these personal projects.
• Experience working in a 3D rendering environment or 3D game engine (i.e. Maya, 3DS Max, Unity, Torque, Unreal, etc.  )
• Solid working knowledge of Lua
• Passion for interactive fiction, narrative game play, and cinematography.


1) A minimum of 1 year of professional experience in the games business or 3 years experience developing games in any environment.

As of right now I have been working in the game industry since 2001. I joined my first company in 2003 then I joined Plastic Games in 2005. We had our first Disney contract in 2006.

2) Experienced with languages such as Lua, Actionscript, Perl, Python, and C.

Of the languages described I have the most experience with C and Python, I dabbled in Actionscript when I was teaching and Lua I am learning right now. At this point I am not intimidated by any 'C' style language, I know the core data structures, learning nuances of a language are usually covered in how to books. I find that having a good IDE is key to how successful you are at producing bug free code.

3)  Experienced at level building, prototyping, UI design, writing, and other game design elements.
Gosh, all of these concepts are the reasons I enjoy game development. I have done each of these for any number of products let it be a Disney attraction or something added to Bit Shifter (Plastic Game's flagship product)

4)Self-motivated and diligent, with good habits for tracking one’s own tasks, seeking out answers when needed, and actively participating in the entire production effort.
As an Indie there is no way you will succeed unless you are self disciplined and motivated. As for tracking tasks, I love marking things off my to do list, and well my white board might be the best thing I ever bought. My success in my Master's can to be attributed to learning how to ask the 'right' questions.

5)Posses strong knowledge of programming data structures, logic, and algorithms.
Check, let see this last year I implementing convolution for Computer Vision image processing, created a compiler, added a planner to Unity3d and developed a data set comparing Fringe & IDA* to A* path finding.

6)Passionate about being in a highly iterative environment with a desire to participate in many areas of game development.  This is a position for a ‘Jack-of-all-trades’ programmer!
 As an Indie it is crucial that you can assume multiple roles. Normally I am the game play programmer but if I am needed as a technical artist I do so, if the web page need fixing then that is what I do. When you only have two engineers on a team you tend to put on many hats. As a small company we have also learned that agile iterative development is the only way to find the 'fun' in a game.

7) B.S. degree in Computer Science or equivalent experience.
I have a Masters and over a decade of experience!

8) Experience building your own games or levels from scratch with the ability to demo these personal projects.
I'll have plenty of examples to show.

9)Experience working in a 3D rendering environment or 3D game engine (i.e. Maya, 3DS Max, Unity, Torque, Unreal, etc.  )
Yep, I taught 3d modeling, Animation, and Game Engines  over the years, and have worked with each of these applications.

10)Solid working knowledge of Lua
Check, I have already read many interesting articles about Binding C/C++ objects to Lua objects. Now I am gaining familiarity with the nuances, like .. upvalues, closures, & tables.

11) Passion for interactive fiction, narrative game play, and cinematography.
Eleven year ago I wrote this. I always felt games would be a great medium for story telling and cinematography.

So there you have it every point is covered, I have yet to find a job description that I fit more perfectly into.

Tell Tale Game you are my # 1

See you in eight weeks

Tuesday, March 11, 2014

Week 32 : Spring Break


Ahhh Spring Break a time to rest, sorta. I must admit it is now four days into Spring Break and I have worked during three of them. I figured it was a good time to get ahead of work, boy was I right. I have finished implementing semantic checks on my parse tree AND my tree is generating generic assembly code. Kazah , that means my RoseTree compiler is feature complete! I deserve a day of rest.

Today will be a lite work day, I will just generate a dataset for my AI project. In the meantime I'll continue my reading on LUA and maybe spoil myself by reading a comic. So is the life of a CS engineer.

On the jobs side I have been inundated by local recruiters, which leads me to believe I look good on paper. Now all I have to do is make it thought the interviews.

Oh and on that note, I am still waiting on TellTale to reach out so we can begin the process. Let's hope today is the day.



See you in nine weeks

Monday, March 3, 2014

Week 31 : Growth

It seems that every week I encounter another milestone. This week is the 9th week of the semester, which means I am in the second half.

I'd like use this week's blog to post things I have realized while in school

1) It's not the programming language it is the problem solving skills. Many people ask you 'what is your best programming language' to be honest it is all of them. I realized that it isn't the language so much as the tool you use. Without a good debugger it doesn't matter how good you are at programming a language. Eventually you will make a mistake, and having a good IDE is imperative to finding and fixing those bugs.

2) Ego is everywhere, I have always tried to be humble, especially in regard to coding. There are plenty of other coders who know more about this subject or that, it is important to be able to listen to them.  Being able to work with others is a fundamental aspect of teamwork. You will encounter conflicts, as an adult you must be willing to adapt. If the conflict persist, be the bigger man, don't let your emotions get the best of you, seek a supervisor it is their job to get things worked out.

3) Communicate! I can't tell you how frustrating is is working with someone who never provides updates. As team members we need to talk, daily. I see this regularly with students, especially those fresh out with a Bachelors in Computer Science. Most never have had to work with others professionally, they don't realize their silence is holding up work. For all of you out there, I need to know what you are doing because I don't want to do something you just finished and more importantly I need to know we are 'moving the rock'.

I think those are the top issues to being a successful programmer.

See you in ten weeks

Monday, February 24, 2014

Week 30 : Coding

Another huge milestone reached, this means only 10 weeks left to get employed, yikes!

All in all this next week is about coding, I spent the weekend building an infrastructure for a Token Ring Network. Now I must pass that code to my partner and hope she is up to the task of implementing voting and token passing.

So today I revisit the AI path finding project, where I'll implement a protocol for reporting successful runs to the console. After that feature all that is left is map sharing.

Later in the week I will pick up on the RoseTree Compiler. I am at the point where I am creating the Parse Tree, and although my process yields me a tree of some sort I think I can improve it to yield just a syntax tree instead of the full parse. Before I proceed coding I need feedback from the professor so I don't waste time on a golden fleece approach.

'How did the interviews go?' you might ask. Pretty well, I have been asked to visit a site and there is still activity on my LinkedIn account, I am hoping to get a few more interviews before Spring break starts and the next phase of the hiring process begins.

See you in eleven weeks.

Monday, February 17, 2014

Week 29 : Hiring Season

It is official, 'Hiring season' is upon us. Apparently the window starts on Groundhog's Day and goes to Easter. I can say that I have been contacted by several companies already. Non recruiter interviews are scheduled let's hope things pan out. As this blog is about my quest to get a job at Tell Tale we will keep the other interview's private.  I know several former students are following my blog, they are always welcomed to ask for details. I plan on recapping to whole process once Tell tale has made their offer =)

In the meantime I get to work on my interview skills while juggling school. I hope I am burdened with traveling and finishing assignments. On another positive note, the house is done. It should be listed by the end of the day. All in all my plan is panning out.



See you in Twelve weeks

Tuesday, February 11, 2014

Week 28 : Save the Cat


Wow week 28, that means I have been at this for seven months. What do I have for you this week you ask?

Well, I decided to pickup a book on screen writing, don't worry I haven't given up on my dream to make games only to decide to move to LA and be the next big screen writer.

I did however spent the weekend watching some classic movies and began dabbling with a movie idea myself. Yes, I did attempt to start writing a script. I quickly came to the realization I don't have a clue on how to write a movie. Sure I have watched plenty, and read plenty of plays in my youth, but I never really attempted to write one. Heck 110 pages should be easy to bust out, boy was I wrong.

So I found a book 'Save the Cat', it is a very good read, nice and light. Most importantly it gives you the right questions to ask. What is the one line that describes the whole story? Who is this story about? How is he/she growing through the story? What is the demographic? What is the time frame?

These are all great questions that help you refine your idea. Although I am not planning on writing the next big budget movie I do think these questions help in game development. At Plastic Games we have been working on a game for a while. The game play is solid and fun but the story. . . the story isn't fleshed out. So why not use the basis for solid story telling, the movies, also for game development? It seems like the natural thing to do.

As we know, Tell Tale Games is all about story. Story drives the game. I would bet most of the story writers at Tell Tale have written scripts and plays themselves. It is not only good to learn how to write better for my personal knowledge, there is a language to script writing. It is better to become familiar that language now than to have a blank look at my face when I am asked about 'log lines' and 'act breaks'.

I actually have a book on writing for animation, that one will be read next, and perhaps a book on writing for comics. I have looked into books focused on writing for games, but I am hesitant to read them. The authors have plenty of games in their pocket but many of their credits are sports game related. I don't ever recall be captivated by the plot line in Fifa or Madden. Let's face it, good story writing is few and far between. Perhaps it is a result of the infancy of games or maybe there isn't a target audience to justify publishers creating such a niche book.

In any case a good student can take the fundamental solutions from one subject and reapply them to new problems. That is what knowledge is all about.

See you in thirteen weeks