C++ sucks for games

D

David Steuber

[OpenSG]
Which brings me back to my theory: the game industry has labored
mightily with C++ and produced a mouse. Lisp will run it down with a
year or two of serious effort. Game over, as they say.

I would implement that cat first before saying, "Game over." Make it
as fast as the C++ version also. You can hide the ugly declarations
with macros. Or so says Paul Graham in his ACL book. That's
something I want to try with my fractal code when I get back to it.
 
P

Peter Ashford

Christopher said:
How many times have you done this in Lisp?

I have never done it in Lisp. However, I DO work making middleware for
games, and I know LISP as well.

I'm not saying that making middleware in Lisp is harder than C++ - I'm
sure it isn't, I'm saying that all the current middleware is written in
C++ and it's hard to make an AAA title without using middleware. As
there is currently no Lisp middleware like Havoc or the Unreal Engine, I
conclude that writing an AAA game in Lisp faces a lot more work than
doing the same in C++ where I can choose commodity items as middleware.

I'm sick of getting misinterpretted on this - I'm not criticing Lisp, I
LIKE Lisp - I'm saying that a whole field of products that are
indespensible to modern AAA game construction do not exist for Lisp, and
that's an issue if you chose to use Lisp to write games.
 
C

Christopher C. Stacy

Peter Ashford said:
I'm saying that a whole field of products that are indespensible
to modern AAA game construction do not exist for Lisp,

Realizing that "indespensible" might be somewhat subjective,
I don't think anybody disputes your statement there.

People are suggesting that Lisp might be very good for creating
those missing components, with a cost that is orders of magnitude
below what it would take to do it in C++.
 
P

Peter Ashford

Christopher said:
Realizing that "indespensible" might be somewhat subjective,
I don't think anybody disputes your statement there.

People are suggesting that Lisp might be very good for creating
those missing components, with a cost that is orders of magnitude
below what it would take to do it in C++.

I have no issue with that.

We agree that those products (Lisp middleware) don't currently don't
exist.

The issue I see going forward is this - to be commercially successful at
making middleware, there need to be people buying your product, which
requires a market of Lisp game programmers. There doesn't currently
exist such a market, therefore good Lisp middleware is not going to be
written.

To create this market, there needs to be a bunch of Lisp trailblazers -
the equivallent of companies like Id, who create a game with a great
engine that they can make money off as a game but also license to other
Lisp game developers - then you start boot strapping the whole situation
(and this is how the C++ middleware market was created as well)

The difference is that the C++ middleware market bootstrapped in this
way when there was *no other alternative*. Lisp would have to do it,
when better, more mature, more productive middleware already exists in
C++. NOTE: that is not a comment on C++ versus Lisp, its a comment on
the quality and maturity of products like Havoc, Unreal Engine etc...

When Id made their engine such that it could be licenced by third
parties, there was nothing else there filling the gap. If Lisp
developers want to try and do the same thing, they face stiff
competition from an already existing middleware and toolchain market.

This is the difference I'm talking about - it's a Mac versus Windows
thing (or Amiga vs Windows) The new tech might be better in every way
but if the market is off somewhere else doing its own thing, then
breaking into that market and causing revolutionary change is nigh on
impossible.

You guys keep thinking that Lisp will succeed because it is
technologically superior. I'm happy to conceed that point, I just don't
think it makes any difference to the market.
 
P

Peter Ashford

You guys keep thinking that Lisp will succeed because it is
technologically superior. I'm happy to conceed that point, I just don't
think it makes any difference to the market.

I mean, that I'm happy to conceed that Lisp may be technologically
superior, not that this means it will succeed in the game market.
 
K

Kenneth Tilton

Peter Ashford said:
I have never done it in Lisp. However, I DO work making middleware for
games, and I know LISP as well.

I'm not saying that making middleware in Lisp is harder than C++ - I'm
sure it isn't, I'm saying that all the current middleware is written in
C++ and it's hard to make an AAA title without using middleware. As
there is currently no Lisp middleware like Havoc or the Unreal Engine, I
conclude that writing an AAA game in Lisp faces a lot more work than
doing the same in C++ where I can choose commodity items as middleware.

I'm sick of getting misinterpretted on this - I'm not criticing Lisp, I
LIKE Lisp - I'm saying that a whole field of products that are
indespensible to modern AAA game construction do not exist for Lisp, and
that's an issue if you chose to use Lisp to write games.

But one guy (me) farting around for a year already has the beginnings of
an OpenGL scene graph manager, with support for OpenAL, arbitrary
graphics formats, and anti-aliased or 3D text. The graph is managed by
my Cells hack, which is simply brilliant for simulations.

You are absolutely right that the infrastructure is not there now, but I
look at some of these open source projects and see maybe 15 person-years
of work. Even if it is more like 30, hell, that is C++ years. Translated
to Lisp years, a few good Lispniks could...

