donate BGE new features!

Hi,

Here this thread we can discuss about what features need and want to donate for BGE.


T42 - this is part of twilight 42 project
T42? - may this is part of twilight 42 project ?
OK? - partially done or need something to do
??? - missing feature
OK - its works and we are happy :slight_smile:

IN GENERAL:
T42? - optimizations: for rasterizer, logicbrick, python scripting
T42? -2D Filter optimization - FBO, multipass (not necessarily Deferred Rendering)
??? -speed up the 2d filters and the videotexture loading
T42? -full replacement of skinned meshes to gsls skinned meshes (for armatures only, not for shape keys)

TOOLS:

??? -3d decals - http://www.gamedev.net/reference/programming/features/3ddecals/
??? -portals -
OK -occluders
??? -road tool like in crysis http://www.youtube.com/watch?v=YcTwvHptdCg
OK? -decimate modifier with preserve uv make easy for Lod - need to add for current blender
http://www.wxtools.com/wp/?p=166
??? -dynamic 2d imposters (this is a lod part?):
http://www.gamasutra.com/features/20...davis_01.shtml
OK? -bitmap font creator build in - better to no need python script and should be multiplatform

RASTERISER: SHADERS/MATERIALS/RENDER

??? - support for DDS compressed textures for faster loading and compressing textures on the fly for better texture memory usage.
??? -TextureFace should work in GLSL.
??? -antialising
OK? -alpha shadow - need optimizing fix bug and add from patch
OK? -soft shadow - need optimizing fix bug and add from patch
??? -large terrain shadow like Light Space Projective Shadow Mapping techinc or other
??? - sun lamp shadows (soft+alpha) for outdoor scenes
??? -glsl shader use with blender gui (custom glsl script material node in node editor?)
??? -render areas (set a box where you can setup a special rendering process)
??? -FBO support frame buffer object
??? -Video texture to be assigned by having a video file as normal texture
(not only with python) and an actuator to control it.
-implementing to blender GUI for most usable shaders(just a single clikc on gui and no need python/logicbrick):
??? -fresnel
??? -refract
OK? -mirror - python+videoTexture module (maybe not us python for fater?)
??? -glow map
OK -normal map
OK -specular map
OK -alpha map
??? -parallax/iterative/steep parallax map
??? -offset map
??? -relief map
??? -cubemap
??? -translucency sss
??? -cubemap lighting
??? -IBL(image based lighting)
??? -amb at Map To panel works with glsl
??? -Refl at Map To panel with Cube Env map
OK -fog

-2d filters mainly by martinsh (all 2d shader use with slow python - maybe need to use via Blender gui?):

OK? -SSAO -python slow
OK? -DOF -python slow
OK? -HDRI -python slow
OK? -BLOOM -python slow
??? -SSGI
…many-many other 2d filter with glsl

-extra:

??? -Deferred Shading/Rendering
-2D Filter optimization - FBO, multipass (not necessarily Deferred Rendering)
??? -Advanced Atmostpheric Effects + Sky
??? -Fur Shader

COMPLEX SYSTEMS

