Jump to content


Photo

Extremephysics - 2d Physics Engine For Game Maker


  • Please log in to reply
1138 replies to this topic

#101 posva

posva

    GMC Member

  • New Member
  • 610 posts

Posted 08 January 2010 - 11:21 AM

i tested that again(the example on the first page) on my windows 7 64 bit and it doesn't worked O.O, it said failed to initialize...
  • 0

#102 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 08 January 2010 - 11:24 PM

i tested that again(the example on the first page) on my windows 7 64 bit and it doesn't worked O.O, it said failed to initialize...

Thanks for testing, I will try to fix this when I have a windows 7 64 bit PC I can use :P.

Anyway, I have finished part of the DLL (world, body, shape) so I was able to do some tests. The results are incredible: With the old version I got 35 fps for 1000 bodies, now I get 40 fps for 1500 bodies! And if I disable debugdraw it's over 60 fps! Looks like my Radix Sweep-And-Prune broad-phase is working :P. It would probably be even higher if I disabled the sleeping system but I'm not going to do that. I will do some more tests with GCC instead of VC++ to see if VC++ is really faster.

EDIT: GCC was slightly slower but it's almost unnoticeable. I will continue to use VC++. The DLL is 175kb now :(.

Edited by Maarten Baert, 08 January 2010 - 11:36 PM.

  • 0

#103 jwheeler

jwheeler

    GMC Member

  • New Member
  • 250 posts

Posted 09 January 2010 - 03:53 PM

wow, awsome.

what specs of computer are you running on?
  • 0

#104 theludicrous

theludicrous

    GMC Member

  • New Member
  • 241 posts

Posted 09 January 2010 - 06:23 PM

i tested that again(the example on the first page) on my windows 7 64 bit and it doesn't worked O.O, it said failed to initialize...

Thanks for testing, I will try to fix this when I have a windows 7 64 bit PC I can use :(.

Anyway, I have finished part of the DLL (world, body, shape) so I was able to do some tests. The results are incredible: With the old version I got 35 fps for 1000 bodies, now I get 40 fps for 1500 bodies! And if I disable debugdraw it's over 60 fps! Looks like my Radix Sweep-And-Prune broad-phase is working :mellow:. It would probably be even higher if I disabled the sleeping system but I'm not going to do that. I will do some more tests with GCC instead of VC++ to see if VC++ is really faster.

EDIT: GCC was slightly slower but it's almost unnoticeable. I will continue to use VC++. The DLL is 175kb now :P.


I cant wait :P
  • 0

#105 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 09 January 2010 - 09:38 PM

Intel Core2Duo 2.5GHz (only one core is used though), NVidia GeForce 8600M GT.

I have rewritten all the collision detection code and apparently almost all of them (except circle-circle and box-circle - yay) have some bugs now :P. I managed to get box-box, box-circle, box-poly and circle-circle working, I'm still working on circle-poly and poly-poly.

To do list:
- fix collision code
- more debug draw
- better iterative solver
- hinge joints
- forces
- views
- contacts
- some less important functions (next, previous, nextconnected, uservars, ...) for all types

EDIT:
1500 circles - 40 fps
1000 boxes - 50 fps
1000 polygons (4 vertices) - 48 fps
It's clearly a lot faster than the previous version ;).

Edited by Maarten Baert, 09 January 2010 - 10:50 PM.

  • 0

#106 jwheeler

jwheeler

    GMC Member

  • New Member
  • 250 posts

Posted 10 January 2010 - 12:02 AM

hi, thats sounds amazing. shame about the collision problems. but problems are expected in all software development right? lol.

really looking forward to your next release. Are planning to do multi core in the future? (long term question, sorry...)
  • 0

#107 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 10 January 2010 - 02:37 PM

hi, thats sounds amazing. shame about the collision problems. but problems are expected in all software development right? lol.

really looking forward to your next release. Are planning to do multi core in the future? (long term question, sorry...)

The collision bugs have been fixed. So far everything seems to work.

I don't think multithreading is possible. The simulation is almost impossible to parallelize. I could use thread for ExtremePhysics and another one for Game Maker, but I don't think it would make a huge difference because it would require a lot of extra code and lots of locks to avoid race conditions.

Some more test results:
1600 circles - 34 fps, 66 fps without debug drawing.
1600 boxes - 31 fps, 64 fps without debug drawing.
1600 polygons (5 vertices) - 29 fps, 63 fps without debug drawing.
  • 0

#108 posva

posva

    GMC Member

  • New Member
  • 610 posts

Posted 10 January 2010 - 02:42 PM

so, you will release next version very soon right =P? i will try on 64 bits if you wish ( windows 7 ultimate)
  • 0

#109 stoffe9522

stoffe9522

    GMC Member

  • GMC Member
  • 595 posts

Posted 10 January 2010 - 03:25 PM

man, your engine is so f*cking awesome that i think i'm going to start a game with it, you will get MUCH MUCH credits if i ever start a game and uses this engine ;)
i LOVE that water simulation btw, but if you make a small pool of water, the water stacks up into a water pile...you think you can fix that? otherwise, this engine is a dream :DD
  • 0

#110 jwheeler

jwheeler

    GMC Member

  • New Member
  • 250 posts

Posted 10 January 2010 - 05:32 PM

what is debug drawing?
  • 0

#111 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 10 January 2010 - 05:53 PM

man, your engine is so f*cking awesome that i think i'm going to start a game with it, you will get MUCH MUCH credits if i ever start a game and uses this engine ;)
i LOVE that water simulation btw, but if you make a small pool of water, the water stacks up into a water pile...you think you can fix that? otherwise, this engine is a dream :DD

Thanks :P.
Water simulation is always very difficult. You can try to make it look more realistic by using smaller objects but it's almost impossible to simulate 'real' water in real-time.

what is debug drawing?

It's a system I use to make debugging easier. It uses the GMaker library to call GML functions like draw_set_color, draw_line and draw_rectangle directly from the DLL. When you call a function like ep_debugdraw_bodies, the DLL will draw all bodies in your world using draw_line. There are also some functions that show contacts and joints. This is very useful when debugging a game that uses ExtremePhysics: sometimes the simulation looks very strange but you have no idea why (for example when you selected the wrong polygon). It is very difficult to find out what's wrong without debug drawing, it would look like a bug in the DLL.

Edited by Maarten Baert, 16 January 2010 - 09:14 PM.

  • 0

#112 Topaze22

Topaze22

    GMC Member

  • GMC Member
  • 58 posts

Posted 15 January 2010 - 10:08 PM

I will use your engine with my 4 years old projet Mario as soon as it can work with Windows7pro64bits ^^
I have the same laptop as you and your benchmark just mean that your created the most efficient physic système for GameMaker :P
  • 0

#113 jwheeler

jwheeler

    GMC Member

  • New Member
  • 250 posts

Posted 18 January 2010 - 10:48 PM

oo. two weeks lol. probs gunna be three tho lol
  • 0

#114 Topaze22

Topaze22

    GMC Member

  • GMC Member
  • 58 posts

Posted 20 January 2010 - 10:35 AM

Yep, the first engine I trust it's nearly finished, isn't it ?
  • 0

#115 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 21 January 2010 - 11:09 PM

A bit faster than expected ...

ExtremePhysics 2.0 beta released! The link is in the first post.
  • 0

#116 theludicrous

theludicrous

    GMC Member

  • New Member
  • 241 posts

Posted 22 January 2010 - 01:37 AM

A bit faster than expected ...

ExtremePhysics 2.0 beta released! The link is in the first post.

Hooray!

Ill be sure to report any bugs
  • 0

#117 posva

posva

    GMC Member

  • New Member
  • 610 posts

Posted 22 January 2010 - 04:32 PM

yeah, very good job, i tested it (windows 7 64 bits) and this is what i get:
error on testbed.gmk when clicking at debug and at release, the default works well, everything works quite well and fast, it's brilliant!!
oh, and you used highspeed resolution timer, it may be this the source of the errors

i can send you any statistics if you wish (screenys)
  • 0

#118 Maarten Baert

Maarten Baert

    GMC Member

  • GMC Member
  • 714 posts
  • Version:GM8.1

Posted 22 January 2010 - 04:42 PM

error on testbed.gmk when clicking at debug and at release

That's because you don't have the debug and release DLL's :P. The error ('error defining an external function') means the DLL could not be found.
  • 0

#119 Tuz

Tuz

    GMC Member

  • New Member
  • 106 posts

Posted 22 January 2010 - 05:44 PM

There is no function to set body's rotation?
EDIT: oh you hid the rotation set to ep_body_set_position function. Good to know...

Otherwise it seems perfect. :P

Edited by Tuz, 22 January 2010 - 06:53 PM.

  • 0

#120 wargasm

wargasm

    GMC Member

  • GMC Member
  • 189 posts

Posted 22 January 2010 - 06:19 PM

Oh yesssss, brilliant. This was a nice surprise, and 4 times as fast?:P. Thanks for the release. However, when I open the GMK files (GM8 Pro, Win 7 Ultimate 64bit) I get the following errors.

With engine_example.gmk and fluid_simulation.gmk - "Cannot find extension package: ExtremePhysics 2.0 beta"
testbed.gmk - "Cannot find extension package: High Resolution Timer"
  • 0




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users