Friday, November 25, 2011

Synaptic Self

Some change is necessary .... the weather is changing ... Pearl Jam unplugged show is still magical and inspiring ... it's interesting how the best things and the worst things overlap ... like right now that they can both happen with the exact same probability ... how black and white co-exist on top of each other and an ant's step is the dividing distance ... NBA 2K12 is one of the best pieces of software I have ever seen ... no one will ever be better than MJ ... need to redefine the priorities ... need to reorganize and re-assemble the crew ... authenticity is better than eccentricity ... I'm still alive .... how easily do we not see all that needs to be seen ... how easy can it all slip ... how easy can opportunities fade ... how easy can friends betray without anyone even themselves sensing ... need to get back to workouts ... Eddie is real ... Slayer is on top ... American Music Awards sucks big time ... all winners are in fact winners of the pretending contest ... devoid of meaning ... authenticity lost ... real men are still there ... the pillars to construct on ... Wade's moves have a flow like no one else ... I hate lies ... miss Seattle sound so much ... the attitude mainly ... miss teaching ... Opeth rules ... the AI and animation in NBA 2K12 are unbelievable ... what was pure imagination in the basketball games of yesterday have become the actual concrete reality today ...Whiskey so smooth ... Even Flow ... thoughts arrive like butterflies ... he don't know ....so he chases them away ... should I chase them away? .... oh ... I'm still alive ...

Monday, September 12, 2011

Refactoring

Refactoring code is like being in the middle of a combat field. You study, change, fix, enhance, test, change, design, observe, reduce, change, optimize, extend, measure, change ... just like you would slash, guard, run, move, stop, breathe, hit, defend, jump, focus, push and attack in the middle of an ancient war.

In both, the outcome is good as long as you are alive, moving, changing, doing and commanding every second. Your failure is the moment you feel secure and satisfied.

Both do not rely on grand design and strategies, both bring out the best out of you, both often require you to do before you think, both show you the meaning of every instant, both value your sub conscious self over your conscious reflection, both need you to hug the opportunities of failure with ultimate courage and both require Real Men!

When no colossal armies are around, waves of uncertainty in the horizon, gotta grab the sharpest blade and dive into the adrenaline pumping moments of life, looking for none but miracles and staying true, every moment.

Just like nature itself, how it continually moves and makes and breaks.

Lets work carefully on good creations, only to watch them shattered to pieces while being done better, all by us, lets embrace the destructive nature of change and look forward to the rising sun...

Tuesday, September 06, 2011

The Rare Breed

Looking for a programmer for an upcoming unannounced game project. The ideal candidate should be able to carry a Generalist Programmer title and have:

Mandatory Attributes:
1 - Showing to work on work days.
2 - Being able to self manage.
3 - Honesty.
4 - Willing to learn new things.
5 - Willing to write any code.
6 - Carrying a bigger sign of Pragmatism than Idealism.
7 - Not afraid to fail.
8 - Aware of the concept of self sacrifice for team excellence.
9 - Willing to help the group.
10 - Responsible.
11 - Familiar with the word: Commitment.
12 - Disciplined.
13 - Able to see out of the box.
14 - Brave.
15 - Time conscious.
16 - Creative.
17 - Passionate.
18 - Believer.
19 - Patient.
20 - Good focus abilities.

Optional Attributes:
1 - Good knowledge of Programming.
2 - Good knowledge of c/c++.
3 - Relevant work experience.

Drop me a line if you are one or know one around. (I am aware that this is a rare breed!)

Friday, August 26, 2011

Zen Coding

You wrote the code, now you have to build it, it takes a while before you can see the results. You see the results, bring down the application, write more code and build again. In most serious applications the build time is something considerable. It is the time the machine needs in order to be prepared for your commands. To you it can feel like a short recess, or is it?

