Author Topic: Just suggestions.  (Read 5468 times)

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
Just suggestions.
« on: December 26, 2004, 04:58:03 am »
Well, I think that the engine is great, but should support more kinds of textures and maps, no only placing a file.jpg as a color, but also having bump, opacity, etc. all the features that are placed on the models when making them in whatever software like 3d Studio Max. On that way more realistic Graphics can be used on games or any other application. Especially the reflection and the opacity. What would be really great is supporting moving textures that may be great for water or the sky.
Nada por ahora

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
The collision detection
« Reply #1 on: December 26, 2004, 05:55:29 am »
The collision detection methods implemented on the engine clases should be more intuitives to use, and should be possible to get information from them.
For example a boolean method called Collide from a method called Collision would be great for using it on the Object3D

Object3D Ball=new .....;
if (Ball.Collision.Collide (up, 1)==false) Ball.move (up);

So Collide may recieve the direction or a Simplevector and the distance to check, that would be very helpfull. Another usefull method may be CollidedWith () from Collision that returns the Object3D from wich collide or a boolean to check. For example:

boolean allowed;
Object3D White_Ball=new........
Object3D Black_Ball=new........
if (White_Ball.Collision.CollidedWith (Black_Ball)==true)
--------allowed=true;
--------DoMovement (White_Ball, Black_Ball);
if (White_Ball.Collision.CollidedWith (Black_Ball)!=true)
--------allowed=false;
--------System.out.println ("Error: movement not allowed");

or

//The player class

public class Player {
----int life=100;
----Object3D foot;
----Object3D fist;
----Object3D etc;
etc.
etc.
etc.
----public void setLife (Object3D part) {
--------if (part==foot) life-=20;
--------if (part==fist) life-=10;
--------if (part==null) life-=0;
----}
}


//inside the game class
boolean action;
Player Mel=new Player (...,..., etc.);
Player ssj5=new Player (...,..., etc.);
if (action==true) {
----Mel.setLife (ssj5.body.Collision.collidedWith ());
----ssj5.setlife (Mel.body.Collision.collidedWith ());
}



Another  suggestion  with  the  collision  detection  is  for  the  camera, for   example   a   boolean   method   called
SphereCollide (SimpleVector or a direction, float radius). For example:

Camera cam_1=new.....;
if (cam_1.SphereCollide (up, 5)==false)
----cam_1.move (up);
else {
----//whatever
}
Nada por ahora

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
useless complexity
« Reply #2 on: December 26, 2004, 06:16:41 am »
Reviewing the documentation I found some fields and methods that I think are repeated but with differents names, making the engine a useless complexity engine  :shock:

for example:

Object3D --> BILLBOARDING_DISABLED
and
Object3D --> BILLBOARDING_ENABLED

may be a boolean called BILLBOARDING, so the user can set it into true or false

both are booleans, seting the secong one into false means setting the first one into false.

Object3D --> BLENDING_ENABLED
and
Object3D --> BLENDING_DISABLED

may be a boolean called BLENDING so the user can set it into true or false

Object3D --> BUMPMAPPING_ENABLED
and
Object3D --> BUMPMAPPING_DISABLED

may be a boolean called BUMPMAPPING, so the user can set it into true or false

etc.


If I understood bad the documentation it means that the documentation is not well explained, and if I understood it well it means that the engine is being more complex that what is needed.
Nada por ahora

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
Just suggestions.
« Reply #3 on: December 26, 2004, 06:50:14 am »
The examples that came with the engines are awesome but difficult to understand especially the car one, and even more for non experienced programmers and even even more more for non English speakers. I think that the examples should be more simples and well documentated, for example is better 6 very simple examples that 1 very complex.

I think that the examples included on the engine should be for 2 reasons: one is helping the newbies like me to get started easily, and the other one is showing the power of the engine.

So the examples should do specific things like:

Loading a map

Just switching between SW renderer and Open gl

A collision detecttion between 2 primitives objects

and finally the 2 examples using what was learned before and showing how to use it.

Actually the examples are greats and very impresives but also a kind of messy, like if they were written in C++ and passed to java, the code is not well organized, functions like gameloop and domovement should be distributes in others more organized functions making it more obvius to see what is happening there.

Please dont get upset  :x  E. Olsen. I think you are doing a great great great work here, and your examples looks very nice, but they are not for learning.  :?
Nada por ahora

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
Just suggestions.
« Reply #4 on: December 26, 2004, 06:50:57 am »
I made those suggestions not for trying to make everything easy for me, but for making the engine more intuitive and easy to learn, if the code is easy to learn and understand, the programmers are able to do greater things, An example is "java" and "turbo C++", java has a more intuitive and easier way to handle objects and Graphics thats why I prefer using java, is powerfull and simple; but java lost a lot of flexibility, but if not java would be even better.

Is the same with the engine becausse, All those news fields, methods, etc is like an another programming languaje with the same structure, and now I think its difficult to begin learning it.
Nada por ahora

Offline Melssj5

  • double
  • *****
  • Posts: 715
    • View Profile
Just suggestions.
« Reply #5 on: December 26, 2004, 07:01:22 am »
The web page is very well designed, but the forums should have support for other language Speakers, of course that E. Olsen wouldnt be able to answer everything as he is doing now, in fact he is the only one that answer my newbies quetions and all the questions from everybody (Great job   :P ), but being able to get replies in an own languaje would be very usefull, I say so becausse for me is a kind of difficult to understand everything on the forums, becausse of the tech terms used, that is not learned on the shool. A solution may be getting information about what language speaks all the registered people so it will be possible to ask certain things ro certain people.  :oops:
Nada por ahora

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11770
    • View Profile
    • http://www.jpct.net
Re: The collision detection
« Reply #6 on: December 26, 2004, 12:47:22 pm »
Quote from: "Melssj5"
The collision detection methods implemented on the engine clases should be more intuitives to use, and should be possible to get information from them.
You can get all the information you want by implementing the CollisionListener interface and attaching your CollisionListener to the objects in question.
Furthermore, don't judge collision detection on the ray-polygon-methods you are currently using...they are oooolllldddd. The spherical and elliposoid methods will give you a corrected SimpleVector that you can apply to you moving entity directly to avoid a collision.

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11770
    • View Profile
    • http://www.jpct.net
Re: useless complexity
« Reply #7 on: December 26, 2004, 12:52:46 pm »
Quote from: "Melssj5"
Reviewing the documentation I found some fields and methods that I think are repeated but with differents names, making the engine a useless complexity engine  :shock:

If I understood bad the documentation it means that the documentation is not well explained, and if I understood it well it means that the engine is being more complex that what is needed.
You've got that wrong...an uppercase field in Java usually is final static, i.e. it is a constant. You can't change them. They are for being feeded into the appropiate methods. For example setBumpmapped(BUMPMAPPING_ENABLED) or setBumpmapped(BUMPMAPPING_DISABLED). Of course, they are not needed in this case...you could simply use true/false, but it that will even change, you just have to recompile in the former and refactor in the latter case.
Have a look at your other thread about collision detection to see, why using constants is a good thing... :wink: