Wednesday, December 14, 2011

W.U. 0x09: few words about engine

This time I want to write my few thoughts about engine developing. I know that there 1000 of ways how to write engines and games. And I don't want to be like some master of programming because I know that I'm more like disciple or even worse :]

As you read in earlier posts my engine develop in weird way, because it begun as 2D engine and evolve in small 3D engine with small amount of features. I know that this could sound somehow weird but it's a truth: right now I don't have anything exceptional in it only basics elements. And I'm proud of this.



As I look on indie developers websites most of home made engines looks very attractive visual, they show results of SSAO, great shadows, physics benchmarks and things like that. We think that this is cool because they show such a screen. They talk about optimization of shaders and things like that and we thinks they are so pro.

And of course It's really cool to see screenshots and benchmarks of this productions. The problem is that developing of games changing people they start to think somehow different. Engine it's not only visualization there are many more complicated things that must work together. You probably heard about them: optimization  structures (i.e. bsp/octree), physic, sound, inputs, file system and so on and so on. Implementing them all is not simple task and I think that on begin of developing it's need a really loot more focus than graphic effects. I know working on them is not so great because you can't show them to any friends that play games only other developer will understand what you do.

And that why I'm so proud of my engine. It's not great I know that, it's not very attractive visual I know that to. But I work on fundamentals topics that are base of it :] of course on some topic I work multiple times i.e.: Input system were greatly changed 3 or 4 times in this 6 year of engine existing and I'm still not fully satisfy on it. If you see it you can always find in this tinny little system things that can be done better. I know that and I see them too but when you think about it is normal that programmer feel this way about his code it's good thing because you know you could always do something better and you don't think about your code as ideal.

Other thing is that when you write your own engine you almost everyday see how much each system influence other and how you need to do change each of them so they work together. So it's not like you do something one time and never back to it again. I don't do that way for sure I don't even fully know how to design each system I learn this everyday, after each changes how it should be. Probably after next 6 year I will think that they should be wrote completely other way. Or maybe not who know right now I'm still fell like "child" that learn how to walk. You see how others do it but you need to fall few times before you learn how you should do it.

And here some small conclusion: you can think that your game/engine is far beyond other production. I feel the same way almost everyday but after this long time of production I saw so much other titles that look great but now probably don't even exist. They focused mostly on graphics forgetting that on one day they came to moment when only good graphic isn't enough and they start adding other things but is very often already to late.

Graphics can change rapidly and the effects are visible almost immediately but things behind it can grow very fast but even then effect can be almost invisible in final production. So if you sometimes think that your stand in place with your projects, remember that I feel the same way about my even if I know that it's not truth.


No comments:

Post a Comment