Tacky move of the week
With the selling line
"you don't support Democrats, why should your ketchup?",
who could resist?
I'm not sure why this seems so incredibly tacky, but it does.
From the mawkish Reagan tribute on the sidebar, to the rude
statements regarding Heinz, the entire enterprise is
The first is
The Source-Navigator IDE
. I have not used this as a full IDE,
I have a variety of tests and Clear Case integration that I
don't want to mess with yet, but as a class browser and
project analysis tool it is excellent. Written in tcl/tk and C,
it seems to be very portable. I'm currently using it on Linux,
MacOSX (under X11), and plan to try it out on Solaris on
The built in editor is a fairly standard programmer's
editor, syntax highlighting and browser integration
work correctly with my projects so far.
The only features I can think of that I'd like to see added
are selectable region visibility
and vi emulation.
Adding existing code to a project is very simple and fairly
fast. The initial 'project view' window has options to list
classes, methods, functions, and files. Once you select one
of these types and select an item then a new context
sensitive browser window appears. The include
browser, cross ref browser, and class hierarchy browsers
are all very useful. A tab at the top of the window lets
you easily switch between views of the item and a drop
down select lets you easily switch to different items
(with a filter setting with the current type as the default).
Overall I'm very happy with Source-Navigator and I'd
suggest it to anyone
looking for a great free tool to help manage their C++
projects. The UI is well thought out and seldom clumsy
and the functionality and speed are very good.
The other tool that I've been happy with so far is
FlexeLint for C/C++
. One thing I should mention right away is that this
tool is $1000 for Linux/Unix use, the windows version is
$240 and I hope that Gimpel Software will really consider
bringing the price of the Linux version down to the same
as the Windows price. I've seen some people mention
running the windows version under emulation on Linux,
I have no idea what Gimpel's take on that configuration
might be or how stable it is - so I can't suggest that path
for professional use.
The basic idea behind FlexeLint is that there are problems
that your compiler does not have enough information
to catch because it is divorced from the linker and runtime.
This tool is essential a configurable C++ compiler that
analyzes the code as it builds it. Rather than producing
object or executable files it produces a report of problems
and potential problems with the code. This is very different
from what a tool like Purify does, and although they both
check for some of the same sorts of problems, Purify does
some runtime checking that a static analysis tool
(like FlexeLint) could never manage.
You have to write (or use) a compiler and build system
specific config file to tell the lint tool how to build your
project. It did not take me long to realize that I needed to
build some scripts as part of my build process to generate
these config files at build time, One script adds
a lint target for each module that run 'gcc -E' with
precompiler options to dump build information about
include paths and library paths.
A couple more scripts to read those dumps into a format
that the lint tool can use. I have several static
config files that turn on or off some style checks, such as
the Scott Meyers Effective C++/More Effective C++
checks, suspicious indentation, some default
warnings I need to modify or turn off, and so on.
I've run into a few problems so far with templates,
namespaces, and typedefs, but overall FlexeLint is a very
useful tool. If I can convince my employer to spring for a
couple copies I want to make it part of the nightly build and
If anyone is interested I can grab some of my scripts and
configs on Monday and post them here.
Why do gamers have no loyalty to MMOs?
The only reason I find the lack of user loyalty a surprise is
that people will spend hours (20+) a week playing these
games and they don't just quit the current game, they
quit the current game and go find another MMO.
I've come up with a list of things I think cause player
dissatisfaction with games, as well as some ideas I have
on ways to make games better.
Grinding is doing a repetitive task to gain a level or
skill point. There is no game purpose, the character is
not creating anything valuable, they are powering their
way through an unpleasant limited ability level to get to
the "good stuff".
The terms of service of most games prohibit 3rd party tools
that automate the character's actions. The fact that people
would consider using such tools says to me that activities
that require them probably do not belong in the game.
Star Wars Galaxies had the interesting idea of giving
crafting experience when people actually use the items
that have been created. The problem remains that the
primary source of crafting experience comes from creating
tons of useless items that will probably never be used.
My suggestion is that the apprentice and journeyman
portion of crafting skill levels be replaced almost entirely
with crafting quests. This would give characters some
starter recipes to build and introduce new players to
crafting in a way that would not send them to web sites
looking for how to skip to the good stuff.
Once characters reach higher levels of crafting ability make
resource availability the driver behind what they create.
Add in some dependancy on custom fitting or an enchanter
and you can keep high level crafters involved with other
Competition for limited content
A couple of the great stories of Fafhrd and the Grey Mouser
involved them competing with others for fame or a
treasure. The problem is that this does not translate well
into online games. Suffering lag or exchanges of
"yuo teh suxxor - we was here first!!" because
3 other groups are sitting on a spot is not the stuff of
high fantasy (or even an enjoyable evening's distraction).
I understand that a certain amount of competition is
necessary to encourage people to create groups and that
the game servers cannot waste the memory on unlimited
content that is never used. There is also the problem of
"good spots" - good content that is placed in such a way
that an easy escape or return to town is available nearby
and that many people will prefer to play on such spots.
My suggestion on the unlimited content problem and map
space is that a lot of it can be generated as needed from
templates and then placed as characters enter an area.
Major landmarks and terrain features have to be permanent
to create the feeling of a continual world and give
explorers something to discover (For a discussion of the
types of players and the interaction between the types see
Players who suit muds by Richard Bartle).
As far as addressing the "sweet spots" it may be that
high traffic areas tend to generate either a decrease in
monster poplulation, an increase in "inconvenience
monsters" (high risk - low payoff monsters like thieves and
jackals), a decrease in payoff from camping an area, or
some combination. Player traffic could even affect the world
in a permanent or semi-permanent way by
continually pushing back the frontier as characters
"conquer" an area.
Every MMO starts with a variation on your character getting
his stuff and running out to the "newbie area" to kill
swarms of bees or rats or whatever happens to infest the
surrounding area. As the character advances in power you
move on to tougher and tougher areas, killing and leveling
as you go - with the occasionaly penalty as you push too
far and your character is killed or knocked out or whatever
the local game fiction is for non-permanent character
I have no real idea on how to accomplish this (a few
real tentative ideas so far), but I'd like to see the level
treadmill done away with and permanent death
(maybe with rare or difficult resurrections) become a
feature of games. Permanent death would obviously require
some means of correcting unfair deaths due to lag or
computer crashes and such systems would be prone to
abuse (know your going to die? Run a lag generator or
hit the power on your computer), and I'm not
sure how suitable it would be for a profit driven game.
This is just a subject I've been thinking about lately and
since I have no experience with MUD or MMO design
some of the problems that I see may be unavoidable
or my suggestions unworkable. I just think that if game
designers do not think about how to remove these irritants
that we will be doomed to an endless parade of Everquest
and SWG clones, and that game companies will continue
to see player churn and short lifetimes on their games.