StarMade News - Devblog 6th June 2017
With the preview of last week, which is being able to draw any subset of blocks on any structure, we want to share another reason why we implemented this now. Not only is it already extremely useful for making existing GUI elements better and as said, adding new systems like active scanning, it also will be our basis for a new Level-of-Detail system. This system will increase drawing performance by drastically reducing the amounts of polygons at a distance. For that, the meshes we had last week needed to be improved and optimized. Since these are one colored representation of a set of blocks, polygon reduction is extremely viable. First of all, however, it needs to be explained why this method is not viable for all the mesh drawing, especially close. Reducing polygons means giving up information that is stored in those vertices. In our case that is texture information, the baked lighting, material, and a lot of other graphical meta information. Some of that can be compensated with techniques like deferred lighting, which would work yet does not scale well most of the time, and will force a lot of other optimizations to be removed. Also, the more detailed the mesh is with additional shapes, the less advantage the polygon reduction will provide.
That’s why combining both techniques will give us the best result. At a distance we can draw a minimal mesh that will speed up things dramatically. We can even make that multicolored with mixing multiple meshes on a fixed map of colors. Best of all, for close up, this still gives us the option of using deferred lighting eventually, but mixing it with existing lighting to have a smooth transition at a distance for maximal performance combined with the cool graphical experience of dynamic lighting. Here is how it works:
As an example, we just take one side of the mesh. In production, this algorithm applies to all sides and all ‘depths’ (layers). Individually, however, we are looking at a 2D mesh. This is the raw drawing, which each block representing a full square. As you can see, the amounts of vertices and polygons are pretty high, especially if only one texture would be used. The algorithm itself at this stage records all vertices and its connections to other vertices, as well as diagonal vertices individually. Diagonals are handy to know that there was a filled out block at that position, and not just a one block gap.
The first step for the algorithm is to remove inner vertices. These can be easily identified by checking the amounts of diagonal vertices a vertex has. If the number is exactly 4. We can remove it. At the same time, we can remove unnecessary connections. This is a bit more complicated to explain. Essentially for each non-inner vertex, we check for each existing direction the two orthogonal neighbors in the same direction. If both exist, the connection is unnecessary.
A similar approach is used to remove the vertices that are not corners. Now the mesh is as simple as it can be. However, to draw it, we need to define triangles. There are several methods to triangulate a mesh, and it is highly complex, especially doing it with concave polygons that can have multiple holes in it.
For our case, we can make the process a lot faster by using the fact that we are on a grid. A fact that is often overlooked in a lot of projects, but since starmade is primarily a voxel game, can be used as the source of countless optimizations. Explaining the exact process of retriangulation would take way too long for this dev blog, but you can probably understand the overall process of inserting horizontal lines at key points to subdivide the mesh into rectangles.
From there, it is rather straight forward to get actually triangles that can be drawn. Now we do this for all sides, and their layers, and we get a mesh that is highly optimized, and doesn’t have any strangely shaped triangles (extreme angles). This has the great advantage of being able to use well formed texture coordinates if needed.
As a final step (for the highlighting), the mesh is drawn into a frame buffer and rendered with an outline shader. As announced, we have a dev build in the making which we will release when it’s ready for public testing. Thank you for playing StarMade, ~ The Schine Team
[ 2017-06-07 00:41:36 CET ] [ Original post ]
Hello players, The dev blog for this week features something more on the technical side. It covers a nice feature that will be very important in going forward.
Optimized Meshes
With the preview of last week, which is being able to draw any subset of blocks on any structure, we want to share another reason why we implemented this now. Not only is it already extremely useful for making existing GUI elements better and as said, adding new systems like active scanning, it also will be our basis for a new Level-of-Detail system. This system will increase drawing performance by drastically reducing the amounts of polygons at a distance. For that, the meshes we had last week needed to be improved and optimized. Since these are one colored representation of a set of blocks, polygon reduction is extremely viable. First of all, however, it needs to be explained why this method is not viable for all the mesh drawing, especially close. Reducing polygons means giving up information that is stored in those vertices. In our case that is texture information, the baked lighting, material, and a lot of other graphical meta information. Some of that can be compensated with techniques like deferred lighting, which would work yet does not scale well most of the time, and will force a lot of other optimizations to be removed. Also, the more detailed the mesh is with additional shapes, the less advantage the polygon reduction will provide.
That’s why combining both techniques will give us the best result. At a distance we can draw a minimal mesh that will speed up things dramatically. We can even make that multicolored with mixing multiple meshes on a fixed map of colors. Best of all, for close up, this still gives us the option of using deferred lighting eventually, but mixing it with existing lighting to have a smooth transition at a distance for maximal performance combined with the cool graphical experience of dynamic lighting. Here is how it works:
As an example, we just take one side of the mesh. In production, this algorithm applies to all sides and all ‘depths’ (layers). Individually, however, we are looking at a 2D mesh. This is the raw drawing, which each block representing a full square. As you can see, the amounts of vertices and polygons are pretty high, especially if only one texture would be used. The algorithm itself at this stage records all vertices and its connections to other vertices, as well as diagonal vertices individually. Diagonals are handy to know that there was a filled out block at that position, and not just a one block gap.
The first step for the algorithm is to remove inner vertices. These can be easily identified by checking the amounts of diagonal vertices a vertex has. If the number is exactly 4. We can remove it. At the same time, we can remove unnecessary connections. This is a bit more complicated to explain. Essentially for each non-inner vertex, we check for each existing direction the two orthogonal neighbors in the same direction. If both exist, the connection is unnecessary.
A similar approach is used to remove the vertices that are not corners. Now the mesh is as simple as it can be. However, to draw it, we need to define triangles. There are several methods to triangulate a mesh, and it is highly complex, especially doing it with concave polygons that can have multiple holes in it.
For our case, we can make the process a lot faster by using the fact that we are on a grid. A fact that is often overlooked in a lot of projects, but since starmade is primarily a voxel game, can be used as the source of countless optimizations. Explaining the exact process of retriangulation would take way too long for this dev blog, but you can probably understand the overall process of inserting horizontal lines at key points to subdivide the mesh into rectangles.
From there, it is rather straight forward to get actually triangles that can be drawn. Now we do this for all sides, and their layers, and we get a mesh that is highly optimized, and doesn’t have any strangely shaped triangles (extreme angles). This has the great advantage of being able to use well formed texture coordinates if needed.
As a final step (for the highlighting), the mesh is drawn into a frame buffer and rendered with an outline shader. As announced, we have a dev build in the making which we will release when it’s ready for public testing. Thank you for playing StarMade, ~ The Schine Team
StarMade
Schine, GmbH
Schine, GmbH
2014-12-04
Action Indie Strategy RPG Adventure Simulation Singleplayer Multiplayer Coop EA
Game News Posts 115
🎹🖱️Keyboard + Mouse
🕹️ Partial Controller Support
Mixed
(2175 reviews)
http://www.star-made.org
https://store.steampowered.com/app/244770 
The Game includes VR Support
StarMade Launcher - Linux [2.38 M]StarMade Launcher v2 - Linux [239.03 M] [0 B]
A voxel-based 3D sandbox set in the never-ending darkness of space. Create your own ships, explore new galaxies, stars and planets. Discover and salvage space stations, fight against pirates or opposing factions in multiplayer. Equip your ships with completely customisable weapons and conquer the galaxy. Trade and make a fortune, mass produce materials in gigantic factories. Design your very own space station. Create warp gates and network the universe at your front door.
The universe is a vast, mystical, beautiful, awe-inspiring place.... the universe is yours.
Built for scalability to facilitate massive fully interactable objects, almost anything is possible. Gameplay elements have been skillfully constructed to bring the ultimate space sandbox experience.
Dive into your own unique universe, and choose your path.
The universe is a vast, mystical, beautiful, awe-inspiring place.... the universe is yours.
Built for scalability to facilitate massive fully interactable objects, almost anything is possible. Gameplay elements have been skillfully constructed to bring the ultimate space sandbox experience.
Dive into your own unique universe, and choose your path.
Key Features:
- Procedurally generated infinite universe, with quadrillions of galaxies - The universe is massive. It'd take approximately 10,000 years to cross from one end to the other! Singleplayer and Multiplayer worlds can be heavily customised with our extensive config options.
- Developed for scalability- We have a broad range of graphical and performance options that cater to our low-end users as well as those with heavy rigs and servers.
- Advanced Build Tools - Powerful and easy to use building tools, quickly design awesome ships, stations and bases. Including functions: Copy & paste, undo, redo, replace, symmetry modes, shape assistance systems (spheres, cycles, torus and more) and rotation of templates.
- Modular Weapon Systems - Combine weapon systems for countless configurations of weapons. From sniper beams to swarm missiles.
- Comprehensive Rail & Logic Systems - Use the rail system to build moving parts. You can do anything from simple elevators, sliding or rotating doors, to complex cranes.
Tinker with our logic systems to control any system in the game, be it weapons, lights, rails, or explosives. Logic covers all basic gate types for convenient use (AND, OR, NOT, DELAY, Flip-Flop), allows in flight control and wireless connections between entities. You can use it for simple things like timers, switches, buttons. Or, build complex systems like working clocks and even a real CPU. - Community multiplayer (dedicated servers) - Play with others in our community hosted servers. Our configs allow administrators to customise core game mechanics for a tailored experience. Most settings can be tweaked to squeeze the best performance out of hardware.
- Platform independent (Windows, Linux, Mac) - StarMade is completely platform independent. We support the three most widely used operating systems.
- Free to play in alpha - We offer the full game free to play while in alpha development. Play our game through this period for free while in return we receive invaluable feedback and bug reports.
MINIMAL SETUP
- OS: Ubuntu 14.04 - 64 bit
- Processor: Intel Core i3 (2nd Generation and above) | AMD FX 6xxx or equivalentMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GeForce GTX 260. 275. 280. 460 SE. 550 Ti | AMD Radeon HD 4870. 5770. 4890. 5830. 6770. 6790 or equivalent with OpenGL 2.1Network: Broadband Internet connection
- Storage: 3 GB available spaceAdditional Notes: 2GB of memory must be available for StarMade. Lower specs may work by modifying graphics and other performance options. Try out our demo to get an indication for your system. System components such as Integrated Graphics cards may not be supported. Requirements may change in further updates.
- OS: Ubuntu 15.04 - 64 bit
- Processor: Intel Core i7-2600 @ 3.4 GHz | AMD FX-8320 Eight-Core @ 3.5 GHz or equivalentMemory: 8 GB RAM
- Memory: 8 GB RAM
- Graphics: Nvidia GeForce GTX 560. 650 Ti. 750 | AMD Radeon HD 5850. 6870. 7790 (or equivalent)Network: Broadband Internet connection
- Storage: 3 GB available space
GAMEBILLET
[ 5951 ]
GAMERSGATE
[ 3198 ]
FANATICAL BUNDLES
HUMBLE BUNDLES
by buying games/dlcs from affiliate links you are supporting tuxDB