The build time is very clear for the machine but it is a very critical time for the coder. Why you say? Lets see. There is a huge tendency for coders to fly away during this time, which can be sometimes rather long (it can include both the code build time and the application startup and initialization time), it seems to be the best time to check the emails again, read a bit more of that article in the open browser, do a few more clicks on that sporadic junk web MMO, try to be cool in the social net or a million other small time suckers that we are all aware of. Why should it matter anyway, the machine is building and there is nothing else for me to do!

Well, there are three main issues with the above scenario:

1 - A shift of attention during this time is a context switch for the brain which can help you forget all the thought process and data you had regarding your problem in your mind. The longer this break away is, the higher the risk and it is quite easy to completely forget what it was you were working on once the application is up for testing.

2 - The time when you stop coding and wait is the best time to focus more on the problem at hand and even if you stop thinking about anything in particular (a zen state), your subconscious will carry on and try to work on the problem from different aspects. This could increase your problem solving quality and over the course of the day, highly reduce the number of times you would need to follow the code/build process for one specific problem. (Providing you with a lot more free time at the end of the day)

3 - Once you are carried away, there is no guarantee that you will come back and test the application once it is up and ready for you, you might spend a lot more time on the other task you started and who knows, maybe even get involved with the article for more than thirty minutes.

So before jumping out to do something else right after you initiated the build process next time, double check and see whether it is going to really be in your benefit and consider the negative effects it can have to your overall development quality. It is not easy but it could be well worth it.

If the problem at hand is too easy and there is absolutely no need for thinking more on it, you can always think about all the things you can do to reduce the lengthy code build time.

(from http://xkcd.com/303/)



Wednesday, August 03, 2011

The new Hell

We recently thought it was a good time to upgrade the tools and library code that we use. So we went on and upgraded to VS 2010, used the latest version of OGRE 1.8 (un-stable), upgraded almost all other dependent libraries like PhysX, NxOgre, OgreVideo, Theora, ogg, vorbis, ...etc. Recompiled all the ones that had the source code available using VS 2010, quickly fixed the errors related to porting and put all where they belonged and tried to run the game with the old levels we had. Guess what, nothing worked!

Serious crashes and hangs everywhere.

Hmm... it might be related to the new OGRE we thought, maybe because of the way we have changed the use of Threading? Maybe an incompatibility with the new OpenAL? Can it be related to VS 2010? So we started.... we started to try out all different permutations possible with the libraries, ... the new code with the old OGRE, the old code with the new OGRE, the new code with VS 2008, OGRE 1.7, ... OGRE 1.6 ... and any other imaginable configuration, hoping to find the exact module causing the new issues. After almost a week, nothing was found! Strange stuff happened with every change.

Now we are back to the old code base that runs perfect on VS 2008 with all the rusty libraries that are rock solid. Will follow the upgrading of the libraries sometime in the future but this time one by one with proper test suites to run after each change.

Lesson learned: Do not upgrade everything possible over NIGHT!

Wednesday, July 27, 2011

Looking Back

Captain Gustav stared at the tides ... face looking as dead as death itself ... thinking about how it ended this way ... re-living the events to mark the mistakes with his sharp blade ... givin' it a blow with the revolver attached to his belt ... sipping the Whiskey ... feeling down and strong ... he watched the match go on fire after a seemingly useless attack at the match box ... giving life to his cigar just to watch it die ... his mind wandered everywhere ... remembering the cold storms and the many times he danced with the angel of death while holding stiff to the wheel ... taunting and screaming at the mighty Poseidon with tears merged with the burning storm rain ... inhaling the soul of his cigar while watching the climax at its tip ... reminding him of the god defeating moment while he was one with his ship ... one with his crew ... predicting every motion of the raging sea ... seeing from the eyes of the god of the sea ... exhaling the baptized soul of his cigar while watching the still sea from his motion-less and quiet vessel ... but feeling the storm stronger than ever .... the frightened and shivering smoke moving away from him crying about the storm they saw ... understanding very well how he would like to torture the whole cigar and lett its pure soul experience the most frightening of all storms ... his storm inside ... the one not played by Poseidon ... the one that caused the god to blow the wind of death on the sea ... how he felt the Whiskey running away when vaporized by the heat of this storm ... the illumination of another inhale ending moment calming everything inside him for a moment ... whispering to him how fortunate his lost crew were to not have been by his side in this storm ... Captain Gustav gazed at his revolver ... this time lying innocent ... looking like a savior ... how it might have freed many souls from their inner storms ... the storms with no preparation signs ... his left hand freed the cigar ... threw it in the dead sea ... with a hidden hope that its burning soul might awaken the life sucking waves of the honest storms ... something ... anything to calm the inner chaos ... this .. he had to bare ... this ... had to go away .... this ... should inject more will into his old and tired body ... this ... needed to go away .... dark cold killing storm is in the horizon ... Poseidon shall rise again ... with a confident face and a brittle body ready for handing over the throne ... alas ... no god has fought the inner war!

The End of the Line

What would have happened next if most of the seven Samurai had not died after trying to defend the village? How would they have felt after the success? Would they have regret the unpaid effort? Would they have extracted meaning from the whole scenario? Would Kyuzo have continued his swordsmanship practices like it was the first time he had the blade in his hands? Would Kikuchiyo have maintained his built up attitude? Would they have stood for the village again? Would they have witnessed their own descent? Would the hunger have fed with greed?

Is death the only option for eternal success? ... maybe yes... maybe not ... probably not for the people raised with Bushido which is said to be the "Way of Dying" or living as though one was already dead!

Sunday, July 24, 2011

Californication

I am not usually very fond of TV and have praised myself often for keeping away from it, even totally without it while living in the Country of the TV. Even the recent surge of TV series seasons on DVD had not caught me. Getting to know Neil Postman and his great books had further strengthened this idea.

However, just very recently, I checked out the first episode of Californication which I accidentally borrowed from yzt and I have to admit that I am blown away by it. Very close the the end of the second season and I have really liked it so far. Great actors, nice pace, wonderful music, good balance and containing good food for the thought below the seemingly hedonistic layers, oh, and nice to see the details of LA one more time. Quite cool.

Sunday, May 22, 2011

Master Eddie

I just had the pleasure to watch Peal Jam Unplugged one more time, thanks to PSJ. It is even more exciting to watch now than 15 years ago, the music is wonderful, improvisations fascinating, all the great songs from the Ten album and Eddie Vedder himself becomes one with the music. Watching him with the mic is a school of life in itself.. so pure ... so strong .. so focused ... so real!

It was also a trip to nostalgia land with memories of great friends around and the "Anything is Possible" days.

Oops.. gotta go since Alice In Chains unplugged is up next :).

Wednesday, May 18, 2011

The Journey and the Spiral

It was almost 4.5 years ago that Farshid's brother stepped into our office. I don't even remember why he had come, but from the very first moment, Syros was surrounded with magic. We talked about a dream far far away... a dream as vivid as impossible ... a dream to make video games.... it all happened really quick ... he jumped in the ideas right away and started making 3D models in no time ... models that were exported to be rendered inside the OGRE3D engine... me, being always engaged in little game related projects with no real art couldn't believe how good the fusion of art and code was ... seeing progress every day ... feeling something different this time around ... the enthusiasm of Syros helping us apply a force needed to turn the wheel ... in no time Peyman was around animating the first 3D characters and Soheil joined in and brought excitement with his visualizations ... finding a book called Soshians threw us all in the dream journey of love, achievements, hard days, brotherhood, loss, belief and non stop work.... a journey which reached its destination a few days ago (May 9th) with the international release of Garshasp.

A journey that had many achievements for the team, a team that started from zero literally and had to learn everything from scratch. A journey that seemed endless at many milestones.

As a product, the game was rated mediocre in the international scale among the best in the field, which is quite good considering the journey that has brought it to this point, but what really matters is the process which is in place now and the new journey which is going to take off from this destination or better say this origin.... this is just the beginning .. we're born again ... it all just started!

Seems like a loop at first but its in fact a spiral ... riding the spiral ... gonna end it with Tool:

I embrace my desire to
feel the rhythm, to feel connected enough to step aside and weep like a widow
to feel inspired to fathom the power, to witness the beauty,
to bathe in the fountain,
to swing on the spiral
to swing on the spiral
to swing on the spiral of our divinity and still be a human.

With my feet upon the ground I move myself between the sounds and open wide to suck it in.
I feel it move across my skin.
I'm reaching up and reaching out. I'm reaching for the random or what ever will bewilder me.
what ever will bewilder me.
And following our will and wind we may just go where no one's been.
We'll ride the spiral to the end and may just go where no one's been.
Spiral out. Keep going.
Spiral out. Keep going.
Spiral out. Keep going.
Spiral out. Keep going.
Spiral out. Keep going.

Wednesday, February 23, 2011

Human Magic

The magic inside... different methodologies and processes and regulations all try to streamline a development process and reduce the risks hidden throughout the journey which includes creativity and engineering.... However, there lies a magic ingredient which can boost everything or kill all attempts, bring life to all or take all that lives... bring on success or absolute failure ... this magnificent or lethal ingredient is nothing but the human side of things ... the stuff that happens when two collaborate or take sides... this is what can make a team leap a hundred years or crumble all that has been made in a hundred years ... oh how valuable ... oh how the magic lives ... how we still rely on this magic ... how we all need to be magi ....

Sunday, January 30, 2011

Black and White

Black Swan, a perfect movie that defines perfection....

Friday, January 21, 2011

The Book

"Masters of Doom", this was the book that changed my life in 2003 when I read it for the first time. The life as lived by the creators of the first major 3D First Person Shooter games, id software. The book is wonderfully written and highly inspiring. It was probably the driving force which helped me believe in pursuing an alternate life, following game development as a career. An alternate life which for me included major changes in life.

I had a chance to read this masterpiece again recently and it was even sweeter than the first time I read it. 8 years, drastic changes in life and the first attempt to releasing a game have passed since the first read but it is even more inspiring and adrenaline pumping today.

The book is all about determination, love, passion, problems, reality, sacrifice, success and life in general. Wonderful.

Tuesday, January 18, 2011

Embracing Failure

Failure can be valuable if it helps find a better solution for the problem at hand. A very interesting post about the topic here.

Creativity needs deviation and deviation can lead to failures, information gathered from the failure can be used as heuristics necessary for the next search in the problem domain. Elegance can emerge among all the chaos.

Wednesday, January 12, 2011

Ancient Warriors in the Digital World

We often called our few and highly talented and motivated developers at our office Samurais. This was a subconscious feeling and an appropriate word for defining the developers who have helped us during the last 8 years that we have established our company. It still feels the best word for describing these guys.

The Samurai were retainers for their masters and aligned their actions in life to be able to support the master in the best way. The masters for our developer samurais have always been the projects. A Samurai would commit seppuku upon losing the master and this is the mindset of a Samurai developer upon failing the project.

There are many attitudes, specifically the mental ones, that can be analyzed and discussed for comparing the legendary warriors with the modern incarnations but I will go for one I recently came across.

I was talking with a few friends recently about how I feel the special developer (coder, designer, artist) here is the one who when has an eye taken, a hand chained, attendance time limited and generally constrained, will do the best possible work and do it with zero complains and with the highest quality possible. Oh this being something doable by the few special ones, the few Samurais around. It turns out that this is what the word "courage" meant for the Samurais as the Book of the Samurai, "Hagakure" says.

..."Young men should discipline themselves rigorously in intention and courage. This will be accomplished if only courage is fixed in one's heart. If one's sword is broken, he will strike with his hands. If his hands are cut off, he will press the enemy down with his shoulders. If his shoulders are cut away, he will bite through ten or fifteen enemy necks with his teeth. Courage is such a thing."
From the 7th Chapter, Hagakure

Courage is indeed such a thing...