...gee, since you like Lisp so well, you should sign on with my Cello
project. Frank and I are within hailing distance of an OS X port, which
would join win32 and Linux (again Frank). We could use your games
experience to prioritize features to be added, and identify which C/C++
libs to FFI to or (better) translate to Lisp should that ever make sense.

kenny
 
P

Peter Ashford

"Appropriate tool chains" are NOT easy to create. That's the reason
But one guy (me) farting around for a year already has the beginnings of
an OpenGL scene graph manager, with support for OpenAL, arbitrary
graphics formats, and anti-aliased or 3D text. The graph is managed by
my Cells hack, which is simply brilliant for simulations.

No offense, but every man and his dog has written a games engine / scene
graph. Myself included - both in C++ and Java. That's no where near
the amount of work that goes into a product like Havoc which is designed
with the flexibility to be able to fit into arbitrary production pipelines.
You are absolutely right that the infrastructure is not there now, but I
look at some of these open source projects and see maybe 15 person-years
of work. Even if it is more like 30, hell, that is C++ years. Translated
to Lisp years, a few good Lispniks could...

It's worth noting that nothing open source has really achieved great
success as AAA games middleware. The closest would probably be SDL
which has been mainly useful for porting to the Linux platform. All the
OSS projects such as Ogre, Crystal Space et al., have no impact on games
houses - and that's with dozens of smart and dedicated contributing
authors. The same is true in the Java games development scene where
projects like LWJGL and Xith3D have lots of contributors, produce good
work yet matter not a jot to the games development world.
..gee, since you like Lisp so well, you should sign on with my Cello
project. Frank and I are within hailing distance of an OS X port, which
would join win32 and Linux (again Frank). We could use your games
experience to prioritize features to be added, and identify which C/C++
libs to FFI to or (better) translate to Lisp should that ever make sense.

Good luck with Cello, but I'm not short of personal projects... what I'm
short of is time! However, I have become interested in seeing what I
can do on Win32 in lisp, so I'll have a wee look at that and see how it
goes. What Lisp / OpenGL implementation would you recommend for Win32?
 
K

Kenny Tilton

Peter Ashford wrote:

No offense, but every man and his dog has written a games engine

My secret is that I use monkeys, dozens of them. Labs are bright, but
when it comes to programming I'll take a good rhesus any time.
OSS projects such as Ogre, Crystal Space et al., have no impact on games

Thx for the input. Is that because they suck, or because things like
Havoc are better? How much so?
Good luck with Cello, but I'm not short of personal projects... what I'm
short of is time! However, I have become interested in seeing what I
can do on Win32 in lisp, so I'll have a wee look at that and see how it
goes. What Lisp / OpenGL implementation would you recommend for Win32?

Uhhh, Cello? You can use AllegroCL or Lispworks. A lazy stab at a
CormanCL port came up empty.

Not sure how I missed it, but a CLisp port should be a breeze based on
what I see of the FFI as I play with cells-gtk. Of course if you are
going to get intense on the CPU, bear in mind that CLisp is a byte-code
deal.

AllegroCL is by far the superior IDE, but some people like Lispworks. On
the other hand, many people like programming Lisp with Emacs and ILisp
(and now SLime), which is terrible compared to an integrated IDE, so my
mileage may not be the best to heed. But if you have the bucks, save
yourself a world of distractions and get AllegroCL.

Lispworks has the charm of offering OpenGL off the shelf. And if you
ever ship, no runtime licensing. Franz (AllegroCL) wants a pound of
flesh for distributing. You gotta talk to them to find out. They may be
worth it, though with Lispworks as an alternative....

The Opengl bindings in Cello are incomplete. But I have just seen what
FFIGEN can do in yet another lisp/gtk offering announced today:
lambda-gtk (on common-lisp.net).

I should get around to throwing gl.h and glu.h at FFIGEN and doing some
proper bindings, but anyone could do that.

Over on the Lisp cliki I found links to other opengl bindings, but i
could not make sense of them and just tossed off my own. You might do
better with some of those old bindings.

Cello includes FTGL for superb text in OpenGL as well as OpenAL support
and ImageMagick for pulling in graphics files. And Cells. Plus anything
you happen to do could help extend Cello. Oh, it uses Freeglut on win32
and Linux, Apple's Glut on OS X. MIT license.

kenny
 
P

Peter Ashford

Kenny said:
Peter Ashford wrote:




My secret is that I use monkeys, dozens of them. Labs are bright, but
when it comes to programming I'll take a good rhesus any time.

LOL! :eek:)
Thx for the input. Is that because they suck, or because things like
Havoc are better? How much so?

