Chessboard made in Blender
Some month ago I spoke about the future of SodNa and the return to 2d graphics since it is the only way to have some chance to complete a game (you can read the post here).
I worked a lot on the project, particular on:
- Nice slopes and many fix on the map drawer
- Fixed a lot of bugs and improved my dx11 library
- New text system with border
- Improved performances on the sprite system
- Items and textures loader
- Window system to show game information (e.g. the minimap)
- Useful console used to show debug (e.g. the noise data)
- Simple building system
You can see all these improvements on the follow screenshot:
I know that it might seem a small work, but it is important to develop a stable core in order to have an efficient game.
When I started programming with graphics library I tried Diretct 9: in fact they are simpler thant Opengl and they have a ton of documentation on the net. Recently I decided to try the last version, Directx 11.
I am very excited about the new features and I thinked “Why don’t try again with my last project <World> ?” So, I started a new test project to evaluate their performances.
First of all, I saw that my last source library was deprecated: the new architecture is a bit different and I was obligated to rewrite my source from the begin: I wasted some old concepts and I tried to learn from my old errors. The new main keyword will be: performance. I have to build the code thinking all the time at this word, because every single line of code could generate a bottleneck when I will render the buffer on the screen.
I didn’t yet implemented textures and many other features, but the new engine is already impressive: It is able to render a large terrain without lose fps.
– LOD system: as far is the terrain, as lower is the polygons count
– Very large terrain: thank the LOD system, I’m able to render an area of 1.000 x 1.000 chunks (240.000 depth pixels) in 0.01 seconds
– Fast computation: the entire mesh is calculated in debug mode in 0.2 second
– Better noise system: I modified my noise alogorithm to generate some far mountains
Since I was 19, all the Sundays evening I play roleplay games with some friends. During this years the game we appreciated mostly is certanly Warhammer fantasy, so I decided to recreate a typical scene with a couple of dice, a sheet and the handbook.
The picture doesn’t have several elements, but the result is fine for my competence.
It’s a very long time I didn’t write something on this blog about programming, but I never stopped working and it’s time to update you about it.
Last times I explained the biomes system and a simple 3d engine that was able to render a basic landscape with many trees and a few of grass. Unfortunately the frame rate was very low (I am a newbe with 3d programming) and the view impact was not as I expected. The big problem is that i wasted a lot of time trying to fix the graphics instead of program the game.
I thinked about how I could fix all these problmes and finally, I spoke with a designer (the author of Sod lost soul graphics) and he decided to give me his 2d tileset (thanks a lot Arnobius!!!). He is a very smart person and he already realized a tons of tiles; moreover he decided to help me if I will have any kind of problem.
So I started again the 2d project, I imported the loading and generation routine from the previous engine and I rewrote only the draw algorythm.
I dint’t yet finished the restyle, but you can see a first screenshot below where I draw a basic terrain with the new height map system:
A snow globe made with blender and cycles !
In the last post I showed the current engine, but at the moment all the settings are stored in the code. Before to improve new feature, I have to code an external tool to manage the game content.
So, I started a new C# project:
Initially I inserted only the basic information about the map generation, my current porpouse is only replace the old code with this new kind of data structures.
Next I googled to study how generate a realistic terrain and I decided to do it 4 steps.
I coded a modified version of Perlin Perlin Noise Algorithm; in the Map tag I can set its parameters (frequency, amplitude, size, octaves and persistence). In the next picture I drew with different colors the various altitudes generated.
I set a new parameter moisture that represent the distance from the water.
I subdivided the map in 4 latitudes and I applied again a simple noise to make the border irregular.
I created a table where for every latitude and moisture I inserted biomes (tundra, desert…); You can see the result below:
Now I have to set for every biome its vegetation and colors and I also have to edit the engine to load my new db.
I want spend some word about my current project: one year ago I started rewrite my old textual game: Sword Of Darkness. In my intention it will be a single player game where the player can explore a large procedural word, build items and buildings and other many features.
Now, I publish some screens of my various 2d and 3d approaches:
What did I learn about this ?
I learned the beauty and the many difficoults about the 3d graphics, my limits and the time required to make a decent model textured.
So, I restarted again with a 3d cartoon style. The result is the next and I am very statisfied:
This version has the potential to became a great game and I want to follow this way.