Jump to content

Josh

Staff
  • Posts

    22,895
  • Joined

  • Last visited

Everything posted by Josh

  1. I wanted to take some time to investigate geospatial features and see if it was possible to use GIS systems with Ultra Engine. My investigations were a success and resulted in some beautiful lunar landscapes in a relatively short period of time in the new game engine. I have plans for this, but nothing I can say anything specific about right now, so now I am working on the editor again. Leadwerks had a very well-defined workflow, which made it simple to use but also somewhat limited. Ultra goes in the opposite direction, with extremely flexible support for plugins and extensions. It's a challenge to keep things together because if you make things to flexible it just turns into indecisiveness, and nothing will ever get finished that way. I think I am finding a good balance or things that should be hard-coded and things that should be configurable. Instead of separate windows for viewing models, textures, and materials, we just have one asset editor window, with tabs for separate items. The texture interface is the simplest and just shows some information about the asset on the left-side panel. When you select the Save as menu item, the save file dialog is automatically populated with information loaded from all the plugins the engine has loaded. You can add support for new image formats at any time just by dropping a plugin in the right folder. In fact, the only hard-coded format in the list is DDS. You can save to an image format, or to the more advanced DDS and KTX2 formats, which include mipmaps and other features. Even more impressive is the ability to load Leadwerks texture files (TEX) and save them directly into DDS format in their original pixel format, with no loss of image quality. Here we have a Leadwerks texture that uses DXT1 compression, converted to DDS without recompressing the pixels: There are several tricks to make the new editor start up as fast as possible. One of these is that the various windows the editor uses don't actually get created until the first time they are used. This saves a little bit of time to give the application a snappier feel at startup. I hope the end result will provide a very intuitive workflow like the Leadwerks editor has, with enough power and flexibility to make the editor into a living growing platform with many people adding new capabilities for you to use. I think this is actually my favorite stuff to work on because this is where all the technology is exposed to you, the end user, and I get to carefully hand-craft an interface that makes you feel happy when you use it.
  2. Are you saying that marching cubes creates some "stair-stepping" due to the fact the minimum change in elevation is equal to the voxel size, so the minimum change in height is equal to the distance between terrain points?
  3. Josh

    UltraEnglish

    Other name ideas: Comment Chitchat Remark
  4. Josh

    UltraEnglish

    That is so cool. It's even simpler than Dark Basic. You could call it "Human" if you wanted to.
  5. Josh

    components

    I hope so! Please tell me what you think when you have tried it.
  6. Josh

    components

    Both Leadwerks and Ultra Engine give you easy control over the structure of your program. You can just write a main function and structure your code however you want: https://www.ultraengine.com/learn/CreateBox?lang=cpp In Ultra, you also have the option to use a C++ entity components system. This has some advantages, especially when there are multiple programmers working on a project, but it's not required at all: https://www.ultraengine.com/learn/EntityComponentSystem?lang=cpp Leadwerks supports C++ and Lua programming. Ultra supports C++ programming, with planned support for Lua and C#.
  7. Josh

    Moon

  8. Josh

    Moon

  9. Place a copy of those files in the game's folder, or whatever subfolder they are supposed to be in.
  10. There's also the issue that if the files you are loading are packaged in an encrypted zip file, the engine won't be able to read the files. File reading is not supported because it would break the protection. You would need to keep those files in the game's folder, not in a zip file.
  11. Actually, it can read files, it just can't write files.
  12. You can disable sandboxing by creating a shortcut to the game executable with "+sandbox 0" added to the command line.
  13. No, the Lua sandboxing makes it so Lua cannot read or write files.
  14. You must disable Lua sandboxing, from C++, in order to use the Lua IO commands.
  15. You probably want your Update method to do something like this: bool System::Update() { if (window->KeyDown(KEY_ESCAPE)) return false; world->Update(); world->Render(framebuffer); return true; } And then your main loop in main.cpp would be something like this: while (true) { if (not system.Update()) break; } If you are looking for a way to structure and compartmentalize your code, you may want to check out the entity component system.
  16. Josh

    Moon

  17. Josh

    Moon

    First pass at rendering the lunar surface with real moon GIS data from NASA.
  18. Mesh construction will be much faster if you create an STL vector for the vertices, and another for the indices, get the total size for each, resize them, and then fill them in. Then use the CreateMesh() overload that accepts the data: https://www.ultraengine.com/learn/CreateMesh?lang=cpp That will be much much faster than adding one vertex at a time. Regarding VR, although it is very important I decided it would be okay to defer that for now because everyone is still just learning the new engine. When I add support, it will take less than four weeks to do. In Leadwerks I was using the SteamVR library, and it Ultra I can using Khronos OpenVR. I don't think it will be much different than what I did before. I don't really recommend trying to hack VR support right now because anything you do will just get replaced by something that will probably be better integrated. I have a meeting this week that will give me a better idea of what the immediate next steps will be, but I don't have a definitive answer about the VR question today.
  19. Maybe a denoise filter would help: https://github.com/BrutPitt/glslSmartDeNoise I have used this code before. It's good.
  20. It would be really cool if you could convert a heightmap terrain into a voxel terrain and start carving caves.
×
×
  • Create New...