Devblog 18th June 2017
Greetings, citizens ~
We’ve added some exciting features this week, including a fill and line tool, and new rails. There’s also a new Advanced Build Mode GUI! Everything should be cleaner and much easier to access now. However, keep in mind that the layout and content is still a work in progress, and so may change significantly between builds. Over the next few days, we’ll tweak what each group contains and adjust how the tools work in order to streamline the experience.
New dev build!
This first dev build contains the core functionality of two new tools: the Fill Tool and the Line Tool. Both are available under the Shape Tools group.
Fill Tool
The fill tool allows you to incrementally fill (or replace) areas with your desired block. It’s quite simple to use: you can freely select your starting point with the camera (similar to ‘create docking’), and press the [Do Fill]* button with a block selected on your hotbar.
* We are absolutely going to rename this later.
The fill tool allows both space-filling and block-replacing, depending on what the starting point is. If it’s empty space, the tool will flood-fill; if it’s a block, only that block type will be replaced. Also: this is a step-based system, meaning undo and redo work, allowing you to easily fix any mistakes.
For now, the filling process is done in a single step, and uses a fixed amount of blocks. We will change this over the next few builds to allow you to specify how many blocks to place at once, as well as allowing servers to impose their own limits to reduce server strain.
We’ll be adding some optimizations to this in later builds.
Screenshots below
Hollow torus made of crystal armor
Filling the torus starting from the bottom
Filling the shell of the torus with blue hull, replacing crystal armor along the way.
Line Tool
This is an addition to the build helpers. You set two points (using your camera position, as with the fill tool) and it will create a line between them.
We’ll add more features in the future, such as splines and line thickness.
As with the new GUI, this is also a work-in-progress, so we’ll be improving it and fixing any issues that arise.
Load/Unload Rails
We’ve added two new blocks to the game: the “Rail Load” block and the “Rail Unload” block. (We’re still working on their textures)
You can place them anywhere, and they work identically to normal rails, but they have an added feature: item transfer. These blocks allow transferring items between connected storages on a station and a docked ship via the Load/Unload Rail. Example:
You connect a storage to your rail docker on a ship, and dock it to a Load Rail on a station. The ship is then able to pull items from any storage on the station connected to that Load Rail.
If you instead dock the ship to a Rail Unload block, the station may then pull items from the ship’s connected storage to any storages connected to that Rail Unload block.
Again, both docker and rail need active connected storages. Also, the station will only pull items if it has permission to do so!
The ship radial menu allows you to select between 5 different permissions for the load/unload rails:
~ Always allow
~ Always allow faction, ask for rest
~ Always ask
~ Allow current (the entity you’re docked to; this allows manually activating or deactivating)
~ Never
Advanced Build Mode GUI
The new GUI is much cleaner, and all of the controls are much more accessible. You may show/hide individual groups, and in later dev builds, these will be customizable in location, order and size. The game will remember these settings between instances.
We’ve added new sliders, too, which allow dual input: you may enter values manually, or use your mousewheel while hovering over the controls. This also allows scrolling through the GUI without changing sliders’ values unintentionally.
This is not the final version, of course, as we will continue to work on the design.
Outline System and New LoD mesh
This completely new system is able to produce highly-optimized meshes of any number of blocks. It will be used for several effects in the future, especially for outlining the systems of a ship (e.g. for building and/or scanning). The outline itself will also be used for selecting entities in subsequent builds for this release.
This system is not able to replace the existing mesh and chunk system. Not only should any object realistically only be loaded into memory in chunks to begin with because of the sizes involved, but also in terms of graphics it’s not possible for the block meshes to retain all of the information needed. The new system simply doesn’t work with multiple textures in the same mesh. We’d have to use one mesh per block type, which would pretty much remove any advantage the system confers. Also, no lighting or material information can be stored in the limited amount of vertices of such meshes, and furthermore: making a mesh of a large object might be too much for the graphics card buffers to handle... so a chunk system would be needed anyway.
However, it is absolutely perfect for far-away LoD views of a model since block types can be mapped to a low number of colors, thereby producing one mesh per color. This, when combined with a higher-granularity chunk system, should give a large FPS increase when viewing bigger objects in the distance.
New Chunk Request System
We’ve completely rewritten the chunk request system! The new approach streamlines the order of chunk requests over multiple entities. They’re now ordered in the background on a global level, meaning nearby chunks will have much shorter load times. This also benefits the lighting calculations, which should improve overall performance.
Moving Forward
Dev builds should come out a lot more frequently from this point on. Though as always, be careful and use a separate installation so you don’t risk anything bad happening to your data, as dev builds can occasionally contain game-breaking bugs.
As always, thank you for playing StarMade!
~ The Schine Team