Adventure Game Studio

AGS Support => Beginners' Technical Questions => Topic started by: Slasher on Thu 25/04/2013 11:40:44

Title: Why oh why?
Post by: Slasher on Thu 25/04/2013 11:40:44
It's all hell loose today  (roll)

Why oh why?

In setup choose DirectDraw5 as problems with D3d (people say) and I can't use it anyway.

Some say they can't interact (hand) with an object but can look use inv.

Some say buttons on gui are not working but are fine at my end.

Why oh why?



Title: Re: Why oh why?
Post by: Ghost on Thu 25/04/2013 11:57:39
So what's the question?
Title: Re: Why oh why?
Post by: Dave Gilbert on Thu 25/04/2013 12:00:06
Regarding DirectDraw vs direct3D, I would say the opposite is true. DrectDraw is barely supported at all these days. Especially on modern laptops. Almost a third of the original Gemini Rue players found that their computers froze when starting the game. We had to reprogram the snow/rain plugin so it could work in Direct3d as a result.  So I would suggest avoiding it like the plague. :)
Title: Re: Why oh why?
Post by: Crimson Wizard on Thu 25/04/2013 12:02:24
@slasher, I have certain doubts the problems you mention may be related to the renderer. At least, it would be quite surprising if they are. :-\
Do you use any advanced drawing methods in your game? Raw drawing over guis, creating dynamic sprites? Any sprites with alpha channels, any objects with translucency?
I really can't think of much here.

Try to separate problems and check every one in turn.
Ask people to list what and how exactly did they do when interaction did not work.
Title: Re: Why oh why?
Post by: Calin Leafshade on Thu 25/04/2013 12:05:25
It is my opinion that the direct draw and direct 3d renderers should both be deprecated and replaced with an OpenGL one.

Theres no point in maintaining several renderers and the pixel shader requirement is now no longer an issue. (Although im not convinced a pixel shader is even needed for sprite colourisation anyway, vertex colours should be used)
Title: Re: Why oh why?
Post by: Slasher on Thu 25/04/2013 12:21:44
QuoteDo you use any advanced drawing methods in your game? Raw drawing over guis, creating dynamic sprites? Any sprites with alpha channels, any objects with translucency?
No.

I'm using Win XP service pack2.

Am I advised to try and update to D3D (9) rather than sticking to DirectDraw as some on D3D seem to get problems?

What do you think?

cheers





Title: Re: Why oh why?
Post by: Crimson Wizard on Thu 25/04/2013 12:23:35
Quote from: slasher on Thu 25/04/2013 12:21:44
Am I advised to try and update to D3D (9) rather than sticking to DirectDraw as some on D3D seem to get problems?

I suggest you find a tester who will be able to run BOTH DirectDraw and D3D renderers, and see if there's any difference in your game. This way you will at least know if those errors are even related to renderer.

BTW, another thing, does your game use any plugins?
Title: Re: Why oh why?
Post by: Slasher on Thu 25/04/2013 12:29:24
Crimson

QuoteBTW, another thing, does your game use any plugins?
Flashilight 121 plugion.
I also use the Tween Module.

I am going to try to find what the solution could be / is.

cheers

Title: Re: Why oh why?
Post by: Snarky on Thu 25/04/2013 13:08:42
Quote from: Dave Gilbert on Thu 25/04/2013 12:00:06
Regarding DirectDraw vs direct3D, I would say the opposite is true. DrectDraw is barely supported at all these days. Especially on modern laptops. Almost a third of the original Gemini Rue players found that their computers froze when starting the game. We had to reprogram the snow/rain plugin so it could work in Direct3d as a result.  So I would suggest avoiding it like the plague. :)
Yeah, but there used to be an annoying scaling bug in the AGS Direct3D renderer, so I personally always prefer to run in DirectDraw. (This bug was fixed in the Draconian version, but I'm not sure whether it's included in the 3.3 beta.) In general, I agree with Calin that the renderers should be updated to a single and more modern option with greater platform compatibility.
Title: Re: Why oh why?
Post by: Slasher on Thu 25/04/2013 13:12:42
I'm running:

AGS Editor .NET (Build 3.2.1.111)
v3.2.1, March 2011

maybe its an issue then?


Title: Re: Why oh why?
Post by: Crimson Wizard on Thu 25/04/2013 13:24:52
How scaling bug may prevent completely from interaction with gui buttons and objects? Unless they are very tiny or something... can't think of any situation when this might be a real issue.

Slasher, just make someone test the problem in both renderers and see if there's a difference.
Title: Re: Why oh why?
Post by: Slasher on Thu 25/04/2013 14:00:08
Crimson,

someone is testing in both settings.

I came across a boolean oversight and corrected for the object interact (hand) that was failing.

That still does not account for the gui buttons which are of reasonable size.

FYI When cursor over the gui with buttons the cursor changes to pointer then returns old mode when leaving.

Title: Re: Why oh why?
Post by: Crimson Wizard on Thu 25/04/2013 14:15:29
Quote from: slasher on Thu 25/04/2013 14:00:08
That still does not account for the gui buttons which are of reasonable size.

FYI When cursor over the gui with buttons the cursor changes to pointer then returns old mode when leaving.
Well, can you give some details about them?
How does it work for you and what does not work for testers?
How do you change cursor to pointer (what script command do you use?).
Is the cursor hotspot positioned correctly (on the tip of the pointer, and not in the center)?
Title: Re: Why oh why?
Post by: Gilbert on Thu 25/04/2013 16:03:44
Quote from: Snarky on Thu 25/04/2013 13:08:42
Yeah, but there used to be an annoying scaling bug in the AGS Direct3D renderer...

Also, as far as I remember the D3D9 renderer doesn't support 8-bit modes (or is it changed now?), which I work 100% with, so unfortunately it's something I cannot use.
Title: Re: Why oh why?
Post by: Slasher on Thu 25/04/2013 16:54:09
The cursor change to pointer over GUI (with buttons) works and when off GUI changes to old mode works perfect my end.

So, that's the enigma...

Code (AGS) Select

function repeatedly_execute_always()
{
// WHEN CURSOR OVER STATUSLINE GUI
GUI* theGui = GUI.GetAtScreenXY(mouse.x, mouse.y);
if (theGui == gStatusline && mouse.Mode != eModePointer)
{
    old_mode=mouse.Mode;
    mouse.ChangeModeGraphic (eModePointer, 304);
    mouse.Mode = eModePointer;
}
// then other stuff