Re: [hlcoders] The Wall Bug of KZMOD

2006-04-14 Thread Skillet
--
[ Picked text/plain from multipart/alternative ]
The same issue happens in my mod (using HL2DM SDK base), so I would assume
it is a problem of the SDK and none of the aforementioned movement changes.
Curiously, it seems, for me, to be just as likely to occur while moving
along perfectly straight walls as diagonals and other oddly shaped geometry.

On 4/13/06, Jason Houston <[EMAIL PROTECTED]> wrote:
>
> --
> [ Picked text/plain from multipart/alternative ]
> They released a BETA, calm down ;)
>
>
> --
> Draco
> --
>
> ___
> To unsubscribe, edit your list preferences, or view the list archives,
> please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>
>
--

___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



RE: [hlcoders] Works in debug mode, does not it release mode.

2006-04-14 Thread Alfred Reynolds
If you only call surface()->DrawTexturedRect() and the like in your
Paint() function it won't defeat any VGUI2 functionality, but you will
make your code hard to maintain. I would decompose the UI into the basic
components, right a class to support each widget you need, put them
together using a panel and a .res file for layout and see how it runs.
If it is slow then use VPROF() to track down the problem and optimise as
needed by crunching down the class hierarchy.

- Alfred

John Sheu wrote:
> On Fri, 2006-04-14 at 12:25 -0700, Alfred Reynolds wrote:
>> It is a code maintainence, performance and reuse issue. If you roll
>> your own Paint() code you end up having to rewrite functionality in
>> each paint call and you tend to make your layout logic code rather
>> than data driven. Paint also gets called many times per second, it
>> is easy to blow away performance by making expensive calls on data
>> that rarely changes (like the ConvertANSIToUnicode() call below),
>> the VGUI2 framework is event driven and expensive calls only get
>> made when they need to be.
>
> "Premature optimization is the root of all evil"
> -- Donald Knuth (or Tony Hoare, depending on who you talk to)
>
> Right then.  In any case, my specific issue is with
> surface()->DrawTexturedRect() calls.  Gauges and icons seem to call
> this
> one a lot; is it a good idea to do this manually as part of Paint()?
> Or
> is there some behind-the-scenes VGUI caching functionality that would
> make this a bad idea?
>
>
> ___
> To unsubscribe, edit your list preferences, or view the list
> archives, please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders

___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



RE: [hlcoders] Works in debug mode, does not it release mode.

2006-04-14 Thread John Sheu
On Fri, 2006-04-14 at 12:25 -0700, Alfred Reynolds wrote:
> It is a code maintainence, performance and reuse issue. If you roll your
> own Paint() code you end up having to rewrite functionality in each
> paint call and you tend to make your layout logic code rather than data
> driven. Paint also gets called many times per second, it is easy to blow
> away performance by making expensive calls on data that rarely changes
> (like the ConvertANSIToUnicode() call below), the VGUI2 framework is
> event driven and expensive calls only get made when they need to be.

"Premature optimization is the root of all evil"
-- Donald Knuth (or Tony Hoare, depending on who you talk to)

Right then.  In any case, my specific issue is with
surface()->DrawTexturedRect() calls.  Gauges and icons seem to call this
one a lot; is it a good idea to do this manually as part of Paint()?  Or
is there some behind-the-scenes VGUI caching functionality that would
make this a bad idea?


___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



RE: [hlcoders] Works in debug mode, does not it release mode.

2006-04-14 Thread Alfred Reynolds
It is a code maintainence, performance and reuse issue. If you roll your
own Paint() code you end up having to rewrite functionality in each
paint call and you tend to make your layout logic code rather than data
driven. Paint also gets called many times per second, it is easy to blow
away performance by making expensive calls on data that rarely changes
(like the ConvertANSIToUnicode() call below), the VGUI2 framework is
event driven and expensive calls only get made when they need to be.

Writing your own complex paint function because of performance sounds
like the catch cry of a premature optimiser and you wouldn't want to be
one of those would you? In the past any VGUI2 performance problems we
have had have been solved by algorithmic changes (mainly moving from a
polling model that Paint() enables to an event driven model) and not by
optmising individual lines of code.

- Alfred

John Sheu wrote:
> Reviving an old thread of a month ago since I'm still not certain what
> the implications are.
>
> So exactly why is it better to avoid complex Paint() methods?
> Methinks
> that eventually down the line, the vgui::ISurface calls are still
> being
> made, so it would make little difference that it is being called here.
> Besides, there's gotta be some overhead involved in complicating the
> hierarchy even more.
>
> John Sheu
>
> On Thu, 2006-03-30 at 11:00 -0800, Alfred Reynolds wrote:
>> The third arg to ConvertANSIToUnicode() is the size of the output
>> buffer in bytes. In this case you should use sizeof(unicode).
>>
>> This kind of code is the wrong pattern for VGUI2. It will perform
>> really badly (because of the expensive operations you are running
>> every time you paint) and makes your layout really fragile. A better
>> model is to use a label to contain the text you want to draw and use
>> an event to update text. The position, size and font the label uses
>> should be contained in a .res file that is loaded by the base frame
>> that owns the label ( it looks like CBBHudTaskList should be a frame
>> in your case). If you cannot implement an event driven method then
>> at least use the
 OnTick() method and only change the label text if the state
 changes.
