Thursday, January 31, 2008

Comics


I've had a great admiration for comics since I can remember, most of it formed during the experiences I had as a child growing in Japan, comic book influence was probably stronger than what computer games could do to me.

This book "Understanding Comics" is just fascinating and delves into all the details related to comic books and the general art from and how it differs with other media and art. The author covers all aspects really well.

I am going to list the wonderful Japanese comics which shaped my life and inspired me big time :) ... (listed based on how close they are to my heart ! )

Gundam
Dragon Ball
Hokuto no Ken
Dragonar
Votoms
Not to forget the weekly Shonen Jump magazine ....

Thanks friends.

Tuesday, January 29, 2008

Hammer it !

Good article which hammers Facebook!

http://www.guardian.co.uk/technology/2008/jan/14/facebook

Surf on the Rainbow....

After spending some time to see how the open source atmosphere is doing on the .net domain, we've concluded that the good old Rainbow Portal seems to be still a good option for portal/CMS requirements.

We've selected it as the base platform for the new project which has started at Fanafzar. Tomorrow would be the day we'd have to tame this beast (Localization, RTL Layout, translations...).

Rainbow is based on c# and the overall architecture is based on separate tiers and developing new modules on top of it is rather straightforward.

It might be ready after this project for other dear .net loving clients that we face in the future, smile Billy ...

Entering the second stage ..

The Otto demo has been accepted and we are entering the second demo. If the second one gets accepted then there will be a small game on the line.

Lots of things to do till the deadline which is this Monday.

Friday, January 25, 2008

Type Master Type !!

It is interesting how in most Hollywood movies, whenever some guys is trying to work with a computer, they usually type everything and don't use the mouse. In normal life, people mostly use the mouse to interact but for some reason in movies, it is always typing, whether they are opening windows, selecting files, zooming in/out, etc. it is always fast typing. :)

I think one reason for this fact is that the movie is trying to convince us that the person interacting with that computer is really an expert and experts need to type! Is this correct? Well I think it is since the nature of clicking is selecting, it is selecting a feature which has been thought about before and prepared for you mostly in the form of menus and buttons. It is a kind of selection, selecting something very normal, selecting a series of Yes or Nos. However with typing and positioning some symbols in any state, you can come up with new ideas and innovation, and this is the nature of the type of actions an expert needs, something that ordinary people can not do, thinking about new possibilities using typing which is actually defining a special process. The solution space is much more complex due to the infinite possibilities for arranging the design elements and this complexity needs creative and deducting thinking. (Not really infinite and bound to the syntax and grammar of the supporting scripting language that the expert is writing the commands in)

When you think about this from another angle, you see that in essence what is happening in software is transformation of all these possibilities into pre-defined buttons and UIs that only need to be selected, and selection doesn't need as much thinking as describing a process and thinking about the solution in time. Somehow like the transformation of imperative languages to declarative languages. Dumbing down in other words. Just like what happens in other technologies, we are eliminating the requirements for thinking constantly and replacing it with products, now is this a good thing? Is it really bad? Just do this and that and the result will be this. Memorize this and you're fine. Don't need to think and analyze yourself, that takes time and you might not do what you are supposed to do and come up with ideas that might jeopardize the system... is this what the modern system wants from people? Can we just get rid of the CPU part of our brains and be satisfied with the RAM part? Or do we even need the memories to be internal in our brains, they can be external in user documents or in these days on the web... what I find on google as a complete solution is what I need in life !? .. this study is related to the subject.

It's very hard to find out the correct answer and it needs quite some thought and again more thought (AKA thought++).

Thursday, January 24, 2008

The glue that binds it all ....


There are some very nice discussions regarding the psychology of design, thinking methods and definitions and types of architecture in the "Art of Software Architecture" book. Although the author has used the word "Art" in the title, there are very interesting points in the book indicating why the process of design and architecture should not necessarily be an art form. The term here is a follow up to a series of similar names from the publisher. Art usually stems from the inside of the subject and might not necessarily conform to any external constraints, although there are many different definitions for art. Systematic design needs to reduce the uncertainty of the creative thinking process by employing existing patterns which resemble previously thought creative processes turned into defined entities. Architectural styles have been described in this book with this aim.

Three elements have been discussed for architecture, which are know as the Vitruvian triad, since they were proposed by Vitruvius. These are Function, Form and Fabric. In the case of software, function refers to the requirements, form is the actual design and fabric will be the quality.

Other nice to read topics from the book are the concept of complexity and techniques for managing it in software design.

This book is part of the books I've listed for the new class that I'm teaching for the IT department of the National Petroleum Company.

Monday, January 21, 2008

3D Total winner !!!


