[Navigation Bar]  
 
 

    

[OpenSUSE powered]
[BUSH powered]
[vi powered]
[XML] [RSS]
Dinner Meeting Minutes
Networking, Learning and Working Together
 
  • June (tentative)
    Introduction to MONO
  • May (tentative)
    Introduction to OpenGL
  • April (tentative)
    Introduction to BUSH
  • March
    (tentative)
    Linux Job Hunting
  • February
    PostgreSQL Round Table
  • January
    (Canceled - Chairman Unavailable)
  • December
    (Canceled - Chairman Unavailable)
  • November
    (Canceled - Chairman Unavailable)
  • October
    (Canceled - Chairman Unavailable)
  • September
    (Canceled - Chairman Unavailable)
  • August
    (Annual Summer Retreat)
  • July
    (Canceled - Chairman Unavailable)
  • June
    (Canceled - Chairman Unavailable)
  • May
    (Canceled - Chairman Unavailable)
  • April
    (Canceled - Chairman Unavailable)
  • March
    (Canceled - Chairman Unavailable)
  • February
    P3P Privacy Policies
  • January
    (Java Applets, Canceled - Insufficient Interest)
  • December
    (Charity Christmas Party)
  • November
    Introduction to Atomic OS
  • October
    Introduction to JavaScript
  • September
    Introduction to SQL
  • August
    (Annual Summer Retreat)
  • July
    (Canceled - People Away)
  • June
    (Canceled - People Away)
  • May
    A System for Managing Game Entities
  • April
    (Canceled - Scheduling Problems)
  • March
    Thousands of Clients Per Server
  • February
    Third-Person Camera Navigation
  • January
    (No Meeting)
  • December
    (Charity Christmas Party)
  • September
    (Special Online Game Meeting)
  • August
    (Annual Summer Retreat)
  • July
    Introduction to Perl
  • June
    Introduction to PHP
  • May
    (Call For Linux Projects III)
  • April
    Simple DirectMedia Library
  • March
    (Special Client Meeting)
  • February
    (Special Client Meeting)
  • January
    (Special Client Meeting)
  • December
    (Charity Christmas Party)
  • November
    (No Minutes Taken)
  • October
    (Canceled)
  • September
    (Special Employee Conduct Policy Meeting)
  • August
    (Annual Summer Retreat)
  • June
    Survey of Web Development Tools
  • May
    Chris Crawford on Game Design
  • April
    Logical Reasoning II
  • March
    Logical Reasoning
 

Live in southern Ontario? Attending dinner meetings is free.

PegaSoft's February Dinner Meeting

Date: February 21, 2006 at 7:00 pm
Location: Office Bar and Grill

Attendance

Ken B, Mel W, Sharon B, Mike H, Gord H

Meeting Business

January Meeting

The January meeting had been snowed out.

Annual Membership Renewals

PegaSoft memberships are $45.00 per year. Although you don't need to be
a member in order to join the mailing lists or attend our monthly dinner
meetings, membership entitles you to discounts on PegaSoft events and
the opportunity to participate in PegaSoft projects and teach in our
workshops. Membership also allows you to attend our annual PegaSoft
Summer Retreat. Members must sign the PegaSoft Employee Conduct
Policy/NDA.

Ken B and Mel W renewed their memberships.

Web Site Updates

The website has been updated for Internet Explorer. RSS feeds are
available on the headline news and Lone Coder pages.

Open Forum -- Industry Quote

The views are those of the participants.

"Google.cn will comply with local Chinese laws and regulations," he said
in a statement. "In deciding how best to approach the Chinese or any
market, we must balance our commitments to satisfy the interest of
users, expand access to information, and respond to local conditions."
-- Andrew McLaughlin, Google senior policy counsel

Ken's Lone Coder column for February featured a discussion on the ethics
implied by Google's "Don't be evil" policy.

It was suggested that the column's use of "local political groups" makes
it sound like Google is bowing to pressure from municipal leaders instead
of pressure from countries.  Ken had chosen "local political groups" in
an effort to avoid being censored by Google for discussing any particular
country.  In order for Google to work in cooperation with many countries,
Google would have to find a middle ground with the ideologies of that
country.  Did working with the ideologies of a country amount to
participating in a cover-up of wrongdoing by a country?

