Thread: RE: [Algorithms] Trouble with ray picking code (generated ray seems to be from a distorted space?)
Brought to you by:
vexxed72
From: David C. <dc...@bi...> - 2006-05-26 22:19:15
|
At quick glance everything looks in order math wise. I would, however, suggest normalizing the mouseDir before feeding it into the inverted projMat. -DClyde -----Original Message----- From: gda...@li... [mailto:gda...@li...] On Behalf Of Megan Fox Sent: Friday, May 26, 2006 4:46 PM To: gda...@li... Subject: [Algorithms] Trouble with ray picking code (generated ray seems to be from a distorted space?) The following code is, as far as I can tell, the bog-standard "how you get a picking ray from cursor position" code... but the generated ray doesn't act properly. It seems as though it's distorted in some fashion (the sensor "sees" boxes as if they were distended, possibly rectangles, possibly just stretched away from vision center, etc)? POINT mousePoint; GetCursorPos(&mousePoint); vector3 mouseDir; mouseDir.x =3D ((2.0f * mousePoint.x / dispMode.GetWidth()) - 1.0f) = / projMat.m[0][0]; mouseDir.y =3D -((2.0f * mousePoint.y / dispMode.GetHeight()) - 1.0f) / projMat.m[1][1]; mouseDir.z =3D 1.0f; projMat.invert(); mouseDir =3D projMat * mouseDir; ... at which point I throw that mouseDir vector at my physical code, treating it as a vector originating from camera position (0,0,0 in this case) in world space. I'm certain I'm just making some basic, stupid mistake, but I'm not seeing it just yet. Ideas? Thanks, -- -Megan Fox Idyllon, LLC http://shalinor.circustent.us/megan/resume/ ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 _______________________________________________ GDAlgorithms-list mailing list GDA...@li... https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list Archives: http://sourceforge.net/mailarchive/forum.php?forum_ida88 |
From: Carsten O. <car...@se...> - 2006-05-27 04:59:03
|
Risking to look like an idiot... You are aware that GetCursorPos will only give you meaningful values in fullscreen? In windowed mode you'll have to translate the (global) mouse position to the actual topleft of your client rect. And as obvious as it seems, I've been bitten more than once by intersections with geometry or boxes _behind_ the camera. Carsten Orthbandt Founder + Development Director SEK SpieleEntwicklungsKombinat GmbH http://www.sek-ost.de Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt =20 > -----Original Message----- > From: gda...@li...=20 > [mailto:gda...@li...] On=20 > Behalf Of Megan Fox > Sent: Friday, May 26, 2006 10:46 PM > To: gda...@li... > Subject: [Algorithms] Trouble with ray picking code=20 > (generated ray seems to be from a distorted space?) >=20 > The following code is, as far as I can tell, the bog-standard "how you > get a picking ray from cursor position" code... but the generated ray > doesn't act properly. It seems as though it's distorted in some > fashion (the sensor "sees" boxes as if they were distended, possibly > rectangles, possibly just stretched away from vision center, etc)? >=20 > POINT mousePoint; > GetCursorPos(&mousePoint); > vector3 mouseDir; > mouseDir.x =3D ((2.0f * mousePoint.x / dispMode.GetWidth()) - = 1.0f) > / projMat.m[0][0]; > mouseDir.y =3D -((2.0f * mousePoint.y / dispMode.GetHeight()) - > 1.0f) / projMat.m[1][1]; > mouseDir.z =3D 1.0f; >=20 > projMat.invert(); > mouseDir =3D projMat * mouseDir; >=20 > ... at which point I throw that mouseDir vector at my physical code, > treating it as a vector originating from camera position (0,0,0 in > this case) in world space. >=20 > I'm certain I'm just making some basic, stupid mistake, but I'm not > seeing it just yet. Ideas? >=20 > Thanks, >=20 > --=20 > -Megan Fox > Idyllon, LLC > http://shalinor.circustent.us/megan/resume/ >=20 >=20 > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost=20 > and Risk! > Fully trained technicians. The highest number of Red Hat=20 > certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_ida88 >=20 |
From: Megan F. <sha...@gm...> - 2006-05-27 14:52:31
|
... actually, I'm am in windowed mode, but! The window happens to be in the upper-lefthand corner by default, and I started this whole process by sanity checking the output of my relative coords. Still, couldn't hurt to re-recheck them, so thanks. Even a slight offset could explain the oddity I'm seeing. On 5/26/06, Carsten Orthbandt <car...@se...> wrote: > Risking to look like an idiot... You are aware that GetCursorPos > will only give you meaningful values in fullscreen? In windowed > mode you'll have to translate the (global) mouse position to the > actual topleft of your client rect. > And as obvious as it seems, I've been bitten more than once by > intersections with geometry or boxes _behind_ the camera. > > Carsten Orthbandt > Founder + Development Director > SEK SpieleEntwicklungsKombinat GmbH > http://www.sek-ost.de > > Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt > > > > -----Original Message----- > > From: gda...@li... > > [mailto:gda...@li...] On > > Behalf Of Megan Fox > > Sent: Friday, May 26, 2006 10:46 PM > > To: gda...@li... > > Subject: [Algorithms] Trouble with ray picking code > > (generated ray seems to be from a distorted space?) > > > > The following code is, as far as I can tell, the bog-standard "how you > > get a picking ray from cursor position" code... but the generated ray > > doesn't act properly. It seems as though it's distorted in some > > fashion (the sensor "sees" boxes as if they were distended, possibly > > rectangles, possibly just stretched away from vision center, etc)? > > > > POINT mousePoint; > > GetCursorPos(&mousePoint); > > vector3 mouseDir; > > mouseDir.x =3D ((2.0f * mousePoint.x / dispMode.GetWidth()) - 1.0f) > > / projMat.m[0][0]; > > mouseDir.y =3D -((2.0f * mousePoint.y / dispMode.GetHeight()) - > > 1.0f) / projMat.m[1][1]; > > mouseDir.z =3D 1.0f; > > > > projMat.invert(); > > mouseDir =3D projMat * mouseDir; > > > > ... at which point I throw that mouseDir vector at my physical code, > > treating it as a vector originating from camera position (0,0,0 in > > this case) in world space. > > > > I'm certain I'm just making some basic, stupid mistake, but I'm not > > seeing it just yet. Ideas? > > > > Thanks, > > > > -- > > -Megan Fox > > Idyllon, LLC > > http://shalinor.circustent.us/megan/resume/ > > > > > > ------------------------------------------------------- > > All the advantages of Linux Managed Hosting--Without the Cost > > and Risk! > > Fully trained technicians. The highest number of Red Hat > > certifications in > > the hosting industry. Fanatical Support. Click to learn more > > http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > > _______________________________________________ > > GDAlgorithms-list mailing list > > GDA...@li... > > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > > Archives: > > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > > > > > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost and Risk! > Fully trained technicians. The highest number of Red Hat certifications i= n > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmdlnk&kid=107521&bid$8729&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > --=20 -Megan Fox Idyllon, LLC http://shalinor.circustent.us/megan/resume/ |
From: Phillip V. <ph...@si...> - 2006-05-28 21:17:11
|
Hi Megan, Unless you have a square viewport, you must take into account it's aspect ratio, otherwise your pick vector will be skewed. Kind Regards, Phillip Voyle. -----Original Message----- From: gda...@li... [mailto:gda...@li...] On Behalf Of = Megan Fox Sent: Sunday, 28 May 2006 2:52 a.m. To: gda...@li... Subject: Re: [Algorithms] Trouble with ray picking code (generated ray = seems to be from a distorted space?) ... actually, I'm am in windowed mode, but! The window happens to be in the upper-lefthand corner by default, and I started this whole process by sanity checking the output of my relative coords. Still, couldn't hurt to re-recheck them, so thanks. Even a slight = offset could explain the oddity I'm seeing. On 5/26/06, Carsten Orthbandt <car...@se...> wrote: > Risking to look like an idiot... You are aware that GetCursorPos will=20 > only give you meaningful values in fullscreen? In windowed mode you'll = > have to translate the (global) mouse position to the actual topleft of = > your client rect. > And as obvious as it seems, I've been bitten more than once by=20 > intersections with geometry or boxes _behind_ the camera. > > Carsten Orthbandt > Founder + Development Director > SEK SpieleEntwicklungsKombinat GmbH > http://www.sek-ost.de > > Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt > > > > -----Original Message----- > > From: gda...@li... > > [mailto:gda...@li...] On Behalf Of=20 > > Megan Fox > > Sent: Friday, May 26, 2006 10:46 PM > > To: gda...@li... > > Subject: [Algorithms] Trouble with ray picking code (generated ray=20 > > seems to be from a distorted space?) > > > > The following code is, as far as I can tell, the bog-standard "how=20 > > you get a picking ray from cursor position" code... but the=20 > > generated ray doesn't act properly. It seems as though it's=20 > > distorted in some fashion (the sensor "sees" boxes as if they were=20 > > distended, possibly rectangles, possibly just stretched away from = vision center, etc)? > > > > POINT mousePoint; > > GetCursorPos(&mousePoint); > > vector3 mouseDir; > > mouseDir.x =3D ((2.0f * mousePoint.x / dispMode.GetWidth()) -=20 > > 1.0f) / projMat.m[0][0]; > > mouseDir.y =3D -((2.0f * mousePoint.y / dispMode.GetHeight()) - > > 1.0f) / projMat.m[1][1]; > > mouseDir.z =3D 1.0f; > > > > projMat.invert(); > > mouseDir =3D projMat * mouseDir; > > > > ... at which point I throw that mouseDir vector at my physical code, = > > treating it as a vector originating from camera position (0,0,0 in=20 > > this case) in world space. > > > > I'm certain I'm just making some basic, stupid mistake, but I'm not=20 > > seeing it just yet. Ideas? > > > > Thanks, > > > > -- > > -Megan Fox > > Idyllon, LLC > > http://shalinor.circustent.us/megan/resume/ > > > > > > ------------------------------------------------------- > > All the advantages of Linux Managed Hosting--Without the Cost and=20 > > Risk! > > Fully trained technicians. The highest number of Red Hat=20 > > certifications in the hosting industry. Fanatical Support. Click to=20 > > learn more > > = http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > > _______________________________________________ > > GDAlgorithms-list mailing list > > GDA...@li... > > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > > Archives: > > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > > > > > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost and = Risk! > Fully trained technicians. The highest number of Red Hat=20 > certifications in the hosting industry. Fanatical Support. Click to=20 > learn more > http://sel.as-us.falkag.net/sel?cmdlnk&kid=107521&bid$8729&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > -- -Megan Fox Idyllon, LLC http://shalinor.circustent.us/megan/resume/ ------------------------------------------------------- All the advantages of Linux Managed Hosting--Without the Cost and Risk! Fully trained technicians. The highest number of Red Hat certifications = in the hosting industry. Fanatical Support. Click to learn more http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 _______________________________________________ GDAlgorithms-list mailing list GDA...@li... https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list Archives: http://sourceforge.net/mailarchive/forum.php?forum_ida88 --=20 No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.7.3/350 - Release Date: = 28/05/2006 |
From: Tom F. <tom...@ee...> - 2006-05-28 22:06:52
|
I _think_ Megan's code did, but it might have corrected and then un-corrected again :-) One excellent way of testing mousehit/raycast code is to have a debug = mode that does a mousehit on every pixel of the screen & paints the pixel a colour - either a colour taken from the address of the object hit, or = the depth, or whatever. As long as you can see the edges, it means you can toggle between rendered view and "mousehit view" and check they line up. It's also excellent for detecting where the two diverge - in some cases = an object might be special-cased, and it's very frustrating having a scene = that 99% works except for one odd object. Mousehit view immediately shows you things like "oh, its bounding sphere is half the size it should be" or = "oh, the object's animation isn't being taken into accoutn" or whatever. TomF. > -----Original Message----- > From: gda...@li...=20 > [mailto:gda...@li...] On=20 > Behalf Of Phillip Voyle > Sent: 28 May 2006 14:17 > To: gda...@li... > Subject: RE: [Algorithms] Trouble with ray picking code=20 > (generated ray seems to be from a distorted space?) >=20 >=20 > Hi Megan, > Unless you have a square viewport, you must take into=20 > account it's > aspect ratio, otherwise your pick vector will be skewed. >=20 > Kind Regards, > Phillip Voyle. >=20 > -----Original Message----- > From: gda...@li... > [mailto:gda...@li...] On=20 > Behalf Of Megan > Fox > Sent: Sunday, 28 May 2006 2:52 a.m. > To: gda...@li... > Subject: Re: [Algorithms] Trouble with ray picking code=20 > (generated ray seems > to be from a distorted space?) >=20 > ... actually, I'm am in windowed mode, but! >=20 > The window happens to be in the upper-lefthand corner by=20 > default, and I > started this whole process by sanity checking the output of=20 > my relative > coords. >=20 > Still, couldn't hurt to re-recheck them, so thanks. Even a=20 > slight offset > could explain the oddity I'm seeing. >=20 > On 5/26/06, Carsten Orthbandt <car...@se...> wrote: > > Risking to look like an idiot... You are aware that=20 > GetCursorPos will=20 > > only give you meaningful values in fullscreen? In windowed=20 > mode you'll=20 > > have to translate the (global) mouse position to the actual=20 > topleft of=20 > > your client rect. > > And as obvious as it seems, I've been bitten more than once by=20 > > intersections with geometry or boxes _behind_ the camera. > > > > Carsten Orthbandt > > Founder + Development Director > > SEK SpieleEntwicklungsKombinat GmbH > > http://www.sek-ost.de > > > > Wenn ich Visionen habe, gehe ich zum Arzt. - Helmut Schmidt > > > > > > > -----Original Message----- > > > From: gda...@li... > > > [mailto:gda...@li...] On=20 > Behalf Of=20 > > > Megan Fox > > > Sent: Friday, May 26, 2006 10:46 PM > > > To: gda...@li... > > > Subject: [Algorithms] Trouble with ray picking code=20 > (generated ray=20 > > > seems to be from a distorted space?) > > > > > > The following code is, as far as I can tell, the=20 > bog-standard "how=20 > > > you get a picking ray from cursor position" code... but the=20 > > > generated ray doesn't act properly. It seems as though it's=20 > > > distorted in some fashion (the sensor "sees" boxes as if=20 > they were=20 > > > distended, possibly rectangles, possibly just stretched=20 > away from vision > center, etc)? > > > > > > POINT mousePoint; > > > GetCursorPos(&mousePoint); > > > vector3 mouseDir; > > > mouseDir.x =3D ((2.0f * mousePoint.x / dispMode.GetWidth()) -=20 > > > 1.0f) / projMat.m[0][0]; > > > mouseDir.y =3D -((2.0f * mousePoint.y / dispMode.GetHeight()) = - > > > 1.0f) / projMat.m[1][1]; > > > mouseDir.z =3D 1.0f; > > > > > > projMat.invert(); > > > mouseDir =3D projMat * mouseDir; > > > > > > ... at which point I throw that mouseDir vector at my=20 > physical code,=20 > > > treating it as a vector originating from camera position=20 > (0,0,0 in=20 > > > this case) in world space. > > > > > > I'm certain I'm just making some basic, stupid mistake,=20 > but I'm not=20 > > > seeing it just yet. Ideas? > > > > > > Thanks, > > > > > > -- > > > -Megan Fox > > > Idyllon, LLC > > > http://shalinor.circustent.us/megan/resume/ > > > > > > > > > ------------------------------------------------------- > > > All the advantages of Linux Managed Hosting--Without the Cost and=20 > > > Risk! > > > Fully trained technicians. The highest number of Red Hat=20 > > > certifications in the hosting industry. Fanatical=20 > Support. Click to=20 > > > learn more > > > = http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > > > _______________________________________________ > > > GDAlgorithms-list mailing list > > > GDA...@li... > > > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > > > Archives: > > > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > > > > > > > > > ------------------------------------------------------- > > All the advantages of Linux Managed Hosting--Without the=20 > Cost and Risk! > > Fully trained technicians. The highest number of Red Hat=20 > > certifications in the hosting industry. Fanatical Support. Click to=20 > > learn more > > = http://sel.as-us.falkag.net/sel?cmdlnk&kid=107521&bid$8729&dat=121642 > > _______________________________________________ > > GDAlgorithms-list mailing list > > GDA...@li... > > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > > Archives: > > http://sourceforge.net/mailarchive/forum.php?forum_ida88 > > >=20 >=20 > -- > -Megan Fox > Idyllon, LLC > http://shalinor.circustent.us/megan/resume/ >=20 >=20 > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost=20 > and Risk! > Fully trained technicians. The highest number of Red Hat=20 > certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_ida88 >=20 >=20 > --=20 > No virus found in this incoming message. > Checked by AVG Free Edition. > Version: 7.1.394 / Virus Database: 268.7.3/350 - Release=20 > Date: 28/05/2006 >=20 >=20 >=20 > ------------------------------------------------------- > All the advantages of Linux Managed Hosting--Without the Cost=20 > and Risk! > Fully trained technicians. The highest number of Red Hat=20 > certifications in > the hosting industry. Fanatical Support. Click to learn more > http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=107521&bid$8729&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_ida88 >=20 |
From: Ben G. <be...@ga...> - 2006-05-29 21:31:13
|
On 5/27/06, Megan Fox <sha...@gm...> wrote: > > ... actually, I'm am in windowed mode, but! > > The window happens to be in the upper-lefthand corner by default, and > I started this whole process by sanity checking the output of my > relative coords. > > Still, couldn't hurt to re-recheck them, so thanks. Even a slight > offset could explain the oddity I'm seeing. You might also want to try something like sampling from a fixed 2d grid in screenspace and plotting an easily distinguished value (like depth to object, or a color representation of struck object ID, or something like this) at each sample point. It should become much more obvious from the mismatches between the grid points and the scene what's going on - or if it does match perfectly that the problem is somewhere else... --=20 Ben Garney Torque Technologies Director GarageGames.Com, Inc. |
From: Brian H. <ho...@bo...> - 2006-08-22 14:07:41
|
What are people doing these days to handle mixing multiple sounds, specifically with regards to volume control and clipping? Is anyone mixing in floating point and using a compressor/limiter or is the overhead on that too much? |
From: Tom P. <ga...@fa...> - 2006-08-22 17:08:49
|
> What are people doing these days to handle mixing multiple > sounds, specifically with regards to volume control and > clipping? Is anyone mixing in floating point and using a > compressor/limiter or is the overhead on that too much? Middleware::Play(soundFile); Programmer::HopeEverythingsOk(); :) -tom! |
From: Ivan-Assen I. <iva...@gm...> - 2006-08-22 17:14:26
|
> What are people doing these days to handle mixing multiple sounds, > specifically with regards to volume control and clipping? Is anyone > mixing in floating point and using a compressor/limiter or is the > overhead on that too much? The overwhelming choice seems to be "set aside $3000-5000 for middleware, forget about sound issues". Even a friend who spent the last 4-5 years at a major West Coast studio writing sound mixers, streaming code etc. for several this-gen consoles, mentioned they have gone that route for all future titles... resistance is futile. |
From: George G. <ge...@hw...> - 2006-08-22 17:26:25
|
Even on a single platform (we do only PC), the concept of writing custom sound code seems to be a waste. Either you're making games, or your making a sound engine, but the two share very little common tech :-) If you have sound requirements that are not met by any existing middleware, then you must have a pretty unique game... -- George - George Geczy, Lead Programmer, BattleGoat Studios -----Original Message----- From: gda...@li... [mailto:gda...@li...] On Behalf Of Ivan-Assen Ivanov Sent: Tuesday, August 22, 2006 1:14 PM To: Game Development Algorithms Subject: [0.5] Re: [Algorithms] Audio mixing > What are people doing these days to handle mixing multiple sounds, > specifically with regards to volume control and clipping? Is anyone > mixing in floating point and using a compressor/limiter or is the > overhead on that too much? The overwhelming choice seems to be "set aside $3000-5000 for middleware, forget about sound issues". Even a friend who spent the last 4-5 years at a major West Coast studio writing sound mixers, streaming code etc. for several this-gen consoles, mentioned they have gone that route for all future titles... resistance is futile. |
From: Tom P. <ga...@fa...> - 2006-08-22 17:29:18
|
> Either you're making games, or your making a sound engine, but > the two share very little common tech :-) The same could be said for pretty much any engine-level middleware, no? -tom! |
From: Tom F. <tom...@ee...> - 2006-08-23 04:11:03
|
Thief! That's my line. TomF. > From: Tom Plunket > > > Either you're making games, or your making a sound engine, but > > the two share very little common tech :-) > > The same could be said for pretty much any engine-level > middleware, no? > > > -tom! |
From: Robert D. <bli...@go...> - 2006-08-23 11:59:46
|
Middleware is like a sausage ... You take a bunch of stuff that isn't really meat, stuff it in a wrapper so nobody can see how much grissle and fat is in there, and then sell it at a premium. Of course, not every sausage is made with rubbish ingredients, but until you get your sausage and taste it you don't know how good or bad it is. And sometimes it tastes great, but some time later you wish you hadn't eaten it. :-) Fortunately some middleware companies let you try stuff out before you buy it, but even then you could well find many months later that there is some fundamental flaw which is going to cripple your game, or at least mean you can't do something which you really wanted to do. So, my personal preference is to write the things that you can, because then when it doesn't do what you need you can change it. But if you don't have the time / money / skills, then use middleware - just make sure you test it to death if you can, before paying for it ! |
From: Will V. <wi...@se...> - 2006-08-23 12:19:06
|
> So, my personal preference is to write the things that you can, because then > when it doesn't do what you need you can change it. One possible workable middleware strategy is to begin your development with middleware, in order to get up and running quickly. As your project crystallises and you can see where you want to do things differently to or better than your middleware, go ahead and rewrite those bits. This also applies if you have in-house tech from a previous project - you'll probably end up working with it in the same way. This has some up-front requirements: * You have source for the middleware, or at the very least a really good plug-in interface as a poor second. * You know that you're going to do this rewriting, so you budget for it. If you're lucky with your middleware, you don't have to do too much re-writing. If you're unlucky, at least your project was bootstrapped and you had a playable prototype and busy content creators a bit earlier than if you worked from scratch. If you really do it right you can keep your friendly middleware tool chain working all the way through. To try and put things in handy sausage terms, perhaps after discovering you ate a bad sausage, you make a new sausage with the best of the leftover bits, and eat it again? Mmm. Soylent Green... Will |
From: <chr...@pl...> - 2006-08-22 17:41:51
|
George Geczy wrote: > If you have sound requirements that are not met by any existing middleware, > then you must have a pretty unique game... True, but there could also be economical reasons. For example, a hobbyist or indie project may have little cash with which to license a middleware but they may have plenty of spare time in which to try to reinvent the wheel (a tiny spare wheel, which has just enough air to solve their problem). Christer Ericson, Director of Tools and Technology Sony Computer Entertainment, Santa Monica |
From: <bn...@pl...> - 2006-08-22 17:49:06
|
chr...@pl... wrote: > True, but there could also be economical reasons. For example, > a hobbyist or indie project may have little cash with which to > license a middleware but they may have plenty of spare time in > which to try to reinvent the wheel (a tiny spare wheel, which > has just enough air to solve their problem). Even then it makes little sense. You can use a decent engine like FMOD for free if you don't intent to make money on your work, and if you change your mind you can purchase the license as needed: http://www.fmod.org/ifmodlicense.html -Ben |
From: Brian H. <ho...@bo...> - 2006-08-22 18:06:16
|
So...those of you advocating middleware, does this mean that the middleware out there has built in compression/limiting, or are you just hoping that it works the way you expect? Brian |
From: gizmoworks <st...@gi...> - 2006-08-22 18:16:10
|
It does not work the way I would expect. Middleware by no means solves all of the problems. The best you can hope for is that it solves some of the problems faster than you could given how much you pay for it. And there is no substitute for low level knowledge even when using middleware. Brings back some former comment about how in an ideal world graphics programmers should write their own rasterizer just for the experience. The same is true with audio, er, well for writing your own mixer. On 8/22/06, Brian Hook <ho...@bo...> wrote: > So...those of you advocating middleware, does this mean that the > middleware out there has built in compression/limiting, or are you > just hoping that it works the way you expect? > > Brian > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > -- stephen http://www.gizmoworks.com/~stephen |
From: Nils P. <n.p...@cu...> - 2006-08-22 18:35:59
|
Brian Hook schrieb: > So...those of you advocating middleware, does this mean that the > middleware out there has built in compression/limiting, or are you > just hoping that it works the way you expect? > > We did it on our own. We where in need for a sound-engine in the ps1 days, and the engine evolved from that. Later during development it worked on PC, PS2 and even PocketPC's. We had an experimental xbox port (read: a recompile of the pc-version) but XAct was much nicer to work with. Better tools, more options etc. Anyways, we just added the samples in 16 bit with a bit of soft-saturation. Worked pretty good for us. Imho compression/limiting is only needed if your source material has bad dynamics, short spiky peaks that kill headroom or are unbalanced from a volume point of view. A sound tech or at least someone with a bit of mixing experience should cut, normalize and possible pre-compress the source material. If you run into a situation where you have to mix a shitload of audio sources a good soft clipper (asymmetric if possible) will take care of the rare overload situations that happens when 100 guys fire their handguns at one moment (e.g. after a network lag). A light compressor (1.4 : 1) with fast attack might be nice from an artistic point of view, and it's not a big performance problem on a mixed stream. I also liked ducking very much (e.g. lower the overall volume for a couple of milliseconds after you run into a saturation). This fakes the listener into perceiving a much higher volume than they actually hear. It's exactly what happens inside ears when they get a heft peak. Same effect, but without bleeding ears. Nils Btw, does anyone here remembers the linear audio control of the dreamcast sound lib? Now that sucked. |
From: <chr...@pl...> - 2006-08-22 18:31:40
|
Benbuck Nason wrote: > > True, but there could also be economical reasons. For example, > > a hobbyist or indie project may have little cash with which to > > license a middleware but they may have plenty of spare time in > > which to try to reinvent the wheel (a tiny spare wheel, which > > has just enough air to solve their problem). > > Even then it makes little sense. You can use a decent engine like FMOD > for free if you don't intent to make money on your work The scenario I had in mind was a bunch of starving college students, with lots of time but little money, writing a game they want to release as shareware to make money to buy ramen. In such a scenario FMOD could only be used up until the point they decide to release the game as shareware (if I'm reading the license right) at which point they'd have to fork out $6000. In which case they'd be better served by Miles at half the cost, which is still way more than my hypothetical starving students could afford. Apologies to Brian for derailing his question; that wasn't my intent. So, please answer his post instead of commenting on my aside! Christer Ericson, Director of Tools and Technology Sony Computer Entertainment, Santa Monica |
From: Charles N. <cha...@gm...> - 2006-08-22 17:56:12
|
On 8/22/06, chr...@pl... > > True, but there could also be economical reasons. For example, > a hobbyist or indie project may have little cash with which to > license a middleware but they may have plenty of spare time in > which to try to reinvent the wheel (a tiny spare wheel, which > has just enough air to solve their problem). > Not to subvert your point about it being fun to reinvent the wheel sometimes (it is!), but if it's a simple choice of economics then it's kind of hard to beat FMOD. Totally free unless you're commercial and even then it's pretty cheap. www.fmod.org It's fun to use at home for just messing around, and certainly works well for the hobbyist engine programmer. I just noticed they give discounts for xbox live arcade titles too. Pretty cool. (note: i'm not affiliated with FMOD in any way.) -chas |
From: Guido H. <gh...@g3...> - 2006-08-22 18:07:25
|
Hobbyists or indie develoeprs could use something like Fmod which offers phenomenally good terms to such developers, including the fact that you can get the entire SDK for free, having to pay for it only if you actually publish a product using it. Guido Henkel, CEO G3 Studios - http://www.g3studios.com ---------------------------------------------------------------------------- ---------- BLACK JACK/VIDEO POKER PRO - Now also on your cell phone! FLIP IT! -- CLEOPATRA -- SAS: COMMANDO - Get it now! Our latest games, now available for your Brew cell phone Try them - http://www.g3studios.com/games ---------------------------------------------------------------------------- ---------- This response and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed.If you are not the intended recipient, you should not copy it, re-transmit it, use it or disclose its contents, but should return it to the sender immediately and delete your copy from your system. > -----Original Message----- > From: gda...@li... > [mailto:gda...@li...] On > Behalf Of chr...@pl... > Sent: Tuesday, August 22, 2006 10:42 AM > To: Game Development Algorithms > Subject: Re: [Algorithms] Audio mixing > > > George Geczy wrote: > > If you have sound requirements that are not met by any existing > middleware, > > then you must have a pretty unique game... > > True, but there could also be economical reasons. For > example, a hobbyist or indie project may have little cash > with which to license a middleware but they may have plenty > of spare time in which to try to reinvent the wheel (a tiny > spare wheel, which has just enough air to solve their problem). > > Christer Ericson, Director of Tools and Technology Sony > Computer Entertainment, Santa Monica > > > -------------------------------------------------------------- > ----------- > Using Tomcat but need to do more? Need to support web > services, security? > Get stuff done quickly with pre-integrated technology to make > your job easier Download IBM WebSphere Application Server > v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057& dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > |
From: Allan S. <Sim...@ro...> - 2006-08-23 02:49:58
|
> True, but there could also be economical reasons. > For example, > a hobbyist or indie project may have little cash > with which to > license a middleware but they may have plenty of > spare time in > which to try to reinvent the wheel (a tiny spare > wheel, which > has just enough air to solve their problem). > Actually, especially for the indies, it's vital to get rid of as much of the testing-burden as possible. Trying to make sure your sound-engine using DirectSound or OpenAl works on all the crappy little 2USD embedded taiwanese sound-chips is deeply unpleasant. We're making casual PC games, and quickly decided that taking the whole testing element out of the equation would be deeply worthwhile. Though we're not exactly starving college-kids, our budgets are downright anorexic compared to AAA PC/console ones :) Though we initially implemented FMOD, we ended up picking Bass middleware for the final version. They've got a great indie-license for small shareware developers (100euro/unlimited uses). (http://www.un4seen.com/) [note that we're not affiliated with them :) ] Allan Simonsen BOOMZAP www.boomzap.com Asian Game Developer Summit www.agdsummit.com IGDA Singapore www.igda.org/singapore __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: George G. <ge...@hw...> - 2006-08-22 18:32:08
|
>> Either you're making games, or your making a sound engine, but >> the two share very little common tech :-) > > The same could be said for pretty much any engine-level > middleware, no? As it turns out, that's exactly what I was thinking after I wrote that - or something to the effect of, "what about making games is actually unique to making games"? 3D graphics, AI pathfinding and scripting, Multiplayer networking, User Interface design, etc... all are not game-specific disciplines; however, all also have middleware solutions available, if the dev wants to focus more on the actual game design and implementation. While other posts in this thread make the point that knowing what is going on in the middleware is a good thing, I would tend to argue back that sound is one of the least important for this concept (the 'every 3D programmer should make a rasterizer once in their life' idea). Most games do not push the envelope with regard to sound and the limitations of middleware products, and most programmers would gain no useful game-design insight by writing their own low-level sound routines. I myself did poke and prod Microsoft DirectSound into a custom engine and even made it fully multi-threading to resolve performance issues, but I still found that our switch to Miles middleware resolved inconsistent issues on crappy sound hardware that would have taken us forever to test and fix. -- George. - George Geczy, Lead Programmer, BattleGoat Studios |
From: Ken N. <ni...@gm...> - 2006-08-24 17:17:09
|
George, Curious, because I am with a small team and we don't have extensive hardware to test on and so finding that one platform that is the trickiest to solve for has been a concern of mine. The lowest of the low sound boards we have at the office is located on an old laptop that I've been bringing in for tests which has no support for any hardware acceleration and doesn't provide any effects through DS. We provide three different solutions for the end user(DS Hardware, DS Software, and WM software) and so far that has all my bases covered. Are there any sound cards you found particularly challenging? -Ken Noland On 8/22/06, George Geczy <ge...@hw...> wrote: > > >> Either you're making games, or your making a sound engine, but > >> the two share very little common tech :-) > > > > The same could be said for pretty much any engine-level > > middleware, no? > > As it turns out, that's exactly what I was thinking after I wrote that - > or > something to the effect of, "what about making games is actually unique to > making games"? 3D graphics, AI pathfinding and scripting, Multiplayer > networking, User Interface design, etc... all are not game-specific > disciplines; however, all also have middleware solutions available, if the > dev wants to focus more on the actual game design and implementation. > > While other posts in this thread make the point that knowing what is going > on in the middleware is a good thing, I would tend to argue back that > sound > is one of the least important for this concept (the 'every 3D programmer > should make a rasterizer once in their life' idea). Most games do not > push > the envelope with regard to sound and the limitations of middleware > products, and most programmers would gain no useful game-design insight by > writing their own low-level sound routines. > > I myself did poke and prod Microsoft DirectSound into a custom engine and > even made it fully multi-threading to resolve performance issues, but I > still found that our switch to Miles middleware resolved inconsistent > issues > on crappy sound hardware that would have taken us forever to test and fix. > > -- George. > > > - George Geczy, Lead Programmer, BattleGoat Studios > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > GDAlgorithms-list mailing list > GDA...@li... > https://lists.sourceforge.net/lists/listinfo/gdalgorithms-list > Archives: > http://sourceforge.net/mailarchive/forum.php?forum_id=6188 > |