Looking through cameras and Godot and others
I have manag to spend alot of quality programming time and have been able to create a few scripts for Leadwerks.
First off is the multi-view character controller. This script allows the dev to have 1 script and use that for first, third, and third person over shoulder views. It is currently very alpha and needs to be cleaned up alot. Much of the math that went into this script was above my head. When I finally refactor it I should be able to understand more of the math and simplify it.
Multi-View Charater Controller
Here is a script for rts games. It allows a player to use WASD and the mouse to fly around the level / world select characters on their team and tell them where to go. There is multi selection and drag selection. The drag selection is the part that took the most amount of time to complete.
Free Flight RTS Script
Switching the topic from Leadwerks game engine I want to bring up another engine that Has been on my radar for a long time. The engine in question is the Godot Engine. It has been around in various private incarnations. It was finally released to the public with an MIT License. Since then I have looked at it off an on again, but not very seriously. After finishing the rts script and much of the heavy lifting on the player controller I have began to look at the engine more seriously.
The engine though in existence for a long time is still young. The documentations are lacking and the examples are few. But once you start using it you find it shares enough with the Unity game engine that you can use their examples as a crib sheet.
Godot uses a built in scripting language called gdscript. It is a python-alike language so there is tutorials around the internet that you can read and adapt to Godot. Due to Godot's 'youth' it still has many things missing or not yet implemented. The 3d engine needs the most work but that is slated for update in the near future.
Coming from Leadwerks you will notice that there is no hand holding at all. If you want to make a character controller, you will need to build one from scratch, there is none provided for you. Whether this changes in the future I would be unable to speculate, but for me it's fine because I need to learn how to create one anyway.
Some that know me through Leadwerks may ask. 'If you are good at Leadwerks why learn another engine or even switch?'. I have a two part answer for them. First I like learning and seeing new things. It's there so I might as well. The second part is a bit more sad though. I'm simply growing faster as a dev than the Leadwerks game engine. There was a point where it was made apparent that the goal was to make the engine as easy and accessible to the new game dev. Also it was decided to make it center about Steam. I found that I bound within a very strict and small arbitrarily defined confine. There are long running issues with ATI cards, some basic bugs that have never been fixed, and features that are brought up and never added. Leadwerks legacy and its legacy products are more capable and more performant than the current generation. The only thing it really has is it looks better. I have also found myself hamstrung by little things such as 2d drawing doesn't work when you scale it leading me to put my gui system on hold indefinitely. You can't draw directly to a texture in lua making my simpler workarounds unfeasible. Also without diving into the c++ side of the api and simply replacing parts of the api with your own you can not realize some of your dreams. Want to create a tool to assist in the creation of your game, well there is not editor api. The visual programming section has been forgotten by the company and only brought up when a new feature breaks it and the users have to basically present a use-case scenario of why it should still exist or be fixed. Steam is now the main focus of the company. The engine basically relies on steam for everything. From buying assets, to screenshots, everything goes through steam. You can not even release a non steam game without the steam dll/so because of how tightly they are intertwined (the api has steam controller support so you cant take it out ever).
I have been with The Leadwerks game engine for a long time and I have little to show for it. I have a bunch of popular workshop items that and one demo game that may never be finished. Will Godot be any different, I can say for sure yes. It may not make as pretty a game as Leadwerks (OGl4 vs Ogl2 no contest), but gameplay wise all faults are my own. I can create tools in editor to assist me and others. The formats are open source and xml version exist so I am not trapped in godot if it does not work out. Also the community is not stuck on a forum and the steam forum or have company editable api's, I can actually go to many places to communicate with the community and contribute to the documentation as I am able. I enjoy using and programming in Leadwerks, but when you start along a path and hit a wall and you KNOW you have no controll of influence over it it becomes sad and frustrating. So while I may not be saying a complete goodbye to Leadwerks, I will definitely be increasing my use of the Godot Engine.
Honorable mention goes to The Atomic Game Engine It is also a newer engine based off the open-source work of Urho3d. I'll also be using that more as I get time.
Posted in Coding on Feb 10, 2016.