Advertisement
Guest User

rarara Blender Level Tools Discussion

a guest
Mar 12th, 2014
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.37 KB | None | 0 0
  1. Level Creation (General)
  2. Now this would be to assume people use Blender to fully create levels. Although for Blender Game Editor users these features discussed they could fully utilise as they please, for anyone using an external engine these concepts could be used, but not nearly as effectively without a level import/export plugin, which I also discuss.
  3.  
  4.  
  5. THE CURRENT GAME ASSET DEVELOPMENT PIPELINE
  6. Although different studios and groups work in different ways (and indie teams although may adhere to this in some ways, usually the production here will be a lot more freeform), generally the development pipeline starts with every department (Art, Tech, Audio, Design) getting an initial game design document containing all the current details of the game, which will be iterated and changed upon throughout development by the design team. Along with a general production plan on what needs to be made at what time, each department takes it and starts making what they're responsible for.
  7.  
  8. For level design specifically, the Design team work with the Art team to determine what assets are needed to construct the level. These are normally rather specific assets that can also take a specific form if they contribute to the level design (such as a bridge, or roof tiles), which have to be made at specific dimensions. These are then placed by hand into the environment and tested. If theres anything wrong with the specification of the item, such as if a bridge ends up feeling too short while play-testing, or a spiral staircase isn't quite the right shape (issues mitigated by good planning and design, but will still happen), they will need to be redesigned, imported, positioned and tested again.
  9.  
  10. This kind of asset design isn't just problematic for testing and level design iteration though, but also for more detailed and larger environments. Because most assets are made in this bespoke way, the more detailed and intricate the scene is, the more difficult it is to actually iterate and tweak, and small changes may require large, tedious re-spacing and object movement operations that cost a lot of time to make. This can be a big issue even for linear design, but for open world level design, especially if it's more than just wilderness in-dispersed with the occasional building or settlement, this kind of level design could be considered near-impossible by anyone other than the largest game studios. The lack of intuitive level tools however is a problem that can affect any developer group in how they can work, how much they can iterate and the overall scope they can aim for in a game.
  11.  
  12.  
  13. Level Creation (Import/Export Plugin):
  14. I'm not currently aware in how it works in the Blender Game Engine, as i'm yet to properly experiment with it, but I have experience with Unity and Unreal Engine (UDK), and with Unity at least theres potential for making a level export plugin, as Unity has no specialist creation tools for levels, apart from the terrain object and apart from that relies solely on meshes to build levels with, and uses them to occlude other objects and optimise the amount of draw calls the engine has to make.
  15.  
  16. UDK however at least currently (may change in UE4, which is likely to come out in the summer), uses something called BSP in combination with meshes and terrain objects, which is used for optimising draw calls and object occlusion. I don't think it uses meshes in an optimal way to occlude other objects and save processing time on draw calls, which would make the engine unsuitable for a level import plugin, although I could be wrong :3
  17.  
  18. Some developers have tried to create level creation tools within Unity to fill the void it currently has, such as ProGrids and ProTools made by Unity Cookie, but this only brings in basic functionality game engines like UDK have had for quite some time, and these tools feel more like a product of their age in first person shooters and game consoles with limited hardware capabilities, when theres now a lot more processing power that can be utilised for richer environment details, and don't improve the level creation workflow
  19.  
  20. Plus with the advent of VR and other interactive game experiences that games like Minecraft and more recently DayZ and Rust, theres going to be a larger emergence of sandbox and interactive experiences that focus on creating a world and rules and tools in that world which players interact with and use to their own means and ends, which demand more detailed scene creation tools. You don't obviously have to target tools for this kind of game design, and a lot of old game design forms will still exist for a while to come, but in my opinion theres a huge deal of optimisation that could be made in this area by comparison, so creating interactive, detailed 3D worlds is both a more streamlined process and is more accessible to smaller groups of developers. With making smaller, less detailed games, theres little Blender could do to improve on their level creation in my opinion.
  21.  
  22. I feel Blender is in an excellent position for this kind of level design, as out of all the game engines i've researched or know about, CryEngine is the only one that features more advanced, integrated level creation tools beyond positioning angular objects and walls, and terrain, and that mainly consists of being able to place paths on terrain for roads and rivers, something that can be said other proprietary game engines have. Other updates to engines like UE4 are focused on advanced visual effects and changes to the scripting system, there appears to be no optimisations in how levels are built. Blender however has a lot of powerful creation and editing tools already available that game engines just aren't geared for, rather concentrating on the technicalities of running the content in real time. With some upgrades and features designed to combine and compact the features it has into a much more usable form, it would be kickass for level design, either for BGE or in a Unity export addon that converts the scene into a Unity scene, with correct object types, collisions and other important features.
  23.  
  24. RIGHT, now ive discussed some of the background to this, let me propose some solution ideas ive been considering! These tools would be useful not just for level designers, but for general CG users as well in building scenes:
  25.  
  26. Parametric Assets
  27. Now this doesn't specifically relate to traditional parametric assets, such as being able to determine the shelves in a cupboard unit, but there needs to be more tools that 'flex' and extend meshes and level elements so level designers can quickly reshape and refit assets given by the Technical Art team. This relates to the biggest issue in level designs discussed before, in being unable to quickly refit and flex assets to enable quick iteration and creation of level designs, without assets having to go back to the design team or tedious item repositioning work. Currently the Technical Art team determine the scale and shape of complex level design assets when the level designer actually should be. The Technical Art team should be focusing on making assets that look great and adhere to the game's style, and the Level Designer should mould and refit them to make an awesome level as easily as possible. Technical artists should only have to remake stuff if it isn't good art, not good level design.
  28.  
  29. Theres a lot of ways this could be done, and i've been thinking on the situation for a while, but I have some suggestions as to how this issue can be solved, and it mainly comes in the form of a hybrid object type and a modifier:
  30.  
  31. Curve Tiling System
  32. This would probably be a GSoC project in itself, but this concept could be used for many elements of a level, and could be an invaluable creation tool for particular kinds of organic modelling as well as Architecture. This tool would tile one or multiple meshes along a new curve, bending and constraining with it, although it could also encompass simple object shapes if thats all the user needs, such as a rectangle default. Although this seems like a curve and object pair with an Array and Curve modifier, it is different in the following ways:
  33.  
  34. - Object Segments - (This might not be able to be done unless Blender gets Object Libraries, discussed below) The biggest change is the ability to insert different meshes at different points in the curve. Unlike a curve and object pair with an array and Curve modifier, different objects can be inserted along the curve. This for example allows the Technical Art team to create a straight wooden fence and a fence gate, and the Designers to curve that fence as much as they want and insert the gate wherever they want along it.
  35.  
  36. - Fix Curve Length to Mesh - In this the length between points of a curve are constrained by the segment width used in the array, to both prevent meshes from deforming, and to enable clean, sharp corners where curve points lie, as currently the curve modifier will attempt to bend the mesh around a corner if the length between two corners doesn't fit the length of the segments along it, and this would likely be the case with this object concept.
  37.  
  38. - Connect Curves/Curves with Junction Points - Currently the curve system only allows for one continuous curve with a start and end point, which is incompatible when creating two rooms that share a wall, or roads that meet at a junction. This proposed item would enable junctions, so clean connections can be made between lines.
  39.  
  40. - Automatic UV Tiling - I dont specifically know how this would work, although it would likely use a Tile UV Unwrap option with one of the global mapping features inside blender, but this would be useful in being able to bend and reshape objects without distorting the textures and materials applied to them.
  41.  
  42. This object type should also be able to be used though as a single curve, as well as having these
  43.  
  44. This would have to be handled carefully as Blender has always been good at ensuring that theres never tons of specific functions or object types that perform only a few simple tasks, but instead a few powerful, extensible features that can be used many ways, which is where IMO other modelling software get it wrong. However currently the workflow in creating objects controlled by a curve rather than their specific geometry is unnecessarily time consuming to correctly reposition and snap the mesh to the curve, then apply and tweak the modifiers.
  45.  
  46. Other issues with using currently existing tools in blender include a mesh and the curve not being able to move together and be treated as one object, something that can only be done through the rather unpredictable method of applying location constraints on the curve to the mesh. Blender throws up a lot of dependency issues when this happens due to the modifiers being used, and the transform when moving complex and long curves is very laggy. Unlike the current setup in Blender, the focus on this object is being able to define the larger form and shape of the object without affecting it's details, and the details of an object not getting in the way of quickly defining its larger form and shape.
  47.  
  48. Cut Modifier
  49. The concept of this would be to 'sew' floor types, terrain to flooring, and stitch floors in-between Curve Tiles in both indoor and outdoor environments, Currently with flooring it's fiddly to stitch for example, a grass mound between an inset tiled pathway, although this could also be used for a window in a house. The concept would involve define an outer area for the object, that if any other object comes into is cut or extruded down to match the geometry level of the object, and in a way works like an interactive Boolean tool. This concept would be used to be able to easily reposition areas of materials that intersect with Curve Tiles or meshes.
  50.  
  51. Object Libraries/Asset Managenet
  52. This is something that according to the Project Gooseberry Open Source targets, is going to be developed, but Blender currently lacks the ability for Level Designers to effectively collaborate with Technical Artists, as object assets have to be localised to the same file levels are being built in, and with the current file linking system only separate assets (such as .obj files) can be linked, rather than a fully textured and prepared model that can be linked into the level design.
  53.  
  54. Better Snap to Surface Tools
  55. - This is focused on being able to quickly position objects to touch other objects, such as placing tree assets on a garden plot. Although Blender currently features in object mode a Snap to Face and Volume tool, which can be useful in performing more simple snapping operations, neither of them work in positioning more complex objects to snap against the surface of a target object, such as a picture frame against a wall, without having to use the transform handles to place it manually. Another tool inside Snap to Face called, 'Align rotation with snapping target', would also be useful if it could work in combination with this kind of snapping tool, to rotate the object to ensure a face of the object is touching a face of the target object.
  56.  
  57. Now i've talked an age about level design, there are also other areas that could be improved on for general asset creation :D
  58.  
  59. UV Mapping:
  60. Blender currently has no integrated mapping settings for tiling textures, which is extremely important in game design. A recently released plugin on the Blender Artists forum fills this hole to a certain extent, but it's implementation and feature set leave a lot to be desired. Additionally, theres another modifier called Texture Atlas, which fills a hole in Blender's UV management system by being able to group and unwrap objects together, although it would be nice to see a less buggy, integrated and comprehensive tool for doing this, as having game assets share a UV map saves on performance and memory resources and is very important.
  61.  
  62. Lightmap Baking:
  63. In response to what Campbell said - yes, shadow/lightmaps are still used in game engines! This is of particular importance to mobile games, but from what I know at the moment, is still relevant to current generation games, although it might end up not being soon. Blender Cycles baking 'sort of' takes care of this, although from what i've seen it can take a lot of passes to get a result that isn't noisy, and thus usable in a game engine. Theres also no automatic lighting setups in Blender to quickly create and bake Ambient Occlusion detail on models.
  64.  
  65.  
  66. Phew, i think that about wraps it up. Reply to the mailing list or email me if you have any suggestions or want to discuss further :D
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement