I have spent some time today creating a list of features I would love to have in Leadwerks 3. I have a strong Unity engine background and most of the features I suggest here may sound familiar if you 've used it. Some of the features here would take a lot of effort to implement I know so please note that I did let my imagination run wild while writing some of those.
So here are my suggestions assorted in different categories. Hope these help!
- Make it so that FPS mode in the 3D viewport only gets activated while the right mouse button is held down. That would free the Q W E R keys. These keys are well known by artists for they are used for Move, Rotate, Scale tools and switching between Local/World space coordinates respectively. This may seem very simple but it would speed up the map design by orders of magnitude. It is just not intuitive to click the buttons from the toolbar above when you have to place a lot of models.
- When an item is selected in any of the viewports, other windows like the scene browser should also focus to that item.
- Windows and tabs should be dockable and user has to have the ability to save different layouts.
- "Go to" command needs a keyboard shortcut. For example Unity engine has F for "frame selection" which does pretty much the same thing.
- Speaking of keyboard shortcuts, customizable keyboard shortcuts for most of the tools is required. Especially being a programmer myself, I do everything using just my keyboard much much faster than using mouse and menus. Once you learn the shortcuts, you do things much faster, imagine doing an extrude operation in your favorite modelling application through the menu each time, painful.
- Wireframe, solid, textured & lit modes are great. It would be even better to have viewport render modes like light only, overdraw, mipmap etc.
- Ability to edit the scene in the editor while the game is running. Ability to edit and see the effects of lua scripts without re-running the game.
- Auto-completion and suggestions in the script editor
- CTRL+Arrow keys should move the caret to the previous or next upper case letter like in all text editors.
- Ability to customize, save and load color themes for background, variables, loops etc. White background is bad for your eyes
- Auto-closing of open braces, paranthesis etc.
- Boolean tool would help creating different shapes of geometry. Right now we are limited with a couple of fixed shapes.
- Texture locking, right now when a bsp piece is moved the offset of the texture changes. It requires extra effort from the developer to fit it again as intended.
- Support for later releases of Microsoft Visual Studio. Especially the Visual Studio 2013 as it brings nice C++11 features natively.
- Ability to get debug information on drawcall count, rendered triangle count, time spend drawing the last frame, number of batched and non-batched models, these all would help optimizing the game.
- Access to terrain API for runtime modifications (like generating craters etc.)
- Access to timescale for slow-motion effects
- Ability to expand the editor with custom tools and windows (Number one reason why Unity Asset Store got so huge)
- Physics materials with customizable bounciness, friction etc.
- Support for shader model 4.0 and 5.0. As far as I understand the renderer uses OpenGL 4.0 so why limit the developers with OpenGL 2.1 level shaders.
- Support for custom tesselation shaders.
- Support for geometry shaders for effects like fur
- Ability to access more textures than 8 in a shader (6 if you use lightmaps and light vector maps)
(You may ask why, let's say I want to use the 4 vertex color channels as masks for 4 different set of textures -diffuse, normal and specular- to create models with unique details. That makes 12 textures.)
- Ability to have multiple terrains in a single scene
- Ability to load, enable and disable terrains at runtime to be able to create huge worlds like in Skyrim
- Ability to carve holes in the terrain mesh to be able to put caves, underground structures etc. seamlessly
- Built in filters like erosion, perlin etc.
- Spline based road and river editor
- Vegetation system with uniform wind force and character controller collision
- Global Illumination calculation and baking would add a lot to lightmaps
- Hard shadows. The current lightmaps look terrible with no blur
- Dual lightmaps. A range around the camera would render dynamic shadows while it fades into the lightmap in the distance. Right now we have to use either full dynamic shadow or baked lightmap shadows. They are nice but if one chooses the lightmap route, when a dynamic object goes under a shade of a tree for example, it won't receive any shadow.
- HDR and tonemapping
- Node based shader editor. People with an artist background, people coming from engines like UDK, people with little shader programming knowledge would really appreciate this. These people create awesome stuff in those engines.
- Runtime profiler detailing where the CPU, GPU and Memory resources are spent in detail.
- LOD generator. This tool would take our model and generate simpler versions with lower polycount based on a numerical or percentage input
- Vertex painter (Very very useful for shaders which utilize vertex colors, see the last item in Shaders category)
- Visual 3D/2D GUI editor, something like a very simple version of ScaleForm