Tuesday, June 26, 2012

Work progress - part one

Hello again!
Since our project is not new and we already have been working on it few months (mostly on the engine development) we would like to shortly describe what has been done since the inception of an idea of creating game.
NinYawg Adventure project started in April 2012, of course at the beginning it was nameless (by the way we would like to know your opinion about that name so as about any other aspect of the game, we would really appreciate if you share with us your ideas). 
We made huge progress since we started that project so there is a lot of informations to share. In my opinion would be boring to read hundreds line of text so I will post that data in few parts. 
If you are not interested in development process, feel free to skip this part because there will be in 90% technical informations. Of course we are working all the time on game content and we are going to post some detailed informations how in our opinion the game should looks like (your feedback here would be really helpful and valuable for us).



Ok, so let's get started:

Since we do not have any deadlines we took our time and spend whole April and few first days of May on planning the best way to create our engine highly efficient. We have designed dependencies between particular systems, created UML graphs and made a full specification of our LD Engine. 13th May 2012 creative works has been finished, and we finally started coding things. If any of you are developing large project I strongly recommend using tools that do part of the job for you, or helps you better understand goals that you have to achieve. I am talking about UML right now, it was so helpful for us to have all those little boxes linked in many different ways. When we moved to programming everything was pretty clear, we knew exactly what we have to do and how things should work together. It is also worth noting that the whole structure of the engine has been generated automatically after a few clicks of the mouse. I am not going to advertise any software but I am pretty sure you can find something on your own :) Just keep that in mind - that is really helpful!
Of course there is no such thing as perfect software, each one has its pros and cons so we had to implement few fixes in code that was generated, but it was not hard thing to do, it was just base structure... 

First thing we wanted to do was to figure out what method we will use for drawing things on screen. We spent another 4 days on planning what version of OpenGL ES we are going to use, how many Android devices supports OpenGL ES 2.0 and which version of Android system itself will be required for our engine to work. We made two simple applications that render few textures on the screen (we did some transformation on them like scaling and rotating, we tested blending and some other stuff related to color).
Since then we have not decided between using OpenGL draw_texture extension and using VBO (Vertex Buffer Objects). VBOs are pretty good and fast but they are not that simple to use as draw_texture (which is still pretty good, it is just not supported on all Android devices and you can not use any transformations with it, because it is not an object, it is just image that is thrown by GPU on the screen, and that hurts a bit. On other hand in our case we can afford that because our goal is to create fast and efficient engine for 2D not 3D games). 17th May we all agreed to use draw_texture extension, as the rendering system is independent from the rest of the components we can change that, whenever we need.

I will continue this article in the next part, which should be released in few days. I hope it was not that boring :) After finish this series we will focus more on game contents than  technical stuff, but if you have any questions about any aspect of the game feel free to ask.

No comments:

Post a Comment