Translations for our friends around the world.

Author Topic: Military Operations  (Read 2638 times)

0 Members and 2 Guests are viewing this topic.

Online Asid

  • *
  • Posts: 14574
Re: Military Operations
« Reply #45 on: August 05, 2018, 12:57:03 AM »
[DEV] Fast mesh instancing in a streaming scenario
2018-08-02 BY Serge


To focus on the render-data preparation specifically, I assume the reader is familiar with the following concepts:
•   Instanced mesh rendering
•   Compute shaders
•   AOI (Area Of Interest)
•   Quad-tree tile-based space partitioning

For an introduction I recommend this BLOG entry.

I will use OpenGL to demonstrate details because we use it ourselves and because it is the platform independent alternative. The technique however can be adapted for any modern graphics API that supports compute shaders.

The problem

You’re building a game-world that is big, so big in a fact that not all of it can be loaded into memory at once. You also don’t want to introduce portals or level loading. You want the player to have a uninterrupted experience.

How can I do fast mesh instancing in a streaming scenario?

For true continuous streaming, a typical scenario would be something like this:
•   The world is partitioned into tiles (Quad-tree)
•   When the Camera moves, tile-data is read from disk and pre-processed in the back-ground.
•   We need to render meshes for each tile.
•   There can be more than 1000 tiles in the AOI, more than 100 different meshes and up to 10000 instances per mesh on one tile.

Is it possible to improve from 1000000000 draw calls to one draw call?

The solution

The solution is to do the work on the GPU. This is the type of processing a GPU is particularly good at.

The diagrams below show memory layout.

Each colour represents a different type of instance data, stored non-interleaved. For example, position, texture-array layer-index or mesh scale-factor etc.

Within each instance-data-type (colour) range, a sub-range (grey) will be used for storing data for instances of a particular mesh. In this example there are 4 different meshes that can be instanced. Within the sub-range, there is room to store instance-data for “budget” amount of instances. After loop-stage step 4, we know exactly where to store instance data of each type (pos, tex-index, scale, etc.) for a particular mesh-type. In this example, the scene contains no mesh-type 2 instances but many mesh-type 3 instances.

Read on

I stand against Racism, Bigotry and Bullying

Online Asid

  • *
  • Posts: 14574
Re: Military Operations
« Reply #46 on: August 10, 2018, 01:42:56 PM »
Mulit-player poll on the website

We noticed several questions and some of discussions regarding multi-player on the MilOps forums. We don't plan to include multi-player for the initial release of the game.

We do see how multi-player would fit with MilOps however, and would like to include it at some point. This sounds like a perfect poll-topic.

Head over to the website and let us know where you stand regarding multiplayer.

I stand against Racism, Bigotry and Bullying

Online Asid

  • *
  • Posts: 14574
Re: Military Operations
« Reply #47 on: August 14, 2018, 11:24:43 AM »
We have a little surprise for you!
Military Operations: Benchmark - Treesong

A MilOps update featuring play-testing was released today!

The play-test let's you try out the draw-order UI yourself.

This introductory video explains how to draw orders on the terrain.

Three basic unit orders

Uploaded on Aug 12, 2018
This video introduces the three basic unit orders that can be used in the MilOps: Benchmark 20.4 game-play experiment.

Since the play-test is small and we had to disappoint some users before, we made sure the play-test can be used on machines with 2GB video-ram!

So try it out, or head over to the store-page to install MilOps: Benchmark!

Feel free to discuss what you do and don't like about the play-test.  We appreciate your feedback.

I stand against Racism, Bigotry and Bullying

Online Asid

  • *
  • Posts: 14574
Re: Military Operations
« Reply #48 on: August 14, 2018, 11:35:02 AM »
First Gameplay test.
Supports 2GB video-cards

The last MilOps version gave an impression of the scale of the game. It also helped us ironing-out driver support issues. In this latest version we introduce gameplay:

•   Try to capture as many objectives as possible before time runs out
•   Control your units by drawing orders on the terrain
•   Inspect unit state in the detail-dialogue
•   See how your occupied territory increases
•   Watch your progress on the Status-screen

The main goal of this game-play experiment is to try-out basic unit-ordering by drawing on the terrain.

I stand against Racism, Bigotry and Bullying