Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

12046 Posts in 1593 Topics- by 595 Members - Latest Member: KeelmHaxabefe

18. May 2013, 10:51:07 pm
Xith3D CommunityProjectsYour Projects (Moderator: 'n ddrylliog)Population Genetic Evolution Program
Pages: [1]
Print
Author Topic: Population Genetic Evolution Program  (Read 2902 times)
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« on: 18. January 2007, 04:35:47 pm »

I have a practical work to do for school and I thought.. well, why not develop something ?

So here is the first screenshot.



Small creatures named "Digibots" (rubbish name, I know  Smiley ) evolve in an environment where apples and coca-cola cans periodically appear. When they have nothing to do, they wander around. When they're hungry, they search food. When they're not hungry, they search to copulate, which they often succeed to do  Grin In this case, the DNA of the "father" and of the "mother" are combinated to give birth to a "children".
For now, the DNA is really simple, there are three genes, controlling obesity, deplacement mode (wheels or legs), and mortal sickness.

OH, and it uses Xith3D. Of course Cheesy I was amazed at how fast it was to create such an app with Xith3D, thanks to all the methods Qudus, others, and I have been implementing last months.

So great, thanks all, and let's continue !
Logged
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« Reply #1 on: 18. January 2007, 04:37:47 pm »

Note : Technology Featured :
- Billboards (ex : apple and coca-cola cans, sky and sun)
- Custom terrain code
- OBJ loader (digibots)
- FloatAdjuster and MemberLink use for camera control (really really easy coding, a few lines and it's done !)
- HUD for title, copyright and stats...

In the screenshot, the population has stabilized with ~1200 digibots, with still reasonable FPS... cool !
Logged
Marvin Fröhlich
Xith Lord
Administrator
Guru
*****
Offline Offline

Posts: 4403


May the 4th, be with you...


View Profile
« Reply #2 on: 18. January 2007, 06:00:19 pm »

Looks cool Smiley.
Logged
khangharoth
Enjoying the stay
*
Offline Offline

Posts: 67


View Profile Email
« Reply #3 on: 31. January 2007, 06:28:23 am »

whow this looks really cool
Logged
William Sellick
Just dropped in

Offline Offline

Posts: 9


View Profile Email
« Reply #4 on: 31. January 2007, 11:48:03 pm »

Wow... that looks really good. Well done
Logged
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« Reply #5 on: 02. February 2007, 04:17:44 pm »

Thanks all Smiley

(Note : I'm also working on a massive networked strategy game, Stratagem, but that'll be for later  Smiley it's looking pretty nice also (thanks artists !))
Logged
kukanani
Fierce Warrior
****
Offline Offline

Posts: 504


My game is coming along fairly smoothly...


View Profile WWW
« Reply #6 on: 04. February 2007, 06:17:48 pm »

Oh, you're the one making Stratagem?  Cool, I think it looks awesome in the screenshot.
Logged

xith.setCoolnessLevel(10);
jMe.setCoolnessLevel(0);
xith.rock();
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« Reply #7 on: 04. February 2007, 06:33:40 pm »

Oh, you're the one making Stratagem?  Cool, I think it looks awesome in the screenshot.
Thanks Smiley Unfortunately I haven't too much time to work on it.. :-/
Logged
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« Reply #8 on: 01. March 2007, 08:33:42 pm »

OYÉ OYÉ everyone !

Digibots is now available on SVN !! What you've always been waiting for !!

Please check it out (if you're interested, which I bet you're..) here :
https://digibots.svn.sourceforge.net/svnroot/digibots
(module digibots)

Also, check the wonderful sourceforge page !! : http://sourceforge.net/projects/digibots

Could we say it's an example of *good coding with Xith3D* ? Yeah maybe. It's to Marvin to judge that.

Now listen : are you spanish, bosniac, yugoslavian, romanian, italian, german ? DO YOU WANT TO TRANSLATE DIGIBOTS Huh Well, it's possible !! Just check out the whole thing, go in the org.digibots.i18n package, copy the "messages_EN.properties" file to e.g. "messages_ES.properties" and just translate every single message !

The future spanish, bosniac, yugoslavian, romanian, italian, german users of Digibots all thank you very much Smiley
Logged
'n ddrylliog
Moderator
Guru
*****
Offline Offline

Posts: 1188



View Profile WWW Email
« Reply #9 on: 01. March 2007, 09:46:05 pm »

Note : Marvin notified me that infact I have a special JOODE version that isn't yet on SVN.

Here it is : http://www.upitus.com/download.php?file=85e28459

Enjoy !
Logged
Marvin Fröhlich
Xith Lord
Administrator
Guru
*****
Offline Offline

Posts: 4403


May the 4th, be with you...


View Profile
« Reply #10 on: 01. March 2007, 11:37:20 pm »

Could we say it's an example of *good coding with Xith3D* ? Yeah maybe. It's to Marvin to judge that.

Oh, that's hard to tell Smiley. It's really a nice design.

Here are some suggestions, that I would change to use some more features of the engine (actually of the toolkit), to tune things a little bit, and to get some things a bit cleaner:

  • The Canvas3D instance is unnecessarily stored class-global (only used in the constructor of Application).
  • You should not use this "firstTime" boolean and check it each iteration. Instead you could implement a little CanvasCorrector class, which extends ScheduledOperationImpl (not persistent). This is then initially added to the OperationScheduler and is therefore only handled once.
  • The same for "shouldAsk".
  • Instead of providing a getter for the Xith3DEnvironment, I would provide separate getters for getSceneGraph() (returns the Xith3DEnvironment itself), getOperationScheduler(), getAnimator(), getInputManager(), etc. In your case some of them are alread awailable bacause of the RenderLoop inheritance. This is how I meant it to be used, and I suppose this is what your sentense above was aming at. Xith3DEnvironment is just an implementation of the SceneGraph interface and additionally provides access to the OperationScheduler, etc.
  • You don't need to extend InputAdapterRenderLoop. RenderLoop is sufficient.
  • You should consider making CameraMover an InputHandler implementation (like FirstPersonInputHandler).
  • I would move the HUD instance from Application to UI.
  • I would always separate the main method from the main Application class (just a personal taste). This way you can provide more than one main method for special needs in a clean way. And the Application class does not belong to the deployment package, where the main method hosting class does belong to.
  • The Models should get their resource locations from the ResourceLocator, but not hardcodedly from the filesystem. Even better would be to use ResourceBag. I'm currently writing an example for ResourceLocator+ResourceBag+LoadingScreen.
  • You don't need to use the setPickableRecursive(true) anymore, since the (overall) default for pickable is true.
  • You're doulbe-scheduling the picking in DigibotInfo. You don't need to store the x and y coordinates. That's what the scheduled picking is there for. And it is anyway wrong to set the stored x,y coordinates in onMouseMoved(). Consider the worst case and a use only has one frame per second. then he picks a point and moves the mouse. When the picking is actually done, the last mouse positions are used, but not the ones actually picked at. Of course this effect is less noticable the more fps you have.
    Also note, that the onObjectPicked() method is already executed from the render thread (if scheduled picking is used, as you do) and is therefore thread save. You don't need to extra-schedule the digibot deselection.
  • I will add a button-info to the PickResult. It will be present when you find this tomorrow. So no need to store the button class-globally.
  • You're only interested in the nearest picking. So you can use NearestPickListener instead of PickListener.

I hope, this helps you and that it is useful for you.

Marvin

PS: I was not able to run the game, because you seem to have forgotten to commit the "data/Digibot-Roues.obj" model file.

EDIT: The button info is added to the picking system. Remeber, that you can always pass an additional userObject to all the pick methods, that you can check in the onObjectPicked() method.
« Last Edit: 02. March 2007, 01:14:34 am by Marvin Fröhlich » Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic