Sunday, December 28, 2008

Absolute Beauty

The fact that human teams operate towards a goal with all the shortcomings, problems and errors in their individual and teamwork efforts is beautiful. Alas it seems that the real meanings of the human race is hidden somewhere in between these inabilities and distances from ideal and optimum processes. As long as there is a strong will towards action, its all beautiful.

Friday, December 26, 2008


Following this post by yzt regarding Paul Graham's new essay and a previous post on this blog, I've come up with a suggestion for the education system that might have the potential to enhance the current situation a bit, although this is a totally impractical solution but at should be fun as a thought experiment.

Here is the idea: One day all of a sudden all schools decide to not deliver anymore certificates to anyone. The whole University system remains intact except the parts where they hand a piece of paper or some kind of aknowledgement that a student has studied a certain course and for a certain period of time, no Bsc, Msc, PhD or anything else.

Now what will happen? From the University side, they should be able to operate as usual with the normal classes and teachers and exams. The education system would ideally be divided into multiple plans rather than rigid 4 year Bsc degree as an example. There could be 12 paths available for a specific major instead of that. Students are free to drop out anytime. They can start a path anytime, the only requirement is that they have to take an entrance exam since they do not have any proofs of previous studies.

From the students side, we will have a lot of drop offs, all the ones who were there for the degree and didn't care much about learning, and a lot of new students joining because they can now and they only care about learning. The education quality should be much higher in this system since there should be people with same motivations gathered. Better students can joing better schools.

From the industry side. Now these guys will have a tough time selecting the employees since there aren't any bold school history in the resumes. What they can do is to do proper interview and run tests in order to select the best individual, the hiring process for them will be a bit harder and requiring more efforts but the positive values they'll gain by hiring better suited individuals being filtered from their specific process should by far help them in long term. Relying on ones capabilities just by the degree they have from a school is the most risky decision a business can make.

It seems that low quality schools would rather fade in this model since no one would bother attending them since they have no real values, the only value they provide in our existing models are the cheap certificate the hand to graduates which superficially makes them and their parents happy for a week. Void values injected into society which complicates things much more and helps in the degeneration of the education system.

Would you have studied in such a hypothetical world?

Thursday, December 25, 2008

Enter Gyoomard

Gyoomard is the ambitious evolutionary AI project which we've started out recently. With the goal of developing simulated character control mechanisms using evolutionary computation and neural networks.

Gyoomard means the living mortal and has been the first human in Persian Mythology.

Wednesday, December 24, 2008

Finally Alive

Moving as wind past the infinite clouds ... feeling the pleasing wind flow by the ears... am I in a painting ... is this for real? ... never saw so much beauty in the sky ... I can watch the sun rays for years ... feeling no weight ... the smell of the Sake still living in my body... my tongue feels for ever different for feeling it ... the brave look of my friends while holding up the shots is always in front of me ... my most meaningful words written forever (1) ... I am alive .... why wasn't I alive before? ... what was I doing all these years? ... this is life ... why don't people know? ... I will regain the honor of this blade (2) ... the handle in my hand so well crafted ... I can feel the love of the makers ... they are me ... I am them ... I am this thing I'm flying with ... moving so fast ... the blue eternity below ... just beautiful and white eternity above ... everything moves except the big Fuji behind me ... telling me how I should be ... farewell ... hello ... I am as strong as you now that I have no doubts and fear my big friend ... I am approaching ... they are so many ... beautiful smoke rising from some of them ... so naive they are ... the waves tried to stop them ... they forced their way ... their intention to be above their breeder ... above the nature ... here comes the wind ... the divine wind (3) ... the name brings more fear in your soul than you already have ... fear induced by your fake god ... this is the god ... I can see you move so fast on the steel ... running afraid ... feeling in hell already ... gripping to all your grudge and self centered disfunctional beliefs like a spear which is tearing your heart ... I see the pain in your eyes while the reflections of sun rays from my sun symbol(4) burns and reveals them ... a pain which isn't a lot more than what you have already had all your non living life ... you were dead ... this will be your birth ... you're trying to run ... you're trying to send bullets at me ... heh ... you are doing what I want ... I am your god now ... bullets or no bullets my path is straight now ... straight down towards you ... the wind is coming ... we are all one now ... we will be beautiful red, orange, grey and black flying up towards the white and blue ... I had all I wanted ... the wind of god will soon wipe your ugly tearful frightened regretful face and return it to the pure beauty where it belongs ... into the dark light.

(1) Death Poem
(2) The Blade
(3) Divine Wind
(4) Rising Sun

Saturday, December 20, 2008

Do the Evolution

Artificial Intelligence was the main title of a magazine called "Rizpardazandeh" which was written with big bold letters on it when I was in the 9th grade. With full curiosity I bought the magazine and read all the articles in it related to the topic, it was mostly about the main ideas and the MIT research lab and Marvin Minsky. Whatever it contained, the event raised my interest and made me sneak into any magazine, book, talk or conference related to AI which I saw close by from that time on.

The general idea of intelligent machines was just so exciting and fun to think of but as I studied more and more about the classical/Symbolic AI, this feeling changed a bit and witnessing the different algorithms in symbolic AI which simplify the human intelligence activities to a few simple steps and enable machines to follow it, made the special human activities seem less complex and important and the real magical feeling behind a real intelligent machine was reduced to rather deterministic computing machines. The glory and value of Artificial Intelligence was over shadowed by the reduced value of the actual intelligent tasks. During that time thinking about AI would result into many ideas in other fields such as psychology, biology and neuroscience.

The border between AI and any computer program was soon diminishing since any computer code would follow some steps to solve a problem which would seem it required intelligence. The definition of intelligence itself was moving like an avalanche. A simple example is the game of chess which was thought of as a game needing lots of intelligence to be played but when Deep Blue beat the human chess master, chess wasn't assumed such an important activity to measure AI anymore.

The original magical feeling returned to me one more time when I read about Genetic Algorithms for the first time a few years later. I was even on the absolute climax the first time I wrote a code that would try to optimize the soluton to a problem using GAs. It was just unbelievable to see every line of output getting better and better as the CPU was processing while you knew that deep inside the code, there are no explicit algorithms that would suggest a solution and actually no heuristics in there to help. Just pure Evolution. Finding out about Neural Networks and their mechanisms and the way they can be used to solve problems added to this feeling of joy. AI contained the magical essence once more but this time in the form of evolutionary and non-symbolic AI.

I've worked on implementing these ideas into different projects and the techniques have proved to be very valuable every time. Most recently, along with MNO, we have started a new research project in the field of evolutionary optimization for sensory motor controllers of a simulated robot. The simulation test bed is almost ready now and the main task which is evolving the robot brains for walking (the first test) needs to be followed. The previous project which we worked on with MNO was "Farsi Cursive Hand-Writing Recognition" software which used feed forward neural networks which were trained by GAs but in the current project we will focus on the use of Continuous Time Recurrent Neural Networks (CTRNN).

Its evolution Baby ....

Monday, December 15, 2008

Empty Spaces

Quiet halls ... empty classes ... confused few ... dimmed goals ... drowned plans ... crushed talents ... this is the current state of the NCC education branch in Tehran which I've been involved with during the past five years. It is an unfortunate ending ... probably the most unfortunate ending for a spark in space-time which provided a great opportunity for many to follow proper Information Systems related education. A vanishing spark which had it found a chance to make the smallest of fires, could have changed the education system in ways to make it more efficient. It just didn't happen.

My belief in the positive effects of this system did not vanish quite linearly throughout these years and I tried to form the un-achievable future till the last days which means the present. I have but a few experiences and hopes now. Experiences related to the tough job of teaching and the dynamics of an educational system and its complexities and all the little links which need to be strong in order to converge to a successful education institution, or at least all the things that can make it go wrong since this system never converged to the goal.

My only hope is that I could've had the slightest effect in the success of all the ones going up and the least negative effect on the ones going down through this system. (Up and Down in pure educational state space)

Would anyone or any event have been able to save this sinking ship? This is a big question which I've thought about many times and even discussed with many a lot, there are many guesses and assumptions which can only be tested in a different time at a different place, this one is already down. Some say the administration wasn't ideal, some say students had problems, some blame the government and some point it at the whole systems model from the source, all I know now is that education is very critical and hard to plan for and a good education system is just really hard to form, although not un-achievable, the main root problem I see in this case is the loss of love, loss of love in every layer, some layers lost it just sooner than others. Every spark can only survive on the strong foundation of love.

I feel a pitty here, I don't usually feel pitty for things I don't have control authority over, but in this case its just sad, I would've been quite ok if the past 5 years were a total mess with no output but thinking about the differences of this system with the ancient-malfunctioning standard higher education plans and all the talented individuals which were channeled in this system to reach better and higher opportunities in an almost efficient way and knowing how many more exist out there who could've had a similar chance is just an annoying thought.

Grab the tubes remaining ones, I've got to get in the boat, set sail for another ship, might not sink this time, one of them should reach the land, one of them will, just more strength is needed, more focus, more belief, persisting love.

The show must go on ...

Sunday, December 14, 2008

Entertainment Thoughts ...

It is getting quite cold ... Afro Samurai is just excellent... the animation series ... the game seems really nice ... can't wait ...Axl has come back acceptable ... great band... Prince of Persia 4, although technically beautiful, isn't as fun as the previous series ... Joe Madureira's "Battle Chasers" is something which is absolutely "omoshiro'ee" ... America's got talent is among the most stupid shows ever, but very educational for studying the current state of America, culturally and psychologically ... Heavenly Sword, good style but seeing God of War makes everything else feel elementary ... got reminded about the great book named:"Thinks".

Wednesday, December 03, 2008

My euphoria with Endorphin

I had a chance to go over the Endorphin product in detail today and it amazed me big time. This technology is really great and playing with the product is really fun. Advanced animation systems in a physically simulated test bed with artificial intelligence for active agents, what could be better. The technology is called motion synthesis by Natural Motion.

Behavioral animation is created using Artificial Neural Networks which are trained using Genetic Algorithms, combined with forward and inverse kinematics and a flexible animation framework brings the otherwise lifeless dolls to life.

This video on TED by the owner of the company describes the techniques.

This is the original research paper, "Evolution of central pattern generators for bipedal walking". The following paper is one of the main sources of inspiration for the study.

"The Use of Genetic Algorithms for the Development of Sensorimotor Control Systems"

This area of science is just so interesting.

Sunday, November 30, 2008

Current State of Affairs

Interviewing new talent to add to the Soshiant team, the challenge to select the best, lots of negotiations with possible investors or sponsors internally and checking out the international opportunities, meetings with the media and preparing content, planning and re-planning for an intense production period, handling the team and specially the Artists (Herding cats needs a follow up edition for the non-techy's), preparing hardware, prioritizing the technical tasks left, forming the story, evaluating great pieces of code such as the FEAR SDK, GAMEAI SDK and the new exciting intel threaded framework, preparing for a new research and a new time plan for life is part of what is going on right now. Lots of opportunities, very tough, very fun, meaningful, complex and inspiring. Beautiful times.

Tuesday, November 25, 2008

Back to Fundamentals

I recently read Joel Spolsky's book "Smart and Gets Things Done", which is a fun and interesting read. The book is built around the reality that very good developers are 10 times more efficient than average developers and the whole focus and goal of the book is to help you find these very good developers. A smart person who actually can get the work done as opposed to smart people who never deliver finished work is another main point in the book.

One part which I really liked in the book was an advice to stick with basic algorithmic questions during interviews and the importance of "c pointers" related questions, although a coder might be required to code using Ruby which isn't concerned with pointers at all. I feel that this is very much necessary since it is the fundamentals which are highly important and these fundamental concepts form the requirements for finding solutions to problems on higher levels. I'm sure that someone understanding how to reverse a linked list will be able to construct high quality code in Ruby since all software systems design seems like fractal extensions from simple fundamental concepts of computing such as the double indirection idea in pointers. Some experts even take this idea to the extremes and believe that bit manipulation techniques are even more important.

Strong fundamentals are crucial in almost any competence, sports, music, acting or even cooking. Phil Jackson had mentioned its importance once during their practices.Practices of team which had the world's best players and finished up with an unbelievable record of 72-10. The focus for THAT team was Fundamentals!

The secret of the masters is to practice the "Basics" continually.

Lets finish by a quote with Phil the Zen Master:

"Like life, basketball is messy and unpredictable. It has its way
with you, no matter how hard you try to control it. The trick is to
experience each moment with a clear mind and open heart. When you do
that, the game--and life--will take care of itself."

Collisions Everywhere

Collision detection between objects in games are vital and almost any game, whether pong or Doom is based on lots of collision detection calculations. The book , "Real-time Collision Detection", covers everything and anything related to collision in great details from the basics to the advanced topics with lots of useful C++ code. After covering all algorithms related to collision detection between almost any type of 3D object you can imagine, the books goes over some numerical and geometrical robustness methods and finishes with great ideas regarding optimization.

A wonderful book on the subject.

A great book from a great author, who is the man behind the God of War engine.

Saturday, November 22, 2008

Becoming rather than Being

Insomniac is one of the successful game development studios which is in business for around 14 years now. They have a special plan known as the Nocturnal Initiative, where they share part of their tools and source code. I've come to think about this attitude many times and wondered about their real intentions behind such plans since their business model is closed source in general and we don't see such movement much from other studios. There has been a recent interview in Gamasutra with their CEO and Creative Designer Ted Price which reveals a lot from what they believe in.

They have been very open at their community event about their internals and when asked about why they are this way, Ted says: "In this industry, things move so quickly that there really aren't that many trade secrets necessarily. It's more about your production process, it's more about being efficient and continuing to push your design".

Beautifully said. All three parts are related to becoming rather than being,continuous change, the importance of process over entities. How can you not get better everyday when this is what you believe in.

Just great.

Education is Dead!

The organized education system as we know today is dead. It just doesn't work. The new age has brought lots of complexities (not a bad thing) with it and the education system has not been able to keep up with these changes and we are following the methods that were designed more than a hundred years ago. A revolution is necessary.

Don't show me the successful individuals as the byproducts of the existing education system since those are just 1 step from the 100 hundred possible useful steps that an education system can take in order to facilitate the journey of an individual in the city of knowledge. The current system is losing the other 99 steps.

The class room and class text books which used to be the ultimate sources of information one day have turned into the least important information input sources, thanks to pervasive global information around us, floating in networks and revealing itself to us in the form of TV images, movies, websites, music ....The frequency of information input from the classroom is not comparable to the data input frequency out there.

The ideal education system should inform us about science, ethics and art. In other words introduce us with the natural world we live in, the society we interact with and the meanings we can find individually in things such as paintings or music. This doesn't seem to be happening the way it can these days. If the education system can help a lot regarding these matters and help the majority, then it is worth spending so much of our lives following the rigid structures, otherwise, let humans flourish on their own and spend their whole time over great things they desire.

Now there are many different aspect that can be discussed regarding the current problems and there can be many solutions proposed as has been so far and I won't be able to get into such topics in this post but all I feel right now is that something big needs to be done since it is NOT working!

Tuesday, November 18, 2008

Use that pen

We are in the process of adding new artists to the team. A few have been interviewed already. Great passion to work on this project is the first thing we look for, the next step is to be able to design 3D environments or be a good Animator. The number one problem we have witnessed in the applicants so far has been that the ones who claim can model in 3D, do not have the texture painting techniques which a game artist usually needs. This has been a surprise for us. Its the fusion of the love of 2D traditional art and new 3D technology which breeds the new type of art creature in these days. The exact same is true for animation. All the feelings and life which is needed in 3D animation has roots in traditional 2D works. We are hunting now!

Friday, November 14, 2008

Movie time

I recently some time to catch up a bit with movies and watched "Wanted" and enjoyed it very much. Its a mix between reality and comic book fantasy and some Chinese Kung Fu movies where the student is trained hard to gain valuable skills. Visually appealing movie of course. I really liked the character of Angelina Jolie which showed so much confidence, power and calmness wrapped around secrets. Her body pose reminded me of the works of Joe Madureira. The idea of curving bullets although far from reality but quite fun :).

I also watched the movie "Body of lies" and really hated it. Another cliche movie trying to make a monster out of Islam. Shame on "Golshifteh", she was the queen of Cinema and now will be yet another Hollywood junkie. 

Van Helsing
is just great! 

Tuesday, November 11, 2008

The Battle

We are in a very important stage now... a stage which we know, or at least I know, that we can finish up the Soshiant project really strong and believe in the great things that can happen after that. I see years of opportunities and excitement, not without lots of challenge, ahead. It was quite interesting for me to find out that this is not necessarily the view of some of the team members, it was quite strange for me to find out about this in fact since everything is so crystal clear for me. Anyway, nothing can prove anything exept time and I am looking forward to Zorvan and his strong horsemen to help out here. We will run, slash, push, crawl, bleed all the way alongside Zorvan and the courage believers and patient non-believers will celebrate this victory. I will not stop till that day comes.


Lessons I learn from my 4 months old baby:

  • How to not pretend and be what you really are.
  • How to see the little beautiful details in everything around.
  • How to enjoy music.
  • How to stare at someone you like for hours. ;)
Back to class...

Monday, November 10, 2008

Saturday, November 08, 2008

A new beginning

I feel like a just passed an important milestone and there is a new beginning ahead. The number one priority in this next phase is to complete Soshiant Game with the level of quality which we have been after. There are going to be some business meetings regarding finding possible funding for this project but either way, the project will go on full force, we just have to see who will ride this wave with us.

There have been a few requests to our team for creating small to medium size games but we will not follow those paths since the number one priority is to finish up our own product. Those projects will derail us and make us lose the focus and a project based work on game development is not part of our main strategy anyway. That is the easy path, we are selecting the hard path. No slavery.

Everyone who feels they can be categorized as technical advises us to buy a 3rd party game engine and explain to us how we can never finish up this project with the path we have taken, using OGRE3D and our own code, well this is our little message to all these technical friends: "spend your time minding your own business!".

Thursday, November 06, 2008

Just another brick in the wall....

Ok .. everybody is excited .. Obama is the president ... happiness everywhere, unless the sun has irritated the back of the neck a bit ... another puppet is up ... another show is on ... the show must go on ....  change is really hard when there is only one controlling parameter in the hearts of the people and social systems, Money .... any system with any name can't behave different when all your system is trying to do is to increase the amount of money the stakeholders have ... unless the system designers are not good in math or specifically in game theory .... change needs to come from inside .... no puppet can bring the change people are waiting for .... there are no saviors ... When big people such as Thomas Jefferson planned the ideal country, they never considered money as the only value in people's lives ... there used to be real humans ...

Tuesday, November 04, 2008

Dubai Game Expo

Soshiant at the Dubai Game Expo.

Friday, October 31, 2008

Development Process Video

Sample development process video from concept to 3D models and animation.

Music has been composed by Soheil.

The soshiant crew

The crew ...


This breath taking monster has been created by our dear friend Mohammad Modarres who worked on it day and night to have it completed by the time of the Tehran Fair where he made a stand out of it and the Dark Akooman stood right by our booth to protect it. We brought it with us to the Dubai Fair and it found lots of fans and attracted the attention of the visitors passing by.

The concept design for this model has been done by Soheil.

This Akooman is a high polygon version and we are hoping to be able to create a cinematic trailer with this model.

Thanks Mohammad.

Thursday, October 30, 2008

Updated screenshots

A few screenshots are updated on the website:

Second Day - Second Video

And the second in game video:

The second day at the Dubai World Game expo ended today. We had a chance to meet up with a few more publishers and distributors. There seems to be a market for our game here in the UAE too. We have to be in touch with some of these publishers once we get close to the gold release.

The highlight of today was the talk of Jay Wilbur who is the Vice president in Business Development of Epic games. He had a presentation about the Unreal 3 Engine and after that paid a visit to some of the Iranian game developer booths. He got a bit sad when he found out that our rendering engine is an open source one which we are not paying for and he mentioned that it would be hard for him to compete with free products ;).. but overall he liked Soshiant. (Thanks again guys back home .. how is the fair at Tehran doing by the way!)

Tomorrow is the last day for the Dubai show.

Wednesday, October 29, 2008

In Game Video

This is the first in-game demo:

Tuesday, October 28, 2008

First day

The first day in Dubai has been OK, we got to the Fair a bit late, thank to the crazy traffic in Dubai these days.. but generally there were guys from a few Countries who watched our work and liked it a lot... lets see what tomorrow has for us. Seems like if we come up with an Arabic version, then there might be some chances for sales in the Emirates.

Monday, October 27, 2008

Off to Dubai

The National Iranian Game Development Organization is attending the Dubai Game Expo and they have invited us to join them at the Iranian Game Development Pavilion in Dubai so we go to get there as soon as possible, hopefully late tomorrow night.

We are trying to gather some Soshiant material tonight to take with us over there.

Sunday, October 26, 2008

The booth

No comments.



We're here ...

I am online now... after about a week living offline and dedicating every minute to the exhibition preparation and the operation of the exhibition itself.. it is day 5 today and our booth has been a blast!

Soshiant website:

All team members showed endless efforts during the last days and nights to make sure we meet our plans, and although I believe we started the exhibition with 60% of our goals, the results have been spectacular so far. Visitors of all age and type are having fun visiting our booth and get really excited to know Soshiant. This was much more than what we anticipated, but it stresses the fact one more time that comes deep from the heart will capture the hearts.

There have been a few arrangements for negotiations with publishers made already and at this stage we would need to make a few good business decisions in order to be able to complete this project of ours. This stage might as well be the hardest stage.

Throughout development, we didn't have much time to think about creativity and we were trying to copy some features from the games that we loved and during this time we sometimes worried that people might say that this feature is exactly like that game and criticize our work, at some point I really thought that this could be the best criticism we can expect as opposed to many other negative things that can be said. Well, this best criticism just happened and most of our visitors mention that Soshiant is a lot like Prince Of Persia or God Of War, the latter makes a few of us rise above the ground for 30 cm! ;) Many even think we are using the Prince of Persia engine !

There is still 5 more days to go for the exhibition.

A little thank you note to all the warriors who helped during the past two months, named based on the date they started working on Soshiant project, thank you guys, we reached the first milestone:

Syros Pourlatifi : Give him an idea and he makes it in 3D. The real Yavar.

Farshid Pourlatifi: He brings anything you wish to the web. The meijin.

Peyman Massoudi: Talk about a body movement and you can watch it on your favorite 3D monster. The life giver.

Sosheil Danesh : His concept drawings make everything in the world of Soshiant. The magician with the pencil.

Faham Negini: Finds the answer to coding problems no matter how long it takes. A real programmer.

Yaser Zhian: Show him a technical challenge, get the solution fast. Master yoda.

More to come soon...

Tuesday, October 14, 2008


With less than 9 days to go, we are in a state to sacrifice new features in order to be able to increase the quality of the existing parts just a bit more .. hmm... the balancing needs a lot of attention.

Sacrifice is THE keyword here since it is happening all around our team. The guys are sacrificing their lives to make sure we reach what we wanted for the exhibition. Alas we are working on a mythological title and sacrifice has got lots to do with mythology.

The team has done an excellent job so far and real work has been done. REAL work has been done, which is based on love, determination and belief! Time has had no meanings and the circulation of the Sun around us hasn't had the conventional meaning of "Oh.. it is night time and time to rest !!" ... probably the most we got out of it has been .. "Oh.. so that is how a real specular and HDR effect should look like ... " and seeing the sun in our little game level has been what has kept the team awake all this time.

The past month has been a month to remember for years to come, I don't know if such an experience will be repeated ever again but it was a little spark which showed what a tiny team can do if their hearts get aligned and if they are real.

I'm sure there were colors in this spark which are rare, colors such as the 3D modeler's continuous focused work to make sure every polygon looks the way it should, the lead technical guy's 27 hours non stop work to make sure the shadow system is implemented the way it should, the concept designer's will to thrust all his visual and musical talents towards the team's goal, the junior programmer's day and night struggle to enhance every aspect of the already spectacular level designer tool (Iranvij), the animator's efforts to tweak all the animations and add new ones and make sure the movement of these creatures in time is as stylish and in harmony with their looks and finally the UI and web developer who despite being all occupied with marriage arrangements has been able to find those extra seconds that usually slip by and construct the interface of this little work to the world. Lack of time, lack of hardware and problems in hardware and software or either personal issues have not been able to de-rail this team. The dream team.

One more week to go full force, hope to be able to update and reveal some information here in about a week. Right now all we need to do is to focus on the remaining days and tighten all the remaining bolts.

And by the way if you're interested in Soshiant posters, collector's cards and a T-shirt, don't forget to plan to visit the booth at the exhibition.

Friday, October 10, 2008


Well, now that adoosh and xerxes have reflected some valuable meanings which have always emotionally been said by Maynard, here goes the one which always hangs around me,

"Black then white are all i see in my infancy.

red and yellow then came to be, reaching out to me.

lets me see there is so much more and

beckons me to look thru to these infinite possibilities.

as below, so above and beyond, I imagine

drawn outside the lines of reason.

Push the envelope. Watch it bend.

over thinking, over analyzing separates the body from the mind.

Withering my intuition leaving opportunities behind.

Feed my will to feel this moment urging me to cross the line.

Reaching out to embrace the random.

Reaching out to embrace whatever may come.

I embrace my desire to

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

Thursday, October 09, 2008


Every second can be lived better... every moment is a life ... every thought and every action while a spark lives can change everything ... oh all these seconds ... focus ... focus ... the time is now ... life is now!

Wednesday, October 08, 2008

Today is Tomorrow

pheww.... the past week was a blast ... the focus of the team was on bringing Soshiant closer to our ambitious goals... we were able to pour in as much time as we can with a few ultra all nighters (sometimes all-day and nighters in fact) ...and the results have been satisfactory ... although some diabolic risks showed that they have in fact the ability to de-rail us for a while but the overall effort and focus of the magnigifient crew on board the Soshiant-Game ship recovered and fought back. Everybody tried their best and has shown super support up to this point. We were able to register parts of the demo for the exhibition today which meant meeting a big milestone for us. Of course still much needs to be done and the time remaining is two weeks.... when you aim for the horizon and set sails, no matter how far you go, still much more needs to be travelled!

Among the major striking waves towards us so far have been, Hard Disk crash, not any hard disk, the major resources data base server hard disk which hosts the main AlienBrain repository, decrease in performance for a few days before the crash, decrease of performance for our modeler which needed to load the memory hungry level into 3D max.

A very low level memory bug which was caused by constructing 3D mesh geometry in OGRE for a cloth representation coming out of the PhysX engine. A random bug which surfaced at the worst times and the most guiding hint the debugger showed us was a problem in one of the main windows assembly files related to memory copy!

Un-expected behavior in the libraries and un-synchronized code and induced complexity because of developer code base sharing were among the others. Not to mention blue screen crashes on the main development PC due to installing the new NVPerfHud studio from Nvidia.

Thrusting features pushing the team have been Mojos made by Syros, loud heavy metal and the team passion as usual.

Among the major achievements this week have been the ability to test and compose the level elements and see the mechanics by using the integrated editor/engine tool (Iranvij) that we have. Trying out visual studio remote debugging showed to be very useful and fun too.

Crunch mode and the intense level of work brings you to a new state, a new state of the mind and senses, every normal day after that seems like the world in slow motion. I feel that meeting the extremes and living on the edges can provide higher quality for the rest of the moments and enhance the overall consciousness. The time which you really live! You will reach this state early in the morning when the sun presents itself once more and someone around you says:"Today is Tomorrow" ... On the social side, you get to know the people around you much better in crunch mode, and man, I've been lucky .... these guys around are warriors.

We would like to thank the following brands and products for supporting our crunch mode: Lavazza Coffee, Crunchips, Jever - Fun (... you can only find out why under the label says fun when you drink it at 4 am on the cold ground tile while nothing is working and everything is crashing !), Istak, Maz Maz, RoastBeef and CheeseBurgers(from Ghermez!!),Tabasco, Spinach-Chicken Pizza (72), Tobbaco in Rizla papers, Fruit Yoghurt (Kaleh), the things that go into Syros Mojo (... actual products omitted due to license restrictions!), Hype, Abbas agha's Haleem, and Sir Jack Daniel's.

Tuesday, September 30, 2008

Boot camp

The exhibition has been postponed for about a week, which is an excellent news for us.

We've started a boot camp already to see how much we can have done in this week and the first night of this camp was highly valuable, another spark from the team with lots of nice things done. The main scene was assembled together and rendered using 1600x1400 resolution for the first time on full screen which was quite exciting. Polishing and making sure every part fits together very well and ensuring solid game play is probably the highest risk we are facing right now and the plan is to play test as soon as possible, although there is still lots to do. The ocean is cold, dark and there is storm all around but the group is still hanging on and patience, focus, passion and again patience is what can lead us to dry land.

Off we go...

Comeback !

Metallica has comeback! Their new album is much stronger and heavier than the last few albums, rebounding from the downfall which started by the release of the Black album.

It is very fun to see experienced dudes come back strong... inspiring, although uber bands such as Slayer never decreased altitude but this comeback is appreciated ...

Tuesday, September 23, 2008

Hail Poseidon

Every time I stand in front of the sea or the ocean, I get a special feeling. A feeling of freedom, a feeling of weightless-ness, a feeling that reminds you that you are nothing and breaks all the grudge. A feeling of being possessed by the ultimate power of the sea, witnessing chaotic harmony blending into the beautifully choreographed motion of the waves over the unique music they make.

If I lived in the old ages, I would have for sure worshiped the sea instead of anything else. Assuming the fact that I didn't live in some distant desert somewhere.

This year, I had the chance to take Mohyar with me to the sea front. He ignored the thing initially, then tried to have a glance, the high intensity light in the horizon bothered him having him look away a few times and then he finally looked at it and clicked ...he clicked ... gazed into the kingdom of Poseidon mesmerized ... dazed and confused just like his father holding him ...

Take me to the other side

Looking at the recent best sellers in the box office we can observe an interesting fact. The fact that most of these titans have been either comic book hero re-creations or animations. The obvious question here would be, why?

Lets try to evaluate some predicates in order to see if we can get anywhere about this question.

1 - Recent technology has enabled producers to create such movies and animation.

Well... true... but just because they can make them now doesn't specify why they have to be best sellers. There should be much more.

2 - People have good memories from the comic books and would love to see them live on the silver screen. Nostalgia effect.

Hmm... well true... but not for everyone ... the everyone who make these movies become hits... and there are many contradicting examples too, take for instance "Kung Foo panda" or "Ratatouille" ...

