<commit_before>================================================================================
todo:
================================================================================

--------------------------------------------------------------------------------
code tidy
--------------------------------------------------------------------------------

rename GritObjectManager to something more explicit about its function




--------------------------------------------------------------------------------
gameplay
--------------------------------------------------------------------------------

general physics:
    - constraints (particlarly cone twist and hinge constraints)
    - explosions (ghost object + ray casts?) (sphere + contact iteration?)
    - callbacks on collisions
    - max velocities per mesh
    - physical materials

vehicles:
    - constraints (particularly hinge constraint for car doors)
    - study handling.cfg
    - extract graphics and collision meshes from gta vehicles
    - make the bike bank properly
    - add wheels to mesh so that vehicle bottoms out correctly
    - ensure wheels have no friction (maybe tweak contact added for that)

actors:
    - constraints for ragdoll (particlarly cone twist and hinge constraints)
    - extract actor models
    - extract skeleton data
    - lua bindings for hardware animation
    - study bullet character controller
    - play with capsule




--------------------------------------------------------------------------------
cosmetic
--------------------------------------------------------------------------------

weather (caelum? needs cg)

sea water (hydrax? needs cg too)

other water

foilage

skid marks

sparks

variable penumbra

smarter choice of bias

reflections on cars



--------------------------------------------------------------------------------
performance
--------------------------------------------------------------------------------

set up a timeDemo simulation for quantative performance measurements

binary collision file format
binary contains precomputed data for bvh-based collision meshes

Collision meshes to be considered a resource like graphical meshes

rigid body creation triggers creation of CollisionMesh instance if not already
existing

rigid body creation triggers loading of CollisionMesh instance if not already loaded

background resource loading includes collision meshes

display the occl zones, find out if i can use them for occlusion culling

might be able to do my own tests with some triangles or axis-aligned quads.
make sure that from all angles, all objects whose centres lie behind the quads
are fully occluded.  alternatively check all 8 corners of the aabb of the
object being rendered (better as it's only slow in the occluded case where we
make a saving)

minimising the number of occl zones is very important for performance
(obviously)




--------------------------------------------------------------------------------
user interface
--------------------------------------------------------------------------------

write windows gdi thingy for stdout ("rich text")

unicode support




--------------------------------------------------------------------------------
lua bindings
--------------------------------------------------------------------------------

make terminology consistent, e.g. between physics and graphics

ensure error messages are consistent, e.g. "not a valid XXX member"

fix the mess that is the vector/quaternion exploded vars support

fix boolean args so that they are actually checked rather than just coerced

consistently use resource pointers everywhere, not resource names

When overloaded functions are called with the wrong args, list all options.




--------------------------------------------------------------------------------
modding
--------------------------------------------------------------------------------

create a new materials system using lua bindings

integrate with a single ubershader

implement various effects
-- parallax
-- steep parallax
-- texture animation
-- multitexturing
-- splatting
-- normal map
-- reflections (static env map and dynamic env map)

allow modder to choose subset of effects, providing necessary parameters

clean up API for map scripts, make much simpler
-- instead of error when object already exists, just replace

avoid using tables for vehicle classes

ensure nothing special needed to reload a class / instance as opposed to add a class / instance

group together a large number of environmental options under a common API --
e.g. camera, shadow, ambient lighting, sun, etc.  Allow clear, and reset of
this stuff.

arrange it so that just including a map lua file is enough to replace
everything with with a brand new map




--------------------------------------------------------------------------------
networking
--------------------------------------------------------------------------------

separate graphics from game engine + physics.
<commit_msg>Add ramp to top_gear<commit_after>================================================================================
todo:
================================================================================

--------------------------------------------------------------------------------
code tidy
--------------------------------------------------------------------------------

rename GritObjectManager to something more explicit about its function




--------------------------------------------------------------------------------
gameplay
--------------------------------------------------------------------------------

general physics:
    - constraints (particlarly cone twist and hinge constraints)
    - explosions (ghost object + ray casts?) (sphere + contact iteration?)
    - callbacks on collisions
    - max velocities per mesh
    - physical materials

vehicles:
    - constraints (particularly hinge constraint for car doors)
    - study handling.cfg
    - extract graphics and collision meshes from gta vehicles
    - make the bike bank properly
    - add wheels to mesh so that vehicle bottoms out correctly
    - ensure wheels have no friction (maybe tweak contact added for that)

actors:
    - constraints for ragdoll (particlarly cone twist and hinge constraints)
    - extract actor models
    - extract skeleton data
    - lua bindings for hardware animation
    - study bullet character controller
    - play with capsule




--------------------------------------------------------------------------------
cosmetic
--------------------------------------------------------------------------------

weather (caelum? needs cg)

sea water (hydrax? needs cg too)

other water

foilage

skid marks

sparks

variable penumbra

smarter choice of bias

reflections on cars



--------------------------------------------------------------------------------
performance
--------------------------------------------------------------------------------

set up a timeDemo simulation for quantative performance measurements

binary collision file format
binary contains precomputed data for bvh-based collision meshes

Collision meshes to be considered a resource like graphical meshes

rigid body creation triggers creation of CollisionMesh instance if not already
existing

rigid body creation triggers loading of CollisionMesh instance if not already loaded

background resource loading includes collision meshes

display the occl zones, find out if i can use them for occlusion culling

might be able to do my own tests with some triangles or axis-aligned quads.
make sure that from all angles, all objects whose centres lie behind the quads
are fully occluded.  alternatively check all 8 corners of the aabb of the
object being rendered (better as it's only slow in the occluded case where we
make a saving)

minimising the number of occl zones is very important for performance
(obviously)




--------------------------------------------------------------------------------
user interface
--------------------------------------------------------------------------------

write windows gdi thingy for stdout ("rich text")

unicode support




--------------------------------------------------------------------------------
lua bindings
--------------------------------------------------------------------------------

make terminology consistent, e.g. between physics and graphics

ensure error messages are consistent, e.g. "not a valid XXX member"

fix the mess that is the vector/quaternion exploded vars support

fix boolean args so that they are actually checked rather than just coerced

consistently use resource pointers everywhere, not resource names

When overloaded functions are called with the wrong args, list all options.




--------------------------------------------------------------------------------
modding
--------------------------------------------------------------------------------

create a new materials system using lua bindings

integrate with a single ubershader

implement various effects
-- parallax
-- steep parallax
-- texture animation
-- multitexturing
-- splatting
-- normal map
-- spec map
-- reflections (static env map and dynamic env map)

allow modder to choose subset of effects, providing necessary parameters

clean up API for map scripts, make much simpler
-- instead of error when object already exists, just replace

avoid using tables for vehicle classes

ensure nothing special needed to reload a class / instance as opposed to add a class / instance

group together a large number of environmental options under a common API --
e.g. camera, shadow, ambient lighting, sun, etc.  Allow clear, and reset of
this stuff.

arrange it so that just including a map lua file is enough to replace
everything with with a brand new map




--------------------------------------------------------------------------------
networking
--------------------------------------------------------------------------------

separate graphics from game engine + physics.

{'fraction_non_alphanumeric': 0.30948817719245736, 'fraction_numerical': 0.00019954105557218397, 'mean_word_length': 1.4793470195399456, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '579597', 'n_tokens_mistral': 1921, 'n_tokens_neox': 1782, 'n_words': 1001}