Jump to content
  • Advertisement

The Great Tribes Devblog #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:


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:






Work on selection of color registration of a terrane:



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:


And after a short torment managed to get this result:



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:







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


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.




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


And to make adjustable light source to check everything and everything:


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:


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:



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



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:


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





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:



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 :)

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/


Recommended Comments

2 hours ago, Awoken said:

When will you have a demo available?

We plan to release alpha version in April 2019

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By Cacks
      I'd like to get & set the OpenGL View Port Matrix but it doesn't work
      I'm using the "GL_VIEWPORT" parameter
      any ideas?
    • By Octane_Test
      I want to implement 3D water in my game similar to this 2D plugin.
      I know that usually water is implemented using plane deformation. I can't use this approach as I want to implement realistic water simulation similar to the above 2D plugin. I tried implementing the water using metaballs but the performance is poor as I need thousands of metaballs.
      I am looking for suggestions about the possible approaches using which 3D water can be implemented. Also, how fluid in Obi Fluid plugin is implemented?
    • By a light breeze
      Is there a way to set up the projection matrix (in OpenGL) so that the vanishing point is not at the center of the screen?
      Let me explain what I mean in more detail.  Imagine that I am rendering a 3D scene with a standard perspective projection matrix to a 1000x1000 window.  There is no camera matrix, so planes of constant z are parallel to the screen, and objects move toward the center of the window as their z coordinate approaches infinity.  Now, I want to only render the bottom half of this window.  Planes of constant z are still parallel to the screen, but now objects move to a point at the top of the window as their z approaches infinity.
    • By bandages
      So, in real life, incoming dot normal at the silhouette is always 0.  With smooth shaded meshes, it never is, not naturally, not outside of contrived situations.  (Not with flat shaded meshes either, I guess.)
      And incoming dot normal is one of the bedrocks of CG.  Probably the equal of 4x4 matrix multiplication.  Problems with silhouette normals show up in Fresnel, in diffuse lighting, in environment mapping....  everywhere.  But I can't really find anybody talking about it.  (Maybe I'm not Googling the right terms.)
      Obviously, the problem decreases as poly count goes up, eventually reaching a point where it's dwarfed by other silhouette problems (like translucency or micro-occlusion) that CG doesn't handle well either.  But, if I'm reasoning correctly, normal maps don't improve the problem-- they're as likely to exacerbate it as improve it, and the exacerbations are, aesthetically speaking, probably worse than the improvements are better.
      I've tried playing with crude fixes-- basically, rotating normals toward incoming by a percentage, or of course clamping incoming dot normal (like we all have to do) to prevent it from bending behind the mesh.  Nothing I've tried looks good.  I suppose the best option might be to rotate normals to perpendicular to incoming at the silhouette and then interpolate to the nearest inflection point  of something like screen space depth to preserve curvature, but the math for how to do that is beyond me, and I'm not sure it would look any better.  Or maybe, instead, somehow, adjust the drawn silhouette to match the silhouette defined by incoming dot normal?  Not even sure how that would work, not if the normal was pointing away from incoming.
      I don't know-- is this a solvable problem?  Has anyone tried other stuff and given up, pursued anything that was promising but too expensive, anything like that?  Are there any papers I'm missing?  It's really surprising to me that I can't find anyone else talking about this.
      (Apologies if I chose the wrong subforum for this.  I considered art forums, but I felt that people frequenting the programming forums would have more to say on the subject.)
    • By Sword7
      I implemented rotation model for earth.  It orbits around me instead it rotates on its center.  Some tutorial explains ordering for model is:  rotation * translation.
      I am figuring out but can't find solution yet. It did not work with code because it orbits around me (surface always face me around) instead of rotating its center.
      prm.dmProj = glm::perspective(cam->getFOV(), double(gl.getWidth()) / double(gl.getHeight()), DIST_NEAR, DIST_FAR); prm.dmView = glm::transpose(glm::toMat4(prm.crot)); // prm.obj.orot = glm::toMat4(body.getRotation(prm.now)); prm.obj.orot = glm::rotate(mat4d_t(1.0), glm::radians(90.0), vec3d_t(0.0, 1.0, 0.0)); prm.dmWorld = prm.dmView * glm::translate(glm::transpose(prm.obj.orot), prm.obj.cpos); prm.mvp = mat4f_t(prm.dmProj * prm.dmWorld); I tried to split dmWorld into dmView and dmModel but it still results the same but earth looks smaller.
      prm.dmProj = glm::perspective(cam->getFOV(), double(gl.getWidth()) / double(gl.getHeight()), DIST_NEAR, DIST_FAR); prm.dmView = glm::transpose(glm::toMat4(prm.crot)); // prm.obj.orot = glm::toMat4(body.getRotation(prm.now)); prm.obj.orot = glm::rotate(mat4d_t(1.0), glm::radians(90.0), vec3d_t(0.0, 1.0, 0.0)); prm.dmModel = glm::translate(glm::transpose(prm.obj.orot), prm.obj.cpos); prm.mvp = mat4f_t(prm.dmProj * prm.dmView * prm.dmModel); When I tried to rotate full 360 degrees (on Y axis) several times for flat spinning test but... Everything gradually became flat line when rotates away from earth.  More spinning = more distorted like flat line effect.  After more several times, it became completely horizontal flat line.  I tried to rotate on its X axis and it became vertical flat line against earth on right side.  I tried barrel roll several times and everything became vertical flat circle (line) on my side of me.  Does anyone know any similar problem?
      // Free travel mode // Update current position and orientation (local reference frame) // Applying angular velocity to rotation quaternion in local space. // // dq/dt = q * w * t/2 // w = (0, x, y, z) // lqrot += lqrot * wv * (dt / 2.0f); lpos -= lqrot * tv * dt; That is my controls from keyboard for angular and travel velocity where prm.crot = lqrot and prm.cpos = lpos,   wv = angular velocity and tv = travel velocity  (6 DoF controls)
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!