Ken brought out a January 2003 article by Wired, "Google Sells Its Soul",
where Google bowed to pressure from a certain religious organization to
hide websites that criticized that organization's behaviour.  Google's
behaviour was not limited to submitting to the restrictions of one
country.

Ken pointed out that Google's "Don't be evil" policy, where "evil" means
the will of the leaders of the organization, was not moral high ground.
In most company, the leaders have absolute power and you can't go
against the leaders.  To say "Don't go against the company founder" is
not the same as "Let's do good".  However, many people responded to Ken's
column to defend Google as a moral company.  Is Google any different from,
say, Microsoft where Bill Gates has (or had) absolute say as the
company's founder?

Open Forum -- In The News

Codeweavers Debut Crossover Office 5 / Wine 0.9 [eWeek]

Wine, which allows Windows-based programs to run on Linux, has been
considered "alpha" for many years, was now announced to be a "beta"
version with this release.

Mike H had been using Crossover Office and the emulation was hit-and-miss.
iTunes 4.9 works but iTunes 6 would not run so he has to suffer with upgrade
warnings even though he can't upgrade.  Likewise, he tried to install a
12-year-old CAD package, which Crossover's web site says should work,
without success.

Crossover Office comes with a config tool and installs Internet Explorer
by default.  Using the config tool, you simply chose what application you
want to install.  Wine, the free version, must be configured manually,
editing ".ini" files by hand to make different applications work.

Blackworm virus on Feb 3. "The worm, also known as Kama Sutra, MyWife.E
or Nyxem.E, uses the lure of sexually explicit photographs to trick
e-mail users into executing an attachment that contains a payload
capable of permanently corrupting a number of common document format
files." [eWeek]

Ken pointed out that, due to his cautious approach to using Windows and
email, he's never experienced a Windows virus.  A friend of his who should
know better tried to unzip an attachment to take a look at a virus and
ended up infecting his computer.  No matter how good one's safeguards,
social engineering tricks like promising free goods can defeat one's virus
defenses.

Mike H, working with a company of over 100 users, said there were plenty
of users who wouldn't resist clicking on such an attachment.  Spamassassin
was working well to catch nearly 100% of the spam but a recent upgrade
had reduced Spamassassin's effectively for an unknown reason.  However,
virus checking on email clients like Mozilla Thunderbird usually caught
the ones that the Spamassassin missed.

Transgaming announces new version of their Linux game software

Transgaming had spoken at the Ottawa Linux Symposium, having a poll to
chose which game they should work on emulating under Linux.  Instead
of purchasing their Cedega software, you buy it on a subscription basis
to run your Windows games on Linux.

Ken pointed out that the main reason he uses Windows anymore is to run
his old games.  Email, web, office productivity can all be done under
Linux.

Bell Sympatico DSL doesn't support Linux

Bell uses TLS authentication to get email.  Although Linux supports TLS,
Bell requires the installation of custom TLS software for Windows making
email inaccessible from Linux.

Ken suggested using Bell's email web interface to forward all mail from
Sympatico to another account such as Gmail.  Or one could switch to
another DSL company, almost all are Linux-friendly.

PegaSoft Member Projects

Business Shell (BUSH) (Ken B)

No recent updates. Changes will be made shortly for using BUSH in the
Online Game Project (ie. the creation of a libbush which can be linked
into executables).  Support for user-defined packages started but
incomplete.

PegaSoft Online Game Project (Ken B and Mel W)

Mel demoed his work in Python to date.  He has successfully written a demo
that transmits joystick information across a network to a server, which in
turn transmits instructions to move a "player" (box) on the client.  The
server runs successfully on Windows and Linux.  Perhaps not exciting to look
at, it demonstrated a successful client-server messaging model and successful
use of OpenGL 3D graphics.