The OSS is cool - it's written by tallented hard working programmers.
But those projects tend to do the stuff which is cool, not the boring
stuff which is neccessary - like writing exporters from Max, Maya, XSI
which can have multiple layers of filters (including custom filters) in
them to extract data. They don't do things in platform neutral ways,
they don't support consoles, they don't have integrated debuggers. A
whole bunch of things which are independantly small but add up to a
whole lot. But I suspect the biggest issue is that game companies
invest a lot of cash in their products and want certainty - things like
support and knowing that there's someone to call when things go wrong.

That, and the fact that things like Unreal and Havoc *are* tuned to run
at peak performance on the target platforms and if they aren't, some
irate programmer has already screamed at the middleware company to fix
it, so it already works well by the time you get to it :eek:)

I guess the fact that some people's livelyhood is attached to the
middleware doing what it promises is a big difference.
 
K

Kenny Tilton

Peter said:
LOL! :eek:)



The OSS is cool - it's written by tallented hard working programmers.
But those projects tend to do the stuff which is cool, not the boring
stuff which is neccessary - like writing exporters from Max, Maya, XSI
which can have multiple layers of filters (including custom filters) in
them to extract data. They don't do things in platform neutral ways,
they don't support consoles, they don't have integrated debuggers.

Ah, yes, all the "grown-up" stuff that OSS people pretend does not
matter. <duck> Well, I guess it is a chicken-egg deal. The OSS stuff
will get the boring stuff when enough people get involved because they
see enough functionality to make them want to get involved.

I am doing the same with Cello, adding cool stuff because (a) it is more
fun and (b) it seems to offer the best chance of attracting help. I want
to do text-to-speech next, then mebbe an importer for some "standard"
format (VRML? XML?) which modeling tools might export, if there be such
a thing.

thx for the input.

kenny
 
C

Christopher C. Stacy

Peter Ashford said:
The issue I see going forward is this - to be commercially successful
at making middleware, there need to be people buying your product,
which requires a market of Lisp game programmers. There doesn't
currently exist such a market, therefore good Lisp middleware is not
going to be written.

To create this market, there needs to be a bunch of Lisp trailblazers
-
the equivallent of companies like Id, who create a game with a great
engine that they can make money off as a game but also license to
other Lisp game developers - then you start boot strapping the whole
situation (and this is how the C++ middleware market was created as
well)
[...]

You guys keep thinking that Lisp will succeed because it is
technologically superior. I'm happy to conceed that point, I just
don't think it makes any difference to the market.

You seem to be talking about a "market" of programmers who want
to obtain third-party "tool chains" or "middleware" with which
to develop their games.

Alternatively, individuals or individual companies could decide to
create (from scratch) their own Lisp software tools in which to
develop their games in Lisp. (Exactly what programs need to be
written depends on how you are going to use Lisp for the product.)
Then, rather than re-sell their tools, they could just use them
to their own strategic competitive advantage.

Maybe they could call the resulting product "Jak and Dexter".
http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml

By the way, The first commercially successful game I can think of that
was written in Lisp pre-dates video games. That would be Zork.
(It was written in an old dialect of Lisp called "MDL".)
I don't know whether you think that's very relevent to this
discussion or not; just thought it was an interesting historical tidbit.

Lisp has mostly been used for things other than developing games.
But graphics and AI, for example, have always been mainstays.
and those two domains certainly intersect with video games.
It has only been fairly recently that most computers were powerful
enough to run Lisp, so it hasn't been an option for most developers.

Lisp has a history of about 40 years, and for about 24 of those years,
"roll your own" is the approach that its practitioners have favored.
Sometimes this was because the libraries didn't exist, or it was hard
to interface to them, but often it was just because better libraries
and tools could be easily written in Lisp. It's an approach that's
insanely expensive in other languages - most companies want to cobble
things together by writing as little software as possible, especially
these days. Lisp is no magic bullet, of course. But for various reasons,
most people are quite unaware of this quarter century history of great
commercial successes using Lisp in just about every kind of application
domain that you can think of.

I think video games is probably a good domain for Lisp because
if the target platform is Mac/PC/Linux, it integrates well enough
(and is getting better), or if the target platform is some toy box,
then you have a foreign embedded cross-development situation of the
sort that Lisp has been very successfully used for many times in the past.

I don't think we're in much disagreement, except as to how much
sense it makes for someone to consider Lisp, which is pretty subjective.
Until fairly recently, most people could not even afford computers
powerful enough to run Lisp, so it wasn't an option, even if they
wanted it. My only point is to show that there's more than one way
of skinning a cat, and some people have found Lisp to be a good way.
 
G

Gerry Quinn

Alternatively, individuals or individual companies could decide to
create (from scratch) their own Lisp software tools in which to
develop their games in Lisp. (Exactly what programs need to be
written depends on how you are going to use Lisp for the product.)
Then, rather than re-sell their tools, they could just use them
to their own strategic competitive advantage.

Maybe they could call the resulting product "Jak and Dexter".
http://www.franz.com/success/customer_apps/animation_graphics/naughtydog.lhtml

Maybe they could. Although they would also note that instead of being
more productive by plural "orders" of magnitude (c.f. your previous
post) i.e. factors of hundreds or thousands, they would have taken about
the same time as development teams using other languages. And instead
of an engine that is even *capable* of being re-sold, they would be left
with an engine that only one programmer understands.

- Gerry Quinn
 
I

Ingvar

Peter Ashford said:
The issue I see going forward is this - to be commercially successful
at making middleware, there need to be people buying your product,
which requires a market of Lisp game programmers. There doesn't
currently exist such a market, therefore good Lisp middleware is not
going to be written.

To create this market, there needs to be a bunch of Lisp trailblazers
-
the equivallent of companies like Id, who create a game with a great
engine that they can make money off as a game but also license to
other Lisp game developers - then you start boot strapping the whole
situation (and this is how the C++ middleware market was created as
well)
[...]

You guys keep thinking that Lisp will succeed because it is
technologically superior. I'm happy to conceed that point, I just
don't think it makes any difference to the market.

You seem to be talking about a "market" of programmers who want
to obtain third-party "tool chains" or "middleware" with which
to develop their games.

And if we consider Naughty Dog for a short while more...
Alternatively, individuals or individual companies could decide to
create (from scratch) their own Lisp software tools in which to
develop their games in Lisp. (Exactly what programs need to be
written depends on how you are going to use Lisp for the product.)
Then, rather than re-sell their tools, they could just use them
to their own strategic competitive advantage.

Maybe they could call the resulting product "Jak and Dexter".

They could (in theory) claim that they actually wrote a decent
platform action engine and let others in on the fun and call the
result of *that* "Ratchet&Clank" (by Insomniac Games, using GOAL and
support-code provided by Naughty Dog).

//Ingvar
 
K

Kenny Tilton

Peter said:
I mean, that I'm happy to conceed that Lisp may be technologically
superior, not that this means it will succeed in the game market.

Whew! For a second there I thought a Usenet debate had resulted in
agreement. Damn near had a heart attack. Be careful, will ya? The
monkeys lost it, had to lock 'em down for the day.

:)

kenny
 
P

Peter Ashford

You seem to be talking about a "market" of programmers who want
to obtain third-party "tool chains" or "middleware" with which
to develop their games.

Alternatively, individuals or individual companies could decide to
create (from scratch) their own Lisp software tools in which to
develop their games in Lisp. (Exactly what programs need to be
written depends on how you are going to use Lisp for the product.)
Then, rather than re-sell their tools, they could just use them
to their own strategic competitive advantage.

Of course they could. However having to roll your own is an impediment
to writing AAA games. Also, you're not comparing apples with apples.
Games of the class of Half Life 2 and Halo2 (using Havoc) are much more
complex than Jak and Dexter. Writing a physics engine is very non
trivial regardless of programming language and if you have to "roll you
own" to write an equivallent game in Lisp then you have a HUGE
impediment to progress than a C++ programmer doesn't have. (Note, I hate
C++, I'm just commenting on market realities).
 
C

Christopher C. Stacy

Peter Ashford said:
Of course they could. However having to roll your own is an
impediment to writing AAA games. Also, you're not comparing apples
with apples. Games of the class of Half Life 2 and Halo2 (using Havoc)
are much more complex than Jak and Dexter. Writing a physics engine
is very non trivial regardless of programming language and if you have
to "roll you own" to write an equivallent game in Lisp then you have a
HUGE impediment to progress than a C++ programmer doesn't have. (Note,
I hate C++, I'm just commenting on market realities).

YMMV
 
P

Peter Ashford

Christopher said:

It's got nothing to do with *my* milage. The market works this way.

Disagree with any of these and you're nuts :eek:) :

(1) Physics engines are a lot of work to get right
(2) Physics engines are required for some modern AAA games
(3) Physics engines for AAA games exist only currently for C++

Therefore:

(4) Writing AAA games which require physics is going to be much easier
in C++ (where it's a commodity) than any other language where you have
to roll your own.

Sorry, that is just a fact. There's no 'milage' or interpretation involved.
 
F

Fred Gilham

I'm not sure this is relevant, but there's a system called Abigail
that does naive physics in Lisp. It works under CLIM --- the "movie"
part even works under McCLIM if you fix a few things in Abigail. It
has stick figure animations, calculated in real time, of people
walking around playing with a ball, bouncing a ball and a couple
others.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,575
Members
45,053
Latest member
billing-software

Latest Threads

Top