Wednesday, December 14, 2005

Religious Question of Performance

I hate to argue with people about performance. It's a waste of time. For me it's a solved problem:

First, I will implement the system with a good design so I can change it. Then, I will profile it to see if the performance is good. If not I can easily change it.

There's also some other argument about managed code (Java/.NET) performance vs. Native code performance. There is an ACM article that concludes the performance of the program is more dependent on programmer's ability than programming platform.

And as a software engineer you should know there are always other factors than performance: time, money …. If tuning performance prevents you from reaching other goals it’s not a wise plan to do it early (when you can do it late in the project when you know you need it).

Of course you should consider performance in architecture (like caching or other known patterns), but that’s another story.

I highly recommend chapter 25 of Code Complete 2nd edition (Code-Tuning Strategies) for a through discussion about performance tuning.


Jackson
’s Rules of Optimization: Rule 1. Don’t do it. Rule 2 (for experts only). Don’t do it yet—that is, not until you have a perfectly clear and unoptimized solution.

—M. A. Jackson

Tuesday, December 06, 2005

Frappr.com

This site is my newest discovery. There, you can create a group that its members are distributed around the world. Every member can designate his/her place on the world map with a balloon that will contain some information about that member.

You can put some text and your picture in there. It's fun to play with, and sure is a good new toy to waste some time.

PS: I believe that the map is provided by GoogleEarth.

Tuesday, November 29, 2005

Irrlicht 3D Engine

In description of my blog I said that I will write about things that is interesting to me; so lack of my posts may imply that there’s not an interesting thing in my life, or laziness. Well, the second one is correct.

Forget about it. Lately, I was playing around with this awesome 3D engine. This is the first engine that I can understand and work with. It’s because its design is simple and its designer didn’t want to make a renderer-only engine. Yea, of course it has some design flaws, but its powerful in what it does, it’s simple to use, and easy to extend. I just wrote a patch for it to use it along with Managed DirectX. So now I can use my own libraries wherever I think they do the job better.

If there wasn’t such an engine, I could never learn how to use a 3D engine. I learned a lot of things just playing around with your engine. Thank you.

By the way, Austria is one of the most beautiful countries in the world!

Thursday, September 29, 2005

A long time, Wow!

This is a long time since my last post. Maybe I'm loosing interest in blogging.

Whatever it is, I found this great e-Magazine on the net. Check it out! It’s awesome. And you can download its issues as PDF. And check out this article that’s really amazing. That is I always thought and said. That’s the right shit man. I love you!

Sunday, June 26, 2005

Better Games Through Usability Evaluation and Testing

I was visiting my favorite game development website, Gamasutra, and as always I found a great article there.

In this article the author talks about a new approach in usability evaluation of computer games. They use “expert evaluation” and “usability testing”. Their method is mind bogglingly effective. I really encourage you to take a look at it if you are interested in software usability concepts.

Thursday, June 16, 2005

I’m Scarring My Soul

I had images, like I’m scarring my face insanely. I don’t know. I think this is because I committed a lot of sins. I believe committing a sin is like hurting your soul deliberately. And I do that uncontrollably, Insanely, Crazily.

People don’t hurt themselves intentionally, but hurting soul is another thing for them. This is because they can’t see what they’re doing. They don’t see the outcome.

Saturday, June 11, 2005

Dr. Afshin Namiranian

I think a good teacher has a little deep knowledge not a lot of shallow ones. You can find a lot of knowledge inside books. But deep understanding of them may not be so easy to achieve. This deep understanding also has a lot of connection to other related subjects because you need to learn a lot of things to have a clear and deep understanding about things the matter. These connections show come in play when you ask for some reference for related subjects.

Such people are treasure; they will save you a lot of time and will teach you a lot of thing. I feel wonderful to have such a good teacher, and I honor him.

Sunday, May 15, 2005

Wow, they sell Lightsabers!

See what I've found:

Star Wars Force FX Lightsabers

Although the blade is not what I wanted (so I could feel it cut through flesh), but at least it glows and it even makes digitally recorded sounds like a real lightsaber. But I wonder how much time I should wait to see a real lightsaber. I hunger for a lightsaber battle (Wow!).

Saturday, April 30, 2005

Think about what you don’t accept

This is what I learned:

You need to think about ideas you don’t accept to improve.

If you just reject things you believe is wrong, you won’t have the chance to correct your bad ideas. Just accept that everybody (including you) can have wrong thoughts and bad ideas that need to be fixed.

Tuesday, March 29, 2005

I Feel Naked

It's been almost a week that I was playing Star Wars Knights of the Old Republic II and I just finished it. But now I feel naked without a light saber. I feel I missed something. I need a dual-blade light saber, no matter what color, just a light saber. If you know how I can find one, or build one, please contact me!

By the way I want to talk about the game itself. It was the second best RPG I've ever played - the first one is Diablo II. I liked the design of its interface. Its AI is the worst part. The battle scenes were glorious. I really miss those battles, light sabers moving so beautiful. But the boss battles were really hard for me. I used game's weak AI to defeat them. I knew how path-finding works and I knew how to run to make the boss stuck around and that gave me some time to recover. The game has a lot of bug that really disappoints me. I think Lucas Arts should search for a better developer.

Thursday, February 24, 2005

Chat bots

It’s some time that I’m working on chat bots as my AI project. It’s real fun. I always wondered how they make that kind of stuff. I always thought that they use some sophisticated algorithms and god knows what for these things. But now, I see that it’s just so easy.

