Go to QuArK Web Site
History and Plans
Updated 03 Mar 2019
Upper levels:
QuArK Information Base

 5. History and Plans

 [ Prev - Up - Next ] 

Features added to this and previous versions of QuArK, and proposed for the future. A big uncertainty factor is the QuArKplusplus project, to translate QuArK into C++ and use Crystal Space as the 3d view rendering engine; the more ambitious suggestions especially might well be overtaken by this project.

Don't forget to look in the 'NEWS.txt' file in the main QuArK directory for a more detailed list of new features and fixes!


 Index


 QuArK 6.2 (superceded)

tiglari - 05 Apr 2018   [ Top ] 

Stuff actually implemented in QuArK 6.2. Perhaps somebody could produce accurate lists for 6.0 and 6.1?

  • Q3(T)A Model display: (Andy/Maleficus)
    Complex models now showing
  • OsFolders: (tiglari)
    Load up resources from disk by specified paths etc. Editing of folder properties not implemented.
  • Bezier Page: (tiglari)
    No 'cp picking' or linear mapping handles.
  • Bezier CP Picking: (tiglari)
    Select certain cp's & operate on them only. (in map views, not bezier page)
  • Read/Write Brush Primitives: (tiglari)
    There's a potential for imprecisions to accumulate if stuff is imported & exported multiple times/
  • Read/Write Worlcraft 3.3 Map format: (tiglari)
    So Quark is now among other things a WC3.3<->standard format map converter.
  • DefaultTextureScale: (tiglari)
    Only for the buttons, don't yet understand how to do it for direct insert from toolbox menu.
  • Path duplicator: (Decker, tiglari)
    With tiling substructures, 'elbow spaces', point position/creation dialogs, `roll control'.
  • Patch-based shape builders: (tiglari)
    New orientations.
  • Brush-based shape builders: (tiglari)
    thick & grid specifics added, plus same new orientations as patch-based ones.
  • Stairway duplicator: (Decker)
    Stairs in a box
  • Microbrush H/K: (tiglari)
    Find and destroy.
  • New Games/Addons Supported:
    STVEF (Alex, Jeff[EFR]Scorpion, Mark Matthieson, tiglari)
    Q3TA (Maleficus, Andy)
    Crystal Space (Desmond Fletcher, et. al.) This one probably needs more work from somebody knowledgeable about CS.
  • Drag & Drop imprecision bug: (tiglari)
    squashed.
  • Model editor: (Andy)
    pre-alpha Q1/2
  • 'texture pinning': (tiglari)
    Position a texture by giving its coords at three points
  • sprites etc. display: (Andy).
    Display assorted minor resources. Full Adquedit not yet there.
  • Look At on face menu: (tiglari)
    moves & points the camera in an open 3d view to look head on at the face (ctrl to view from backside)
  • `radial' duplicator: (tiglari)
    Makes copies of things radially around a tiltable axis, with 'spiral' attributes.
  • fgd converter: (Andy, Decker)
  • tag side plugin: (tiglari)
    Wrap texture across tagged might be less fussy
  • Navigate Tree: (tiglari)
    Zoom now causes 3d view camera to swivel to object
  • Addon organization: (Decker)
    Addons now can go in a different folder for each game.
  • Circlestrafe Selection Mouse-key combo: (tiglari)
    Shift+RMB during drag to swivel around selected object.
  • MipTex Extraction: (Andy)
    extract textures from Q1, Hx1 .bsp's
  • Vertex Movement: (tiglari)
    less drifting of non-drug vertexes when a vertex is dragged.
  • Form-editing: (Andy)
    status: editing only - no create
  • Rectangle selection of everything: (tiglari)
    selects groups and brush entities if all of their sub-objects are also selected.

 QuArK 6.3 (stable)

tiglari, etc. - 05 Apr 2018   [ Top ] 

QuArK 6.3.0 has been released; there is also an update patch, and there will very likely be a 6.3.1 with some minor bugfixes and improvements. Probabl that will be that.

