The Great Tribes

It looks great!

Diary of a development No. 32

Hello dears!

It’s been a month and a half since my last diary, a huge amount of work has been done during this time. So that was my task sheet, without considering the tasks that I perform on in-game mechanics:
[spoiler]

[/spoiler]
All tasks were performed not in the order in which they were located in the list, and there are no small tasks that had to be solved along the way. Many of the tasks did not concern my participation, such as Alex slowly changed to buildings:
[spoiler]


[/spoiler]

Work on selection of color registration of a terrane:
[spoiler]


[/spoiler]

The option that we have chosen to date will show a little below.

The first thing I had the task of implementing shadows from objects on the map and the first attempts to implement through Shadow map gave this result:
[spoiler]


[/spoiler]

And after a short torment managed to get this result:
[spoiler]


[/spoiler]

Next, the task was to correct the water, pick up her good textures, coefficients and variables for better display, it was necessary to make the glare on the water:
[spoiler]


[/spoiler]

At the same time, our small team joined another Modeler who made us a new unit:
[spoiler]


[/spoiler]

The model was with a speculator card, but the support of this material was not in my engine. I had to spend time on the implementation of special map support. In parallel with this task it was necessary to finish lighting at last.
[spoiler]


[/spoiler]

All as they say, clinging to one another, had to introduce support for the influence of shadows on the speculator:
[spoiler]


[/spoiler]

And to make adjustable light source to check everything and everything:
[spoiler]


[/spoiler]

As you can see now there is a panel where you can control the position of the light source. But that was not all, had to set an additional light source simulating reflected light to get a more realistic speculator from the shadow side, it is tied to the camera position. As you can see the armor is gleaming from the shadow side:
[spoiler]


[/spoiler]

Wow how many were killed of free time on the animation of this character, the exact import of the animation. But now everything works fine! Soon I will record a video of the gameplay.

Meanwhile, Alexei rolled out a new model of the mine:
[spoiler]


[/spoiler]

To make such a screenshot with the approach of the mine had to untie the camera, which made it possible to enjoy the views:
[spoiler]


[/spoiler]

In the process of working on the construction of cities, a mechanism for expanding the administrative zone of the city was implemented, in the screenshot it is indicated in white:
[spoiler]


[/spoiler]

I hope you read our previous diary on the implementation of visualization system for urban areas:
[spoiler]


[/spoiler]

As you may have noticed in the last screenshot, the shadows are better than before. I have made an error in the calculation of shadows and that the shadows behind the smallest of objects and get the feeling that they hang in the air, now the shadow falls feel more natural.

The map generator was slightly modified, the hills were tweaked, made them smoother. There were glaciers on land, if it is close to the poles:
[spoiler]


[/spoiler]

A lot of work has been done to optimize the display of graphics, rewritten shaders places eliminating weaknesses. Optimized the mechanism of storage and rendering of visible tiles, which gave a significant increase and stable FPS on weak computers. Made smooth movement and rotation of the camera, completely eliminating previously visible jerks.

This is not a complete list of all solved problems, I just do not remember everything :slight_smile:

Plans for the near future:

  • The interface is very large we have a problem with him and really need the help of specialists in this matter.
  • The implementation of the clashes of armies.
  • The implementation of urban growth, I have not completed this mechanism.
  • Implementation of the first beginnings of AI, maneuvering the army and decision-making and reaction to the clash of enemy armies.
  • The implementation of the mechanism storage conditions of the relationship of AI to the enemies, diplomacy.
  • AI cities.

Thank you for your attention!
Join our group in FB: https://www.facebook.com/groups/thegreattribes/

DevBlog, No. 33

Hello dears! And happy new year’s holidays!

It’s been over a month since the last development diary. I have to say that I wanted to post a diary before, but faced with a intractable problem, which spent a lot of time. But all in order.

According to the development plan, the first contact with AI was implemented:

At the bottom of the screenshot you can see messages about crossing the army control zones with another army and the city. Now we had to develop an interface element that would display the event data:

This screenshot in the upper left corner shows the implementation of UILabel with the ability to transfer text by words. An important element of the interface that is useful in the future. In the lower right corner, above the end of the course is now visible various messages, hover the mouse over them POPs up a hint (also a new interface element), with a short description of the event. By pressing the right button, the event can be closed without making any decision, and the left button can open the message.
In this case, when you click on the event button will be the first diplomatic contact in the game:

It was further implemented the first maneuvers of AI. AI walks on the map and tries to determine the boundaries of its continent. In the video at Dukat https://youtu.be/69G51u_Mq3g?t=693 that is the moment where he runs over the enemy army, which pays no attention to him, because busy with study card :slight_smile:

