Level editor feature wishlist

Reveal what you have made so far and get feedback on development.

Re: Level editor feature wishlist

Postby city14 on Thu Aug 26, 2010 3:16 pm

It sounds pretty great Shrinker, and I'm sure that whatever you come up with will be incredible...
coder0xff wrote:I wonder if Gabe ever lies in bed at night, thinking about all the fat jokes, and just cries himself to sleep, wiping his tears away with one-thousand dollar bills.
User avatar
city14
Pheropod
Pheropod
 
Joined: Tue Jun 16, 2009 8:35 pm
Location: Troutdale, Oregon

Re: Level editor feature wishlist

Postby Shrinker on Thu Aug 26, 2010 3:34 pm

I'll try my best.
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby Shrinker on Thu Sep 02, 2010 2:51 pm

This is a listing of all the properties that are usable by the end-user for the 3D grid component alone.
It allows skewing/rotating, using non-base-2 grids, snapping only to individual axes or circles (or ellipses, if you mess with the base axes), using "secondary snapping", and changing the overall appearance of it all by editing the shaders. One could, if needed, display projections of the 3D cursor on all grid planes, along with guides in whatever directions, or display rulers or whatever on the grid too, thanks to shader access. "Secondary snapping" is to yield proper coordinates even when using a circular grid, using an orthogonal ghost grid overlay. "Majors" refer to the major highlight lines.

These properties will be exposed through the tool interface, so tool makers can mess with them all. The GLSL uniforms are those things accessible in the shaders for changing the grid appearance.

Code: Select all
Property Name            | Readable? | Writable? | Value Constraints | Default Value
-------------------------+-----------+-----------+-------------------+--------------
AxisAlignmentBiasPerc    | Yes       | Yes       | >= 0              |         1.25
AxisLineWidth            | Yes       | Yes       | >= 0              |         2   
AxisX                    | Yes       | Yes       |                   | vec3(1, 0, 0)
AxisXNColor              | Yes       | Yes       |                   | #660000     
AxisXPColor              | Yes       | Yes       |                   | #FF0000     
AxisY                    | Yes       | Yes       |                   | vec3(0, 1, 0)
AxisYNColor              | Yes       | Yes       |                   | #006600     
AxisYPColor              | Yes       | Yes       |                   | #00FF00     
AxisZ                    | Yes       | Yes       |                   | vec3(0, 0, 1)
AxisZNColor              | Yes       | Yes       |                   | #000066     
AxisZPColor              | Yes       | Yes       |                   | #4D4DFF     
CellsPerMajorStep        | Yes       | Yes       | >  0              |         8   
CellsPerMajorStepAround  | Yes       | Yes       | >  0              |        10   
CircleResolution         | Yes       | Yes       |                   |         0   
CircleResolutionBase     | Yes       | Yes       | >  0              |        10   
CursorColor              | Yes       | Yes       |                   | #FF8000     
CursorLineWidth          | Yes       | Yes       | >= 0              |         3   
CursorPosition           | Yes       | No        |                   |             
CursorVisible            | Yes       | No        |                   |             
GridSnapCenterLines      | Yes       | Yes       |                   |             
GridSnapCircles          | Yes       | Yes       |                   |             
GridSnapX                | Yes       | Yes       |                   |             
GridSnapY                | Yes       | Yes       |                   |             
GridSnapZ                | Yes       | Yes       |                   |             
MajorColor               | Yes       | Yes       | bool              | true         
MajorCountAroundAtRes0   | Yes       | Yes       | >  0              | #808080     
MajorCountPerSideAtRes0  | Yes       | Yes       | >  0              |        36   
MajorLineWidth           | Yes       | Yes       | >= 0              |        24   
MinorColor               | Yes       | Yes       |                   |         1   
MinorLineWidth           | Yes       | Yes       | >= 0              | #BFBFBF     
ModelviewMatrix          | No        | No        |                   |             
Origin                   | Yes       | Yes       |                   | vec3(0, 0, 0)
PlanarOffset             | Yes       | Yes       | >= 0              |         0.006
PlaneSetupEnum           | Yes       | Yes       | 0..2              |         0   
ProjectionMatrix         | No        | No        |                   |             
RelativeCamPos           | No        | No        |                   |             
Resolution               | Yes       | Yes       |                   |         0   
ResolutionBase           | Yes       | Yes       | >  0              |         2   
SecondaryGridSnap        | Yes       | Yes       | bool              | false       
SecondaryGridSnapRes     | Yes       | Yes       |                   |       - 5   
SecondaryGridSnapResBase | Yes       | Yes       | >  0              |         2   
ShapeEnum                | Yes       | Yes       | 0..1              |         0   

Property Name            | GLSL Uniform Declaration               | Notes
-------------------------+----------------------------------------+------
AxisAlignmentBiasPerc    | uniform float axisAlignmentBiasPerc  ; | TODO
AxisLineWidth            | uniform float axisLineWidth          ; | TODO
AxisX                    | uniform vec3  axisX                  ; | TODO
AxisXNColor              | uniform vec3  axisXNColor            ; | TODO
AxisXPColor              | uniform vec3  axisXPColor            ; | TODO
AxisY                    | uniform vec3  axisY                  ; | TODO
AxisYNColor              | uniform vec3  axisYNColor            ; | TODO
AxisYPColor              | uniform vec3  axisYPColor            ; | TODO
AxisZ                    | uniform vec3  axisZ                  ; | TODO
AxisZNColor              | uniform vec3  axisZNColor            ; | TODO
AxisZPColor              | uniform vec3  axisZPColor            ; | TODO
CellsPerMajorStep        | uniform int   cellsPerMajorStep      ; | TODO
CellsPerMajorStepAround  | uniform int   cellsPerMajorStepAround; | TODO
CircleResolution         | uniform int   circleResolution       ; | TODO
CircleResolutionBase     | uniform int   circleResolutionBase   ; | TODO
CursorColor              | uniform vec3  cursorColor            ; | TODO
CursorLineWidth          | uniform float cursorLineWidth        ; | TODO
CursorPosition           | uniform vec3  cursorPosition         ; | TODO
CursorVisible            | uniform bool  cursorVisible          ; | TODO
GridSnapCenterLines      |                                        | TODO
GridSnapCircles          |                                        | TODO
GridSnapX                |                                        | TODO
GridSnapY                |                                        | TODO
GridSnapZ                |                                        | TODO
MajorColor               | uniform vec3  majorColor             ; | TODO
MajorCountAroundAtRes0   | uniform int   majorCountAroundAtRes0 ; | TODO
MajorCountPerSideAtRes0  | uniform int   majorCountPerSideAtRes0; | TODO
MajorLineWidth           | uniform float majorLineWidth         ; | TODO
MinorColor               | uniform vec3  minorColor             ; | TODO
MinorLineWidth           | uniform float minorLineWidth         ; | TODO
ModelviewMatrix          | uniform mat4  modelviewMatrix        ; | implies grid origin
Origin                   |                                        |
PlanarOffset             | uniform float planarOffset           ; | TODO
PlaneSetupEnum           | uniform int   planeSetupEnum         ; | TODO
ProjectionMatrix         | uniform mat4  projectionMatrix       ; |
RelativeCamPos           | uniform vec3  relativeCamPos         ; | cam position - grid origin
Resolution               | uniform int   resolution             ; | TODO
ResolutionBase           | uniform int   resolutionBase         ; | TODO
SecondaryGridSnap        |                                        | TODO
SecondaryGridSnapRes     |                                        | TODO
SecondaryGridSnapResBase |                                        | TODO
ShapeEnum                | uniform int   shapeEnum              ; | TODO


Automatic line wrapping in code tags... what a failure.

Do you have ideas for more fancy grid features that might be useful? I want to make the most awesome grid the world has ever seen :D
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby Rasky_26 on Thu Sep 02, 2010 7:01 pm

- Allow the user to increase grid resolution over a certain area, not change the entire grid. For example, let's say I'm making a billboard and am working on a light on it. I would like to increase the grid resolution for the light to get it formed correctly, but not clutter up the surrounding area with increased grid resolution that I'm not going to expand into. Maybe a secondary small grid that is oriented to the object's center or boundaries and only extends a few units past the furthest points of the object (small grid could grow as the object gets bigger).

- Ability to rotate (maybe morph and skew too, but don't see any need for those) a section of the grid within its planar dimension. If I'm making a non-square building, click on a point to pivot about (such as the corner to a wall already built to easily align the next wall), and rotate the next area of grid I'm going to use to the angle I want (e.g. 15 degrees)

-Runs natively on different platforms (no need for wine).
Rasky_26
Regular
Regular
 
Joined: Sat Nov 10, 2007 9:09 pm

Re: Level editor feature wishlist

Postby Shrinker on Thu Sep 02, 2010 8:35 pm

(3) dream on ;)
(2) supported
(1) supported - can make a tool that temporarily configures the grid as you described, to be toggled with a keypress
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby zombie@computer on Fri Sep 03, 2010 1:10 am

