Saturday, July 2, 2011

How this all works: Part 1

This post will be beginning of series of posts about how L.B.A. remake is made. So lets starts with first part where I will try to talk about development of technology I use.

Game is based on home made engine w.r.e. that use OpenGL as rendering environment. In this moment everything is controlled by shaders wrote in Cg. 

But not always was this way, I started to write this engine five years ago on begin of study. In that time this was a merely 2D isometric game written in pure SDL. It was written on one of subjects and when I think about this now, earlier I wrote 10x better games. But it's was finished and from this everything starts. 

Some time later after talk with friend which is very good graphic we decided to create 2D game. We based it on modified code of earlier production but this wasn't enough. Pure SDL is too slow so we switch to OpenGL. This was big step because engine from simply software 2D engine changed to fast 2D engine with support of some 3D objects.

But came another semester and so another subjects and on one of them I decided to create support of physics to engine. In this time came another changes, now engine support mostly 3D with bullet as physics engine. But this was only begin.

On one of later seminary I get some kick in my ass from (now my friend) Kornel. And I think it's a great thing to get something like that, because in this moment I started seriously think what I done so far. I had some skills, knowledge about graphic and programing but I was still 10 years behind this what is really happening in real game scene. So at last, I added shaders support. Writing which wasn't on begin so easy but somehow I learned how this all works.

If you ever study or will study in Wrocław on WPPT. You will learn one thing, knowing programming language is nothing special. This is only tool, what is really important are algorithms and maths behind them. If you know them and understand you can write them in any programing language. And so thinking that way I read about visualization algorithms and I came to one conclusion: they are all pretty easy. All this thanks to knowledge I gain on all kinds of subjects.

And In this moment came L.B.A. remake. Thanks this game I started do developed real tools. I wrote editor and many others things to make my life easier or maybe not :] 

And why I spend so much space to write this all. There is not to much about how I wrote L.B.A. Remake and I know about this very good. But there are things that are shown here. I don't do all things that you see in week or even month. It's take long time, many hard and frustrating moments when you think about throwing this all and start doing something else. I had moments like this and I will have them in future but they are need to do next steps and gain experience which help in future.

And on end of this part I will write my own thought about creating games:
Writing games is fun as you can see in all talk with developers, but not always. This is only part of truth, there is other part when you write or do some things which are simply boring but needed to develop of project. And one more thing you can never stop in developing your knowledge and not only about programming or computers. There is math, physics, and other things that can help you very much, in writing good games.

4 comments:

  1. Really interesting article to read. Thanks for sharing.

    I understand your concerns and share them. The most difficult parts of this kind of projects for me is always the motivation part. Its always difficult to be fully motivate during a project to make it flow as expected. Would be actually nice to see a graphic of this indicator during a project.

    I'm currently doing a game in XNA, together with a work college, for about 8 months. Its a 2D puzzle-action game. One of the reasons of not doing it alone was the motivation issue. When we work together with someone we get motivated more easily. The project is far from over and of course isn't easy to do it in spare times, specially when you have a full job.

    Anyway, I just can take positive things about this kind of projects. We learn a lot from it, its challenging, we know great people and if we finish it, it make us proud of it.

    ReplyDelete
  2. I understand you very good. I have job too. Thanks God I finished my studies so now I will have more time to do things for myself.

    But I think that we don't mentioned other problem: project itself. After few months of work you start to see many weak points of your work and you have big desire to change it. But not always there is need to do that. I think that is pretty good topic for full post.

    About the graphic from progress I will look for some in my archives maybe I will find some nice pictures :]

    ReplyDelete
  3. Yeah, refactoring code can give you benefits and disadvantages. Its very important to not fall on refactoring everything, because it may kill the project. We have to put in our minds that we won't make things perfect and next time it will be better. For some particular things I like to use this quote: "If it works, don't fix it!".

    ReplyDelete
  4. Yes I think that this is pretty good quote :]

    And I add to it that after long time of developing everybody start to see that in most situation improve existing code is better than rewriting it. Maybe sometimes it takes more time but in the same time force you to thinking about next step. Because after next long changes in interfaces and things like that you start to thinking how to write more extensible code to don't do that another time :]

    ReplyDelete