Jump to content

reepblue

Developers
  • Posts

    2,480
  • Joined

  • Last visited

Everything posted by reepblue

  1. This event no longer gets emitted when the renderer has started. I use this event to hide my splash window and then show the game window. Put a break on the Print call and you'll notice it'll not get triggered. #include "UltraEngine.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a world auto world = CreateWorld(); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.125); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { while (PeekEvent()) { const auto e = WaitEvent(); if (e.id == EVENT_STARTRENDERER) { Print("Renderer has started with code: " + String(e.data)); } } world->Update(); world->Render(framebuffer); } return 0; }
  2. Shaders families are now .fam files.
  3. Yeah, this keeps breaking. This is like the 3rd time now. I'll test this on my end when I get the chance.
  4. Hello, I am making some files that I wish to be treated as an asset, but I don't know how to properly initiate it as such. There is commented code in the Asset.h header but when I tried to intergrate that code into my CreateMyAsset() function, I couldn't cache the asset. I'd like an example of how I would Initiate a new asset.
  5. You can, But why would you? Honestly, I think 2D games are best targeting the cheapest hardware you can find and making something cool with SDL2 or something. Ultra Engine is ment for high performance games and applications.
  6. Pay the fee, get the appid. Having a repo on Steam allows for easy private testing and you can get started on integrating some Steamworks features. Some features like Leaderboards, Stats, and (surprisingly) Steam Input will not work until your Store page is live. I was in your position when it came to Cyclone but people encouraged me to put it on Steam because they want all their games on one place. Stay away from EGS, they are criminals, lol.
  7. This extension will convert a material to DDS. Right-click on an image file in the asset browser, select the "Convert Textures to DDS" menu item, and the file will be created with the correct compression based on the type. ConvertImageToDDS.lua
  8. I've noticed this issue too. Compiling the application not as a console application usually solves the issue.
  9. I was actually using the drop down menu for material under appearance like you would in Leadwerks. I didn't know you could drag and drop the material to a sprite. If you do use the dropdown, the material will not apply nor save it's selection. I think the solution would be to remove it and have only one way of assigning materials to objects by drag and drop.
  10. The selected image also doesn't save after deselecting the entity.
  11. Here's a lua version of this. Some minor differences and I removed the use of camelSense since the stock components don't use it. This was on my list so thanks for writing it! Animation.zip
  12. I'm trying to create an extension that'll allow quick material generation by right clicking on the image and selecting "Convert Image to DDS". The documentation with String:Right for lua isn't right and I think it's better that the extention should get the suffixes from the editor's config. Because of limited documentation on the addon system, how would I do this? The bad code is commented out for now. if event.id == EVENT_WIDGETACTION then if event.source == extension.menu[1] then if program.assetbrowser.selectedfile then if program.assetbrowser.selectedfile.package == nil then local imageext = string.lower(ExtractExt(program.assetbrowser.selectedfile.path)) if imageext == "png" then local file = StripAll(program.assetbrowser.selectedfile.path) --[[ -- TODO: Get the conversion suffix from the editor. if string.right(10, file) == "_normalmap" or string.right(7, file) == "_normal" or string.right(4, file) == "_dot3" or string.right(2, file) == "_n" then extension.ToTexture(program.assetbrowser.selectedfile.path, ".dds", TEXTURE_BC5, true) elseif string.right(13, file) == "_displacement" or string.right(7, file) == "_height" or string.right(5, file) == "_disp" or string.right(2, file) == "_h" then extension.ToTexture(program.assetbrowser.selectedfile.path, ".dds", TEXTURE_RED, true) else extension.ToTexture(program.assetbrowser.selectedfile.path, ".dds", TEXTURE_BC7, true) end ]] end end end end
  13. The fix came up during the hangout. Might get fixed in the future but for now: Line 171 in PBR/Lighting.glsl. u_MipCount = 6; //textureQueryLevels(textureCubeSampler[shadowMapID]);
  14. When changing a model's material pickmode value to false, the changes don't stick when reopening the model in the asset browser.
  15. I wish I knew. I was just creating brushes and then it it stopped. I probably had a good amount of brushes in that session before it gave out on me. It was like when I lined up the brush exactly where I wanted it to build, it wouldn't make it. But if I quickly built the brush in a different spot, it worked as expected.
  16. I'm curious why if a material has a roughness of 1.0, it's still reflecting the scene with a probe. I want this texture to be 100% mat. { "material": { "displacement": [ 0.05000000074505806, -0.02500000037252903 ], "metallic": 0.0, "pickmode": true, "roughness": 1.0, "shaderfamily": "Shaders/PBR.fam", "shadow": true, "texture0": "./Textures/wall02.dds" } }
  17. After playing with models, I got this result previewing a material.
  18. Please see the attached video. I want my textures to be in their own subfolder but saving the model causes it to generate and link the textures relative to the model and I'm unable to reassign it. Every time I save it, it forces the texture to be in the same folder as the model! 2024-01-28 20-03-09.zip
  19. In my current map, creating a new brush and then hitting enter fails to create the brush. Here are videos of me trying to make a floor brush. brushesnotbuildingsobemoji.zip
  20. If you were to save this as a material, open it the editor, then do File -> Save on it, the custom property (myproperty) will be deleted. { "material": { "displacement": [ 0.05000000074505806, -0.02500000037252903 ], "metallic": 0.0, "roughness": 1.0, "shaderfamily": "Shaders/PBR.fam", "shadow": true, "texture0": "./grid01.dds", "texture1": "./grid_normal.dds", "myproperty": 1 } } I want to store the surface property in the material without worrying about it getting overwritten.
  21. Because I wanted zooming in my game. 😭
  22. Seems you can see some artificing with the cluster rendering when having the camera preform a zoom, The best way to demonstrate this is to install this component in a CPP project and replace the character in the start map with a simple camera that has this component. Use Z and X to toggle zoom. The zoom out code isn't right, but that's not important. I just recycled code I already had. Also, I might add that the starting zoom value needs to be stored on start because Zoom affects the camera's FOV value. Zoomer.zip
  23. Somethings I've brought up during the call. General Beams (Like lasers but just stretches a sprite between one point to another w/o a raycast.) Script (For loading and calling lua script functions.) Ballsocket (For swinging ropes, lights, etc) Tag Filters (Used with triggers to only allow entites with certain tags to trigger.) An Animation Controller (Used to animate models that otherwise don't need any additional functionality. Logic Relay (Much like the one I posted) Random Outputs Auto Save Like I mentioned, I recorded the conversation so we can refer to that.
×
×
  • Create New...