Ken demoed his thread-and-pipe system for communication between the server
and the clients.  He had concerns that the prototype messaging system might
have too much overhead and should be redesigned to improve performance.  Ken
was also concerned about how the pipes should be flushed to balance
performance with response time.

Gord H pointed out that many open source or free tools existing to create
OpenGL graphics.  Ken said similar tools exist for doing scene layouts.
It was important with the game project to use good open source products
whenever possible to avoid reinventing the wheel.

Discussion: Third-Person Camera Navigation (Ken Burtch)

      * "Game Programming Gems" is a book series by Charles River Media
        
      * Features white papers from developers at ATI, Electronic Arts,
        Sony, Nintendo, etc.
        
      * Major sections include Mathematics, Physics, Artificial
        Intelligence, Graphics and Network Games  

      * 4.1 Third-Person Camera Navigation by Jonathan Stone, Double
        Fine Productions
        


      * "chase camera" - the player's viewpoint follows above and behind
        the character on the screen as if the camera is hovering over
        the back of the character
        
      * the chase camera may move in response to a situation, such as
        zooming in when the player wants to examine something
        


      * Basic camera implementation
        
              * the camera is not positioned absolutely but is given an
                ideal target position, usually in reference to the
                bounding box surrounding the character
                
              * the location of the camera is given in spherical
                coordinates as opposed to the usual x, y, z coordinates
                
              * spherical coordinates use theta, phi and rho
                
                      * theta - the counter-clockwise rotation about the
                        z-axis (the azimuth)
                        
                      * phi - the -90 to +90 rotation from the xy-plane
                        (or altitude)
                        
                      * rho - the distance in the resulting direction
                        
                      * can be converted to x,y,z using trigonometry for
                        scene calculations
                        
              * spherical coordinates ensure that the ideal target is a
                fixed distance but allow the camera to move around an
                imaginary sphere in order to get a better position
                
              * if the camera moves out of place, the velocity to move
                the camera back into place can be computed using a
                "spring system" (that is, the camera decelerates as it
                approaches the ideal distance, coming to a gentle stop)
                
              * the same sort of spring system can be applied for easing
                the speed that the camera repositions itself while
                rotating along the boundary of its imaginary sphere
                


      * problem #1: tight circles
        
              * turning in a tight circle causing the world to fly by
                too fast as the camera hurries after the player (the
                "Spiderman" movie effect of a camera swinging wildly,
                exaggerating his swings)
                
              * when the player turns in a tight circle, the camera
                should remain relatively motionless
                
      * problem #2: user control with an auxiliary analogue joystick
        
              * the azimuth and altitude ideal targets can be offset by
                the joystick input so the player can nudge the joystick
                to get a better view
                
      * problem #3: navigation around solid objects (e.g. walls or a
        ceiling)
        
              * the "polygon soup" of systems like OpenGL are great for
                rendering but lousy for collision detection. The easiest
                way around this is to have a second representation of
                impassible objects that is easier to work with, to
                determine the location of an interior of a scene.  
                
              * the camera is a point in space. To make it move more
                realistically, give it an invisible sphere as a personal
                space. The sphere will allow the camera to smoothly
                slide around objects it comes close to.
                
              * To handle collisions with solid objects, back the camera
                up to the point where its invisible body collided with
                the object. This causes jumps in camera motion. If the
                camera's movement is dampened, you risk momentarily
                moving the camera through the object as it repositions.
                There are other approaches.
                
      * problem #4: occlusions
        
              * There's a solid object between the player and the camera
                so the view from the camera is obscured.
                
              * One approach is to determine a new target position and
                move the camera to it so the view is no longer obscured.
                This requires a search of scene.
                
              * Another approach (many PS2 games) is to make the object
                between the camera and user semi-transparent so you can
                see through it, but can break the illusion of the 3D
                world if it occurs too much.

Next Dinner

The next dinner meeting is Tuesday, March 21, 2006 at the Office Bar and Grill.

 
     

« Truth Humility Communication Nobility Freedom Purity Excellence Right Support Courage Compassion Quality Honesty Trust Cooperation Challenge Education »
PegaSoft Canada - A Linux Association Since 1994