3 - There are lots of action in these movies and people like action movies.

Again ... there are many action movies out there... Batman, Iron-Man and Hulk are the winners. Should be something more.

4 - The target audience for these movies are the young and they go to the movies a lot.

Only the young people alone can not halp the Dark Knight break the world records.

5 - There is something deep inside us humans that makes us love to jump into the fantasy worlds and witness the un-known and hard to imagine experiences, disconnect us for a while from the boring and repetitive world around us, show us that anything can be possible. The important keywords that can be connected to this fact are: freedom, power, randomness, hope and overcoming fear.

This one I like and delving into it can yield to beautiful facts about us humans and life.
Freedom and power are symbols that have roots in the same type of reality, randomness as opposed to full determinism is required for dynamic systems to have a chance to enhance their situations when faced with trouble, hope can have meanings when there can exist randomness that would create freedom leading to power and overcoming the fear is necessary in order to have hopes and jump into the random sea and show courage to try different things which would make you free and ultimately add to your power, add to your power because you increased your available options out of the total option state space.

Such movies, putting our "I am an intellectual and hate such movies" attitude aside, are valuable I believe ...

Thursday, September 18, 2008

Thousand years...

We've all lived in a "room a thousand years wide" in these past few days. The level of work done has been tremendous, love, excitement, passion, pride, commitment, ambition and brotherhood can be smelled in the air... "Real" things ... things that should be ...  less than 3 weeks left to the showdown... how much more work left? Lots and lots and lots... off we go ....

Monday, September 15, 2008

Chrome Time

I'm having fun with Chrome, the new google browser. Among the reasons for this fun are the fact that it is very light weight and minimalistic. For some reason I always get attracted to minimalism, being simple but with power. Powerful Simplicity. Fast small foot-print code is fun, easy short solutions to mathematical problems are beautiful, minimalistic furniture is awesome, cheetah is my favorite animal, strong people with little overhead are great, sports with little gears needed are the best! Flying is the ultimate dream!

Other reasons for having fun with chrome are the tabs being separate processes instead of all living in the same process and being multi-threaded, enabling all of the tabs to remain open after one crashes, which makes the 50+ tabs I usually have open in the hopes of reading their content some day remain there for a bit more time until I consciously decide that I'm never going to read them and make me feel a bit  ... umm.. well... this one might not be so good after all :).

The comics done by Scott Mcloud are great too. Don't forget to read his books about comics if you have the slightes interest in this media.


Welcome my old pal, Adoosh, to the blogging atmosphere. We always had lots to talk about with a few friends of mine around and now that everybody is so distant, physically, these blog rings can re-ignite some of the heat. At least the discussions can be crystalized this time ...

Wednesday, September 10, 2008

The curse is over!

Khodroweb is up again! After being in-active for a few years, the site is back up again.
The initial idea was implemented 6 years ago but since the situation of online payments wasn't very popular with the people at that time, we had to provide a semi-manual method for running the website where "Tele-marketing" was used for finding new advertisers and an agent would physically go to their place, take the pictures and information and the payment and come back to the main office so that their car ad was inserted into the website database. This model was obviously not the ideal model for such a business and we were carrying on with it until the time that online payments where used easily by the mass so that people could upload their car ad and pay online without any need for physical interactions. This fact didn't become popular among the poeple as we had expected and so we had no chance but to suspend the activities of the website for a while. We've been trying to bring the service back online for quite a while but different issues (the Curse) prevented it to happen. The whole code base was re-written twice in .net and two times in php and never saw the light.

Although this new version of the site is not still what we expect from this system and we have lots of plans for it, marketing and technical, but it is just a small step forward and hope to see our ideas transformed into Khodroweb features very soon.

Monday, September 08, 2008

Final Countdown

"We're leaving together,
But still its farewell
And maybe we'll come back,
To earth, who can tell?
I guess there is no one to blame
We're leaving ground
Will things ever be the same again?

Its the final countdown...

Were heading for venus and still we stand tall
Cause maybe they've seen us and welcome us all
With so many light years to go and things to be found
I'm sure that we'll all miss her so."

Well this is the state of our team so far, with only 1 month remaining to the exhibition, it is the final countdown. Still lots to do but the level of effort shown by everybody on the team has been exceptional so far.

Our 3D modeler is building 3D models with his blood, sculpting each and every 3D model with all his heart and passion. Our animator giving life to all the selected characters for this demo and making sure the whole dynamic motions are what we expect for this stage, our senior programmer and technical front-man blowing his magic over the game engine and enabling the impossible, focusing on visual sorcery , our junior programmer living every moment trying to enhance whatever he can, starting from the world editor all the way to any feature in engine or required by advanced graphics, our concept designer creating all that needs to be created from the collective team passion and our Flash/Web programmer crystalizing all his love into interactive elements..... hmm...I am really blessed to be able to witness all the passion rising from this team and I do not know who nature will unfold our future or yet even the next second but this experience so far has been super natural and worth every second to live for...

A new PC, "Ninja" has been added to the arsenal in order to speed up
some parts and enable proper world creation and testing using our world
editor, "Iranvij".

Still so many light years to go but we believe we can achieve speeds faster than light ... alas remember that the "Force" was with us! :)

Tuesday, September 02, 2008


... other than a monitor exploding and a hard disk crashing and the "D" key of a keyboard jumping out... the work towards the exhibition is going well so far...

Tuesday, August 26, 2008

Into the Sea

The knots are tight, full sails, hearts prepared, fear crushed ... ready to cross the sea, into the chaos... everywhere is dark ...fight the infinite waves and furious pirates in the way ...

Well, the modern day version of the above is the situation of our team getting prepared to participate in the second Digital Media Festival. What we are planning to do is to prepare a playable demo version of Soshiant. How much work does it need? Lots, lots and lots... enough to make what we want to do seem like wishing for a miracle and favor insanity over rationality.

Our team, Syrous, Farshid, Peyman, Soheil, Yaser and Faham, being the symbols of bravery and courage have all united and prepared themselves for the Uber-Challenge. At last we know that we have got "the Force" with us!

Every second counts from now and is lived, life begins!

Wednesday, August 20, 2008

Lets get disconnected from Time!

How can some code behave absolutely fine when being inspected under a debugger, and go absolutely nuts once running free!!?
Well, enter Real Time code which is synchronized with the time we measure! This happens in the Soshiant project. The project is real time, although "Soft Real-time" since it has to respond in a specific time frame, known as each Frame of the application which one main loop executes, and also dependent on the actual time which goes by in our real world. Every frame knows the time passed since the last one, for example 16ms. This time is used as an input value to different algorithms in the code, such as the animation code which uses it to find out about the correct transformations that needs to be applied to the characeter bones in the current frame.
What the debugger does is to first of all stop the execution of the program on a specific point, the break point, and enable you to trace the code line by line from that point on. Stopping the execution means stopping the main loop and bringing its frequency down but the real time which we sense is of course not going to stop so the result is loss of synchronization between the frames and the time. If in normal execution the 10th frame is performed at time 300ms, tracing line by line using the debugger will cause the 10th frame to be executed at time 900ms. This would mean that this frame would witness different states for functions which are dependent on the real time while debugging. A practical problem as a result of this problem would be when you see wierd behavior during two animations being blended into each other which happens during 0.2 seconds, but breaking the code execution at the start of the blend will not let you follow the logic as it happens since that 0.2 seconds of real time will pass as soon as your debugger stops the code for you to evaluate.
Solutions? Short answer, to output trace what you want to monitor while the application is running and not to use break points. Not a real nice solution and sometimes cumbersome. Other solution might be to decouple the algorithms which rely on time from the real time we measure and provide a virtual time system for the application. Speaking about time, we might not be able to find out which time is the real one and which is virtual, relativity anyone?

Sunday, August 17, 2008


