Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

7,462 Excellent

About Josh

Profile Information

  • Gender
  • Location
    San Francisco, CA

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Josh

    Buying leadwerks

    I'll probably offer both types of licenses. I prefer subscriptions but I'll give both options.
  2. Josh

    Buying leadwerks

    Yes, but please read the description thoroughly. It is not ready for production yet.
  3. Josh

    Buying leadwerks

    The game level will load with no problems I think. The rendering is extremely different, but it won't affect the art assets.
  4. Josh

    Buying leadwerks

    2020 Windows, Linux, Mac. Maybe consoles later on. The biggest changes are that we are switching everything to smart pointers. In Lua this doesn't matter much. In C++ you can save work by using the auto keyword whenever possible. Leadwerks: Model* box = Model::Box(); Turbo: shared_ptr<Model> box = CreateBox(); In fact I recommend using auto anyway because shared pointer variables are a little tedious to type: auto box = CreateBox(); There's no Release() function because reference counting will be automatic. I think most projects will be convertable from Leadwerks to Turbo in a couple of days, but I am hesitant to say that for sure. The new engine will continue to support both C++ and Lua. Here's a simple Lua program in Turbo: local window = CreateWindow() local context = CreateContext(window) local world = CreateWorld() local camera = CreateCamera(world) camera:SetPosition(0,0,-5) local model = CreateBox() while true do if window:KeyHit(KEY_SPACE) then model = nil end world:Render() end And you can find a lot more details in my blog here:
  5. Josh

    Buying leadwerks

    The new engine won't be ready for another year.
  6. Josh

    Buying leadwerks

    The API in the new engine will be substantially different, but follows the same general design. All file formats will carry over.
  7. I am uploading some of your game launcher games in the games showcase because I love them and want to make sure they are always available.

  8. Josh

    Vehicle WIP in Leadwerks 4.6

    SetSpring() not SetString() I am experimenting with the joint limit. It works about the same either way.
  9. I will FIGHT! I will LOOT! And I will WIN!!!

    1. Yue


      I understand very well. :)

    2. Phodex Games

      Phodex Games

      ;) I was just thinking: "Hmm I know this from somewhere" haha :D

  10. Josh

    New Terrain Shaders

    You can modify any of the shaders in the editor.
  11. Josh

    Vehicle WIP in Leadwerks 4.6

    What does SetString have to do with vehicles? i turned the friction way up on the tires. The climbing behavior is actually pretty realistic. A real 4x4 will do that, although the impact when it hit the hill probably would have ripped the wheels off
  12. Josh

    Ubuntu 18.04 and Leadwerks

    I just installed Ubuntu 18 on my laptop. I will see if maybe we can drop the lib right into the dir and do it that way.
  13. I've created a MONSTER! Gaming laptop with Windows 10 and Ubuntu 18.04 dual boot!!!

    1. Show previous comments  1 more
    2. Josh


      There is some random line of text you can add to the Ubuntu terminal to fix the time thing.

      I had to install everything twice because of UEFI settings. 🙄

    3. martyj


      Does this mean a Linux build for Turbo will be coming soon?

    4. Josh


      @martyj no I don’t want to deal with multiple builds yet.

  14. Josh

    Camera Pitch Rotation problem

    The problem is that the Euler rotation returned by GetRotation in your UpdateCamera function is ambiguous. Try SetMatrix to replace SetRotation and SetPosition. --Adjust the camera orientation relative to entity function Script:UpdateCamera() self.camera:SetMatrix(self.entity:GetMatrix(true),true) self.camera:Move(0,1,0) end
  15. Here's a look at the new vehicle system that is being developed. The API has been simplified so you simply create a vehicle, add as many tires as you want, and start using it. The AddTire() command now accepts a model and the dimensions of the tire are calculated from the bounds of the mesh. class Vehicle { int AddTire(Model* model, bool steering=false, const float spring=500.0f, const float springrelaxation = 0.1f, const float springdamping = 10.0f); void SetGas(const float accel); void SetBrakes(const float brakes); void SetSteering(const float angle); static Vehicle* Create(Entity* entity); }; A script will be provided which turns any vehicle model into a ready-to-use playable vehicle. The script searches for limb names that start with "wheel" or "tire" and turns those limbs into wheels. If they are positioned towards the front of the car, the script assumes the wheels can be turned with steering. You can also reverse the orientation of the vehicle if the model was designed backwards. There is one big issue to solve still. When a vehicle drives on flat terrain the tires catch on the edges of the terrain triangles and the whole vehicle bounces around badly. I'm looking into how this can be solved with custom collision overrides. I do not know how long this will take, so it might or might not be ready by Christmas.