T42 -LOD system
??? -gui system (CEGUI as GUI system (would that fit in people needs?)
or Blender GUI via python module in BGE
OK? -sound system (ogg - better than mp3) -Jorge Bernal working on
http://blenderartists.org/forum/showthread.php?t=160447
??? -network system
??? -AI system/path finding - work in progress? Ideasman42?
OK? -Advanced Water System - waves plugin need to implementing for multi platfrom?
http://www.ashsid.sk/?p=105
??? -particle system implemented, perhaps with options for 2D or 3D particles (GLSL?).
-fire, smoke, exploding,clouds etc.

GAME LOGIC and PYTHON:
??? -constrain to path support (actuator? or use the constraint)
??? -text object box multi line actuator? (left, center, right, align)
??? -timer sensor: count back, reset, start, pause
??? -getIpoCurrentFrame value with python
??? -Add Property button - need List type?
??? -fps camera look actuator

PHYSICS (bullet):
??? -python access to collision points
??? -re-instance physics mesh support (py call and actuator)

BLENDER and BGE related (this is not just BGE related feature request) :
??? -normalmap baking with AA
??? -create uv unwarp on all active or selected objects and show/editing in on time the uv editor
??? -baking lightmap for instanced mesh (dupligroup or dulicated linked mesh)
??? -work tangent normalmap with mirrored uv (or with mirror modifier?)
??? -unique uv map for instanced object
??? -terminal feedback inside blender window

BGE GUI:
??? -up down button for all visual logic brick blocks without need closing
(maybe in twilight42 project redesign all logicbrick gui?)

UN CATEGORIZED:

??? 1-real load progress bar (show loading data stuff in right percent)-or this is possible yet?
(dynamic loading system may include this?)
??? 2- use all 3D views, In blender each view can have its own camera
(disable the lock button). so we could setup the viewports from
the blend file without messing with python.
??? 3- Make the engine thread safe (there would be syncronization calls,
and mutexes/semaphores, but the python interpreter would run in a
separate thread without blender hoarding the GILbetween frames)
??? 4- Implement a global and per-object event queue where both python and
(internal) c++ functions can be registered as event handlers
(trough a callback mechanism) that way the engine will be more
dynamic, and libraries created in python will have a lot more
power and will be easier to translate to c++ if they prove to
be useful and/or need more speed.
??? 5- Advanced yet must-have physics features (most already implemented in
bullet but not in the BGE), like collision mask handling, custom
(python?) constraints (could be just an api to put custom callbacks
for bullet events), contact points in collision sensors, a crush
sensor (sense crushing force), also impact forces (though that
could be done in python trough the use of contact points and some
calculations, it’s useful to have a fast C++ implementation) also,
some way of updating the physics shape of a dynamic object.
??? 6- Abstract the filesystem usage trough a library like PhysFS
(for making nicer game bundles, low priority)
??? 7-A plug-in that gives access to the tools like the ones in the Unreal
Editor not all of them just the mapping (geometry) tools.


and i think we need separate a BGE foundation ONLY for BGE developers because seem we haven`t officially supported BGE developer !

I am still in doubt. it depends on amount of people involved. For about 100$ you can buy not a bad game engine for a hobby like Torque or gamestudio or C4. I don’t mean commercial licenses, just for fun. So even 50$ per person for a new BGE feature that’s a way too much. Though I could donate about 10-50 $ per year to BGE devs.

Hardly anyone who is willing to pay cash is going to agree on what features need to be added/enhanced next. Me? I’m an atmostphere/lighting/shadow/water nut!! I would pay hundreds of dollars to see deferred shading and for shadows that aren’t restricted to a spotlight but that cover the entire world. But I don’t expect others to agree or put up the cash as a few hundred dollars probably isn’t enough to entice programmers to do it.

Till then, I still have licenses to a couple of commercial engines with more powerful lighting systems.

I’m such a lighting nut. It’s too bad blender’s very high QUALITY lighting isn’t more universal in the scene with better performance. I’d say blender’s shadow quality may be the best I’ve seen anywhere. It’s just not too fast. And it’s restricted to that spotlight like I said.

Hi, some feedback on the suggestion since I have been thinking over this in more general terms also.

  1. use this thread to brainstorm features (hope thats ok?)
  2. have developers assign them self to certain features and set a donation target (very important otherwise this isn’t gonna work)
  3. run a poll voting on the features that have assigned dev’s
  4. pick the top 2-3 elected features and aim to pledge enough to reach the developers target

Its kind of like a self organized GSOC, it could be run once or twice a year if it works out ok.

Please no vague requests like “make the BGE better then unreal engine”
Pull your wish-lists together!

in reply to suggestions…

  • opitmailzations: for rasterizer, logicbrick, python scripting, etc
    I think 2.49a has already many improvements, probably the rasterizer still has a way to go though.
    For optimizing logic it might need to become multithreaded.

-alpha shadow, large terrain shadow like Light Space Projective Shadow Mapping techinc or other
maybe, we need more OpenGL devs I think :frowning:

-3d decals
Dont really understand this. with multiple GLSL texture layers this is possible.

-implemented shaders(just a single clikc and no need extra logic brick): water, glow, etc
Probably need to refactor the rasterizer a bit for glow, other shader improvements could be possible with less work though.

-LOD etc
benoit is working on this

-gui system
If done in a nice re-usable way can be good. possibly a python module or an overlay scene.

-sound system (ogg - better than mp3)
being worked on currently, will probably happen without donations.

here is my personal wishlist, pick the ones you like the most :3

  • Make the engine thread safe (there would be syncronization calls, and mutexes/semaphores, but the python interpreter would run in a separate thread without blender hoarding the GIL between frames)

  • Implement a global and per-object event queue where both python and (internal) c++ functions can be registered as event handlers (trough a callback mechanism) that way the engine will be more dynamic, and libraries created in python will have a lot more power and will be easier to translate to c++ if they prove to be useful and/or need more speed.

  • Advanced yet must-have physics features (most already implemented in bullet but not in the BGE), like collision mask handling, custom (python?) constraints (could be just an api to put custom callbacks for bullet events), contact points in collision sensors, a crush sensor (sense crushing force), also impact forces (though that could be done in python trough the use of contact points and some calculations, it’s useful to have a fast C++ implementation) also, some way of updating the physics shape of a dynamic object.

  • Abstract the filesystem usage trough a library like PhysFS (for making nicer game bundles, low priority)

A plug-in that gives accsess to the tools like the ones in the Unreal Editor not all of them just the mapping (geometry) tools.

Every 3d package I have found has never been vary good at making world geometry, except for unreal.

I like this. Seems very simple and very useful. Anyone with python skills and time available could do this. Could speed up the whole process by a big bunch.

If someone picks this up. I would vote on this and help funding.

Hello,

in Blender have FBO? frame buffer object - it speed up the 2d filters and the videotexture loading. Than if not if voting for that.

  • optimize/fix the soft/alpha shadows patch and put it in the main branch
  • sun lamp shadows for outdoor scenes.
  • rasterizer speed-ups (hard to set a goal for I guess)

suggestions for other features that I think would make for good projects…

  • support for DDS compressed textures for faster loading and compressing textures on the fly for better texture memory usage.
  • re-instance physics mesh support (py call and actuator)
  • python access to collision points
  • constrain to path support (actuator? or use the constraint)

Well, since you’re soliciting suggestions, I’ll say it again even though I’m pretty sure that you know I want it.
TextureFace should work in GLSL.

after PlantPerson. Texface would be veeery useful.

i am for path support!!!

‘support for DDS compressed textures for faster loading and compressing textures on the fly for better texture memory usage’

yes please

suggestions for other features that I think would make for good projects…

  • support for DDS compressed textures for faster loading and compressing textures on the fly for better texture memory usage.
  • re-instance physics mesh support (py call and actuator)
  • python access to collision points
  • constrain to path support (actuator? or use the constraint)
    I like all those features… been dying for some them for ages… especially collision points and a path constraint. I still like your original idea for doing the dynamic loading etc.

Otherwise… my wish list would be better shadow support etc. alpha maps cast shadow and some way of optimizing shadows… and soft shadow integration… before I get ahead of myself.

Heres another fun one, that is small enough to be grouped with other features.

  • use all 3D views, In blender each view can have its own camera (disable the lock button). so we could setup the viewports from the blend file without messing with python.

@Ideasman42
here is the link about 3d decals usage + a paper on gamedev
http://blenderartists.org/forum/showthread.php?t=160458

the compressed dds support is not part of twilight42 project?

-almost forget it the decimate modifier with preserve uv make easy for Lod
http://www.wxtools.com/wp/?p=166

I will waiting a bit for collect all suggested features and than make a poll for it.

Chaser already made a very great working path finding system if that’s what you mean.

My wishlist:

Disclaimer/Attention: I know that I typed individual prices for these features but come to think of, deferred rendering itself is so intertangled with all of the things that I’ve mentioned that probably whoever does the deferred shading would have to have their fingers in to all of the other things that I mentioned also. So what I’ll do is say forget the individual amounts. And let’s say I’m willing to contribute up to $1000 for someone to properly put these features into blender game engine that I mentioned here. But I doubt that’s enough so I would need more people to put up more money along with me. And we’d want a GOOD coder not just someone who’s looking for a buck. If anyone comes along who is going to do it. I’ll pay you a little up front if you have a good track record and then I’ll pay you the rest when you’re finished. Of course my pledge in this thread isn’t written in stone yet. It’s just that I’m 90% sure I’ll do this. Just depends on if anything happens and what happens in regards to my proposal to throw the game engine into this direction. Or whether Electronic Arts Research is already doing some of these things. Who knows. Or if anybody cares or wants to join the pot or not.

-Deferred Shading/Rendering (which means you can use lots of realtime light sources, for instance in CryEngine2 you can only use 3 light sources faithfully, while in Leadwerks engine you can literally have 30-40 lights as shadow sources without any problem) – Once you’ve tried deferred rendering you kind of become addicted to it.

-Advanced Atmostpheric Effects + Sky Sort of like CryEngine2 of course. Sunrise, sunset, light shafts etc… I have $150 to contribute to the pot for this one. Or maybe more depending how far you’re willing to go with this, and how well optimized it is. If you add Volumetric Clouds I can add another $100 to my contribution. =) But this one had GOT to be well optimized. I’ve tried some of martinsh’s light ray filters and it’s just too slow, or maybe I was doing something wrong. Maybe Deferred rendering and this are so well intertwined that they are really one in the same job[/U]

-Advanced Water System I want Ogre’s Hydrax quality water at least. $100 for this one. If it’s physics enabled so that it takes advantage of Bullet’s goodies and works easily with blender’s current workflow not having to do complex coding to set things up I’ll add another $75 from my end.

-Fur Shader <— me likey fur shader. Make it a good one.

I should have been more clear.
an actuator that can move an object along a path, the path could be from a nurbs curve or set dynamically by python.
Maybe the motion actuator could have a ‘Path’ option, with the choice to use force or dloc etc, as well as the ability to orient the object to the path.

It would be a useful alternative to setting the orientation and linv, you could have a python script periodically set the path with API utility functions like path smoothing, randomization, raycast along the path to test for obsticals, project the path onto the ground etc.

A script that does pathfinding could also make use of this actuator to avoid running a script on every logic tick.