tisdag 13 april 2010

A strike of ingenuity

OK, after working on the space-to-surface engine for a little while, i started to notice a few problems down the line.

One of these problems was the fact that when you render huge worlds like you do in a space-to-surface engine, you encounter problems with the horizon and the amount of distance you need to render.

In a normal terrain engine, you might divide your map into Tiles, and each tile can be ... let say 128x128 big, in each of these tiles we then store the vertex data.

Now, lets say we make a world that is 64x64 of 128x128 tiles, up close this might be OK even tho i consider 128x128 tiles a bit big to generate in realtime at max LOD quality on the CPU.
This also means that the size of the tile set the limit of how low the LOD quality can be, basically... you could render every corner of the tile as part of the ground, making it 1/128 of max quality.

But even at this big tiles, 64x128 is not a very great distance for a planet, and even if you double it to 128, its STILL far to short and you would have to fog things prematurely, and whats worse, as big as those tiles might be up close, they are very very tiny at that distance, not to mention all the 128x128 of tiles , thats over 16.000 iterations every render.

After baking my noodle for a while, i got a strike of ingenuity.

I Invent a very special type of QuadTree!

The basic idea is this, using a QuadTree, we can create HUGE world boxes from start, constantly dynamically creating them self around the player when he moves around, we can make them insanely big so they go all the way to the horizon.
When we render our world, we do it inside the QuadTree, where the upper levels(the big size nodes) are rendered as far away tiles at very Low quality, and the closer the camera is to a QuadTree box, it goes lower and lower inside the QuadTree, using the smaller more high quality nodes closer to the bottom layer.

Now, this means we don't have any max tile size limits (well, the size of the QuadTree of course, but we can make that one almost any size we want... like 65536x65536 for example, or even bigger )

and we can still render things all the way down to 32x32 and use as our chosen minimum "tile" size :)

I have found a few problems with this idea, especially since the planet surface is round and the QuadTree would have to be bent along the surface(*yikes*) but that is tomorrows problems.

I really like this idea, not only can i have "tiles" that is 2048x2048(or bigger) rendering like only 32x32 vertices in each, but i also get super high-quality nodes that can be only 32x32 big if i so wishes.


if everything goes as planned, this should be perfect for my engine :)

Then again, i have no idea how others have created there space-to-surface engines, it might very well be a common solution, but at least i figured it out by my self :P

just like the Liero3d project, i don't read much of others solutions, i invent my own. :)

söndag 4 april 2010

The new project

OK, it didn't take me long to write a new blog post, and i take the time to do it now because my code is currently messing with me... and i will go Ape if i don't take a break...

so, instead, time to reveal my new big project :)

A long time ago, in a galaxy far far away... (well almost)
I found this video on Youtube from a game engine called Infinity
.
From the second I laid my eyes on it, it changed my life for ever :)

Back in those days, I was a strictly 2D & Application programmer, i had accepted my limitations with my very limited math skills and considered 3D way to overkill.

I had made my peace with the fact that i probably would never be anything more than a Application developer, and my memorizes from the old times when i was messing around with OpenGL and C/C++ was anything but pretty.

So the idea that i would ever be able to create a game engine like Infinity seemed totally ridiculous :(

But all this changed roughly 1 year ago when i found the truly awesome XNA framework from Microsoft! :D

It might have taken me some time to get into 3D, but i think i learned everything i needed from my Liero3d project... and now, finally! i feel that i have what i need to start working on the game of my dreams, a Space-to-surface engine like Infinity!

There are several other Space-to-surface projects in existence, and here are a few that i finding very inspirational for my project:

http://petrocket.blogspot.com/
http://britonia-game.com/

among others :)

I have plenty of ideas for what exactly the game-play will be like, but more about this later :)

thats all for now.

lördag 3 april 2010

A new start

Alright, This is my first blog post in a very long time, and I'm making a fresh new start on a new game project(more info later), and at the same time, making a new blog for not only the new project, but all future projects to come.

This mean that future information about liero3d.blogspot.com will be posted in this new blog instead of the old one, this is a strategic move to symbolize my future(i hope) game development company: Frantic Entertainment.

So, any news on Liero3d you ask? well, to be franc, i have not been working on it for a while, and the project is currently on ice.

however, that said, I don't want to publicly terminate the project, And I'm not saying that i wont continue on it, i still consider the project an extremely fun and unique game idea, and I'm sure it would be totally awesome as an intense multi player game.

Problem is, the whole technique used in the engine to destroy the world 100%, as possible as may be, it is also not without its issues.
and I'm a bit tired of spending every day, and every month... trying to making things work in a way that i consider accepted.

And i have come to a point where i feel a bit burned out, i even lost my programming "mojo" for a very long time as a result of the Liero3d project, basically not writing a single line of code for several months, this in turn resulted in me getting rather depressed.

Now, several months later, i have started working on a brand new project, and for the first time in a very long time, perhaps since the beginning of Liero3d, i feel excited about writing code! :)

but more about the new project in my next post (to make it more digestible)