We've been lucky enough to have some of the best on our game development team, although a very small team, but quite talented individuals. Syros recently won the 1st place in a low polygon challenge on 3DTotal.

The challenge was to build characters with a polygon budget of less than 10000, the creatures should have some kind of mounts on them and ridable. The concept is his own too.

Normal maps and specular maps have been used for this model.

Now he is going for the DominanceWar 3 (where all the big guys go head to head) challenge and we wish him all the best.

Friday, January 18, 2008

Hallo Otto !!

We've been busy in the recent weeks with providing a simple demo game for a company in Germany. The subject character is Otto, a German comedian and the main video concept for the demo can be viewed here.

The character dances and moves in an area which is part of Emden, with a fancy touch and you as the player can hit him by throwing fishes :).



Graphics engine used is OGRE. All meshes are created using 3D Max by Syrous, and textured in photoshop by him, he has been responsible for the overall artistic styles also. Animation and skinning done in Max by Peyman. Some vertex and pixel shaders have been used such as Fake HDR, Motion blur, Specular maps and per pixel lighting. Yaser has been the guru who has helped out in shaders. Caelum has been used for modeling the sky. Among notable features which we tested in this demo are component based object design and the use of a finite state machine.

The physics engine used is PhysX and OpenAL has been used for sound and music.

This demo might lead to a bigger game project.

Wednesday, January 16, 2008

Billex


We've been talking about dedicating some days fully to a project from our wish list for a while with Farshid and yesterday we started one such special day. The project we selected from the wish list is code named Billex since it's a Flash based Billiard game which can be played by multi users over the internet. The network communication model is going to be a client and server pull model where the clients (Flash) request information from the server they are registered with and the server uses a persistence state and some services over HTTP to provide the needed information for the clients. Ideally we would like to have a mobile based client added and the feature for being able to play mobile or using a web flash client. Flash communication server is another alternative but it seems like that would be an overkill for this project and the requirements for Flash communication server on web hosts are quite expensive.

ActionScript 3.0 is being used, it is so much Java like and the language has become quite strong and it currently supports very nice object oriented features too which makes it a good choice for creating large systems with it. It is very nice how you can extend from the available graphical objects in Flash and create your specific domain which is coupled with the flash objects.

Our goal was to come up with the client simulations and physics first, then provide the server code and finally the integration. So far we were able to finish up the basic client simulations and physics needed for modeling the billiard balls and their interactions with one another and the table. We should have gone further but we got stuck with a simple collision related bug for some time which was quite un-expected ;). We had a nice review of high school physics, trigonometry and geometry. Now I know why the teachers were insisting so much :).

The joy of just watching the balls hit one another was just delightful!

Looking forward for the next special day to dedicate to Billex.

Tuesday, January 15, 2008

Boy!



Last night we found out that our child is going to be a boy! The good news is that he is healthy so far.(5 more months to go)

It wouldn't have made a difference for me whether a boy or a girl but I might be able to understand the inner feelings of a boy a little better, girls are just too complex ;).

Lets see how things will go.

Thursday, January 10, 2008

I am Ripper... Tearer... Slasher


Absolute adrenaline rush will be felt when you go on the journey controlling Beowulf in this 3rd person action adventure game. The combat system is fantastic and the way the characters interact with one another is really nice and polished, very nice animations and synchronized well too. Tactical AI has been used by the thanes which help you out and proper combination of cut scenes and in game action has enabled smooth narrative story telling which is probably well needed for a game which is based on an old poem and a very recent block buster movie. The physics engine employed is Ageia PhysX which has been used for some rigid body dynamics and cloth simulations in game, probably more, I haven't covered everything.

The PC version suffers from some lags which might be due to resource loading in the same thread as graphics or some data lags between the CPU and the GPU, whatever the reason is, it is a petty that UBI wasn't able to provide a solid port for the PC. Apparently these companies spend all their energy on providing the Xbox360 and PS3 titles and then the PC is an after thought. Xbox and PC weren't much different in the past, Xbox being a single pentium processor but the current Xbox360 has got multi-cpus with multiple cores and the architecture is quite different from the current common PCs in the market.

When the character is fighting with some boss monsters or in the middle of a fight with the carnal fury power on and Beowulf shouting out "Fear Me .... !!", you really feel the heat and destructive power flowing out of your skin ... don't place anything close to me while in that state !

Monday, January 07, 2008

It doesn't exist if it exists too much...

The idea started when a good friend of mine was talking about the two basic elements of the universe, existence and non existence. I thought on the matter for a while and felt that something very important is missing in this basic definition and that is the notion of time. Trying to incorporate this ubiquitous meaning it seems like existence is "change in time", and looking at it this way non existence is "no change in time". Change itself can be understood if something is measurable or inversely something is measurable if we can see its changes. So if something is not measurable that is because it doesn't change from an aspect and hence it doesn't exist for us. I am not going to enter the objective point of view here for all matter and the important aspect of this idea for me is the subjective views and all related to the mind and behavior. There is something magical in the essence of change. Process is something that changes in time. A process exists !?

