Would love to see more deferred. I could have sworn DOTA2 was deferred, even if it's not lighting in that way I think is it not doing the MRT's and passes in screenspace (probably using terminology wrong lol)?
stoopdapoop wrote:[snip]
And I could be wrong about this, but I Think Unreal uses BSP for to speed up entity searches and to very coarsely divide up the map into large volumes that can be portal tested against. So while it is technically creating PVS data, most of the actual occlusion is being done with portals and antiportals. [snip]
I think we agree more than we disagree on this issue.
somewhat related: umbra is pretty cool.
As always your technical knowledge far surpasses my own. The terminology is so technical, and engine dependent for most people these discussions reduce to "leaks suck, vvis sucks, unreal doesn't do that it's better" and that's all true but throws the baby out with the bathwater. I'm curious to know more about what Unreal does, many maps in that engine have ZERO BSP (and many of those lag). I really don't know, but the precomputed visibilty volumes sit on top of their BSP: designer placed and shaped volumes.
What are anti-portals?
Umbra looks AWESOME. I love how their dynamic objects occlude in real time. Tech demos like that kind of annoy me though, all the objects (buildings) are massive and still have tons of overdraw even if it's fast, so try to add details and is it still good? Of course it's amazing but it doesn't really show a real AAA game situation.
----------------
Thought of some more things. Might clean this up later and post it on SPUF or something. Either way if anyone at Valve ever sees this thread we have made maybe they can get a couple ideas and care?
Logic Editor
--------------
-node based (kismet style)
-in world reference nodes
--drop a reference to a group of logic or individual entity in the group into the world
----(why? It is nice to be able to have a relay or etc. next to the thing it controls, what isn't nice is having tons of stuff spread around)
--obviously some entities/nodes are positional
--multiple object property dialogs
---open object property dialogs for multiple objects
----ctrl+click on a connection (either in dialog or on 'wire') to open a dialog to that connection
-keep the I/O lists on the property pages, why not? Have the 'node/wire' method as another VISUALIZATION
-script editor for vscript with all that fancy intellisense style stuff that programmers love
--drag the arrow/property from a property page/logic node onto the vscript file/function in that editor to assign
---why would you type this stuff?
--browse vscript functions as objects/nodes
-color coding, organization, and make it look pretty
-on standard property pages, allow resizing of the right side (values side) so that the text fields can get longer
-create instances in a visual manner from groups of nodes (including the parms variables)
-put logic as instances in content management framework
-Testing
--in-editor 'testing' of logic based on set/instance/selection/or map wide
--visualize a logic "impulse" as it flows along the connections
--real time, arbitrarily scaled time (with presets like half speed, double speed, etc.) or step time or pause time
---step time:
----events are visualized/tested in a 'turn based' manner: even fires, then after a set time (half a second or so) all events in the branches fire, then the next set, etc.
---pause time:
----event fires, then waits for user input (ent_step equivalent), then next set of events
---visualize variable changes and results in all viewports
-World space floating property dialogs on world placed entities
--user displayable
--world space visualization of logic
BSP Tree
-----------
I'd love to see leaks go away. It might be difficult for really open maps but since they already have faces as planes I would think that they could derive 'walls' to fill 'gaps.'
Precomputed Visbility volumes might be a great way to influence the tree. Designer says "this are core areas! Do a good job here!" or no Vis at all?
All depends on if/how engine changes.
Plugins
----------
-framework for writing plugins in an 'easy' language like python or squirrel
-make buttons and hotkeys
-dunno what programmers really want
HUD
-----
-Integrate the tools with Hammer and logic editors
-display hud in 3d view option
Lighting/Rendering
------------------------
-bouncing. keep lightmaps to a degree if neccessary?
-IBL
-stencil shadows with umbras, penumbras, etc.
-deferred rendering, infinite point lights, etc.
-some sort of tool/system for volumetric lighting
-in-editor previewing
-real time cubemaps supplementing real time reflections (some reflections could be full dynamic, some could be point sampled but in real time, for optimization.)
-in-editor shader editor
-send to/from photoshop/zbrush/mudbox/3dcoat/etc.
-material authoring
--node tree (akin to shader editor). materials are good, lets you share materials among objects, instance materials with small changes (parent/child relationship w/mod tracking in editor?) etc. without returning to shader level (abstractions are good at tool time)
--drag and drop from photoshop
Content Management
-------------------------
-true content management system
-independant tools
-multi-user
--collaborative
--perforce/svn/versioning integration
-browsers
--step into 'associated' assets
---browse model, and browse it's attached materials and particles
--instance browser windows
---have multiple model viewers open so that you can be browsing in multiple roof content directories at once
-auto generated libraries that all tools interact with seamlessly
--3d modeling apps and etc. have plugins that 'understand' the system
-uniqueification of assets in editor / in browser
--use the asset browsers and editor tools to duplicate and make minor edits to assets or pop the new unique version into content creation package
UI/UX
-------
-work-spaces
-windows
--snap to each other
--get nested into floating snapped tool bars (Adobe style)
--dragging corners w/ a modifier resizes windows against a grid
-display keyboard shortcuts on all labels and tooltips
-fully customizable toolbars
--put any tool on any tool par, and use in various work-spaces.
--create keyboard shortcut macros and assign to other keys or toolbar buttons
-Customizable startup image

-Help integration
--everybutton and tool can send you to it's VDC page
--draw additional help content into editor from VDC (might want to have this moderated)
-instance tools
--semantic markup of _parms variables l
---label a variable with a user friendly name/help text
---display variable type
---rollout displays locations used in the instance (and of course sub-instances)
--instance editing 'mode' lets you edit instance in main map file while main map file gets locked
---so, basically "reverse" whats an instance, so that you can see the main map for reference
--tree of instances in visgroups window
-move transform type-in to main ui/float-able (doesn't steal focus/windows "ding ding ding!")
--keyboard shortcut gives it focus
--modifiers for 'tab' key let you move between R/S/T X/Y/Z in separate stacks
--preview transform with ghosted version before committing
-Axes
--Label X Y Z in red, green, blue everywhere in the program
--better axis indicator, just, prettier, thicker, with arrows and letters and possibly grid marks (user configurable?)
--axis indicator in window corner (hid-able) a la autodesk
-resizeable buttons
-Data Entry
--adobe style 'scrubbers' on labels
--'spinners' (+/- buttons) on all numberic fields
---multi-increment
----click once for 0.1 increase, ctrl+click for 0.25 increase, alt+click for 0.5 increase, shift+click for 1.0 increase (as an example, make units type appropriate and possibly definable)
---scrub multi dimensioned variables
----unsure of exact input mechanic I want, but some way to 'spin/scrub' increment/decrement things like position, origin, color, etc.
--intelligent string syntax/markup/interaction
---if you have a collection of object names like soldier_1, soldier_2, etc. then you should be able to 'spin/scrub' the _1 and shift+arrowkey the cursor by 'section' rather than by letter
-Smoothing groups interaction
--select by smoothing group, deselect by smoothing group
--3D smooth view mode
---show unsmooth surfaces with shaded (white makes everything blend together)
---buttons jump camera to clusters of faces assigned to that (if faces are in multiple clusters across map, then jump from local cluster to local cluster each time you click)
---buttons shift+click to select the faces in and open Face Edit Dialog (only in last viewed local cluster?)
---preview autosmoothing
---show smoothing groups with colors and the colors on the buttons?
---hide the buttons without assigned groups?
---show selected button depressed?
Compile log/errors
-log browser window tool
--.log files marked up with dates/times and giant //=========== comments between each log entry
--error parser
---show error description when you click on it
---next/previous error button
--coordinates: click on coordinates to jump to a view of those coordinates
---world space marker of the coordinates with label showing error and description rollout
----jump to vdc page button
Advanced Compile Dialog
-make the text fields bigger/user sizable
-variables/programs more human-readable
--typing cmd line switches has auto-complete + dropdown selection of them
--create new compile profiles based on existing ones without having to do so from scratch
--simple button to export the profiles (where are they stored anyway?)
--num keys toggle the checkboxes on and off (shift+num toggles others off/on as well)
Grids/Viewports
-show coordinates on the scroll handle
--show nearby coordinates on the bar under the handle
-display grid size somewhere in/near the viewport (since you can be zoomed out on a small grid and not see it)
-finer control over what is displayed in the viewports
Selection modes
-softimage/xsi style keyboard modifiers (ctrl/shift/alt. doesn't matter which does which but each one and their combinations are vital)
-raycast selection mode with an ignore backfacing that actually tests against z-order and not just normal vector
-lasso selectiongs
Walk Mode Camera
-not just play-in editor
-set camera at eyelevel (configurable in options, after all different games are different)
-walk around
Geometry Construction
---------------------------
If planar brushes are implemented then:
-extrude from edges (into new brush or into same brush depending on keyboard modifier)
-clone drag faces
Misc
--------
-models
--assign names to skin choices
--vertex colors
-vertex colors on displacements and brushes
-editors for everything including soundscapes/stacks
I think that's enough for now.