Wednesday, 30 November 2011

Icon possibility

I have done a little work on an icon:

The symbol can mean strength for which in this case I have translated into superiority. I think this is a very possible option. If you can think of any variations or ways to improve, please let me know. And tell me what you think.

Logo

I'm thinking it's getting about time to start working out a logo, or general symbol that will identify Supremacy and end up as the Icon, main menu etc. I'm thinking gray-scale and minimalistic or clashing sides. Ideas? Take the Half-Life lambda symbol for example, no matter how you draw it / colour it, so long as the person knows the series, they will know its Half-Life.

Saturday, 26 November 2011

Performance Testing

I have finally managed to draw something to the screen using DX11 (Actually DX10 because my system doesn't support 11 but it should still work fine). Anyway, I managed to draw the first triangle (harder than you would think). And I have implemented a timer to count frames per second as accurately as possible so I can easily monitor and adjust code to improve performance where I think it should be. Anyway, here's a lil' pic for you:


As you can see the current display of the triangle is drawn in ~330μs. This is a good start. I wanted to know more or less how much overhead came with the 'draw' call to the graphics card. So I added a loop to the draw code which would draw the same triangle, in the same position 'x' number of times per frame, the code looked a bit like this:

Clear screen red

draw triangle 'x' times

Show image on screen

After doing testing on this, it seemed that with x less than 10, about 330μs is to be expected. For 100 draw calls about 400μs which is good because this is the expect number of draw calls in the final game. For 400 draw calls about 500μs is the result. I will not be comparing these to XNA for two reasons, 1) I'm a tad lazy and 2) This system is fast, and is certainly going to be faster than XNA so I will be using it, without a doubt.
I am sure that with a system that is capable of utilizing full DirectX 11 these numbers would improve but when you think about it, 400μs is tiny, thats 0.4ms which is 0.0004s, so even when the rendering system has to fall back to DX11 emulating DX10 or DX10.1 there should still be no performance issues.

If at all possible, could you leave a comment or let me know the basics of the systems you are running so that I can get a good idea of how well this game will run across all interested people. Thanks.

Monday, 21 November 2011

Road Block

Up till now progress on Supremecy has been great. Daily updates of late with great leaps forward in graphics and gameplay. This has come to an end. The problem is that by using XNA to develop the game, I am using a wrapped version of DirectX 9 which produces several bottlenecks in the drawing stage of the per frame updates. These bottle necks push the game from about 5ms update time to 12-13ms update time which results in 80fps. This is all happening on my reasonably modern computer with its quad core and my year (or so) old graphics card. I cannot accept that you will need a BF3 computer to run this game therefore I am going to spend some time rewriting the core of Supremecy in C++ using DirectX 11 (If this cant be found it will use DX10) in which the bottlenecks have mostly been removed. This should improve the performance greatly, but Windows XP will not be supported, but since most people have moved on, this wont be too much of a problem. On a side note, the fact that when I created this app I actually spelt its name wrong, Supremecy should really be Supremacy. So that will be changing too.

Wednesday, 16 November 2011

Concept Work

The next step for the game is to get some units moving around the field. So for that to happen I need to build some 3D models for them. I'm starting with the troop transport because its the first unit in Supremecy you will ever see and I want to build the other units up using the same design ideas as this one.

So here it is:
The CV - 17 Vanguard     VTOL Troop Transport


It still needs some work cleaning the edges, adding extra details like a cockpit and exhausts to the engine but that is the general look for the model. After finalizing the 3D work i'll start on the textures, one for the red faction, and one for the blue.

Tuesday, 15 November 2011

Pretty Picture

I have been making some adjustments to world size considering that when the game camera is only 50m above the ground, being able to show a 20x20km world was a little pointless, so I shrunk the world, the camera now stays a fixed height above the terrain (scroll wheel to adjust up or down) This give the smaller terrain the same huge feeling as the large terrain while getting in closer. I also adjust the quality of the world so that the terrain outside the playable area has a low quality while the terrain inside has 4x the detail. I have also been making some assets for the game in an attempt to see how it would look with various objects and I think it came out really well.


I need to do a little bit of work on the trees to make sure they still look full of leaves from all angles but from this viewpoint they give a very nice bordering to the valley.

Please do leave comments about what can be done to improve the look of the game, I do need to know what people think.

Saturday, 12 November 2011

Alpha 10

For this update, I did two big things, I introduced two more materials to the terrain rendering process. This means that now the terrain can be any combination of 4 different materials. The process with which the game selects these materials has also been changed and is more robust. I have also added support for DXT5 files. DXT5 is a lossy compression algorithm (4:1 compression ratio) designed for use with Direct X. The reason I chose this is because when rendering the terrain which could full the entire screen takes a lot of texture look-ups to get the correct color data. I.e. for a 1680x1050 screen, this could be up to 8,820,000 texture look-ups in a single frame. This was a big hit to the frame rate. Most of the problem (caused by my GTS 250) was the texture fetch speed wasn't high enough to cope with the data being transmitted. To fix this a material that used less memory was needed, thus DXT5 because it supports RGBA color with its 4:1 compression ratio. This gave the required performance boost to ensure the game does not need to be ported to C++ any time soon.

The download like for the Alpha 10 is: here

Please feel free to try edit the world in any way you see fit. Instructions on this can be found in the extras folder.

Next stop, different types of terrain nodes (I.e. Smooth hills, mountain tops and cliff faces)

Thursday, 10 November 2011

Alpha 9 - Resource Reloading

In this version you will find the fully featured terrain editing including adding and deleting as well as resource reloading when you tab back into the game after editing the tone map or material.

To add a new height node hold control and click on some empty ground so that no other nodes are highlighted then drag it out to the correct size. You can then move it around like all the other nodes. To delete a node just highlight the one you want gone and hit 'delete'.

As for the resource reloading, whenever the game has it's focus returned to it, it will reload all the materials used on the map as well as the tone map. This makes it much easier to edit the world without having to start and quit the game repeatedly.

And the download link is: here
This game also requires the XNA 4.0 Redist



Enjoy.

Terrain Editing Complete

With the terrain editing feature I have finished my work. You can now add/remove, move, resize the height nodes all in real-time (albeit. with a frame rate drop) which makes viewing the final feel of the game much easier. The next thing to add is live resource updating so that when you tab back into the game window, it will automatically reload some of the easier resources like textures.
(Thanks Overgrowth for the idea)

Alpha 8 - Editable Terrain

I have finished the majority of the editable terrain features so here is an updated version. Here is how it works:

In the test_3d.smp (the map file) there is a tag called ‘node’, this node specifies the x, y, z coords and the size of the node, if you want more nodes, just add them here

In game to enable edit mode open console (~) and type editmode, you should see some green rings around all the nodes.
To move a node on the horizontal plane, just left click and drag it.
To raise or lower a node, hold down left shift and then left click and drag.
To adjust the size of a node, hold down left control then left click and drag.

Be aware that the larger a node you edit, the longer this will take the game to process which could cause some very large frame rate drops, be wary.

You can download Alpha 8: here

Here are some images of the updated terrain engine:




Welcome Back

After some recent changes to WordPress it has become unreasonable to continue to provide updates from their and as such I have moved all future updates to this blog here.

So.. welcome back.