First, what what has been implemented in QuArK 6.3.0, at least as much of it as we remembered to record! The now uninformative 'status' info (e.g. 'done') has been removed, but some of the more contentful ones have been left. Feel free to add additional features to this list that QuArK actually acquired but got left out.

  • 6DX Engine Support: (decker, Jacob Marner)
  • Crystal Space Support: (tiglari, funkiedamouse)
  • Linear Matrix editor: (tiglari, lots of design from Rolf Hulsbergen)
    crank out matrices for rotation, scaling etc. from intelligible parameters (from pushbutton in duplicator forms).
  • Extruder: (tiglari)
    generate brushes etc. from 2d outlines.
    status: done (integrates with path duplicator); some extensions currently being added.
  • 'New Copy One' duplicator: (tiglari)
    put copies of a structure where you want it. Inspired by a suggestion by Meatball402 on Quake3World editing forum.
  • User-configurable hot keys: (tiglari)
    What additional ones should be added?
  • User-specifible rotation/linear mapping origin: (tiglari)
    Do they really need to be persistent properties of groups? (as opposed say to a tagged point)
    what about axis? No, wouldn't integrate with the buttons.
    status: redone as handle (old origin duplicator removed from interface). Works as fixpoint for scale/rotate linear specifics in some duplicators.
  • Merge Polys: (tiglari)
    bugs fixed, merge all mergeable polys in group
  • Form-editing: (Andy)
    Includes create capacity.
  • Entity Extractor: (Andy)
    Entities extracted from .bsp's in many formats (including Q3(T)A). Runs out of memory on some maps in some .pk3's. This can be worked around by extracting the .bsps to individual files.
  • Selection modes: (tiglari)
    Configuragle 'Aux Keys', by default 'F' for face, 'B' for brush, 'C' for curve, 'E' for entity (point or brush). 'P' and 'F' don't have drilldown, this is a bit asymmetrical but I don't think it really matters.
  • L-square enhancements: (tiglari, ax2grind)
    status: started, align & glue to tagged done. I intend to leave further enhancements as an exercise for someone who wants to learn more about QuArK-Python programming.
  • Tree navigation: (tiglari, design from Decker, realdespair)
    home, pg up, pg down for parent, next prev in group, cycling. Plus some kind of option for getting next-of-same-type in group.
    status: basic stuff done. Perhaps add more refined same-type option (=classname for point entities, brush entities, =macro for duplicators)
  • Entity Lump Extractor: (tiglari)
    extracts entity lumps from .bsp's in a .pak to independent files.
    status: done but seems to fail with STVEF .bsp's whose names begin with underscore. More thought about easy preparation of entity addons is needed.
  • 3point cutting plane: (tiglari)
  • Pythonify entity def converters: (Andy)
  • texture search facility: (Andy, suggestions from quantum_red)
  • storable camera positions: (tiglari, design from quantum_red)
  • group selection movement commands: (tiglari, design from Alan Donald and quantum_red)
    exchange position & align (WC-style)
  • incrementable specifics in duplicators: (subnoodle, tiglari)
    status: done except for radial duplicator.
  • texture-replacement specifics for duplicators: (tiglari)
    status: done except for radial.
  • promotion/demotion of submenus: (tiglari)
    status: done for texture & tagging (not intended for all submenus, just some of the more useful ones)
  • Code specifics for toolbar buttons: (Andy)
  • Support for Gunman, Blue Shift & other HL derivatives: (Decker)
  • Arg Replacer: (decker)
  • Show/edit entities for supported games bsp's: (tiglari)
    status: done except for Sin (a fourth bsp structure probably over-strains the present code structure).
  • Inspect nodes & planes in bsps: (tiglari)
  • Object snapper: (tiglari, idea from quantum red)
    align/move object w.r.t. face so that face and a face of the object are paralell.
  • Object slider enhancement: (tiglari)
    Now moves object over plane and along normal.
  • Don't draw restricted out stuff: (tiglari)
    when hide-out-of-view is checkd.
  • Search for defective textures: (tiglari)
    whose scales are too small (request from rust QuArK forum)
  • 'Move containing' item on the vertex RMB: (tiglari)
    that moves the parent item selected from the submenu so that the vertex becomes on-grid (solution to problem from the RQF)
  • 'Output Map Format' field in game configs: (tiglari)
    replacing some of the Map Options.
  • various selection modes: (tiglari)
    frozen selections (shift RMB) that don't change until another frozen selection is made, selection of brush, face, patch, entity only, done via 'auxiliary keys' (hold down during mouseclick). Frozen selections appear to be at least a partial implementation of a suggestion by rd.
  • bilinear filtering option in texture views: (tiglari)
    prodding from aguir_re.
  • Support RTCW, JKII, Torque, partial support for Mohaa.
  • bilinear filtering option added to OGL view: (tiglari)
    prodding from aguir_re, facilitated by a nice intro OGL tutorial from which some code could be cribbed, also I suspect some previous cleanup by Decker.
  • Fixed problem with 2-monitor usage of QuArK:
    breakthru insights from quantum_red and Decker.
  • Radiant-style dragging, with frozen selections: (tiglari)
    The justification for this is that I think it might be fast and convenient in certain cirucmstances. (Also a 'how it was done' story might be a good QuArK-Python tutorial on handling mouse stuff.)
    status: done
  • Basic SoF2 support: (tiglari, CHK Shoot)
  • jump-pad trajectory calculator: (decker)
  • non-integral face finder-fixer: (tiglari)
  • liner mappings work on path duplicator: (tiglari)

