Game Update | Beyond the Void | First Light

To many, the featured image might actually not mean much. 

To me, its the exact thing I've been looking at for a long, long time. 

Pretty great looking, eh?

Behind the Code

While it might not have the final looks of the game, it should be pretty close to the final speed of the game. A lot of what is going on to make this image might be considered boring and generic even as to my own standards of a programmer. But as far as the actual speed of these cycles, is actually better than what I expected. Now, be aware that this isn't some AAA game, so I don't have time to optimize everything, even tho a lot of AAA tiles don't. 

The major representation of optimization in this image is the efficiency of the actual room generations. I'm able to effectively change the tile textures and add texture inheritance based on the neighboring tiles, but I'm lazy and have only really finished the stone texture, as you can clearly see. The effective optimizations of this is the removal of non-used faces so that well, you don't have to render what you don't use/see. Most of this can easily be done in OpenGL with a few lines of code, but a lot of it can be on the actual programmers side of generation. I see a lot of newer programmers ending up writing code for an entire set array grid (specific size thus has exactly that many instances/tiles), and just leaving it like that. This makes for quite a bit of overhead when you're talking on a large scale dungeon. Anything smaller than 2,000 tiles seems almost useless as to worry about, which is totally fine. But when you're creating a game in 3D that number soon becomes quite small, for just about anything.

The easy way to look at this is the room shown in the image. The room's tile size is 11x11x3. So an effective 363 tile spaces within the bounds of the room. But how many of them are you actually going to use to show tiles? Just by simply removing the air tiles within the room you're able to cut out 81 tiles. In numbers of this size, it doesn't make for an insane difference, as stated earlier. But if you look at the statistics of this while scaling, it soon becomes a bit more important. The performance difference is an effective 22.3%, but when using such little resources in large, it doesn't make much difference as to 5-10mb of ram, maybe. When using a larger dungeon in game, say one of the 'massive' dungeons, the size is pretty much 1000x1000x200, a slick 20 million able tile spaces. Now, 22.3%, seems quite large right? That's 4.46 million tiles removed because they're effectively just air. 

There are far more effective and intelligent ways to optimize a game, say processing tiles only nearest to the player(s). But effective development time for those optimizations can out weigh the effectiveness of the optimization itself. 

But wait, why is this method 'worth' it? Its 22.3%, but how long does it take to implement. Its really like 3 lines of code for the whole thing. My actual code for it is ,

if(tile.getFaceCount() > 0){

this is of course using the Java List type classes as the array, or in C++ it would be an std::vector. 

Plans for the Game

While it might appear as if I have not much done, I actually have a lot of the game written in a vague outline. Most of what is needed to be done is beta testing (more on that below), and creation of textures & music. I'm personally not the greatest at creating music, but I can play. 

At first launch, the game's objective is going to be to create a fun and dynamic experience for the player to experience. While the dynamic part will (?) be lacking since its going to be a single style of dungeon at start. Tho this does not mean I will no create other forms of levels for the game, I'll be adding new enemies, weapons, (possibly easter eggs?) and level types to the game.

After the game is effectively entertaining enough to captivate a single person for more than 5 minutes, I would like to implement a multiplayer aspect to the game. Its really something I would love to play and I'm sure a few of other people would like to as well. No clue as to the server limits of how many players, but I'm sure I'll just leave that to the hosts. 

Beta Testing

In the coming weeks I'm going to be working on creating the first launch of the game. But not much can be done if I just play it myself on my desktop and other laptop. Its not a very diverse range of hardware I have. So the ideal setting would be to have some testers for the game. If you want to test for the game feel free to post below or just email me through the website. I'm not awake 24/7 so if I don't respond right away, I should within a day or so.

i'll happily beta test, im running windows 8.1 on a 4670k(still at 3.4ghz because im waiting to get a good cooler) with a GTX670.

I'd love to beta test it. =) @Devon Maybe update this blog post or make more blog posts with status updates about this every so often?

Looking great! I've been playing with OpenGL myself, for some native Linux dev, and it's been a great learning experience. Can't wait to see your progress.

I'm up for beta testing

I will gladly beta test !!

Me too :')

Gladly beta test the game, looking really good!