>> You can use the ::SetText() label call to set the string to render,
>> and you don't need to do the unicode translation manually then.
>>
>> - Alfred
>
>
> ___
> To unsubscribe, edit your list preferences, or view the list
> archives, please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders

___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



RE: [hlcoders] Works in debug mode, does not it release mode.

2006-04-14 Thread John Sheu
Reviving an old thread of a month ago since I'm still not certain what
the implications are.

So exactly why is it better to avoid complex Paint() methods?  Methinks
that eventually down the line, the vgui::ISurface calls are still being
made, so it would make little difference that it is being called here.
Besides, there's gotta be some overhead involved in complicating the
hierarchy even more.

John Sheu

On Thu, 2006-03-30 at 11:00 -0800, Alfred Reynolds wrote:
> The third arg to ConvertANSIToUnicode() is the size of the output buffer
> in bytes. In this case you should use sizeof(unicode).
>
> This kind of code is the wrong pattern for VGUI2. It will perform really
> badly (because of the expensive operations you are running every time
> you paint) and makes your layout really fragile. A better model is to
> use a label to contain the text you want to draw and use an event to
> update text. The position, size and font the label uses should be
> contained in a .res file that is loaded by the base frame that owns the
> label ( it looks like CBBHudTaskList should be a frame in your case).
> If you cannot implement an event driven method then at least use the
> ::OnTick() method and only change the label text if the state changes.
> You can use the ::SetText() label call to set the string to render, and
> you don't need to do the unicode translation manually then.
>
> - Alfred


___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders



[hlcoders] Re: hlcoders digest, Vol 1 #2459 - 6 msgs

2006-04-14 Thread Tim Lippert
Exactly. phys_timescale 0 doesnt affect anything. and cl_predict 0 was 
attempted a long time ago and it sinks the player into the ground halfway and 
has movement as if you are waist high in thick oil.

we can also rule out that it has something to do with certain shaders on 
textures because in most of the spots where i get it in our mod, the textures 
are normal.

And Jay its an issue with absolutley normal world geometery. i dont have a 
problem with physics objects other than if i leave them as motion enabled, 
players get teleported through the maps. might even be a good idea for you to 
download the mod and run around any of the maps and see how BAD this bug really 
is.

in my mail i spoke of 3 things2 are not being spoken of atm..a server 
change crash(crash to desktop when you try to change servers) and players are 
walking through displacements(nothing to do with physics...th4ay literaly walk 
through them in certain RANDOM places)

Thanks for the replies, im dying for a solution for thisim getting about 20 
mails a week with people asking if we are getting anywhere with the wall 
bug.the majority wont even play it until that gets fixed.


Message: 4
Date: Wed, 12 Apr 2006 23:01:07 -0500
To: hlcoders@list.valvesoftware.com
From: Physical Mayhem Bug <[EMAIL PROTECTED]>
Subject: RE: [hlcoders] The Wall Bug of KZMOD
Reply-To: hlcoders@list.valvesoftware.com

Ok well go to this spot on dm_runoff and it repros with pure world geometry=
. Note the 'client stuck' upper-right hand message.

http://aoa.gamemod.net/img.html?dm_runoff0003-client-stuck.jpg

Setting 'phys_timescale 0' on the server has seemingly no effect on player =
movement.

Setting 'cl_predict 0' on the client makes it really difficult to move arou=
nd - reminds me of Doom 1 over a modem... and the 'client stuck' message do=
es go away, but the stuckiness does not go away. Ie you still take about 5=
seconds to wiggle free of that spot, but no message appears.

There are also some spots on dm_overwatch with this bug I believe.

At 2006/04/12 08:12 PM, Jay Stelly wrote:
>As I read the message below, Tim is saying that he gets stuck messages
>when the player is colliding only with some static geometry (walls) and
>that he was unable to reproduce the bug in any Valve games. Is the
>wall a prop_physics or something? I just assumed that the wall was
>brush geometry or prop_static. I don't think you guys are talking about
>the same problem.
>
>
>> -Original Message-
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On Behalf Of
>> [EMAIL PROTECTED]
>> Sent: Wednesday, April 12, 2006 5:46 PM
>> To: hlcoders@list.valvesoftware.com



>> Subject: RE: [hlcoders] The Wall Bug of KZMOD
>>
>> Jay I'm confused because your response acts like "client
>> stuck on object" is hard to reproduce. If I flip a table
>> upside-down and walk across it that always causes the error
>> message for me. Is it not supposed to do that? Or maybe you
>> were talking about something else - there were 3 issues in
>> the original email.
>>
>> At 2006/04/12 03:02 PM, Jay Stelly wrote:
>> >If you turn off server-side physics (phys_timescale 0), does
>> the issue
>> >still happen?
>> >
>> >Also, if you turn off prediction (cl_predict 0) does the issue still
>> >happen?
>> >
>> >The answers to these questions would help narrow down the possible
>> >causes of the problem you're having.

___
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192


___
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders