digitalmars.D.announce - OpenGL Examples in D and a birth of a New Initiative
- Andrej Mitrovic via Digitalmars-d-announce (41/41) May 14 2014 I am starting an initiative for everyone interested in D game
- Dicebot (7/17) May 15 2014 I think it is a very good initiative to start creating community
- Andrej Mitrovic via Digitalmars-d-announce (4/9) May 16 2014 Yeah. I plan on writing some blog posts as well to get things going.
- Colden Cullen (11/11) May 19 2014 This is such a great effort to see! I’m currently the lead engine
- Andrej Mitrovic via Digitalmars-d-announce (10/11) May 19 2014 I'm liking the enthusiasm!
- Kiith-Sa (8/24) May 19 2014 Box2D would be awesome. I'm about to start a project that would
- Colden Cullen (4/10) May 19 2014 Oh you made D:YAML? I personally would like to thank you for
- Kiith-Sa (6/17) May 19 2014 Is performance not a problem so far?
- Colden Cullen (5/10) May 19 2014 No, not at all. Aside from the debug-only auto reloads, which
- Andrej Mitrovic via Digitalmars-d-announce (7/11) May 19 2014 Excellent. Expect the port to be done within a day or two. I just have
- francesco cattoglio (7/14) May 20 2014 Port? Or wrap? Because 10K in < 10 hours feels crazy. Even worse
- Andrej Mitrovic via Digitalmars-d-announce (15/20) May 20 2014 I think after all I might just be remembering it wrong. And in fact
- Andrej Mitrovic via Digitalmars-d-announce (6/9) May 21 2014 Btw I've added a memory-management section now, in case you ever run
- Andrej Mitrovic via Digitalmars-d-announce (7/9) May 19 2014 In the meantime here's a teaser:
- Andrej Mitrovic via Digitalmars-d-announce (9/12) May 21 2014 FYI the initial port is hosted online now, although I'm still cleaning
- Vova616 (6/24) May 21 2014 Whoa you are awesome, I will use it with my experimental engine
- Andrej Mitrovic via Digitalmars-d-announce (3/7) May 21 2014 Cool stuff, will have a look later!
- Andrej Mitrovic via Digitalmars-d-announce (15/16) May 19 2014 For a second there I thought Dash was a 2D game engine, but it's a 3D
- Colden Cullen (10/35) May 19 2014 Good to hear about Box2D! We just had someone approach us about
- ponce (3/8) May 19 2014 This might be of interest then:
- Colden Cullen (4/6) May 19 2014 That's pretty cool! It doesn't appear (from the wording, at
- Ben Boeckel via Digitalmars-d-announce (5/9) May 19 2014 Derelict has a module[1] for ODE[2].
- Andrej Mitrovic via Digitalmars-d-announce (5/6) May 19 2014 I've heard about ODE but I'm not sure about the state it's in these
I am starting an initiative for everyone interested in D game development by creating the github organization d-gamedev-team[1]. The first project hosted here is the the freshly created opengl-tutorials[2] project. This is a long-term project that aims to collect as many modern OpenGL examples ported to D or even provide new examples created from scratch in D. All the examples should be easy to build, provided you have a fresh D compiler and a recent version of the dub[3] dependency manager / builder tool. Currently the project contains an almost-complete port of the samples contained on the website opengl-tutorial.org[4] - which cover OpenGL v3.3x and were created by Sam Hocevar. The D examples are not straight ports, they have been D-ified and may contain more features than their original counterparts. They also use 3rd-party D OpenGL wrappers to avoid a lot of scaffolding work typical of OpenGL applications. Thanks to dub[3] you won't have to manually install the D dependencies. However you may have to install some C/C++ 3rd-party library dependencies, such as GLFW, SDL2, SDL2 Image, and potentially other libraries depending on the ones the samples require. The dependencies are documented in the project's readme[5]. Additional OpenGL example ports are planned and some are already in progress but have not yet been pushed upstream. See the opengl-tutorials[2] github repo for a list of ports which are in progress and a list of desired ports. If you wish to contribute with your own ports or with brand new D OpenGL examples don't hesitate to make a pull request. I want the d-gamedev-team organization to gradually grow and have it host as many useful projects, whether it be libraries, tools, tutorials, tips & tricks, assets, or anything else related to D game development. I am strongly interested in game development in D, and although I'm at a starting stage I'm very much committed to working on this project to the best of my abilities. Hopefully in a few years we'll see some major titles made entirely in D. But before that can happen we have to make a collective push to bring D to a higher stage where it's acceptable and viable to game developers, whether it be through language support ( nogc/allocators) or library and tooling support. We'll see where this goes, but I'm very excited for the future! Cheers. :o) [1] : https://github.com/d-gamedev-team [2] : https://github.com/d-gamedev-team/opengl-tutorials [3] : http://code.dlang.org/download [4] : http://opengl-tutorial.org/ [5] : https://github.com/d-gamedev-team/opengl-tutorials/tree/master/ports/opengl-tutorial.org
May 14 2014
On Wednesday, 14 May 2014 at 19:32:22 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote:I am starting an initiative for everyone interested in D game development by creating the github organization d-gamedev-team[1]. ... [1] : https://github.com/d-gamedev-team [2] : https://github.com/d-gamedev-team/opengl-tutorials [3] : http://code.dlang.org/download [4] : http://opengl-tutorial.org/ [5] : https://github.com/d-gamedev-team/opengl-tutorials/tree/master/ports/opengl-tutorial.orgI think it is a very good initiative to start creating community teams of D hackers interested in specific domains. Can be beneficial for both spreading the information and lobbying needed changes in D/Phobos. Game dev is not my area of interest but I wish you best luck :)
May 15 2014
On 5/15/14, Dicebot via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:I think it is a very good initiative to start creating community teams of D hackers interested in specific domains. Can be beneficial for both spreading the information and lobbying needed changes in D/Phobos.Yeah. I plan on writing some blog posts as well to get things going.Game dev is not my area of interest but I wish you best luck :)Thanks!
May 16 2014
This is such a great effort to see! I’m currently the lead engine programmer at Circular Studios[1], working on the Dash Engine[2]. I just posted some more info about us in D.announce[3]. I think that gfm is super cool, and I can totally see us starting to use that for object oriented wrappers around stuff we’re currently using (FreeImage, AssImp, OpenGL, etc.). We’re definitely interested in contributing anything we can going forward. [1] http://circularstudios.com/ [2] http://github.com/Circular-Studios/Dash [3] http://forum.dlang.org/thread/qnaqymkehjvopwxwvwig forum.dlang.org
May 19 2014
On 5/19/14, Colden Cullen via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:This is such a great effort to see!I'm liking the enthusiasm! Btw, I'm currently porting the Box2D physics engine to D. I've already ported Chipmunk a while ago, but Box2D has its own benefits. E.g. it has continuous collision detection which allows bullet-style physics without worry about physical shapes "disappearing from the screen". Box2D is also a C++ library, whereas Chipmunk is a C library. I'm close to being done. I have some debugging to do and the complete test-suite is almost entirely ported.
May 19 2014
On Monday, 19 May 2014 at 20:44:59 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote:On 5/19/14, Colden Cullen via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA) How do you port 20kloc in 2 days? D:YAML took me months (although it was python w/ some dynamic classes)This is such a great effort to see!I'm liking the enthusiasm! Btw, I'm currently porting the Box2D physics engine to D. I've already ported Chipmunk a while ago, but Box2D has its own benefits. E.g. it has continuous collision detection which allows bullet-style physics without worry about physical shapes "disappearing from the screen". Box2D is also a C++ library, whereas Chipmunk is a C library. I'm close to being done. I have some debugging to do and the complete test-suite is almost entirely ported.
May 19 2014
On Monday, 19 May 2014 at 21:08:25 UTC, Kiith-Sa wrote:Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA) How do you port 20kloc in 2 days? D:YAML took me months (although it was python w/ some dynamic classes)Oh you made D:YAML? I personally would like to thank you for providing us with an awesome library which we use for all non-art data loading. It's been really good to us.
May 19 2014
On Monday, 19 May 2014 at 21:10:02 UTC, Colden Cullen wrote:On Monday, 19 May 2014 at 21:08:25 UTC, Kiith-Sa wrote:Is performance not a problem so far? I did avoid unnecessary allocations but it still does use the GC quite a bit (I plan to eventually change that and add some other optimizations but I'd like std.allocator to be in phobos first and I didn't find it too slow for my own projects yet).Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA) How do you port 20kloc in 2 days? D:YAML took me months (although it was python w/ some dynamic classes)Oh you made D:YAML? I personally would like to thank you for providing us with an awesome library which we use for all non-art data loading. It's been really good to us.
May 19 2014
On Monday, 19 May 2014 at 21:19:12 UTC, Kiith-Sa wrote:Is performance not a problem so far? I did avoid unnecessary allocations but it still does use the GC quite a bit (I plan to eventually change that and add some other optimizations but I'd like std.allocator to be in phobos first and I didn't find it too slow for my own projects yet).No, not at all. Aside from the debug-only auto reloads, which only reload changed files, we only read from the YAML at initialization, which we haven't even thought about optimizing yet. So the short answer is no, it's been plenty fast.
May 19 2014
On 5/19/14, Kiith-Sa via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA)Excellent. Expect the port to be done within a day or two. I just have some runtime bugs to squash.How do you port 20kloc in 2 days?Past experience helps I guess. I ported Chipmunk (10K) mostly over night. I've ported lots of codebases already, so this has become sort of a second-nature to me. :P
May 19 2014
On Monday, 19 May 2014 at 21:39:18 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote:On 5/19/14, Kiith-Sa via Digitalmars-d-announcePort? Or wrap? Because 10K in < 10 hours feels crazy. Even worse than crazy! :D BTW: thank you so much for imgui, I discovered it yesterday and I'm already using it: it is so simple it is awesome, even in early alpha stage! It IS the most immediate gui I've ever used ;)How do you port 20kloc in 2 days?Past experience helps I guess. I ported Chipmunk (10K) mostly over night. I've ported lots of codebases already, so this has become sort of a second-nature to me. :P
May 20 2014
On 5/21/14, francesco cattoglio via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Port? Or wrap? Because 10K in < 10 hours feels crazy. Even worse than crazy! :DI think after all I might just be remembering it wrong. And in fact git log will tell me otherwise. Let's see: $ git log --reverse --pretty=format:"%ad %s" Wed Oct 30 17:13:59 2013 +0100 Initial commit. Fri Nov 1 01:54:24 2013 +0100 Ported most code. Of course I didn't work non-stop on it (humans have to sleep sometime). If you stitch the hours up together I think the initial port was done fairly quickly. But it wasn't a hard codebase to port, it's a C codebase. Porting C++ can be harder because you have things like C++ classes used by value which have their default ctor called, and this doesn't translate easily to D's structs.BTW: thank you so much for imgui, I discovered it yesterday and I'm already using it: it is so simple it is awesome, even in early alpha stage! It IS the most immediate gui I've ever used ;)Cool, glad it works for you!
May 20 2014
On 5/21/14, francesco cattoglio via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:BTW: thank you so much for imgui, I discovered it yesterday and I'm already using it: it is so simple it is awesome, even in early alpha stage! It IS the most immediate gui I've ever used ;)Btw I've added a memory-management section now, in case you ever run into issues like garbled text being displayed on the screen (I know I did): https://github.com/d-gamedev-team/dimgui#memory-management
May 21 2014
On 5/19/14, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:Excellent. Expect the port to be done within a day or two. I just have some runtime bugs to squash.In the meantime here's a teaser: http://i.imgur.com/HQSNhO2.png The test-suite uses IMGUI which I've recently ported to D as well, so you can use it right away: https://github.com/d-gamedev-team/dimgui http://code.dlang.org/packages/dimgui
May 19 2014
On 5/19/14, Kiith-Sa via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Box2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA)FYI the initial port is hosted online now, although I'm still cleaning it up and have to make sure it all runs properly at runtime. I found a few bugs (e.g. passing static arrays by value) which I've fixed, but until I have the entire test-suite ported I can't guarantee the bugs are all squashed. It should become pretty stable in a few days. In the meantime you can follow the development here: https://github.com/d-gamedev-team/dbox
May 21 2014
On Wednesday, 21 May 2014 at 07:50:58 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote:On 5/19/14, Kiith-Sa via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Whoa you are awesome, I will use it with my experimental engine for sure I'm still stuck on the design but here it is http://code.dlang.org/packages/batch-engineBox2D would be awesome. I'm about to start a project that would greatly benefit from good 2D physics (I used simple AABB till now simply because physics is too much of a PITA)FYI the initial port is hosted online now, although I'm still cleaning it up and have to make sure it all runs properly at runtime. I found a few bugs (e.g. passing static arrays by value) which I've fixed, but until I have the entire test-suite ported I can't guarantee the bugs are all squashed. It should become pretty stable in a few days. In the meantime you can follow the development here: https://github.com/d-gamedev-team/dbox
May 21 2014
On 5/21/14, Vova616 via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Whoa you are awesome, I will use it with my experimental engine for sure I'm still stuck on the design but here it is http://code.dlang.org/packages/batch-engineCool stuff, will have a look later!
May 21 2014
On 5/19/14, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:Btw, I'm currently porting the Box2D physics engine to D.For a second there I thought Dash was a 2D game engine, but it's a 3D one, which is awesome! 2D physics can still be used with 3D graphics to some great effect. But ultimately I would really want us to have a 3D physics engine. I've been eyeing the Bullet physics engine. There have been several attempts at writing bindings, but I think we (s/we/I) should make a port instead. It will definitely take some work though. Porting Box2D took me personally about two days of work (~20Kloc C++ codebase), Bullet is ~150Kloc, but using things like regex for conversion wouldn't scale here. Using a modified parser such as Daniel Murphy's magicport or a C++ parser based on DScanner would probably work. Anyway, I'm just rumbling out loud here to some of my future plans. All of this will likely take a longer initial delay because I'm relocating soon, so things will be hectic. :)
May 19 2014
On Monday, 19 May 2014 at 20:46:43 UTC, Andrej Mitrovic via Digitalmars-d-announce wrote:On 5/19/14, Andrej Mitrovic <andrej.mitrovich gmail.com> wrote:Good to hear about Box2D! We just had someone approach us about using our engine for a 2D physics based game, so we'll definitely point him in your direction. As far as bullet goes, that would be amazing, but definitely no small undertaking. We talked about it internally, but decided it wasn't worth the time for just trying to get Dash off the ground. You should know, though, that if you do it, you'll have at least one user :)Btw, I'm currently porting the Box2D physics engine to D.For a second there I thought Dash was a 2D game engine, but it's a 3D one, which is awesome! 2D physics can still be used with 3D graphics to some great effect. But ultimately I would really want us to have a 3D physics engine. I've been eyeing the Bullet physics engine. There have been several attempts at writing bindings, but I think we (s/we/I) should make a port instead. It will definitely take some work though. Porting Box2D took me personally about two days of work (~20Kloc C++ codebase), Bullet is ~150Kloc, but using things like regex for conversion wouldn't scale here. Using a modified parser such as Daniel Murphy's magicport or a C++ parser based on DScanner would probably work. Anyway, I'm just rumbling out loud here to some of my future plans. All of this will likely take a longer initial delay because I'm relocating soon, so things will be hectic. :)
May 19 2014
On Monday, 19 May 2014 at 21:00:37 UTC, Colden Cullen wrote:As far as bullet goes, that would be amazing, but definitely no small undertaking. We talked about it internally, but decided it wasn't worth the time for just trying to get Dash off the ground. You should know, though, that if you do it, you'll have at least one user :)This might be of interest then: https://github.com/MeinMein/BulletD
May 19 2014
On Monday, 19 May 2014 at 21:28:45 UTC, ponce wrote:This might be of interest then: https://github.com/MeinMein/BulletDThat's pretty cool! It doesn't appear (from the wording, at least) to be incredibly stable, but it certainly seems like a good start. I'll do some more research into it.
May 19 2014
On Mon, May 19, 2014 at 22:46:33 +0200, Andrej Mitrovic via Digitalmars-d-announce wrote:For a second there I thought Dash was a 2D game engine, but it's a 3D one, which is awesome! 2D physics can still be used with 3D graphics to some great effect. But ultimately I would really want us to have a 3D physics engine.Derelict has a module[1] for ODE[2]. --Ben [1]https://github.com/DerelictOrg/DerelictODE [2]http://www.ode.org/
May 19 2014
On 5/19/14, Ben Boeckel via Digitalmars-d-announce <digitalmars-d-announce puremagic.com> wrote:Derelict has a module[1] for ODE[2].I've heard about ODE but I'm not sure about the state it's in these days. Bullet seems to be the place of active development. I've yet to try it though so I can't really give a proper review.
May 19 2014