Some newer tests - menger sponges. The nearest one has 160000 construction elements, game take some time to place it in a world, but the render and FPS are stable
Posts by paulevs
-
-
Thank you
I found why images and icons were not saved correctly - image should have proper color scheme to be saved as JPG. So, I made a small fix for that and published it -
Hi everyone, this is a small project that I started some weeks ago to help content-makers and myself to make more things for modern Unity Rising World.
This library allows you to manipulate with Rising World blueprints using Java code. The library itself is very simple, but it have full support for Blueprint V6 format including construction elements, objects, plants, screenshots and thumbnails of blueprints.
This library was designed to work with Java 8 and higher. It also depends on LZ4 Java library (compression format of modern blueprints).
Main features:
- BlueprintIO - allows to save and load blueprints from files, streams and buffers;
- Blueprint - class that represent blueprint instance;
- BlueprintElement - construction elements in blueprints;
- BlueprintObject - objects (furniture) in blueprints;
- BlueprintPlant - plants in blueprints;
- LittleEndianDataOutputStream - stream to save data in LittleEndian order.
Constants:
- BlueprintElementType - contains default construction element types (with names from definitions.db);
- BlueprintObjectType - contains default object types (with names from definitions.db);
- BlueprintPlantType - contains default plant types (with names from definitions.db);
- BlueprintVersion - contains blueprint version IDs.
How to add library to your project using Gradle
Releases: GitHub Releases
Sources: GitHub page
License: MITSome examples of what you can do using this library:
Known bugs:- Generated images for blueprints will be not displayed correctly in game. This will not happen with loaded and saved blueprintsFixed since 0.1.1 -
Small test with free large 3D model
-
After dozens experiments and some math - polygon fill. Something is wrong with normals and UVs on my models, I think this can be a result of my "hacky" triangle fill (I set element size to zero on two cardinal axis and manipulate offsets)
-
Simple mesh import. I want to calculate correct triangle position and offsets to make solid meshes, but this is a complex task, so here are simple grids with points
-
Looks like it works
This is test of fully procedural blueprint with simple primitives.
Addition: looks like "unused byte" section in elements is filled with RGBA value of element, if this section will be not filled - emissive elements will not have color or glow. Filling it with repeating RGBA values fix issue
-
Looks like I can read files in that format, but there is something that looks wrong. Count of compressed bytes stored in blueprint (LZ4 section) is larger than amount of remaining bytes in loaded data (it is smaller on 4 bytes). I'm not sure why, I don't know, probably this is mistake on my side, but count of loaded bytes is equal to stored count of bytes, so looks like it should be fine... . I decided just to lower my buffer array on 4 bytes (if I'm not reading no-element data this should work fine), and I'm not sure if this will have effect on saving files
Edit: I tested that on 10 blueprints, the difference always exists and is always 4 bytes
-
Thank you for detailed explanation
-
Good day, this question is a bit "technical", but how blueprints data structure looks like? I mean their storage format. I'm interested in this as I want to experiment with blueprint editing using external tools (I mean making tools for blueprint editing/creation)
-
Does that mean you're mainly looking for an API to modify existing meshes (e.g. loaded through an obj file or a Unity asset), or an API to create entirely new meshes from scratch?
It is more about new meshes, but replacing existing ones can also be useful. For example you can modify meshes of pre-defined objects or objects from another plugin, which probably can make some things easier. Actually, if it will be possible only create new procedural meshes - that will be already enough
-
When talking about procedural construction, do you actually mean an API to create custom meshes (by providing individual vertices and indices)? If there is demand for such a feature, we could implement that
Yes, this is about custom vertices & indices handling. This is a very useful thing, especially for natural-looking objects and optimisation (when you can merge meshed into one to reduce render calls)
Thank you for answer -
Hellow everyone, I know that Unity version plugins are not in the main priority at this moment and new API will probably appear only in one of latest beta releases, but I have some questions about them. Some of them were probably answered earlier, but some info may changed during time.
So, my questions are:
1. Will plugins have a system for custom objects?
2. If yes how it will work? Will objects be loaded from some sort of unity assets or it will be possible to load models from formats like OBJ?
3. Will it be possible to construct things in code procedurally or it will require manual model loading?
4. Will models have support for different shaders or they will use single shader with different texture maps?
5. Will game automatically store objects data in worlds database or each plugin should implement its own system to store objects?
Answers on these questions are important for large plugins that can add custom stuff. For example if someone (me) want to add something like new biomes or resources into the game how much work it will require to store things in world and load them for each player? In Java version this can be done in a bit weird way (at least in example plugins), and plugins that will add massive amount of objects (like custom plants or world objects) require a lot of work and custom chunk management. If in Unity version this will be done on engine side (with some sort of object data serialisation method determined in plugin objects) it will make possible really huge things to be done (like custom biomes, flora, resources and so on). So, the most important question is actually the last one
-
The selection of those blocks would not be permanent and you can change them when ever you want
You already can change shape of any stack in your inventory. In creative - everywhere and in survival - near the workbench. You can also copy shapes from already placed construction elements in the world by pressing a hotkey button.
-
I could imagine that this is related to the lights Or more precisely, the shadow caching. Do you still experience this lag spike if you disable shadows?
Placing blueprint without shadows - impact present, but it is small (50-60 FPS)
Placing blueprint with shadows - 10-13 FPS, on the next world launch 50-60 FPS
Also looks like if game loads "heavy" world with many elements in it - music in main menu can lag a bit
-
Hmm... does that mean you only got this lag spike once right after placing the blueprints? Or do you still keep running into this fps issue on that map (e.g. every time you reload the world)?
Do the blueprints contain lots of objects (furniture, doors etc) or lights?
Lag spike will present in map when after you placed blueprint and until world will be closed, after world/game reload it will disappear. My test blueprint contain a lot of lights and construction elements. Lag was noticed first time when I placed it scaled (with scale 0.1)
-
As it is mentioned in roadmap it will appear in the future, but this will probably be far future as this is not in high priority
-
Not sure what could cause this... If you run into these lag spikes again (especially if it's happening more frequently), could you maybe send us a report? So we can check at least if there is maybe an error occurring in the background
Additional info about this FPS lag - I loaded same world and don't get any lags, so these lags appeared after I placed 3 heavy blueprints on this map with transformations. Probably this is somehow related to blueprint placing in the world.
Another small lag that I found - during screenshot FPS can be decreased from 60 to 15
-
Hmm... unless something else is going on (e.g. a bug we're not aware of), it could be either caused by many lights (e.g. 100 lights or more within a small area), or when the game loads several buildings consisting of lots of construction elements (e.g. 1,000,000 parts or more) Does it happen randomly, or is it reproducible at a specific location in your world?
Looks like random, I can get it in a world with small amount of lights and constructions, but when amount of light and constructions are large it become more noticeable. On previous version same world didn't give any such lag spikes
-
I'm not sure what can cause this issue (large amount of elements or large amount of lights), but sometimes when you move you can get huge FPS drops (up to 1-3 FPS), then it will become stable again after some seconds (60, I have V-SYNC). Looks like this happens when character travel for certain distance, probably when he changing chunk