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 BusinessNew 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 NewsT.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 ProjectsBusiness 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