A little correction is needed due to the spectacular performance of yesterday!

Lightning Bolt.


Saturday, August 16, 2008


The Olympic Games are beautiful. All the athletes from all around the world, each showing huge mastery in a specific field, all competing. Yes it has its ugly spikes too but overall the level of beauty is huge.

My favorite to watch, the 100m sprint, where a whole life is lived in less than 10 seconds, very short, very strong and focused, no tiny mistakes. After all isn't our whole life a 100 m sprint also?

One sight from the opening ceremony of the Olympics made think a bit, most of the athletes in the parade had a digital camera or a handicam in their hands, capturing the moment, it was a reflective experience where you would doubt in who is the real audience, the people watching the athletes or the athletes watching the people?

The Art of Basketball

An artist showing off his art!

Yeah Wade!

Monday, August 11, 2008

Today is a gift

Kung Fu Panda is fun to watch.The 3D rendering has a unique style which makes it seem like traditional 2D animation, the animation weights and timing are tremendous, unlike the 3D animations from the previous years where every character seemed like a robot, overall lighting and colors look beautiful, not to mention the whole story concept which revolves around Kung Fu which is great. I specially enjoyed the Zen quotes of the master, "Oogway", and this one:"Yesterday is history, tomorrow is a mystery, but today is a gift. That is why it is called the present.".

Saturday, August 09, 2008


The best parts of development in a coding project is when you don't know what you want to do, and once you decide, you simply implement. The worst parts, project wise, are the parts when you know exactly what you want to do, but do not know how to do it. The reason for not knowing is usually due to abstractions inside the frameworks and libraries you are using. These are the real risks which can take a lot of time the first time they are encountered and get solved right away the next times. These are the issues which make deterministic project effort requirements almost impossible. A good name for such things might be "Semantic Black Holes".
We are faced with a lot in Soshiant.
Of course it is possible to reach deep inside these black holes and find out everything about how things are done and need to be done but the only thing lost during this process is the single crucial parameter usually represented using the "t" symbol.
On the other end the same frameworks speed up and help out in many tasks and provide lots of useful features which if you wanted to start and implement yourself it would have needed lots of time too.
Time saved for needed features which exist in a library and can be used: t1
Time spent to find out how the library can tweak to provide the exact need that you have: t2
Happiness = t1 - t2

Thursday, August 07, 2008

The Team

Ardeshir recently found this piece of old newspaper and interestingly enough I saw it today which is August 7th and the date of the news is August 7th also, although minus 11 years from today.

Anyway this was our dream team, lots of great guys, most of them distributed throughout the world now, we had huge fun and huge success in the city of Tabriz. My big salute to all the brave team mates and our very talented coach Danesh.

A little reminder to you guys all: "Kalmasse Boyer Ahmadi!!"

Looking ahead ...

I hope our viewpoints converge in the future ...
Seems more like 180 now ...

Where they merge

Interesting things happen to you when you work in the field of game development. Things like your niece who is 3 years old walking into the office and telling you: "Hey Uncle, are you working or are you playing games!??".

And it would be hard to explain to her that I'm trying to setup the interaction calbacks of the main character's physics representations with the game world that we are developing. ;) Because it seems that no matter what you say .. she has already got that ".. yeah Right!!" look on her face!

Sunday, August 03, 2008

Root of all evil

"Premature optimization is the root of all evil" ,Donald Knuth

Well, whether the above statement is always valid or not, we are following the guideline from the master these days in the Soshiant project and it seems to work out well at this stage by saving us from falling in the local minima traps of code development.

A second part should probably be added to the above statement, something like: ".... and don't forget to perform the prioritized optimizations to the level needed when the base code has matured ....".

This is where the hard part is, prioritizing the optimization efforts based on their real effects on performance and finding out the "Good Enough" level.

We are currently in the easy and happy stage of leaving all the hard thinking for the future...

By the way, this is the first post using the ScribeFire plugin written while offline.. so exciting ;)

Dynast Blade

Another international achievement for our very talented 3D modeler, Syros. This time he got the third place in the "Army of Small" challenge of

Good luck bro and keep it up!


Let me see if ScribeFire actually works...

Friday, July 25, 2008

I swear it changed direction ...

When I first came to know the sports Baseball, I hated it. Then for a while, it was OK and then I used to love it. The role of Japan in this transition is not negligible, or in fact it might even be significant and major.

The last time I was engaged with the sport was from the days that we went to practice in Tehran's Team with my great friend Ghaaj. Until now that another great friend of mine, Ash, is visiting town and we got busy with a little catch ball practice which opened up the pandora's box and made a lot of memories and emotions flow out!

The movement of the ball is very important in this field. Specifically for the pitch. Different pitching types are used by pitchers which claim the make the ball move in different kinds of trajectories, ranging from straight and fast, to curve and fall, even a ball which can shake while it traverses from the pitchers hands to the catchers glove. Those who have played the sport have all witnessed this bu many have been skeptical about all these and considered these different kind of ball motions and myths or as some imaginations. Well, here is the scientific reasons behind it. The same aerodynamical rules apply for a football, tennis or even basketball.

Lets do some more CB.

By the way, Masumi Kuwata was my big time idol for a long time.I remember he had a perfect (no hit) game with the Yomiuri Giants in his rookie year.

Thursday, July 24, 2008

Sylized Rendering

We've had quite a few talks with the developers here regarding photorealistic and non-photorealistic rendering techniques. We were mainly after the non-photorealistic rendering technique features for Soshiant. We had some guesses, some information about cell shading in general and a book about photorealistic rendering but recently we came across this wonderful paper along with the presentation by the folks over at Valve Software regarding the techniques used for Team Fortress 2. There is lots of useful information in the paper. We're not going to use techniques similar to this for Soshiant but they could be invaluable in the near future.

Now the only thing remaining is for us to find Team Fortress somehow.

Friday, July 11, 2008

Shine on the world

There have been quite a few very exciting news from the game development industry lately. Havok physics engine becoming free to use for game developers being the first, thanks to intel. Ageia PhysX accuired by Nvidia and trying to integrate Natural Motions tools for enhanced physics and animation features the second news. The third being Crytek, releasing a full modding SDK with source code and lots of documentation for the CryEngine, I'm not sure how much of the code has been released though.

This trend has existed in the open source world for a few years now but these are actions being taken by giants of the commercial world. Not to forget all the cool tools and technology from Nvidia.

Whether the reason behind all these possibilities for game development is better business models for the vendors, increased power for the vendor by increasing the power of the community, or simply a few developers and managers wishing to see everyone else use their wonderful systems, all these mean excellent opportunities for enhancing the knowledge, skills and techniques of the development team. Somthing unheard of and unseen in the past. It enables a development team to experience years in just a few months or maybe even days. But are we ready for this speed yet? Well... needs more thought .... the new development team today must look and act a lot different from 10 years ago ... and the results can be much different from 10 years ago... all these magical tools and frameworks need a grand mage to use them ... "Becareful what you wish for ... you just might get it !"

PS. by the way, Diablo 3 is ultra cool !

Wednesday, July 02, 2008

Shedding skin

Five years seems to be a magical number. It seems to be specially important for the systems of society such as companies. A lot of things can happen in five years and it is the minimum duration for major shifts to be visible.

Now Fanafzar is five years old and it seems like we are shedding skin. Going through some changes... from many different aspects... these changes could lead to better or worse days... but they have to happen ... and somehow I think after five years they will just happen... don't forget this magical number ...

Friday, June 27, 2008

The Iranian root ...