And somewhere in this place and at this time, I was faced with a problem, a performance problem. Our Modeler has a powerful modern computer of red Assembly. But it the game is terribly slow shipping a single core processor. The reason is simple-there are a lot of cores in new processors, but in fact they are less productive in single-threaded applications. And that moment I had a render in one stream. But in fact, the reason was not so much in this. And in the process of finding problems, I decided to count how many polygons we have in the scene:

On the middle map at the maximum distance and a large cluster of palm trees - it’s just scary! 15 824 756 triangles! Almost 16 million!!!

After a bit of map generation, I found a place with 16.75 million. :slight_smile:

Although here is a similar place with trees gave only 8.5 million triangles:

And in the middle stage consisted of about 4 million:

In General, I was glad that my render copes with such a huge number of triangles, but their number was excessive. It was necessary to optimize the number of polygons in the models.

40% decreased Poligona trees! Differences practically are not visible.

Next, we have altered palms - Poligona on the palms was reduced in 10 times. 600 - 700 against six thousand of polygons per pack.

While there was parallel work on the models I have been trying to simplify the geometry of terrain. Here’s what it looked like before optimization:

And after the first steps:

But it was all done by a simple method — all smooth tiles were replaced by two triangles instead of 882.

But there were still flat places that could be optimized, and I began to build polygons from those triangles that had the same height:

Build on them convex-concave contour (Concave Hull). With Convex Hull ω was not a problem, I already used the Graham scan (Graham scan). But the construction of Concave Hull has a problem… Information on this topic on the Internet was quite difficult to find. I had to write the implementation of algorithms from scratch. I will not lie if I say that I read a dozen different dissertations on this topic. But all the proposed algorithms gave an approximate result with some error. After a week of torment and pain, I came up with the idea of my algorithm, maybe I’ll describe it someday :slight_smile:
As a result of two weeks of torment, I got the desired result and was able to build Concave Hull of almost any complexity, bypassing the set with holes, just dividing them into 2 halves of the hole. Received contour and triangulated it:

Getting the output of such a result:

The fog of war has also been simplified:

And in zones where was present only fog of war it turned out only about 300 polygons:

But in the end I was upset with the result and tell you that these two weeks I spent in the shuffle… The algorithm developed by me gave a significant increase in performance when rendering, as the number of polygons on average was reduced by 60 — 70%. But the generation of the map began to occur 10 times slower… the algorithm was time-consuming and difficult.

3 days I lost in ATOM RPG removing stress:) Even at work did not go. Thank God we have at this time the thermometer went off scale at the border -44 - -46 degrees Celsius. And I gave my melancholy for an excuse not to start the car.

And before the new year holidays, enough to play, but the truth is not passed the game, I gave a new lightweight version of the algorithm, which was suitable only for my conditions of tiles. Data calculations for optimization were not noticeable against the background of map generation and the number of polygons decreased by an average of 40-50%.
But there are artifacts when rendering water, I had to rewrite all the algorithms associated with water.
Here is the result:

Anatoly meanwhile made unit of nomads:

While he lies resting :slight_smile:

While working on optimization, I came up with the idea of how to change our mountains.

Mountains have become more embossed, it is noticeable without texture, as the texture is now not suitable for them:

On the grid, so in General the differences are obvious:

It remains the case for small — need a new texture of the mountains.

The next step was to rewrite the resource loader and map generator. Along the way, remaking the start menu for all these things:

Now loading of resources goes in parallel and then map generation begins.

I did a great job in dividing the render into 3 streams. The whole difficulty was in synchronization. Now we have one thread responsible only for drawing, the second thread for recalculation of the visible space when moving the camera and other interactions with the map space, and the third thread is responsible for animation and communication with the server part.

And Yes, we now have a server part responsible for all events in the game and for the AI. In turn, each AI player is a separate process.

Let’s summarize the work done:

  • Graphics optimization from the software side.

  • Optimization of graphics models.

  • Server part.

  • Split render into 3 streams.

  • Preload resources (textures and models).

  • Rewrote the fog of war, water and terrane shaders.

  • Reduced RAM consumption by 20-30%

  • Implemented a number of UI elements

  • Redesigned start screen with the new UI.

  • Fixed errors in normal calculations.

  • Fixed the hills.

  • New mountain.

  • Introduced normalmap for terrain.

  • New selection of units.

  • New animation units.

  • Window of diplomacy.

  • Actions AI. Study the map.

  • Actions AI. Diplomatic contact.

  • Actions AI. The conclusion of peace, friendship, or a Declaration of war.

  • Actions AI. Action units in a collision.

  • In General, a lot of work has been done to optimize and not a lot of game mechanics. I hope this month to the CE goes to plan and I’m finally going to finish the city :slight_smile:

