Performance for Video Games(Woden Video)
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg . Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU. In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU. Please, pay a close attention to the FPS count. BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it. Greetings, Ronie Salgado
Very nice! Will you be showing some of these at ESUG? Doru On Fri, Jun 13, 2014 at 5:16 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
-- www.tudorgirba.com "Every thing has its own flow"
This is very good. As Doru said, please show something at Esug. 3D graphics are always very nice to show. 2014-06-13 6:51 GMT+02:00 Tudor Girba <tudor@tudorgirba.com>:
Very nice!
Will you be showing some of these at ESUG?
Doru
On Fri, Jun 13, 2014 at 5:16 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
-- www.tudorgirba.com
"Every thing has its own flow"
cool :) using OSWindow and SDL2, I suppose? how can I play with that? cheers, Esteban On 13 Jun 2014, at 00:16, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
Currently this only works on Windows and Linux. I will borrow a mac laptop to Ronie to do the port to OSX⦠Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. On Jun 13, 2014, at 5:42 AM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
cool :) using OSWindow and SDL2, I suppose? how can I play with that?
cheers, Esteban
On 13 Jun 2014, at 00:16, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
This is impressive stuff. I have seen this running, it is smooth like hell. Strange that this feel a bit sluggish in the video. When Ronie demonstrated this to me it was smooth smooth smooth. I am really happy to see this happening. Performance exhibited by OSWindow and Woden are remarkable. It may very well be that the future of Roassal is on this. Ronie will be at ESUG, and yes, he will be happy to demonstrate this. Go go go Ronie! Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. On Jun 12, 2014, at 11:16 PM, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
I think its awesome that you try to make a 3d game engine for Pharo. I know its not an easy task by a long mark, its tons of hard work to have something reliable. Thank you for your efforts and if you want a beta tester I will be more than happy to help you. Saying that I am highly skeptical . There is a reason why 3d engines rarely become popular in dynamic languages. Performance. Same reason why C/C++dominate 3d graphics and audio synthesis. I agree that sending things to GPU will greatly boost performance for Pharo not just for Graphics but for all sort of things. CUDA and OpenCL can be used for loads of different computations and a good modern GPU can offer 8 times the performance of a good CPU. On the other hand having a good 3d game engine for Pharo is a thousand times better than not having such a thing at all. So keep rocking :) On Fri, Jun 13, 2014 at 6:16 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
using OSWindow and SDL2, I suppose?
Yes, I am.
how can I play with that?
In the video description a put a link to my page of OSWindow, in which I have an outdated Woden image. Using Monticello with that image it should be possible to use the latest version. I think its awesome that you try to make a 3d game engine for Pharo. I know
its not an easy task by a long mark, its tons of hard work to have something reliable. Thank you for your efforts and if you want a beta tester I will be more than happy to help you.
By using some libraries such as Bullet for physics, OpenAL for 3D audio it is not too much work. For generating the Bullet binding I will be using Swig (the binding generator). For music, libogg and libvorbis. It is not too much. In the end, our biggest concern is rendering and game logic, Saying that I am highly skeptical . There is a reason why 3d engines rarely
become popular in dynamic languages. Performance. Same reason why C/C++dominate 3d graphics and audio synthesis.
Static compiler optimizations that provides a deterministic runtime performance and lack of modern system programming languages such as D. Their great advantage is in their support for primitive types, which have a well defined memory layout and accesses. Currently, we can do that kind of stuff by using NativeBoost, but it is very hard to use. We will see about this problem in his due time. 2014-06-16 4:13 GMT-04:00 kilon alios <kilon.alios@gmail.com>:
I think its awesome that you try to make a 3d game engine for Pharo. I know its not an easy task by a long mark, its tons of hard work to have something reliable. Thank you for your efforts and if you want a beta tester I will be more than happy to help you.
Saying that I am highly skeptical . There is a reason why 3d engines rarely become popular in dynamic languages. Performance. Same reason why C/C++dominate 3d graphics and audio synthesis.
I agree that sending things to GPU will greatly boost performance for Pharo not just for Graphics but for all sort of things. CUDA and OpenCL can be used for loads of different computations and a good modern GPU can offer 8 times the performance of a good CPU.
On the other hand having a good 3d game engine for Pharo is a thousand times better than not having such a thing at all. So keep rocking :)
On Fri, Jun 13, 2014 at 6:16 AM, Ronie Salgado <roniesalg@gmail.com> wrote:
I am working on making a video game engine in Pharo. Recently added a FPS counter and recorded some samples: http://youtu.be/-2ida5Q1mbg .
Lets say I was quite surprised, so I have yet a lot more to optimize, but a good trick seems to be making some computation in the GPU.
In this video, I show 6 early examples. The water example is still incomplete, missing reflection/refractions, but it shows what happens when I compute the water waves using a shader in the GPU.
Please, pay a close attention to the FPS count.
BTW, it feels slow because of the screen capture and the tearing is there because I haven't enabled vsync, but I have support for it.
Greetings, Ronie Salgado
Ronie Salgado wrote
In the video description a put a link to my page of OSWindow, in which I have an outdated Woden image. Using Monticello with that image it should be possible to use the latest version.
Might I suggest a Metacello configuration ;) Teasing us with an amazing video... then providing no easy way to play ourselves... is just cruel ha ha! ----- Cheers, Sean -- View this message in context: http://forum.world.st/Performance-for-Video-Games-Woden-Video-tp4762913p4764... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Ronie Salgado wrote
I am working on making a video game engine in Pharo
Awesome :) ----- Cheers, Sean -- View this message in context: http://forum.world.st/Performance-for-Video-Games-Woden-Video-tp4762913p4763... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
Awesome, and the word is still below what I feel when I see Ronnie's demo Alexandre
Le 19-06-2014 à 8:27, "Sean P. DeNigris" <sean@clipperadams.com> a écrit :
Ronie Salgado wrote
I am working on making a video game engine in Pharo
Awesome :)
----- Cheers, Sean -- View this message in context: http://forum.world.st/Performance-for-Video-Games-Woden-Video-tp4762913p4763... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.
participants (7)
-
Alexandre Bergel -
Clément Bera -
Esteban Lorenzano -
kilon alios -
Ronie Salgado -
Sean P. DeNigris -
Tudor Girba