automatically increasing grid as user zooms in?
When you are up to your neck in shit, keep your head up high
zombie@computer
Forum Goer Elite™
Forum Goer Elite™
 
Joined: Fri Dec 31, 2004 5:58 pm
Location: Lent, Netherlands

Re: Level editor feature wishlist

Postby Shrinker on Fri Sep 03, 2010 7:50 am

I have learned to hate grids that behave like that. However, it would be possible to set a resolution which is well-suited for your current position or distance to the next thing with a simple keypress then.
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby Jangalomph on Fri Sep 03, 2010 11:39 am

I'm late on this, i've seen it before. But is this editor you've made much easier to create complex brushwork?
http://www.nomoreroominhell.com
I don’t know whether I was right or wrong, I guess I’ll never know… But I made it. And I guess I should be thankful for that. - Strelok
Has anyone really been far even as decided to use even go want to do look more like?
User avatar
Jangalomph
Forum Goer Elite™
Forum Goer Elite™
 
Joined: Wed Jun 25, 2008 3:19 pm
Location: Sumter, SC

Re: Level editor feature wishlist

Postby Shrinker on Fri Sep 03, 2010 11:42 am

Yes, I am working on the successor.
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby Nutomic on Fri Sep 03, 2010 5:46 pm

Speaking of complex brushwork: Would be nice if invalid solids would somehow be shown as soon as you create them, as well as an option to auto-fix them, instead of just deleting them on load.
User avatar
Nutomic
Member
Member
 
Joined: Thu Aug 12, 2010 11:37 am

Re: Level editor feature wishlist

Postby Shrinker on Fri Sep 03, 2010 5:57 pm

That is unfortunately not possible. Solids are intersections of half-spaces, and when the intersection space is empty, there is simply nothing to display. You can also not auto-fix them because there is no way of figuring out which plane exactly should be different.
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby Shrinker on Fri Sep 03, 2010 8:36 pm

Guys, Microbrush 2 had a little brother, a 3D 3D terrain editor named "Hangover" (yeah, that double-3D is intentional!). I have NO idea how I could generate HL2 displacement patches from the arbitrary models this tool spits out, but maybe I find a solution to that too later. A proper height field terrain editor would certainly be nice... and this would be the next step!

YouTube video about it: http://www.youtube.com/watch?v=8nwZiagv69g&hd=1

ImageImage
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby CorporalAris on Fri Sep 03, 2010 9:25 pm

Shrinker wrote:Guys, Microbrush 2 had a little brother, a 3D 3D terrain editor named "Hangover" (yeah, that double-3D is intentional!). I have NO idea how I could generate HL2 displacement patches from the arbitrary models this tool spits out, but maybe I find a solution to that too later. A proper height field terrain editor would certainly be nice... and this would be the next step!

YouTube video about it: http://www.youtube.com/watch?v=8nwZiagv69g&hd=1

ImageImage

What does type of file does that export to? Or, better question, does it import directly into Hammer? Or Microbrush 2?
Image
User avatar
CorporalAris
Been Here A While
Been Here A While
 
Joined: Tue Apr 22, 2008 10:10 pm

Re: Level editor feature wishlist

Postby Shrinker on Fri Sep 03, 2010 9:35 pm

As described on its project page, it is a proof of concept and only stores the terrain data in its own little format. As the YT video description states, one can use a third-party geometry grabber to retrieve the geometry from this OpenGL application. This project was only created to fulfill an academic task and get a good grade. Well, I achieved that goal!
User avatar
Shrinker
Been Here A While
Been Here A While
 
Joined: Fri Nov 09, 2007 5:52 pm
Location: Germany

Re: Level editor feature wishlist

Postby CorporalAris on Tue Nov 02, 2010 10:57 pm

So Shrinker, how's this project going?
Image
User avatar
CorporalAris
Been Here A While
Been Here A While
 
Joined: Tue Apr 22, 2008 10:10 pm
PreviousNext

Return to Under Construction

Who is online

Users browsing this forum: No registered users