Lets think about some examples. You purchase a new PC, there is a big change in time for your computer related needs, you enjoy every moment and I'm sure the word "Existence" has a significant meaning in your mind regarding the new machine that you have. One year from now, you are used to the new machine and it just doesn't exist as much anymore, 10 years from now, you might not even see this machine, does it exist? Is it changing anything in your domain? Do we only feel the changes? Is this all related to a relative world? When do we feel a good friend existed? When the friend does not exist. In nonexistence, we give higher marks to existence, or maybe when we are in the change, when something is "Becoming". Hegel points out that "becoming is the unity of being and not-being". So maybe everything exists and not exists at the same time and it is just how we switch between the states that makes us feel such realities.
I often think about snakes and how their eyes are sensitive to motion only, some say a snake will not see you if you are really still. Well what about us, don't we not see lots of things and not feel lots of things when we don't see the changes. A lot of successful people have had many ups and downs in their life, wasn't this necessary for them to see the existence of new opportunities and possibilities?

Looking at the human brain, the neural activity will be reduce by repetition. So seems like we are hard coded with this behavior.

Abundance in existence means something that exists today, and tomorrow and the day after that and .... but as we are moving forward in time ... we will have less changes and this will reduce the existence value for us (subjective) and as time goes towards infinity, this meaning goes towards non existence. Is this related to "Be careful what you wish for, you might get it!"
or maybe losing the interest in a goal when it is reached! Loving something while you don't have it? Degeneration of the value for many concepts by the introduction of technology because of abundance in existence, joy of communication doesn't exist as much as before because communication is everywhere, ever seen people talk using the phone over seas in the past.

Should we be in a state of oscillation in order to feel what we have to feel? Is this why we have days and nights and everything else changes around a center, but the very notion of this oscillation itself can be repetitive and lose the element of change. Is this what life form is, something that changes and so we see its existence as a life form?

Sunday, January 06, 2008

Like father like son ...

Our company has been looking for a nice open source portal and CMS system based on the .net platform and so far things are not very bright. First of all there aren't many and among the systems, many are proprietary and not open source. The ones that are open-source are either very buggy or a really simple system that really isn't worth the hassle of going over it and integrating it for the project that we have. One really important aspect of using the open source systems is the active community that they should have which in case of .net systems, seems to be an un-achievable goal.

For years now we've been quite happy with the PHP based systems. Many good solutions and lots of active developers backing the solutions. You feel the love around those systems. There are even lots of good things done in the Perl and Python domains.

Why are we looking for a .net based one now? Because the dear client says so! Because they are possessed by the magic of Microsoft.

The conclusion so far is that the attitude that MS has as a huge corporation has spread down to the users of MS technologies. This attitude is something like this : Announce a product before it really is a product, money is the most important goal, no innovation, no openness and everything proprietary, don't collaborate much and make things as easy as possible by removing flexibility. There is a river pushing in all these water molecules in this sea.

Friday, January 04, 2008

Oh all these cats !!!


Hank Rainwater has a very nice book about leading software teams called "Herding Cats, a primer for programmers who lead programmers".

In this book there are some interesting categories laid out for the style and attitude of every programmer.

The major breeds are:
Architect
Constructionist
Artist
Engineer
Scientist
Speed demon

The minor breeds are:
Magician
Minimalist
Analogist
Toymaker

The mongrels being
Slob
Intimidated
Amateur
Ignoramus

You can read the first chapter of this book and find out about the descriptions for all of the above here.

In the recent projects, we've dealt with three constructionists, one speed demon, an artist, an intimidated a minimalist and an engineer. hmm.... and the result of all these breeds working together ?? Well there can be certain configurations that can really work well. Herding cats ...
Stay away from the Ignoramus.

Wednesday, January 02, 2008

Show your Magic !!


The base is ready, after several meetings online and off-line, the roots for the new open-source (to be very soon) game engine project are ready.

Its name, MAGE. Well because it is going to be a mage, and amaze the world (the western world, like the mages(moghs مغ) did in ancient persia) but also because it stands for : Multi-threaded All-purpose Game Engine.

Here is the main page for the website of MAGE so far. It is an embryo right now getting ready to be born.

The M part is an important design decision for the overall architecture as the modern machines are all moving towards supporting multiple cores and multiple CPUs. The A means it will not focus on a specific genre and try to be as neutral in that aspect as possible.

The logo is inspired by the actual stone carvings in Persepolis showing a magus.