Author Topic: Draft of my Wishlist :-)  (Read 8255 times)

0 Members and 1 Guest are viewing this topic.

Murmandamus

  • Thug
  • *
  • Posts: 20
Draft of my Wishlist :-)
« on: May 14, 2008, 09:25:26 AM »
 :copain:

...ok so I'm new to this community, and I really love what I've seen of Demoniak so far. Still, there are just some little things missing that I think will be great additions. I'm sure JeGX is busy already with improving Demoniak, and I don't want to put any pressure on him. It's his project and I think he is doing a great job :thumbup: So please only take my wishlist as ideas that I have, and do with them (or ignore them) as you like :transpi: Note that I'm a programmer, so most of my ideas have to do with Lua, not so much XML (but some of these maybe apply to both).

By the way some of these items are also questions in another thread ( http://www.ozone3d.net/smf/index.php/topic,1394.0.html ). So maybe I got it wrong and it's already in Demoniak... Sorry if I missed it :bave:


Here goes:

1: Ability to change friction of physics bodies. Maybe something like a "physics material" (other existing properties like damping, skin thickness or default density values could also be part of this material definition). Then you can add this material definition to any (one or multiple) physics actor, and that will set the correct values.

2: Ability to disable default escape key behaviour. Currrently, AFAIK, the escape key always quits the Demoniak3D app, and is the only key that cannot be redefined.

3: Ability to sync/unsync physics simulation time with real time. Unless I'm doing something wrong (see my questions thread) the "simulation time" is always running as fast as possible, i.e. not synchronized to "real-world time".

4: Ability to query keystrokes in FIFO order. Perhaps a function like HYP_Input.GetKey, that returns which key the user pressed (or nil if no key was pressed). If the user pressed more than 1 key during a single frame (can happen if the user is typing and the framerate is low) then you could call HYP_Input.GetKey again to get the next keystroke, and repeat until it returns nil (all keystrokes processed). So Demoniak would probably need to keep a FIFO queue of keystrokes from which this function reads, one keystroke at a time. If this causes too much overhead, maybe a function can be added to enable/disable keystroke queueing. The reason for this feature is because I'd like to be able to add some simple user interface elements (using HUDs, HYP_Input and HYP_DrawText etc). You can already to a lot with HYP_Input.IsKeyboardKeyPressed and mouse clicks etc. But the only way to query keystrokes right now, AFAIK, is by calling HYP_Input.IsKeyboardKeyPressed for *every* possible key, and in *every* frame. There has to be a better way ;D For example wouldn't it be cool to add some sort of "console" where the user can type script commands, or a simple editbox where the user can type scripts or notes or whatever. With a little Lua programming, this should be possible (I intend to do this). This could also be a very useful tool for debugging or interactive experimentation.


Cheers!
« Last Edit: May 14, 2008, 09:59:09 AM by Murmandamus »

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2385
    • oZone3D.Net
Re: Draft of my Wishlist :-)
« Reply #1 on: May 14, 2008, 12:14:12 PM »
So please only take my wishlist as ideas that I have, and do with them (or ignore them) as you like :transpi:
That's the aim of this wishlist: a place where demoniak3d's users can write ideas, what they like, what they don't like, on so on...


1: Ability to change friction of physics bodies. Maybe something like a "physics material" (other existing properties like damping, skin thickness or default density values could also be part of this material definition). Then you can add this material definition to any (one or multiple) physics actor, and that will set the correct values.
HYP_Material.SetStaticFriction and the others should do the job. If they shouldn't, that means there's a bug...


2: Ability to disable default escape key behaviour. Currrently, AFAIK, the escape key always quits the Demoniak3D app, and is the only key that cannot be redefined.
Okay, I will look at this feature.


3: Ability to sync/unsync physics simulation time with real time. Unless I'm doing something wrong (see my questions thread) the "simulation time" is always running as fast as possible, i.e. not synchronized to "real-world time".
Yes, simulation time isn't well managed. Maybe with the new NVIDIA SDK, I'll do better. Anyway, it's on my endless-todolist.


4: Ability to query keystrokes in FIFO order. Perhaps a function like HYP_Input.GetKey, that returns which key the user pressed (or nil if no key was pressed). If the user pressed more than 1 key during a single frame (can happen if the user is typing and the framerate is low) then you could call HYP_Input.GetKey again to get the next keystroke, and repeat until it returns nil (all keystrokes processed). So Demoniak would probably need to keep a FIFO queue of keystrokes from which this function reads, one keystroke at a time. If this causes too much overhead, maybe a function can be added to enable/disable keystroke queueing. The reason for this feature is because I'd like to be able to add some simple user interface elements (using HUDs, HYP_Input and HYP_DrawText etc). You can already to a lot with HYP_Input.IsKeyboardKeyPressed and mouse clicks etc. But the only way to query keystrokes right now, AFAIK, is by calling HYP_Input.IsKeyboardKeyPressed for *every* possible key, and in *every* frame. There has to be a better way ;D For example wouldn't it be cool to add some sort of "console" where the user can type script commands, or a simple editbox where the user can type scripts or notes or whatever. With a little Lua programming, this should be possible (I intend to do this). This could also be a very useful tool for debugging or interactive experimentation.
Okay, I will look at how to improve keyborad management.  Demoniak3D v2.x has a console where you can enter LUA (and another cool scripting language...) commands.



Murmandamus

  • Thug
  • *
  • Posts: 20
Re: Draft of my Wishlist :-)
« Reply #2 on: May 14, 2008, 12:49:33 PM »
Great! You're way ahead of me :med:


HYP_Material.SetStaticFriction and the others should do the job. If they shouldn't, that means there's a bug...
Ah! I didn't see those before. :oops:


By the way, is there any chance that Demoniak will one day support things like fluids and bouyancy? I know the PhysX engine supports it (and other cool things like cloth and softbodies), but I don't know how easy/hard it would be to integrate into Demoniak.

Cheers!

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2385
    • oZone3D.Net
Re: Draft of my Wishlist :-)
« Reply #3 on: May 15, 2008, 08:06:13 AM »
I try to limit the amount of work in the current version of Demoniak3D to focus my effort on the new branch (read v2.x). I hope to put all cool things of PhysX in the new version. But if I can add a new small feature (read short development time) in the current version, I'll do it.

Murmandamus

  • Thug
  • *
  • Posts: 20
Re: Draft of my Wishlist :-)
« Reply #4 on: May 15, 2008, 10:32:26 AM »
Makes sense. Cheers!