Thank you for your attention!
Join our group in FB: https://www.facebook.com/groups/thegreattribes/

Love the new assets!

development Diary №34

Hello dears!
It’s been more than a month since the last diary. Frankly, it was a hard month for me in terms of development.

Most of the time was devoted to the construction of the structure of society, the interaction of the population, the transition from one stratum to another. It took a lot of time to build economic ties.

At one point, I decided to throw some scheme of our project, which allowed a little systematize all my thoughts and see the degree of implementation of certain tasks. Who is interested to assess the scale, you can see the resulting scheme: https://mm.tt/1209438933?t=mBE5c38pFT

In between work on the gameplay part of the thing with the mountains, and returned them again to the ice caps:
[spoiler]


[/spoiler]

Alexey made new optimized palm trees-270-350 triangles on one subtile

[spoiler]


[/spoiler]

Great result with such a landfill!

I also managed to experiment with the user interface and made this sketch:

[spoiler]


[/spoiler]

And more or less brought him to mind:

[spoiler]


[/spoiler]

I prefer this interface concept. Before the interface was very heavy and it looked as if looking into the tube. But now clearly lacks any curls :slight_smile:

Then I experimented with transparent objects, we had an idea to implement such fields initially:

[spoiler]


[/spoiler]

But, in the end, we decided to focus on such an option:

[spoiler]


[/spoiler]

In a long box I had the task of building walls around our settlements. Alexey made models, already as half a year ago, but his hands did not reach them. I had to dust them off.:

[spoiler]


[/spoiler]

The problem was not trivial, it was necessary to carry out a lot of calculations to determine the need for a wall with an entrance, here is an example of such a case:

[spoiler]


[/spoiler]

And here is masterpiece deciduous trees on 800 triangles on subtil:

[spoiler]


[/spoiler]

Then I broke everything.:

[spoiler]


[/spoiler]

There came a ten-day period of optimization and rethinking of everything that was done on the render.
And all this is due to the fact that I came up with one idea, how else to optimize our render. Unfortunately, I was not able to implement all my ideas, so to speak, theoretical calculations went against the practical results.

But the result was still impressive. The first thing I want to mention — we now have 16 subtiles on the tile, and was 9. Before mesh subflow was 3x3, 4x4 now. 484 tops against 1089 now. The number of vertices per tile has increased 2.25 times, and the performance has remained at the same level and the map generation is now faster, as the most time-consuming process of normals calculation is now faster. This happened due to the fact that I removed from the calculations all the numbers with a period after the decimal point, such as 1\3 and 2\3. Now all calculations on both CPU side so GPU are faster.

This is especially noticeable on large and huge worlds:

[spoiler]


[/spoiler]

The increase in the number of vertices and subflow allowed to implement more realistic mountains:

[spoiler]


[/spoiler]

Now our render takes out 32 million polygons !!! True to my GTX660 IS only 10FPS

[spoiler]


[/spoiler]

Alteration of the whole world on the structure of 4x4 sub-tails resulted in alteration of generation of mountains, hills, rivers, scaling of all models. Which together took those 10 days.

[spoiler]


[/spoiler]

  • Also, the following points have been implemented about which I would like to briefly tell:
  • Normalmaps for the whole of terrane.
  • An error with the calculation of normalmap.
  • Corrected an interface error on the containers voznikayuschaya when the MouseEntered MouseExited events.
  • Go to / from full screen mode by pressing F11.

A lot of time I took one bug:

[spoiler]


[/spoiler]

5 hours I killed on his the search :slight_smile:

Thank you for your attention!

Love to see this evolve, the art gets better and better with every update :slight_smile:

Do you always get 10 - 30 fps on a GTX660 when zoomed out? Are single tiles/subtiles a draw-call each or do pack them together in large buffers? Are you using instancing yet?

Thanks
In fact, this scale in the game will not. With this removal of the camera, the map will switch to strategic 2D mode.

Therefore, there is no sense in Instancing and Imposters.

The standard view will be something similar:

And it’s now on my working GT710 - 31FPS
GT710 is not a gaming graphics card :slight_smile:

Oh ok, so the minimum requirements will be something around 2nd/3rd generation Intel CPUs integrated graphics: https://gpu.userbenchmark.com/Compare/Nvidia-GeForce-GT-710-vs-Intel-HD-4000-Desktop-115-GHz/m77649vs2169

Are you planning on releasing a demo sometime in the near future?

I think the minimum system requirements should be GPU ~ GTX-660 2gb
About the demo… I can’t say about the nearest time, there is still a lot to be done.