They use some markup language for this that they call AIML. With it, you just say what the bot should say if the user enters some sentence. The ingenuity of the AIML comes in its "srai" tag. It’s a recursive thingy that can be used for many things like reducing complicated sentences to their atomic form, dividing the compound sentences, and correcting typos in entered sentences.

With such an easy and non technical approach the possibilities are endless: You can easily set up an intelligent agent that, for example, can replace technical support staff. In a game they can replace NPCs and interactively converse with the player.

Of course these bots need some training to do their job right, but when you did it they will do their job very well.

Friday, February 18, 2005

Some Funny Sentences

Because of the lack of post lately, I present you these funny sentences that I found:

There are only 10 types of people in the world: Those who understand binary, and those who don’t.
—thinkgeek.com

Programming is like sex, make one mistake and you have to support it for a long time.
codeproject.com Message boards

Another definition of programming is: “the most fun you can have with your clothes on, although cloths are not mandatory.”
—Game Design: Secretes of the Sages (originally from FOLDOC web site)

There is Always Hope

During this semester’s exams I learned a new lesson (or maybe just remembered it):

There is always hope. I was preparing to flunk out. I did a moderately good (!) job in previous semester but I didn’t feel good about the way I took exams. I the passing weeks I did some projects and extra work (!) to make my grades. And now after two weeks in new semester I’ve been informed that I passed all of my courses (Yay!). But if I had greater morale I could do something useful between semesters. Oh well, I will do better in future.

Hope. It is the quintessential human delusion, simultaneously the source of your greatest strength and your greatest weakness.

Architect, The Matrix Reloaded

Wednesday, January 19, 2005

Emotional Design

Sometimes ago I read some pages of this book and I find it a treasure. In this book’s prologue the writer wants to show the importance and effect of the emotion in the way humans think, make decisions, and choose, and why we should consider it in our designs.

Also in his book, Chris Crawford points out that the low level API of human beings is the emotion. If you want to design a masterpiece you must reach this level.

I already mentioned that my first and most important criterion for choosing and evaluating computer games is my feelings about them.

So, if I want to create successful computer games I shouldn’t ignore such an important parameter.

Tuesday, January 18, 2005

My Criteria for Computer Games

From time to time this question arise for me that “What is my criteria for evaluating computer games?” What makes me so passionate about a game?

The first think that I consider about a game is its emotional side. I mean how it’s look and feel, its story and so on. If the game fails in this phase, I will throw it away. If succeeds, I shall consider its gameplay and other technical issues.

Consider for example XIII: this game’s gameplay is shit. It’s too hard for me. There’s no point in it, no innovation, no nothing; Just a plain old everyday shooter. So, why do I love this game? The first thing that I realized about this game is that it uses Toon Shader (a technique that makes 3D scenes look like 2D cartoons) for rendering to create illusion of comic books. Here is the why: I love comic book very much, so I can’t resist such a game.

I love Resident Evil series for their horror theme, Star Craft for its sci-fi theme and great story, and Shining Force for everything. I feel so strong about these games.

Logical justifications cannot make me so passionate, and cannot create such enthusiasm in gamers. So you see, it’s all about emotion.

Monday, January 17, 2005

Defrag Your Mind

Recently, I had a presentation about Managed DirectX. I knew that people that I was supposed to speak for them have no background on this matter; ergo I organized my notes to be comprehensible for them.

During the process I realized that I’m learning new thing and finding answer for some of my own questions about DirectX.

After some thought on this happening I ended up with this:

If you want to deepen your leanings about some concept try to describe it to someone else that knows nothing about it – even a virtual one in your mind. That person questions you about many trivial things that you consider obvious, but when you try to explain them you see that it’s not that obvious. So you should find some concrete answer for them. This way you find some tiny bits and pieces of information that tie all information about that concept together and make it a whole. Also you may detect some relationship between this concept and some other concepts that may be useful to know.

If you can’t explain something to a six-year old, you really don’t understand it yourself.

—Albert Einstein

Sunday, January 16, 2005

Weblog Reloaded

It’s a long time since my last post, because it was exam time. But now I’m free to post. For starters here is some of my brother’s works:



He wanted to be a “3D Artist” – and I wanted one. So I offered him Maya. I didn’t believe in him but he surprised me. He doesn’t use even primitive 3D techniques such as extruding but he creates mind boggling images. So here’s my mission to teach him what I’ve thought about 3D content creation in past years.

Sunday, January 02, 2005

Conflict

He peered through the shimmering light of the torch… searching. Suddenly he felt a presence. Turning back in haste, he found himself in front of a hideous monster.

The adventurer seemed pretty calm. After all, if he wanted to be safe he didn’t bother to set out.

“This behemoth is way bolder than I thought,” could he say?

The battle ensued.

Saturday, January 01, 2005

FrontPage Rules!

It’s some time now that I’m working on my website, and I was playing with FrontPage for the first time. I always believed DreamWeaver MX is the best, but now that I’m working with FrontPage I see that it is way too easier to work with.

In this adventure I’ve got some experience that I want to share:

  1. Never use absolute paths. Always type the relative path for images or other stuff. This way you can easily move your pages around (especially when you want to publish them, this is handy).
  2. Never mess around too much with table borders if you want your pages have the same look on deferent browsers (If you want to be sure, you should see your page on deferent browsers).

I also mentioned during typing this post that Microsoft Word rules too (I’m typing my messages in Word and then copy/paste them to blogger).