Jump to content

Josh

Staff
  • Posts

    24,629
  • Joined

  • Last visited

Everything posted by Josh

  1. 1.0.3 Added support for game launching. Select the Game > Run menu item or press F5 to run your game. Your Ultra.json file must have configurations defined like below. The system is being designed to accommodate launch configurations that involve multiple steps, like running a lightmapper or BSP compiler before launch. { "configurations": [ { "launch": [ { "commandline": "+map $MAPFILE", "path": "game.exe" } ], "name": "Run" }, { "launch": [ { "commandline": "+map $MAPFILE", "path": "game_d.exe" } ], "name": "Debug" } ] }
  2. 1.0.3 Added wireframe guide that appears when point, spot, and box lights are selected.
  3. You might try deleting the settings file here: C:\ProgramData\Ultra Engine\settings.json Then run the editor again.
  4. It looks like you ordered the Ultra Engine Pro pre-order. The software cannot be accessed until it is released. The client app isn't even set up to work with that app ID right now. Sorry if that was not clear.
  5. I think I remember this being a limitation of the current system but I don’t think it will be very hard to implement
  6. C++ component system integration with editor is finished. The best way to learn is to look at the sample components in Source/Components. To use a component include the header file. If you want components to be loaded automatically from a map, you need to call RegisterComponent() so the engine knows it exists: #include "UltraEngine.h" #include "Components/Motion/Mover.hpp" #include "Components/Player/CameraControls.hpp" using namespace UltraEngine; int main(int argc, const char* argv[]) { RegisterComponent<Mover>(); RegisterComponent<CameraControls>(); Don't forget the component name, since this is how it is identified: Mover() { name = "Mover"; } The Copy method is also required. In most cases you can just use this code, which will just copy all the object values: virtual shared_ptr<Component> Copy() { return std::make_shared<Mover>(*this); } When loading a component from a map, the engine will automatically call the Load method: virtual bool Load(table& properties, shared_ptr<Stream> binstream, shared_ptr<Scene> scene, const LoadFlags flags) { if (properties["movementspeed"].is_array() and properties["movementspeed"].size() == 3) { movementspeed.x = properties["movementspeed"][0]; movementspeed.y = properties["movementspeed"][1]; movementspeed.z = properties["movementspeed"][2]; } if (properties["rotationspeed"].is_array() and properties["rotationspeed"].size() == 3) { rotationspeed.x = properties["rotationspeed"][0]; rotationspeed.y = properties["rotationspeed"][1]; rotationspeed.z = properties["rotationspeed"][2]; } if (properties["globalcoords"].is_boolean()) globalcoords = properties["globalcoords"]; return true; } New methods have been added. UpdateMatrix() will be called anytime the entity moves or rotates. Listen() and ProcessEvent() can be used to respond to GUI and other events: bool Component::ProcessEvent(const Event& e) { switch (e.id) { case EVENT_KEYDOWN: break; } return true; }
  7. 1.0.3 Finished component system integration in editor and map files. Component .hpp files moved into categories in the Source/Components folder. JSON files used to expose values to editor. Everything should be self-explanatory. Right-click on component group for "Remove" popup menu to appear. RegisterComponent() is used to automatically add components to entities in loaded map. Component::Load will be called to load map properties. I also looked into C++ reflection libraries but they all require manual registration of members, which makes them more trouble than they're worth.
  8. You need to have version 1.0.3 installed. You might try deleting the settings file at C:\ProgramData\Ultra Engine\settings.json
  9. Hi, if you ordered the pre-order, it means you can access the engine at release, which is not yet.
  10. What GPU do you have? The project is able to run with 3D graphics?
  11. I would guess rather that is has something to do with the spring settings if you are using that for shocks.
  12. The float values can be anything, but the visible range is only within 0-1, so at first glance the results are not surprising to me.
  13. 1.0.3 Updated programming library. Scene now has a member "navmeshes" that is a resizable array of navigation meshes in the scene. The entity the navmesh was created with in the editor has a "navmesh" value in its properties, with that value equal to the index of the navmesh stored in the scene. Fixed DDS not saving R16 float textures (I think).
  14. Josh

    Navmesh in-editor

    Since there is support for multiple navmeshes, you can create different ones to handle differently-sized characters.
  15. 1.0.3 Added support for navigation meshes in-editor.
  16. Josh

    small_optimization

    I have no implemented screen velocity yet, but it is planned for. In the situations where reprojeciton can be used, it is like magic. I think this is how real-time ray tracing is usually done.
  17. Josh

    small_optimization

    This looks significantly better than your last iteration. The SSR effect uses reprojection from the previous frame. That shader code might be helpful if you need that. It would be interesting to fetch data from a source like this and display approximate real-time weather conditions: https://earthobservatory.nasa.gov/global-maps/MODAL2_M_CLD_FR
  18. I think I have it worked out for the next build.
  19. Josh

    Navmesh in-editor

    Working on implementation of navmeshes in new editor. Navigation meshes are individually created, with parameters for each one. You probably just need a single navmesh for your whole map, but this will also allow creation of multiple navmeshes for different areas.
  20. Josh

    sneak_peak_clouds

    Looks nice but the render time seems really abnormal. What's going on there?
  21. No, why would it be? It's just a floating point number. It should work. If not this is a bug. I am pretty sure DDS supports this format.
  22. Every value except the red channel will be 0, so you might as well do this: float h = texture(texture2DSampler[textureID], texcoords.xy).r;
  23. 1.0.3 Added property for sprite materials, entities without materials will no longer be invisible. Works nicely, will also be used for decals and particles, when those are added.
  24. This constant corresponds to VK_FORMAT_R16_SFLOAT, so the values are just a 16-bit floating point number with any value. I think the limits of half-floats is somewhere around +/- 65000.0. I use this format for terrain heightmaps. It's nice because you don't have to worry about scaling an integer value between a min and max.
  25. 1.0.3 Added special icons for different entity types, some missing entities in the create options, and properties for cameras and lights. It's mostly done, although I have missed a few details I will get in one more update.
×
×
  • Create New...