Jump to content

reepblue

Developers
  • Posts

    2,600
  • Joined

  • Last visited

Everything posted by reepblue

  1. Will this be in the next beta and how many classes will be exposed?
  2. Ok, thanks for your input. I'll see if others have an issue. If you can, try another browser. In the meantime, I'll look into other hosting options for alternatives for the next build. Thanks.
  3. That feature is not present under the Linux build. ?
  4. For who those who don't know (or remember) Vectronic was my first person puzzler project I was developing from 2013-2016 starting with the Source Engine and then onto Leadwerks. The goal of the project was to create a puzzle game and allow people the assets to make their own puzzles. Although it never saw it's end, you can still play the demo here. So what happened? Vectronic was how I pretty much learned a lot about programing, art and game design in general. I kept going back working on it for a month or so and then stop because I would hit a road block with assets, code, performance, or time. I made a lot of cool things too that just never saw the light. Over the years however, I also noticed I don't have patience to work on one game alone for months at a time. I do however like to play around with stuff so I began to think: "What if I had a project for me to tinker with and post it publicly every so often?" I'm more busy than I was in the past so time is more limited. However, I've probably written Vectronic game code over 50 times and I now know the right way of doing such. So what's the plan? After some experimentation, I've decided to go ahead and start a new project taking everything I did and learned with Vectronic and making a base template for people can use for their own purposes. My packaged game will be free to download and play (Because it's just me playing around) while the assets and will be posted on the Leadwerks Marketplace for a charge.The package will contain all assets to build your own test chambers, and you'll also get the original source files too! My release game will act as an outlet to my tinkerings and provide as an advertisement to the asset pack. With the code, the idea is that everything will be modular and users can easily create their own power balls to do various of things. The power balls can now be applied to any entity under certain conditions so there is no need for a VecBox.lua script anymore. There will be plenty of examples for many to see how things were done. I learn best by references and examples, and having code, art, and maps accessible should help new users into learning game design, or aiding developers in assets to start their ideas. I've decided to change the name to Vec-Tec as the asset pack will be in the Vec-Tec Research Center. Also with the new approach, I think it's time to drop the name Ive been using for four years. You can give Vec-Tec a try right now here! It's very minimal, there is no art, but the foundation is there. VR is now gonna be a thing with this, If you have a VR HMD, you can play any map in Roomscale VR! I hope this is a start of a remarkable development. I hope you are interested and see value in this project. You can find the project page here for the latest updates and releases.
  5. This is the initial version of Vec-Tec, the reincarnation project of Vectronic. The goal of this project is to build a asset package for education and experimentation. The following is included in this release: Launcher app: This window calls before the game loop starts. Here is where you set your map, settings, and VR mode. The player is interchangeable, one player for spawn for VR and non-VR. Both players can move around the world and pickup objects. The VR teleport is nerved from the template to be more closer with the physical movement of the non-VR player. If you have an issue with Linux, make sure you use chmod under super user (sudo) to allow you to execute the program. VecTec-180923.zip
  6. Line 280: Change: #ifdef USEPOSITIONBUFFER //VR Sheared mprojection vec3 screencoord = texelFetch(texture4,icoord,i).xyz; s creencoord.y *= -1.0f; #else vec3 screencoord = vec3(((gl_FragCoord.x/buffersize.x)-0.5) * 2.0 * (buffersize.x/buffersize.y),((-gl_FragCoord.y/buffersize.y)+0.5) * 2.0,depthToPosition(depth,camerarange)); screencoord.x *= screencoord.z / camerazoom; screencoord.y *= -screencoord.z / camerazoom; #endif To: #ifdef USEPOSITIONBUFFER //VR Sheared mprojection vec3 screencoord = texelFetch(texture4,icoord,i).xyz; screencoord.y *= -1.0f; #else vec3 screencoord = vec3(((gl_FragCoord.x/buffersize.x)-0.5) * 2.0 * (buffersize.x/buffersize.y),((-gl_FragCoord.y/buffersize.y)+0.5) * 2.0,depthToPosition(depth,camerarange)); screencoord.x *= screencoord.z / camerazoom; screencoord.y *= -screencoord.z / camerazoom; #endif ?
  7. Try waking it up with entity:AddForce(0,0,0). The physics must be awake to call the collision function.
  8. Luawerks has been updated to 1.2.6, making some small adjustments and fixes to the system. If you have previously purchased Luawerks, this update is available for free on the Leadwerks Marketplace. Following changes include: Fixed flag typo correcting LUAWORKS to LUAWERKS Moved error.mat/tex to the Materials/Common folder Added a useuisystem boolean to disable the menu, Adjusted VR mode not to call any UI elements. At this time, this update is only exclusive to the Leadwerks Marketplace. About Luawerks Luawerks is a Lua framework for video games developed on the Leadwerks Game Engine. It supplies developers with additional functions, handles the game loop and allows them to debug their code with a developers console. With all that out of the way, you can focus on making your game fun! You can purchase Luawerks from the Leadwerks Marketplace for $9.99. For documentation and bug reporting, please visit the GitHub page.
  9. Very cool. Glad you're back in the States. Although Turbo is still the priority, I hope this NASA contact benefits LE4 while Turbo is being worked on. Would be nice to see bugs fixed and more VR options soon. Also hopefully this means you're not tied to that Gigabyte box so I also hope to see AMD and Linux support with the new engine. (And continued support for LE4.) Congratulations, and continue making cool stuff!
  10. It sounds like he is having issues with the editor. I was having issues running game executables after installing the dev libraries. You sure all you did was install steam and Leadwerks? If it's a new install please provide any other apps/packages that might cause conflicts.
  11. Other software can prevent full screen from working too. I had the Samsung Magician running that did something similar to what's happening here. Try going back to 4.5 first as 4.6 beta hasn't been updated in months.
  12. A long time ago, there was an app on Steam called The Leadwerks Game player. It's goal at the time was to allow people to upload their lua games to an audience without going through Greenlight at the time. The app used the workshop system to achieve this. In order for this to work, Valve required that no games should be able to modiy the users system to prevent malicious code, hence why sandbox mode was created. Although cool, the app bombed. Sandbox mode is a relic of that time and just gets in the way these days. You don't need to really worry about this when it comes to publishing as a stand alone app id.
  13. If there is an editor and C++ is more of a focus, I see it as "functional enough for development." With VR in Leadwerks today, there seems to be less control with the API than other options. No rotation support, can't change the controllers, idk how to hide the sensors, and my previous bug report. I also got random screen issues with the right eye. Best way to describe it it's like being half way underwater but it's vertical. When you are near your VR setup again, let me know, I'll send over the project. Could be AMD also, idk. And with the Rift, Steam VR keeps crashing randomly; taking Leadwerks and Steam with it but that's really not your fault.
  14. I'm not sure why that was written there. Those files were never included.
  15. At this point, do you think Turbo be ready to be developed for or you plan to show and release Leadwerks with the new forward rendering system? I hope VR is improved in the engine and has a few more features at this point. I was playing around with it with my Rift and it was quite a chore to develop for. Not sure if this goes for the Vive. Oh, one thing you can also do is show all this running on Linux. Not many options have a native Linux editor and tools. ?
  16. You do not want to have the actual map file, rather snapshot the current values of a point in time and have the game reload all that information upon a restart. The best save system imo is with Source Engine games in which everything is saved, but most other games just worry about player data and npc count.
  17. This should help. Please read code.
  18. Ok, thanks for the acknowledgement, and hopefully it can be addressed soon. Also, I've seen worse setups. ?
  19. For Ubuntu 18.04 (After installing the app with Steam): sudo apt-get install libglu1-mesa-dev libcurl4-openssl-dev libxft-dev libopenal-dev libcurl4-openssl-dev libxft-dev libxrender-dev libcurl4-openssl-dev libtolua++5.1-dev Then as explained here, You need to add -no-pie to the linker flags like so:
  20. Some entities also act weird when they are a child to something. Since you need to parent things to save as one object, you can try breaking the prefab up buy unparenting all the root entity's children on Start. I recall doing something like that before..
  21. Be careful using prefabs with CSG as they can cause unusual effects. Prefabs do not really want to work with complex situations. They are mostly useful for spawning models with a script pre-assigned to them. This would be something I would just assign the object with a script or actor and create the objects I need in the code. I usually never use prefabs due to situations like this, but I'm sure others adore them. ?
  22. To save you more time, replace the stock app files with this: Header: #ifndef APP_H #define APP_H #ifdef WIN32 #pragma once #endif #include "Framework.h" namespace Leadwerks { class App { Window* window; Context* context; public: App(); virtual ~App(); bool Start(); bool Loop(); static void ChangeLevel(const std::string& pName); }; } #endif // APP_H CPP: #include "App.h" #define VR_ENABLED 1 namespace Leadwerks { unsigned int windowstyle = 0; unsigned int winwidth; unsigned int winheight; iVec2 gfxmode; World* world; std::string changename; std::string currentmap; void Call_PostStart() { Entity* e; for (int i = 0; i <= world->CountEntities(); i++) { e = world->GetEntity(i); if (e != NULL) { if (e->GetKeyValue("PostStart") != "1") { if (e->CallFunction("PostStart")) { std::string entityname = "\"" + e->GetKeyValue("name") + "\""; Print("Firing PostStart() on entity: " + entityname); e->SetKeyValue("PostStart", "1"); } } } } }; void Call_ChangeMap(const std::string& pName) { std::string fullname = "Maps/" + pName + ".map"; System::Print("Changing map to: \"" + fullname + "\"..."); if (Map::Load(fullname) == false) { Print("Error: Failed to load map file \"" + fullname + "\"..."); fullname.clear(); currentmap = ""; return; } fullname.clear(); currentmap = pName; Call_PostStart(); changename = ""; System::Print("Current map is: \"Maps/" + currentmap + ".map" + "\"..."); }; App::App() : window(NULL), context(NULL) {} App::~App() { delete world; delete window; } bool App::Start() { gfxmode = System::GetGraphicsMode(System::CountGraphicsModes() - 1); currentmap = System::GetProperty("map", "Maps/start.map"); gfxmode.x = Math::Min(1280, gfxmode.x); gfxmode.y = Math::Round(gfxmode.x * 9 / 16); windowstyle = Window::Titlebar + Window::Center; #ifdef VR_ENABLED VRRules::InitVR(); #endif window = Window::Create(System::AppName, 0, 0, gfxmode.x, gfxmode.y, windowstyle); context = Context::Create(window, 0); if (context == nullptr) { Debug::Assert("Failed to create context"); } world = World::Create(); if (currentmap != "") { ChangeLevel(FileSystem::StripAll(currentmap)); } return true; } bool App::Loop() { if (window->Closed()) return false; if (window->KeyHit(Key::Escape)) return false; if (window->KeyHit(Key::Space)) { ChangeLevel(currentmap); return true; } if (changename != "") { // Pause the clock Time::Pause(); /* if (VRRules::IsVREnabled()) { VR::DisableCamera(); } */ // Pause garbage collection System::GCSuspend(); // Clear all entities world->Clear(); // Load the next map Call_ChangeMap(changename); // Resume garbage collection System::GCResume(); /* if (VRRules::IsVREnabled()) { VR::EnableCamera(); } */ // Resume the clock Time::Resume(); changename = ""; } // Update the app timing Time::Update(); // Render the world world->Update(); world->Render(); if (context != NULL) { #ifdef VR_ENABLED context->SetBlendMode(Blend::Alpha); auto t = Math::Round(Time::UPS()); context->DrawText("FPS: " + String(t), 2, 2); //Refresh the screen VR::MirrorDisplay(context); context->Sync(); #else //Refresh the screen context->Sync(true); #endif } return true; } void App::ChangeLevel(const std::string& pName) { changename = pName; } }
  23. I was working on my VR project this weekend and came across something regarding world clearing/context going nullptr when you go to change the map. The code below is a lua example of this, but if you were to re-write this in C++, the debugger will stop at the first reference of the context. Hit space on the keyboard to call the restart. If you tried when VR is not enabled, it'll work fine. --Set the application title title="VR Template" --Create a window local windowstyle = 0 local winwidth local winheight local gfxmode = System:GetGraphicsMode(System:CountGraphicsModes()-1) if System:GetProperty("devmode")=="1" then gfxmode.x = math.min(1280,gfxmode.x) gfxmode.y = Math:Round(gfxmode.x * 9 / 16) windowstyle = Window.Titlebar+Window.Center end window=Window:Create(title,0,0,gfxmode.x,gfxmode.y,windowstyle) --Create the graphics context context=Context:Create(window,0) if context==nil then return end --Create a world world=World:Create() --Load a map local mapfile = System:GetProperty("map","Maps/start.map") if mapfile~="" then if Map:Load(mapfile)==false then return end prevmapname = FileSystem:StripAll(changemapname) --Send analytics event Analytics:SendProgressEvent("Start",prevmapname) window:HideMouse() end while window:Closed()==false do if window:KeyHit(Key.Escape) then return end if window:KeyHit(Key.Space) then changemapname = "start" end --Handle map change if changemapname~=nil then --Pause the clock Time:Pause() --Pause garbage collection System:GCSuspend() --Clear all entities world:Clear() --Send analytics event Analytics:SendProgressEvent("Complete",prevmapname) --Load the next map if Map:Load("Maps/"..changemapname..".map")==false then return end prevmapname = changemapname --Send analytics event Analytics:SendProgressEvent("Start",prevmapname) --Resume garbage collection System:GCResume() --Resume the clock Time:Resume() changemapname = nil end --Update the app timing Time:Update() world:Update() --Render the world world:Render() --Refresh the screen VR:MirrorDisplay(context) context:Sync() end Again, it throws an exception at VR::MirrorDisplay stating something about the context pointer.
  24. If I'm seeing this correctly, the volume effect isn't baked within the cubemap reflection. Keep in mind that the probes only do simple static reflections and minor stuff is ignored. Try Srceen space reflections if this is an issue.
×
×
  • Create New...