And in future updates + 6.3.1.

  • enhanced wallmaker: (tiglari)
    status: done in current update patch
  • target finder: (tiglari)
    status: done in current update patch
  • enhanced prism builder: (ax2grind, cdunde)
    status: done in current update patch
  • tagging commands toolbar: (cdunde)
    status: done as plugin
  • more flexible vertex movement: (milifaar)
    status: done as plugin

 QuArK 6.4 (alpha released)

tiglari, etc. - 05 Apr 2018   [ Top ] 

The QuArK 6.x series is intended for incremental development. The further down on the list something appears, the more likely it is to be delayed till 6.5, or never to happen at all.

  • Transparency in OGL views: (Decker)
    status: done.
  • Infobase link button in help popup: (cdunde et al)
    status: various implementations worked out, dithering between alternatives.
  • Toobar buttons: (cdunde, tiglari)
    status: implemented as plugin, wants further development and integration into quarkpy.
  • bot waypoint editor: (decker)
    status: limited implementation as plugin.
  • Flexible vertex movement: (milifaar, tiglari)
    status: a plugin by Milifaar.
  • Targetted and targetter finder: (tiglari)
    suggestion by quantum_red.
    status: done.
  • Manual .lin and .prt file loading: (tiglari)
    status: envisioned
  • Leak line simplification:
    information from Bengt Jardrup:
    Tiglari, if you take a look at the Q1 compilers at my site
    > http://user.tninet.se/~xir870k , you'll find that both of them 
    > already have a leak line "simplification" algorithm default active 
    > that significantly reduces the leak trail length and complexity. As a 
    > result, the .pts file size shrinks significantly. For large leaky 
    > maps, this is an enormous advantage.
    > 
    > This algorithm was originally designed by Greg 'Tree' Lewis and 
    > fixed/improved by Tyrann and me. The algorithm can be found in source 
    > file outside.c and is called SimplifyLeakline.
    
  • Mixed-face contents finder: (tiglari)
    suggestion by funkiedamouse.
  • More flexible greyout: (suggestion by quantum red)
    Provide an option so that things are selectable when visible in only one view.
  • Patch bend mode: (tiglari)
    Or something like it, and other patch-handling extensions.
  • Ripoff of WC `arch maker': (tiglari)
    would be called something like`arc builder', probably basically a duplicator, emulating the wc thing's functionality.
  • Finish support for Mohaa: (tiglari)
    Needs info about lod terrain format, model format and where the entity editing info is stored.
  • A Radiant-style XY view with vertical Z window: (tiglari)
    The justification being that that gives maximal screen real estate for the top-down view (if you think about it, it's an extreme development of the Classic QuArK view).
  • importable and exportable config info (some discussion of this in early May2002 on quark-python)
  • L-square menu enhancements: (tiglari, ax2grind)
    status: started, align & glue to tagged done. I intend to leave further enhancements as an exercise for someone who wants to learn more about QuArK-Python programming. Suggested additions are:
    • checkbox for relative to tagged/join of L (better to just tag the join, I think now)
    • move to fraction of distance to tagged (arm only)
    • end position
    • arm length
    • arm angle
    What about L-join options?
  • Radiant-style Regioning: (?)
    Hide and don't write to map everything not in the rectangle.
  • Tag side plugin: (tiglari)
    More flexibility for wrap across tagged.
  • Brush-based shape-builders: (tiglari, Decker)
    'inner boxes' (two independently manipulable boxes, one inside the other, giving more control over arch shapes).
    redo prism-builder as shape-builder.
    more fancy options for stair-builder
  • Patch-based shape-builders: (tiglari)
    sphere, 'inner boxes', 'square cylinders' (s/b easy, but no requests for it)
  • full equivalence to GtkR patch texturing: (tiglari)
  • Expand/Contract faces: (tiglari)
    As enhancement to experimental mapmovevertex plugin
    Plus extension of vertex locks to ordinary vertex dragging.
  • CTF duplicator: (tiglari)
    status: started, nothing committed.
  • Model Editor: (Andy, tiglari?)
    more progress
  • Incorporate 'entity info files' into toolboxes: (tiglari)
    tiglari has PERL scripts that generate various kinds of info (hints, bounding bpxes etc) from Radiant .def files and other sources, the idea being to let these be automatically integrated into the toolboxes generated by Andy's addon-builder.

 QuArK 6.5 (beta released)

tiglari, etc. - 05 Apr 2018   [ Top ] 

The QuArK 6.x series is intended for incremental development. The further down on the list something appears, the more likely it is to be delayed till 6.6, or never to happen at all.

  • Game support of as many as possible games (mostly cdunde)
    status: never done!
  • OpenGL in all 3D views (DanielPharos)
    status: done!
  • Get the model editor back on track (cdunde)
    status: back on track!
  • Fully working Direct3D renderer (DanielPharos)
    status: only made stable basis
  • OpenGL shader-rendering (DanielPharos)
    status: not done
  • Left-overs from 6.4
    status: ...

 QuArK 6.6 (beta released)

cdunde, DanielPharos - 03 Mar 2019   [ Top ] 

The QuArK 6.x series is intended for incremental development. The further down on the list something appears, the more likely it is to be delayed till 6.7, or never to happen at all.

  • Game support of as many as possible games
    status: never done!
  • Fix all drawing issues still remaining (mostly with OpenGL) (DanielPharos)
    status: done!
  • Expand the model editor (cdunde)
    status: well underway
  • Fully working Direct3D renderer (DanielPharos)
    status: workable, but needs performance improvements
  • Full screen renderer that supports animations and shaders (DanielPharos)
    status: slowly making progress
  • OpenGL shader-rendering (DanielPharos)
    status: envisioned
  • Improve QuArKSAS (DanielPharos)
    status: obsolete
  • Left-overs from 6.5
    status: ...

 QuArK 7, etc.

tiglari, DanielPharos - 05 Apr 2018   [ Top ] 

My current thought is that QuArK 7 should involve some major under-the-hood revamping, in particular of the relation between QObjects and Python classes, so that QObject is a 'new style class', subclassable in Python. This would be an important step towards actually getting somewhere with Quarkplusplus (the project of translating QuArK to C++), or to much more extensive Pythonification, using Psyco to achieve adequate performance. Splitting the Python codebase and the Delphi into two separate neat piles would also be needed. Python should only handle the plug-ins, Delphi should do the hard work, like vertex handling.

One of the major things that should be changed, is the way Args/Specifics are stored. There ought to be a third list, which contain the type of data stored. How else could one tell the difference between a number 3 stored as a 2 byte variable, and number 3 stored as a 4 byte variable? This would also allow easier distinction between numbers, string, color codes, images, etc...

Further down the line, QuArK 8 should involve a rework of the GUI, which is presently Python-scripting piled on top of heavily hacked Delphi 2 vintage VCL. Or even a complete port to C++.


 Suggestions

tiglari, etc. - 05 Apr 2018   [ Top ] 

Suggestions for implementation (proposer parenthesized). Ideally these should be sorted into 'QuArK 6.5 (beta released)', 'Unlikely Ideas' or 'Big Ideas', but for some reason or other I can't make up my mind today.

  • Path info for file links, so that the files can be anywhere (Seth)
  • Rescale textures on vertex drag (rd, currently in exp. plugin).
  • Selected groups colored rather than dotted outline (option perhaps?). (rd)
  • Patch-based terrain builder: (tiglari)
  • New projection option, 'project from nearest plane', emulating classic qe texture alignment: the projection of the texture scale on the closest axis plane to the tagged face normal is found, then that is projected onto the tagged face. (tiglari)
  • Optional plugins:
    Some plugins wouldn't load unless they were 'registered' like addons; this would make it easier to try things out
    Alternative: plugins with 'expmap', etc. prefixes which would only load when a 'load experimental plugins' option was checked.
  • Red-hot keys:
    'T', 'W' etc in 3d view would select & tag/wrap etc the visible face they were over. (tiglari, quantum red)
  • Intersection finder:
    A ripoff of the one in bobtoolz
  • Autocaulker:
    Ditto

 Unlikely Ideas

tiglari. - 05 Apr 2018   [ Top ] 

These are things that could be done but probably won't be, unless a coder comes along who wants to do them. If no explanation is provided, the explanation is an unfavorable apparent demand/probable effort ration.

  • Edit textures in .bsp files:
    an as-yet-unimplemented 4.7 feature, unlikely to be implemented since it makes it too easy to rip off other people's work.
  • Map reconstructor for Q3 engine games:
    This might be easier to do well for Q3 engine games because the model structure seems to include brush info as well as face info. But same problem as Edit textures in .bsp above.
  • Daikatana support: (?)
  • Adquedit-equivalent resource display for Q1: (Seth)
    That is, edit *all* Q1 engine game resources. This might become more viable if QuArK gets involved in the Q1-engine source port scene.
  • OsFolders: (tiglari)
    edit the properties of pre-existing OsFolders

 Big Ideas

tiglari, etc. - 05 Apr 2018   [ Top ] 

Ambitious, not necessarily realistic proposals, ranging from the relatively straightforward to crazed dreams. More likely as Quarkplusplus features.

  • Auto-binary qrk:
    When a text-based .qrk is loaded, write a binary format equivalent with extenion .brk; then next time load that unless the .qrk is newer (same logic as .py and .pyc).
  • Model editor: (Andy, tiglari)
    export closed mesh to brushset
  • NetQuark: (???) Multi-user editing over the net. Would need somebody who really knows what they're doing. Probably not a realistic target. Support for collaboration via CVS might be more plausible. Unlikely to be build, would need an entire rebuild of the code. Maybe an idea for Quarkplusplus?
  • persistent edits: (?)
    undo/redo info written to files/saved with maps, supporting playable entity demos (Ax2grind idea), and 'orthogonal persistence' (http://www.tunes.org) of editing sessions
  • XML support: (?)
    Maximum possible compatibility with GtkRadiant Xmap, which doesn't seem to be going anywhere at the moment.
  • Qrk editor: (?)
    Edit .qrk's in the style of a decent XML editor
    Andy's form-editing extension to the explorer are basically implementing this.
  • Integrated Dynamic bsp builder: (?)
    bsp building & optimization while u're scratching ur head...
  • Surf Inspectors: (?)
    Laid out more like in Radiant, which I like better than QuArK's long list.
  • More Game Formats: (?)
    Unreal engine, Serious Sam, Far Cry...

 Tags & Branches

tiglari, etc. - 05 Apr 2018   [ Top ] 

The idea here is to record tags and branches entered into the repository, with comments on their purpose and status. I've only done a few recent ones, mostly that I've been responsible for.

Branches

  • arigo: ?
  • CS: ?
  • DanielPharos: the branch where DanielPharos did his OpenGL work.
    obsolete
  • Leakhunt 1, 2 for runtime: useless bungling.
  • Leakhunt 3 for runtime: leak hunting modifications.
  • Leakhunt 3 for source: more bungling, needed stuff in main branch.
  • MidJuneSnap: ?
  • ModelEditorRebuild: Attempt to restructure the model editor.
    obsolete
  • ModelEditorBoneRebuild: Attempt to restructure the way the model editor handled bones.
    obsolete
  • NewGameSupport660b3: Branch where some experimental new game support work is done.
  • NuTex: an experimental branch for testing schemes for dissociating texture positioning from face-positioning.
    obsolete
  • NuTex2: an newer experimental branch for testing schemes for dissociating texture positioning from face-positioning.
    only applies to QkMapPoly.pas
  • peter-b_tagging_api: ?
  • Q3ABSPM: only for QkBsp.pas, QkBspHull.pas: Q3A Bsp reading. Now s/b closed, its stuff is on the main branch.
  • qk511b-opengl-update: ?
  • REL6_1: the branch for the Quark 6.1 release.
  • REL_62: branch for the 6.2 release. Hopefully closed off now!
  • rel-63: a short-lived branch for putting new stuff that wasn't supposed to go into 62. relevant contents merged into the main branch.
  • rel-63-exp: ditto.
  • pre-635c1: a tag before adding a bunch of stuff just prior to the intended rc1 (frozen selection, bilinear filtering in OBL).
  • rel-63a: the 6.3 release branch, 'a' because of the ill-fated 63 branch above.
  • RendererRebuild: Attempt to have the renderers draw the wireframe views as well.

Tags

  • snapshot_1015: ?
  • snapshot_0910: ?
  • snapshot_0901: ?
  • snapshot_0215: ?
  • snapshot20050226: ?
  • snapshot20050129: ?
  • snapshot20050105: ?
  • Snap042801: ?
  • REL6_1-test-1: ?
  • REL6_1-pre-3: ?
  • REL6_1-pre-2: ?
  • rel-6-3-0: the tag for the actual release on the rel-63a branch.
  • qk511b6: ?
  • qk511b-opengl-update-merged: ?
  • Q6_6_0Beta3: ?
  • Q6_6_0Beta2: ?
  • Q6_6_0Beta1: ?
  • Q6_5_0Beta4: ?
  • Q6_5_0Beta3: ?
  • Q6_5_0Beta2_0: ?
  • Q6_5_0Beta1: ?
  • Q6_5_0alpha8: ?
  • Q6_5_0alpha7: ?
  • Q6_5_0alpha6: ?
  • Q6_5_0alpha5: ?
  • Q6_5_0alpha4: ?
  • Q6_5_0alpha3: ?
  • Q6_5_0alpha2: ?
  • Q6_4_1alpha3: ?
  • Q6_4_1alpha2: ?
  • Q6_4_1alpha1: ?
  • Q6_4_0alpha3: ?
  • Q6_4_0alpha2: ?
  • Q6_4_0alpha1: ?
  • pre-63rc1: ?
  • DP_Q6_5_0Beta1: ?
  • Before_Delphy_5_Requirement: ?
  • Before_Delphi_5_Requirement: ?


Copyright (c) 2022, GNU General Public License by The QuArK (Quake Army Knife) Community - https://quark.sourceforge.io/

 [ Prev - Top - Next ]