From: Kenny Tilton
Subject: Re: Python & C++ and Lisp questions
Date: 
Message-ID: <NxAbd.79200$Ot3.26025@twister.nyc.rr.com>
Edward Tate wrote:

> Hello people!
> 
> First of all i'd just like to say that i'm no expert in any
> programming language(which is why i'm here ;-) ), but I was just
> slightly curious about a few issues concerning Lisp, Python and C++.
> I am currently in my first year at university studying Computer
> Science with Games Development. My overall aim is to create a simple
> game, and then be able to go on to create more advanced games.

How advanced? Will you want 3D? Complex enough to require a screne graph 
manager? Maybe even a physics engine such as ODE? If so, those are all 
written in C/C++. I see Python has PyOSG to get you to Open Scene 
Graph... use Google to explore this angle further.

Not that Lisp cannot use C/C++ libraries. My Cello (OpenGL and more) 
talks to several. But there is a small learning curve if you end up 
having to do FFI bindings on your own. Your C++ proficiency would help 
greatly there. And who knows, Cello might even have what you need by the 
time you get that far.

> My question is, what are the advantages/disadvantages to programming
> games in Python and C++(I am already quite proficient in C++), versus
> programming them all in Common Lisp.

Lisp is much more fun, the way Python is more fun than C++. But Python 
is just a scripting hack run amok, whereas Lisp has been crafted from 
day one (and that was a lot of days ago) to be the ultimate programming 
language. It shows.

  Optimally I'd like to be able to
> settle on a language now so that by the time I finish my degree I am
> most proficient in that.

When you put it that way, Lisp again trumps Python. Since you are 
proficient in C++, you already are proficient in Python, or will be in a 
few months. There is nothing there, really.

Lisp is a very deep language, so every year of use will make you a 
better programmer, period. Not that it will be hard to learn, just that 
you will keep on learning more and more powerful ways to build software.

Game development is tough. You'll need good graphics, strategy, 
performance, and with all that good overall management of code 
complexity. Python is fine for toy projects, but is the wrong hammer for 
serious work.

btw, Check the newby stories in The Road to Lisp Highlight Film, URL in sig.

kenny

-- 
Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film

From: tkneste
Subject: Re: Python & C++ and Lisp questions
Date: 
Message-ID: <b1794409.0410150331.2762e660@posting.google.com>
Kenny Tilton <·······@nyc.rr.com> wrote in message news:<·····················@twister.nyc.rr.com>...

> 
> How advanced? Will you want 3D? Complex enough to require a screne graph 
> manager? Maybe even a physics engine such as ODE? If so, those are all 
> written in C/C++. I see Python has PyOSG to get you to Open Scene 
> Graph... use Google to explore this angle further.
> 
ODE seems to be an easy target for UFFIfication, it has a clean and
well (thought not completely) documented api. I recently used ODE as a
test target for some experiments with gcc-xml, resulting in a complete
and probably very buggy UFFI interface to it. Very nice. IMHO, ODE
with some higher level lispy abstraction (for managing complex
objects, scenes and stuff) and some decent 3d-engine would be ideal
thing for game-dev.
Finding or building a 3d-engine could be a bit of a problem, thought.
All modern engines seem to be very C++ centric, possibly with some
scripting language support, and generally not very easily embedded in
CL. If somebody knows a relatively low-level 3d library with clean
interface I would really like to hear about it. Off course the right
thing would be to implement it in CL, wonder if there is any work in
progress?
Just some thoughts, since this "lisp in game-dev" topic seems to
pop-up quite frequently and it would be nice to know where all these
people head next after getting their answers.

And hi everyone: My name is T.Neste, and I'm a lispaholic ;-)
From: Kenny Tilton
Subject: Re: Python & C++ and Lisp questions
Date: 
Message-ID: <QZQbd.30393$4C.5173212@twister.nyc.rr.com>
tkneste wrote:
> Kenny Tilton <·······@nyc.rr.com> wrote in message news:<·····················@twister.nyc.rr.com>...
> 
> 
>>How advanced? Will you want 3D? Complex enough to require a screne graph 
>>manager? Maybe even a physics engine such as ODE? If so, those are all 
>>written in C/C++. I see Python has PyOSG to get you to Open Scene 
>>Graph... use Google to explore this angle further.
>>
> 
> ODE seems to be an easy target for UFFIfication, it has a clean and
> well (thought not completely) documented api. I recently used ODE as a
> test target for some experiments with gcc-xml, resulting in a complete
> and probably very buggy UFFI interface to it. Very nice. IMHO, ODE
> with some higher level lispy abstraction (for managing complex
> objects, scenes and stuff) and some decent 3d-engine would be ideal
> thing for game-dev.
> Finding or building a 3d-engine could be a bit of a problem, thought.
> All modern engines seem to be very C++ centric, possibly with some
> scripting language support, and generally not very easily embedded in
> CL. If somebody knows a relatively low-level 3d library with clean
> interface I would really like to hear about it. Off course the right
> thing would be to implement it in CL, wonder if there is any work in
> progress?

I see it is time to resume the unmerciless hawking of Cello:

-- OpenGL
-- FTGL (for nice text from any available TrueType font)
-- ImageMagick (mostly for pulling in JPGs, GIFs, PNGs, etc)
-- OpenAL (for cute noises in 3D)
-- Cells (constraints hack for complex model development)
-- Just the beginnings of scene graph management
-- Open (as in MIT) source
-- Portable (developed originally under win32, ported at some late point 
to Linux, now being ported to OS X (as of yesterday PM)

I stopped adding libraries to get on with a project which can get by 
nicely with all the above, but text-to-speech and a physics engine would 
be likely add-ons.

The project is still only for brave souls, however. No doc, lotsa libs 
to build, etc etc. Oh, and I need to clean up a mess: the Cello project 
on c-l.net is obsolete, as are many links on the Cells project to which 
Cello development has returned (see URL in sig).

The only thing I am doing is keeping the CVS repository current with my 
working code base.

kenny

-- 
Cells? Cello? Celtik?: http://www.common-lisp.net/project/cells/
Why Lisp? http://alu.cliki.net/RtL%20Highlight%20Film