"... و اين مردمان را رسمهايي ويژه و قوانيني سخت باشد و بر حسب اين كه چه اندازه خرد اندوخته و كردار نيكو كرده باشند، پايگاني در ميان خود دارند. گويند كه در ميان خويش پيمانها و عهدها دارند كه كس را نيازارند و جز نيكي به خويش و بيگانه نكنند و از آنچه تن و جان را افسرده و رنجور كند پرهيز نمايند. خدمت كردن به ياران رابر خويش فرض گيرند و هر آن كرداري را كه توانايي و فرهمندي و خرد و شادماني را افزون كند را ارج گذارند و بستايند. از ديرباز ايشان را نگهبانان رازهاي بسيار و دانشهاي كهن دانسته­اند و نام پارسيان را از آن رو به ايشان نهاده­اند كه در ايران زمين هر بلا و زوالي كه برخيزد، ايشان مانند درختي در توفان بر ريشه­ هايشان استوار مانند و بقاي اين فرهنگ و تمدن را ممكن سازند. از ميان رازهايي كه خزانه­دارِ آن هستند، يكي مهر است كه..."

برگرفته از "كتابهاي گمشده­ي مغان- كتاب سوم، فصل دوم، برگ 66"

Special thanks to Shervin Vakili for his endless efforts in leading us to our roots ...

Sunday, June 22, 2008

Here I come I come I come ...

So here he is, you can see the little dude (aka. my son) in the picture.
Today is his 4th day living in our dimensions and I feel I've gained a lot baby handling skills already ;).
He was code named "Daanaa" for a while, the pre-release code name was "Maahyar" which might be the actual name.
I might as well open up a "baby" category from now on in this blog!

Saturday, June 14, 2008

Big brother is watching you ... run ... run ..

Computer vision is an interesting field, well, first of all the name is interesting... it says computer "VISION".. like vision is something which is very basic for computers and has had a long history :).. the field is very young though and still a lot of areas which needs to be covered or uncovered in fact.

A recent application of computer vision recently has been in the Euro 2008 games. I was shocked a bit the first time I saw a player was being substituted and they showed the amount of kilometers this guy had ran. The first guess I had was that they use one of those little gadgets that you can attach to your waist and run with.. but a bit of investigation revealed that the technology uses several cameras to cover the field and stream the video into a few computers that basically analyze the scene, find out the needed information and do the necessary calculations. Quite cool and interesting.

Saturday, June 07, 2008

Like MJ like Kobe

In the heat of the NBA finals, lets look at this picture from game one last night. Kobe going against Ray Allen, showing one of the most perfect moves in basketball offense, the Fade Away shot.

The most important feature of this move is that the shooter gets farther away from the basket and the defense as he executes the shoot. Making it really hard to defend and making it one of the hardest techniques. But there is something very special about the fade away shot you see in this picture and that is it isn't a normal one where the right handed player moves clock wise and turns on the right foot, placing the left foot a bit behind and shooting. In this picture, Kobe is executing a counter clock-wise, left foot as a pivot fade away shot which is in fact the trade mark of the master himself, Michael Jordan. The picture below shows MJ executing the move and its interesting to see how the defense has formed against this move. The helping defender on the left indicates that Kobe (Jordan below) was on the low post, and the helping defender coming down to double team (Pierce above and Sir Charles below), making the player turn on the left foot, place the right foot behind the body and just elevate in the air and go backwards, twist the body and make the shot. I've really only seen Jordan and Kobe show this move as it should be done.

If youre interested to find out more about this spectacular basketball move, check out this link and in this video, the master himself tells us how it should be done. (Although he talks about the right foot pivot fade-away, but somehow Kobe learned the trick himself)

Friday, June 06, 2008

Planting the code in the Cyberspace

The Soshiant code base has now moved to a new repository. The new home is on the web, thanks to SVN and not local in the SourceSafe repository of the office anymore. The SourceSafe repository might come as a back up, we have to decide on it.

The main code base living on the web now would mean that the developers can help the project evolve in a distributed fashion, geographically and also modifying the concerns from the risk of theft, crash or any kind of malfunction of the local repository server in the office to major disaster, extreme malfunction of the online server hosted by a web hosting providers which should have a much much less magnitude of risk (m = p * i), hopefully, fingers crossed.

Sketching life

Ever taken a blank sheet of paper and tried to draw something on it? What happened? Did you draw something which you liked, or maybe drew something you hated, or did you just not do anything and stare at the blank sheet?

Life is so much like the simple act of drawing. You have every other day in which your actions can create something great, or something which you regret or yet you can be like most people in the world and just stare at the day and show some passive reactions (notice the RE..), a lot of times it can even cross the border of meaning and seem like the blank sheet of paper is drawing us.

It takes some courage to draw on the blank sheet, just like the courage needed to make things happen everyday. It needs persistence to erase the ugly sketches from the paper, just like the persistence needed after every mistake in life, hope makes you draw again, hope makes you take the action one more time. Fear of screwing up enables you to stare at the sheet for hours, just like what this fear does to you everyday ... and maybe most important than all, the more you draw, the better you become at drawing.

The distance in the space of meanings between a blank sheet of paper and one with a nice sketch is millions of miles ... so can be the difference between a normal "yet another passive reactive-deterministic-conservative" day and one where you chose to make decisions, chose to change something, chose to break the symmetry and take responsibility.

Tuesday, June 03, 2008

Feeling the city

There are a lot of things going on in the cities and many details which you can enjoy, but it will be all take away from you if you drive everyday in order to reach your destinations. Now that I've sold the car and have a chance to walk or take the cab for going to places, I've found the chance to really see many parts of Tehran. Its really interesting, the stores, the streets, the people, the trees, the traffic. By the way, the subway experience is very unique too. The people in the subway are in a very special state, sitting or standing in a closed space, knowing they have to be there for some time, witnessing other people like them and a lot of times facing these people, unlike a bus where you will see the back of the heads of others. I had a similar experience few years ago when I had to walk down Wilshire Blvd. in LA and although I had passed it a dozen times before, I was able to really see it when I had to walk.

Wednesday, May 28, 2008

Quest of Persia (Lotfali Khan)

I have been following the news around the "Lotfali Khan" game for a while now, it has been on the newspapers and magazines a lot. The game seemed very interesting and something that could reduce the gap between the games developed in Iran and the international games. I saw an ad for the game finally today in the newspaper and ordered it through phone right away. Apparently the developers have decided to publish it themselves via direct sales and not through the classical distribution channels, how effective this decision can be needs more research. It was delivered to our office this afternoon and I felt a sudden rush of excitement. The excitement was due to the fact that finally there was an Iranian game that was rather serious and a try at being a AAA title. We've been experiencing the game development road for around a year and half now and this release from Puya Arts means a lot for us. Everything about it satisfies our curiosity and concerns regarding what we are doing. The first aspect was of course how the game was distributed, then the box. I have to admit that I expected a bit more from the packaging and a simple DVD cover package with one sheet of A4 paper in it was just so minimal. I installed it right away, the whole install process was interesting for me, it needed to install PhysX runtime which is the physics engine that we are trying to use for Soshiant. The installation was smooth and then there was a registration procedure, online code generation, which seems something logical and almost one of the best options for fighting against piracy, although having a call center for providing the codes to users would have helped since relying only on the internet might not be very convenient for all users. Anyway, the registration was smooth too and there started the game. The initial screens and UI was nice, a short cinematic style of animation for providing the back story, which was nice and after that the game play kicked in. The whole style of the game is third person action in the style of prince of persia. Artwork is nice. Now comparing the game with titles such as Prince of Persia might not be the best thing to do right now since the game play, combat, controls, scale and camera are not comparable and the overall performance of the game seems to be low since it lags frame-rate even on moderate graphics cards but considering the fact that this game is the first to leap to this stage from almost no other history, the team had a small experience with another game before, and having in mind how small the development team is and that they have finished a game project completely without major funding reveals how courageous this team is and what a big challenge they have overcome. Nothing but pure love can enable a team to showcase such an achievement. Thank you for bringing Iranian game development to this level Puya Arts and hope to see this industry excel everyday with the help of everybody involved in the field.

I encourage you to purchase this game as soon as you can, it will help you with some history facts too.

The C4 game engine has been used for creating this game.

Sunday, May 25, 2008


So finally I was able to find something more valuable than the mighty Wikipedia, ladies and gentlemen, introducing Whiskipedia !

Saturday, May 24, 2008

Create since you know you will fade ...

I was referred to a talk recorded from one of the sessions of Professor Hashtroodi recently and I was really shocked by the beauty, intensity, power and overall composition of his talk. Its interesting how people reaching a certain level in any field tend to find the whole concepts of this world and usually converge to similar ideas and beliefs.

A highlight from the talk was the idea that human beings are the only animals that are aware of their death and this awareness is the root of all artistic creations. Creations that are manifestations of the will of human beings to overcome death.


Thursday, May 15, 2008

I had a bug!

Trying to attach a physically simulated cloth to the clothes that Soshiant is wearing had me puzzled for a few days with some bugs. Well, the bug was the kind that after finding out what it was, you just wished you thought a bit deeper into the layers of code and it was in fact very easy to find out, except you wouldn't see it from the upper layer. Hmm... well, aren't all software bugs like this? Something happens, we call it a bug since we don't get what we expect and the reason it is really happening is because we do not really understand what is going on underneath. We think we know everything and call it a bug, but it is really us that has the bug and the system is working absolutely perfect. It is doing what it has to do, we expect it to do something else, because we do not know!

In order to find out about these issues with software, you would usually need to uncover the code which is being used by your code to really see what it is doing, and then modify your usage and maybe your expectations. If you see a bug in the lower layer, then you might as well be able to peel that and see what is underneath that layer or API which you are using. This is why programmers only trained in high level languages and advanced IDEs usually have problems finding the problems since they can not do this peeling and looking inside. The tools and high level constructs of the programming language abstract everything away from the developer.

What we see here is the danger of abstraction in fact. We need to use abstraction in order to be able to manage the intellectual needs of software development but any abstraction brings with it expectations. Expectations that might not always be correct or at least be dependent on many complex configurations which are not always obvious at that level of abstraction, hence we expect incorrectly and call it a bug. A car is an abstraction of a reality in which I know some details, it has to move and it needs gas.When my car stops moving because of something breaking in the engine, I look at this fact as a problem and somehow blame the car (source of problem being in an abstract part which I can not see through), but when the car stops due to not having gas (source being in the same abstraction level as I can see), I usually do not blame the car but probably myself since I am very well aware about the reason, but in reality these two are not any different.

It seems like if we are able to comprehend all the details and go deeper and deeper in the logical relationships of the code, then we can find the reason for all the bugs. Will any bugs remain? What about hardware bugs?How far can we go? Low level code, assembly instructions, machine code, hardware behavior due to physical properties, molecules, atoms .... are there any real bugs in the world? Can we relate this topic to determinism and indeterminism? If the world is deterministic then can we say there are no real bugs ever? In the story "Beyond" from the Animatrix series, there was a bug in the world, but it really had a reason in another lower level layer.

What about generalizing this concept from computer software to real life, are there any problems in the world? Or do we call some things a problem because we expect something else to happen and it doesn't happen because it should not happen and our assumption was false due to the context of the problem. If you find the reason to a software bug, you fix it and don't call it a bug anymore, can we do this with life? Can we find the reason for things we call problems or troubles and somehow be able to fix them and not call them problems anymore? Do we get really frustrated when we don't get what we expect? What "WE EXPECT!". Maybe we expect wrong. The Cynic philosophy is a bit related to this view and it all falls in the domain of epistemology. In mathematical terms, our operations should not have closure, since we need to be able to understand from a different set (layer) or in fact enter the meta-layer, or deductive closure in logic.

The above discussion can have some psychological conclusions also. People get sad when faced with problems, but knowing about the causes of the problems might be able to eliminate this sadness, either by changing something so that the problem does not happen or by changing our expectations. Can we conclude that knowledge will provide the foundation for a happier man? This is opposite to the belief that more knowledge brings more suffering which I am very much against.


I wish people would dream ... I wish people would believe in the impossible ... I wish people would have the courage to try the unorthodox ... I wish people would follow what they feel ... I wish people would see their imaginations first ... I wish people would sense the moment ... I wish people would create ... I wish people would live ... I wish people would shine ... I wish people would fly ... I wish people would dream ...

Wake us up

Richard Linklater is a fantastic director. I was first amazed by "Waking Life" a few years back and then "Tape","Before Sunset", "A scanner darkly" and very recently "Before Sunrise", which is an old movie now actually. There are some serious questions about life discussed in all these movies. They are all very direct by the way with wonderful dialogs.

A director that walks the lines that are seldom touched by this art form usually.

Tuesday, May 13, 2008

Gadget Time

Going to the gym has always been a a fantastic experience except for one aspect, and that is the music played in there. I started by working out at home where I could select my music and everything was great, then there was the era of gyms with only the sound of people exhaling hard and iron hitting iron, then there were gyms with very light and slow music, followed by the gym at USC playing mostly hip hop and rap ( I hate RAP!, actually I used to like some rap in the nineties but nothing now), we would occasionally switch the radio to a local classic rock channel to witness it switched back to rap in less than 15 seconds. After that, the gym close to my work played rhythm and blues mostly :)... back to the old gym these days with lots of techno and trance!... probably brings the groove on for some of the machos around .... Overall these are the type of music that you have to try to not listen and ignore while you're trying to lift the weights, this fact itself is a big exercise and needs more concentration.

I've been able to overcome this problem very recently by purchasing one of these "Superb Design" products from Apple. It being very small, light and minimal is ideal for the place. It has turned out very well and transformed the gym experience into what it has to be. Nothing could help you on the bench more than Tom Araya expressing himself seriously.

By the way these Apple products really take the idea of design to the next level.
Design, this magical word which needs to be explored a lot more. Have a look at this book "The Design of Everyday Things" if you feel you need to explore more.

Friday, May 09, 2008

Multiple Dispatch

Specifying collision detection logic for scenarios in games that have an inheritance hierarchy for game objects will usually lead to a code for handling the collision event. In this case, if the code happens to be polymorphic, then we will encounter code that will look something like "gameObjectA->handleCollision(gameObjectB)". The two game objects are probably just base class pointers to sub class objects and we usually need different handling code for when different object types collide. An arrow hitting an enemy needs different handling than the arrow hitting a tree.

Now in a single dispatch language such as C++, the above code will have trouble finding out how exactly to handle the event since different handlers can not be selected at run time based on the real type of gameObjectB. ( Assuming we have handleCollision(Tree*) and handleCollision(Enemy*) for the Arrow object). Dynamic binding only works using one parameter and in c++ that would mean using virtual methods. At least the double dispatch mechanism is needed for the collision case.

However one technique which can be used for the above scenario and would help out a little is the use of the visitor pattern.

Stroustrup and some of his students are working on an interesting project to add multiple dispatch functionality to the c++ compiler. The paper can be found here. Would be nice to see this feature in standard c++ someday.

On the peak of Power!

We were able to clear God of War 1 with the help of our great tools coder, Faham. The ending reminded me of the ending in the movie "God Father 1". Maybe all movies or games with "God" in them should end like this :).

Kratos is offered to be the actual "God of War" and sits on his throne. Michael Corleone is also offered to be the "God Father" and sits on his chair (throne). They both sit there, alone, with the same gesture and get drowned in deep thinking. I am sure they both have the same thoughts at those moments, thoughts that will be generated in the mind knowing you possess the ultimate power. Well if we observe the results, it is clear that they both engage in the same types of actions after that, God of War 2 and God Father 2. Beautiful.

The next time you saw a man sitting alone on a chair like that, beware of the consequences.