[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 May Dinner Meeting

Attendance

Ken B, Mike H, Gord H, Colin M
Dan B was unable to attend because of family obligations.
Mel W was unable to attend because of personal reasons.
Marc L was a no-show.


Meeting Business


New Meeting Location

In 2005, meetings were moved from Toronto to Mississauga. We've been
having a hard time finding locations that are close to public transit,
good parking, good food and quiet enough to hold a meeting. Previous
locations: Mulligan's Pub, Orwell's Pub and Office Bar and Grill near
the Islington subway station. These locations were too noisy to talk over.

This month we tried the East Side Marios next to the Sherway Gardens mall.
Unfortunately, a rowdy crowd from some organization was present and the
noise made it difficult to conduct a meeting.  Colin M said that he came
by public transit without difficulty.

Colin M suggested finding a restaurant with WiFi support.  The LinuxCafe
would be ideal except they close at 7 pm.  Ken said he would look into
restaurants with WiFi support.

Toronto hot spots or outlined here: http://wirelesstoronto.ca/wt_hotspot_locations.php

There are several other restaurants adjacent to Sherway Gardens that
could also be tried.


PegaSoft's Annual Summer Retreat


Every summer PegaSoft holds a 3 day Linux retreat to the Ontario north
country. Open to PegaSoft members, the retreat is a chance to talk about
Linux, learn from one another and work as a team. During the free time,
enjoy water sports, star gazing and fishing. To close the retreat,
attend the all-you-can-eat brunch with homemade pies at the Lost Channel
Inn.

Proposed date: Friday, August 25 to Sunday, August 27.



PegaSoft and CLUE at LinuxWorld

Ken B and Chris Jz help man the CLUE booth during the show. Special
thanks to Scott E for his hard work preparing flyers for LinuxWorld.

Also had a conversation with Matt Rice, owner of Starnix, the largest
Linux company in Canada, about the IT industry after the 9/11 bubble
burst.

Colin repreated a previous offer to help PegaSoft with swag, including
creating PegaSoft buttons if PegaSoft supplied the necessary parts.

Colin had attended LinuxWorld as a member of the press and was able
to get freebies left over from the conference.  He handed out copies of
Fedora Core 5, Ubuntu Linux and copies of the latest Linux Journal.

Colin's report on LinuxWorld is here:
http://www.linuxjournal.com/article/9028.

PegaSoft and Evan Leibovitch

Ken spoke with Evan L at LinuxWorld about possible scenarios involving
PegaSoft.  Evan was interested in PegaSoft's business model and was
looking for a way to tie Linux contractors to developers.  He compared
PegaSoft to the "Home Service Club", an umbrella organization for
independent home repair contractors.

Ken had mixed impressions of Evan and wanted to proceed cautiously.
Ken spoke with someone who had worked with Evan in the past who said
that Evan had a reputation for being a loose cannon after an incident
of public knowledge involving the press.

Ken tried to contact Evan before the meeting but received no response.


Open Forum - Industry Quote
[Views are those of the participants]

"One, people value their time. Our stuff does more, and they like that.
Two, people value their time, and those [free] things tend to be clunky.
Let's say you think you can save $50. And then you go and
waste three hours...As long as we keep pushing the pace of innovation
and delivering that value, I think we have a great opportunity."

-- Steve Ballmer, Microsoft CEO, on why people buy Microsoft when free
products are available

Linux's popularity is largely based on angst over Microsoft's products.
Mike and Colin told stories of Microsoft servers that crashed after a
few days no matter what load had been put on them.  Linux mail servers
ran perfectly and supported unlimited users.

Columnist Robert Cringely has pointed out that Microsoft has never
innovated.  DOS was purchased from another company.  Windows was a
copy of previous technology.

It was suggested that CEO's seldom know what's going on in their own
company.



Open Forum - Linux in the News

T.Bar Camp

Colin attend the T.Bar camp.  A reaction to O'Reilly's Foo conference,
the one-day event had demos and IT lectures in different corners of a
warehouse.  One session was on setting up Asterisk, the Linux digital PBX
system.  Attendance was free and the events would continue in coming months.

The same people where putting on free attendance 15-minutes demos of
new technology at a location near the University of Toronto.

Information is available at
http://barcamp.org/BarCampTdot.

Last bar camp is outlined at
http://barcamp.org/TorCampDemoCamp6.


PegaSoft Member Projects

Business Shell (BUSH) (Ken B)

BUSH has been successfully ported to the Alpha chip.  This is the first
time BUSH has been ported to non-Intel hardware.  BUSH was tested using
Debian Linux for Alpha.

Further updates will occur for using BUSH in the Online Game Project as
time permits.



Online Game Project (Ken B and Mel W)

The prototype server is installed on the development machine.  The
server now generates a regular stats log of server performance.  Ken is
working on developing the server animation framework and went through
three design prototypes.  If the server is animating thousands of
creatures, each creature can be viewed as a process and the game is
acting like an operating system.  Batching the dynamic memory allocation
of animations gave about a 400% speed improvement, up to the point that
the batches were large enough to cause the operating system to page.
The drawback of batching is that object oriented programming cannot be
used.

Server has been updated with 3D vectors and quaternions routines in
preparation for starting the animation routines.

Mel has been experimenting with visual effects under OpenGL and is
working on splitting the proxy component from his demo server, working
towards connecting his client to the prototype server.


Discussion: A System for Managing Game Entities (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  
        


      * 1.8 "A System for Managing Game Entities" by Matthew Harmon, eV
        Interactive
        


      * "entity" is defined as virtually anything in a game including
        things that are not visible: players, enemies, projectiles,
        terrain, sky, waypoints, scripts, etc.
        
      * "messages" are commands sent to entities.
        
      * examples use C
        
      * a general purpose API can be designed to handle everything
        
      * any message an entity doesn't understand is silently ignored
        
      * example: "update", "draw", "check for collisions", "respond to
        collision"
        
      * a script would only respond to "update"
        
      * a bullet would respond to everything except "respond to
        collision"
        


      * messages
        
      * may require parameters
        
      * in C, each parameter is an integer whose meaning depends on the
        message
        
      * in C++, the message handlers are virtual functions
        
      * each entity must return a flag indicating whether the message
        has been handled or needs to be propogated to other entities
        (like a broadcast message)
        
      * the message type or command is an enumerated type shared by all
        messages
        


      * entity code
        
      * in C, an entity contains one main function to handle all
        messages
        
      * in C++, only message handlers are public to an entity object
        


      * the class list
        
      * a linked list of entities
        
      * functions: create a new entity, destroy an entity or destroy all
        entities of a particular class
        
      * used in C in place of a class hierarchy to register new types of
        entities
        


      * entity manager
        
      * organize entities into a tree
        
      * automatically sends a create message to new entities added to
        the tree
        
      * messages are sent to an entity and to its children
        
      * this makes it easy to send a "draw" message to a particular
        scene
        
      * also needs search functions, reorder functions and iterators to
        move through the tree
        


      * game loop
        
      * messages announce different game stages
        
      * process existing messages then "get player input" message then
        "update" the world and then "draw" the world
        


      * network games
        
      * messages can be broadcast across a network
        
      * entities are self-contained and can be stored anywhere
        


      * example messages
        
      * "class init" - startup code for a new class
        
      * "class free" - free resources for a class
        
      * "create" - startup code for a new entity
        
      * "start" - the entity starts doing its thing (particularly
        animation)
        
      * "shutdown" - stop, the opposite of start, but not destroy
        
      * "destroy" - deallocate the entity
        
      * "get/set x" - get and set attributes such as position, direction
        and velocity
        
      * "draw" - render themselves in the world
        
      * "update" - update its position in the world
        
      * "post update" - prepare for collision detection by examining the
        world
        
      * "damage" - inflict damage on an entity
        
      * "give points" - award score points to an entity
        
      * "i am dead" - announce that an entity will be destroyed
        
      * "i hit you" - announce a collision with another entity
        


The Good Stuff


      * a tree of entities can isolate what is in a scene
        
      * entities can easily be rearranged or even moved to different
        machines
        
      * entities can be extended to create new entities
        
      * abstraction and information hiding
        
      * creates a standard development framework
        


Problems


      * author uses C even though this is clearly an object oriented
        approach. Simulating objects in C is cumbersome and error-prone...
        that's why C++ was created.
        
      * author doesn't defend the homogeneous API approach. The engineer
        and the object orient programmer who make a toaster: OOP is
        sometimes used to over-generalize and over-engineer simple
        problems.
        
      * author doesn't address performance: in games with a lot of
        entities, using objects is inefficient since they use dynamic
        memory allocation and polymorphism. The entity API could never
        be used in MMORPG's because of the overhead.
        
      * author doesn't address synchronization issues for a network game
        
      * author claims this approach is more robust than others but
        doesn't explain why
        
      * geography is only one way entities could be organized. Geography
        and ownership are not synonymous. If a bullet flies out of a
        scene, does it get a new parent? If it doesn't, then it will be
        rendered by "draw" even though it's out of the scene.
        


Overall


      * the approach a university student might make who just learned
        OOP
        
      * too many unanswered questions / lack of understanding of game
        complexities
        
      * not recommended for serious game development
        



Next Dinner


Unless otherwise notified, the next dinner meeting is Tuesday, June 20,
2006 at a East Side Marios.

 
     

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