DevBlog, No. 35

Hello dears!
This month we had the following tasks:
0. Decide whether we need to implement AO (ambient occlusion) or not.

  1. Screw the optimization of the terrain, i.e. return it to the previous level.
  2. Implement the creation of a settings file and its saving.
  3. Loading textures depending on quality settings.
  4. To implement the preloading of the objects.
  5. Tie different mines, and implement a new type of buildings-career.
  6. Do as I call them multiobjects. These are the objects on the map that will be drawn by several instancing objects.
  7. Implement a window interface object that can be dragged and dropped. Including the second screen, respectively, to implement support for the second screen.
  8. And finally to finish the creation of new cities with strata and the first economic ties.

But after reading an interesting article https://gamedev.ru/industry/articles/Godot_making_game threw a number of tasks and the list turned out:

  1. Screw the optimization of the terrain, i.e. return it to the previous level.
  2. Implement the creation of a settings file and its saving.
  3. Loading textures depending on quality settings.
  4. Tie different mines, and implement a new type of buildings-career.
  5. And finally to finish the creation of new cities with strata and the first economic ties.

On the project as before continued to work at least 12 hours a day. But one day I forgot the flash drive at work with the project and did not do it at home…
And after this, so to speak forced rest, the next day was productive.
Decided to practice this approach to development. In the end the performance like, has increased, probably affected tiredness. As a result, I took a two-week break from development. Week vacation and a week was given to all the various accumulated personal and work events.

After such rest the first week left on performance of the list of small tasks:

  • fixed a glitch with trees that appeared in the ice;
  • made snow Christmas trees;
  • corrected models of deciduous trees;
  • corrected generation of mountains, reduced height of peaks, reduced snow caps;
  • fixed a bug with square banks.
  • fixed new textures of mountains.
  • completed mapping of surfaces (swamps, ice) now they are clearly displayed according to the grid of 4x4 sub-tiles;
  • fixed pathfinding algorithm considering new mountains.

The first of the main list were made mines and quarries:

And we have one small miracle of the world:

Next made loading textures depending on the selected quality, and had the same Tinker with this seemingly easy task.

In General, I implemented 4 out of 5 main points. Again deprived gameplay.
Today, with the engine stopped. It remains only to correct the generation of rivers. And all next month only gameplay on the agenda. Try :slight_smile:

Thank you for your attention!

Development diary #36

Hello readers of our diary! Happy new Year to all!

It’s been a long time since I wrote a diary, for good reason. Let me remind you that my working season ends in late October / early November and I had to return to the project at this time.

But there was another reason why I didn’t start the project until early December. After my long internal resistance, I still took up the study of Unreal Engine 4. In turn, the study of UE4 pushed me to the lack of progress on the design document of our game designer. After two months of picking at UE4, I realized that IT was a great tool for creating games… But still it is not for strategies, or rather not for strategies with such huge maps as we have.

From using Blueprints I got only pleasure, especially when you can see firsthand and look at the whole scheme:

[spoiler]

[/spoiler]

In the summer, while the working season was going on, there was almost no time to deal with the project. But then I bought myself a new thing for the computer-a video card RTX 2080 and decided to test the project on it. The project was launched but did not work correctly, after a long search for the cause, I realized that the problem is in the Shader:

[spoiler]

[/spoiler]

On the forums nobody could help me, it was a lot of advice but all were misses. As a result, after studying the OpenGL documentation, I came to the conclusion that my error was in the special behavior of OpenGL 4.5, or rather the error was in Non-uniform flow control
https://www.khronos.org/opengl/wiki/Sampler_(GLSL)#Non-uniform_flow_control

After her correction, everything worked. Still, after forum correspondence, the guys gave me a good idea and I optimized the Shader a little, for which they are very grateful.

The next step was to rework the algorithm for finding starting places for players, I still do not like it, but it works better than the previous one, time for squeaking takes a lot. This is the second time-consuming problem, after the normal calculation problem. It even happens that the search for starting places takes longer than the calculation of normals…

We’ll have to rewrite it again.

After I finished working with UE4, I was planning to take up writing a design document. I thought about what direction I should go and where to start, re-read the previously written concept document. On one of these days, under such reflections, I remembered how I was haunted by the written algorithm for generating mountains. Let me remind you how the mountains looked earlier:

It was a fleeting thought, but it caught me, and I spent the day with it in my head.
The next day I decided to program this moment:

The mountains were not bad, but not much better than they were. But I made them using a completely different approach, which left room for maneuver. Two days I experimented and in the course of such experiments I realized that it prevents me to get the desired forms, but this will have to change a little the way of generating the transition of one type of surface to another, i.e. the transition of water to land and land to mountains. It took me half a day to write the code, but by the evening I had an interesting result:

It didn’t seem too bad.

And then I realized that a similar approach can be applied to rivers. The design document was relegated to the background. In a couple of days I have rewritten the rivers, their curves now look more natural:

And now, in addition to the fact that the rivers were built more efficiently, in the process of writing the generation algorithm, I have repeatedly looked at the algorithm that built the mapping of rivers in 3D space. In a strange way, I displayed them, and in just a few hours I copied everything to an algorithm based on the construction of Bezier curves. By the way, in the screenshot above, the rivers are built on Bezier curves.

The new approach to generating both rivers and mountains allowed me to work with them more freely, and a couple of other ideas came to mind. I had a plan and even knew how to implement it. But, then fell into a stupor and a whole week could not formulate and implement the plan in the code. I walked around the office in circles, literally banging my head against the wall and cursing myself for not being able to do such a simple thing. A week passed in agony, I can’t tell you how empty my mind was. And four days before the new year I finally gave birth to my thought:

Rivers can cut through mountains (is it realistic?).

Now rivers can come out of the mountains.

And the coolest thing - now the rivers have different widths! There are navigable rivers and non-navigable ones. At the confluence of one river with another, the latter changes its width. The width of the river in turn now depends on the length. The width of the river increases gradually, from the source to the mouth.

It remains to program a beautiful source and mouth and rivers will be ready.

At last I was released, that fleeting thought is embodied in life, it is possible to write the design document further.

Now diaries will come out more often. See you again!

https://vk.com/thegreattribes

Hello everyone!

it’s been a very long time since the last diary. Many wondered if the project was alive or gone. The project is alive, but faced difficulties.

Last year, we were unable to reach a consensus with Eugene, our game designer, or rather, he was unable to implement the concept we conceived, for a number of different reasons.

After the last diary, I took up the continuation of our concept myself. After a while, I realized that everything that we had planned with Zhenya was too much for me alone. Probably at this moment, for the first time, the thought occurred to me that I should have given up my first initial concept for nothing. But I couldn’t blame myself, because Zhenya’s first General concept was already on paper, and mine was only in my head. At first glance, the concept looked good. It turned out later, when it came to the details, that the concept has 90% of the old spots that no one can formulate.

After the new year’s holidays, I decided to start from scratch, after further development of the concept. After a week of torturous beginnings, I was left standing on the second or third page of my new mega concept book… And then I started looking for inspiration on the side. 500 hours of play in the 6th civilization, Dawn of Man - 40H, Jon Shafer’s At the Gates - 40H, Crusader Kings II and then Crusader Kings III under a hundred hours. A bunch of other games.

I tried to write a concept several times. Each attempt moved me one or two pages ahead and the fuse disappeared. In the end, I barely described the basics.

I can’t say that the project was completely stalled at this time, many different minor edits were made. A person who is engaged in sound joined the project and the first rudiments of sound design appeared in the game.

Over the past half year, until I had time to fully engage in the project, I kept records of all my ideas, of which I accumulated a sufficient number. Now the task is to structure them in a concept Doc.

My goal is to roll out a more or less playable build by the end of this season.

I will try not to pay attention to the graphics and concentrate on the gameplay.

Wish me luck and patience!

4 Likes

1 Like

In the screenshot, the army protects the approach to the city from above, and the Outpost will not allow the enemy to pass from below.

New meadow biome

Happy new year 2021!

The Great Tribes game development team wishes you a happy new year 2021! And thanks you for your interest in our project. Your support means a lot to us.

Personally, I would like to Express my special gratitude to those who joined the development of the project.

This year was not easy for all of us, but it was very productive for our project and we hope that it will continue to be so, and we will release a very cool game!

We wish our subscribers new success and, most importantly, health in the coming year. Success in everything, achieving all your goals.

Stay tuned!

I remind you that our plans for 2021 are to release a working pre-alpha version of the project in the spring of 2021. So stay tuned. In the meantime, you can become a tester in our discord channel: https://discord.com/invite/tCzHVsW .

Please support us by subscribing to the YouTube channel: https://www.youtube.com/channel/UCUMPv2zJyMiWJ0LNLxC6BxA . Next year, we will conduct streams and conversations with developers.

Best regards from The Great Tribes development team.

1 Like

The concept of biome grassland

The concept of settlements

New textures of the meadow biome, its mountains, and grass

4 Likes

2 Likes

Tested the project on Linux! Everything works perfectly!

1 Like

Messages to the player directly on the map!!

2 Likes