• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

Forcas

Is LISP fluency worth it?

46 posts in this topic

I know there have always been tons of posts on game AI boards asking about LISP, what it is, and if it''s used in commercial games. Given that LISP is used in few commercial games, is it worth becoming fluent in anyway? I am considering persuing it for two reasons: A.) It is used in academic papers. Being fluent in LISP allows a person to stay on top of the latest developments in AI. B.) It can be embedded into game engines. I heard that Halo uses an embedded LISP-like language for AI. Could embedded LISP-style languages benificial in the long run? I''ve been reading through LISP by Winston & Horn in my free time for the past year, and I have to say that while I''m familiar with many of LISP''s features, when it comes to coding in LISP, I have the speed and effectiveness of a slug. What''s with this language? There are too many parenthesis and stuff. I really like the transparency of lists in LISP, and have researched the benefits of functional programming, but I''m still not convinced that I can code anything in LISP with more ease than I could in C++. Should I persue LISP until I am fluent in it? Any advice?
0

Share this post


Link to post
Share on other sites
My advice is: don''t bother unless you''re somebody who has a love of "software engineering" as a discipline, and you have time to really become an expert.

What makes Lisp unique is that you can program it in a hundred different styles:

* Lisp programs can look like C programs.
* Lisp programs can look like Fortran-77 programs.
* Lisp programs can look like Prolog programs.

But it really starts to shine when you start envisioning brand-new styles, styles that have never been embodied in any programming language. You only get this benefit if you''re smart enough to be able to invent new programming styles.

0

Share this post


Link to post
Share on other sites
If you're interested in programming linguistics or complex logic, learn Lisp. Basically, the comment that most Lisp coders have is that Lisp has had the same featureset of all these clever new languages for decades.

I firmly believe that if Lisp had cought on a little more isntead of Fortran, then the programming world would look completely different today. For the layman, Fortran is basically generalized assembler. All languages read like fortran, as they're further generalized assembler.

Lisp is a completely different direction - as Fortran and other modern languages are converted into a parse tree before assembler, Lisp is basically a mildly abstracted representation of a parse tree. Completely different model to work from.

The biggest thing about lisp is that variable data and program code have the same structure. Basically imagine C where you could execute an array, and your normal code was just operations coded into arrays. Lisp is like that (well, technically its all linked lists, not arrays, but who's counting).

Anyone who plans on designing a scripting language should learn Lisp, before they make some of the same mistakes every other language does.

Still, as a gamer - seriously not needed unless you're planning on using an engine that needs it.

[edited by - Pxtl on June 11, 2004 4:34:57 PM]
0

Share this post


Link to post
Share on other sites
I think learning Common Lisp is definitely worth it. Even if you never really use the language, it will expose you different styles and ways of thinking that could help you write better code in any language. Knowing many very dfferent languages will improve your generall programming skill in all the languages you know.
Knowing C and C++ won''t make much of a difference because they are similar, but knowing C, Lisp, Prolog, and Haskel will expose you to many different ways of working that you otherwise probably wouldn''t experience.

Lisp has long been associated with academia since that is where it originated, and its also been associated with the AI winter and thus it has a pretty bad reputation. Truly though, it is a real language used for huge programs (which include non-AI programs). Lisp Success Stories

Yes, the Lisp syntax (s-expressions) has been used for quite a few scripting langauge, and it isn''t hard to see that it makes a good candidate for such because it is extremely easy to implement a scripting engine for it(at least the basics since the parse tree is created by the programmer, so the computer can skip a few steps).

If you truly think "There are too many parenthesis and stuff", Lisp might not be for you. Syntax is really a petty thing, and there are much more important attributes of a programming language. While Lisp syntax may seem a burden, without it Lisp would be exactly the same as any other programming language and most of it''s important features would be gone.
0

Share this post


Link to post
Share on other sites
Haw haw, i''m now interested in learning LISP, because it seems to be a very "different" language. I''ll see it later.

( Be Side )
0

Share this post


Link to post
Share on other sites
quote:
Original post by Nekhmet
* Lisp programs can look like C programs.


And this is an advantage because...?
quote:

* Lisp programs can look like Fortran-77 programs.


And this is an advantage because...?
quote:

* Lisp programs can look like Prolog programs.


And this is an advantage because...?




0

Share this post


Link to post
Share on other sites
I prefer C coding style, so this is an advantage for me. It makes you less nervous when programming.

( Be Side )
0

Share this post


Link to post
Share on other sites
You guys are missing the point. The advantage isn''t that you can use one of those old styles. The advantage is that you can invent a style that suits the problem.

0

Share this post


Link to post
Share on other sites
It is definitely worth it. And about it not being used in games, well it sure is used for scripting. The biggest title that comes to mind other than the previously mentioned ones is Age of Empires II. All AI scripts were written in a very LISP-like language... And LISP isn't very hard to learn either if you already know how to program so your time investment will be relatively small.
0

Share this post


Link to post
Share on other sites
Im currently learning Scheme. I'm actually finding it pretty difficult. not because of the syntax, but because its a total sandbox. defining list and precedures is all fine, except I cant do any 'real world' examples, how would you connect to a socket and grab a webpage to to parse? how about drawing some graphics on the screen? The books on scheme dont provide any real world examples either. finding nth prime number or implementing some obscure mathimatical formula will not help you make anything practical. sorry to sound like a rant. just my $0.02.
0

Share this post


Link to post
Share on other sites
I don't know about Scheme, but is Common Lisp much like C in its library - you can do math, print some stuff on the screen, manipulate complex data types, and mess with files (and quite a bit more, but all relatively 'background' stuff). For things like a GUI/Graphics/Etc you need to either find a library somebody else made or write one yourself using FFI (which is, unfortunately, not standardized in CL so you have to pick an implementation)
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Forcas

I know there have always been tons of posts on game AI boards asking about LISP, what it is, and if it''s used in commercial games.

Given that LISP is used in few commercial games, is it worth becoming fluent in anyway?

I am considering persuing it for two reasons:

A.) It is used in academic papers. Being fluent in LISP allows a person to stay on top of the latest developments in AI.

B.) It can be embedded into game engines. I heard that Halo uses an embedded LISP-like language for AI. Could embedded LISP-style languages benificial in the long run?

I''ve been reading through LISP by Winston & Horn in my free time for the past year, and I have to say that while I''m familiar with many of LISP''s features, when it comes to coding in LISP, I have the speed and effectiveness of a slug.

What''s with this language? There are too many parenthesis and stuff. I really like the transparency of lists in LISP, and have researched the benefits of functional programming, but I''m still not convinced that I can code anything in LISP with more ease than I could in C++.

Should I persue LISP until I am fluent in it? Any advice?


Short answer: No. You don't need it, since most workplace projects are in C++ or Java, as are university ones. The lowest it really gets today is C, which is basically watered-down C++. So, no: you don't need LISP.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Code_Dark
Short answer: No. You don't need it, since most workplace projects are in C++ or Java, as are university ones. The lowest it really gets today is C, which is basically watered-down C++.

He was asking about AI papers and research, if I read it correctly.
Quote:
Original post by Code_Dark
So, no: you don't need LISP.

Well, you don't need C, C++ or Java either. The point is that it very well may be worth learning or at least investigating a little. That's true of any language that gets your attention and seems at least interesting.

But then again, you're right, I wouldn't recommend LISP either. Stick with Common Lisp. :p

Anyway, to answer your question;
If you're even relatively experienced with any programming language, you'll probably find the underlying concepts of Lisp pretty easily grasped. For me the biggest thing was just getting "functional" so to speak. Then again, like with other high-level languages learning the costs of operations might come a little slower (along with learning all of what CLOS has to offer etc).

Quote:
Original post by Extrarius
For things like a GUI/Graphics/Etc you need to either find a library somebody else made or write one yourself using FFI (which is, unfortunately, not standardized in CL so you have to pick an implementation)

Yes, and I'm still looking for a solid match in these regards.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Forcas
Should I persue LISP until I am fluent in it? Any advice?


I have and I'm glad I did. Lisp was slow to learn for me because every little trivial thing is done differently than my C background, but it really gets better after a while.

Quote:
Original post by Arild Fines
And this is an advantage because...?


It's not an advantage (well, maybe except for the prolog part) it's a proof of raw power.

[Edited by - Diodor on June 17, 2004 8:11:22 AM]
0

Share this post


Link to post
Share on other sites
[quote]Original post by Diodor

I have and I'm glad I did. Lisp was slow to learn for me because every little trivial thing is done differently than my C background, but it really gets better after a while.
[quote]

Finally! Thanks for agreeing with me. It's easy to figure how out to make Lisp do things, but hard to become an effective writer and debugger of Lisp code. It's very condensed and hard to read.

Has anyone read "On Lisp" by Graham? I'm thinking about reading it. It's free online.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Forcas
Quote:
Original post by Diodor

I have and I'm glad I did. Lisp was slow to learn for me because every little trivial thing is done differently than my C background, but it really gets better after a while.


Finally! Thanks for agreeing with me. It's easy to figure how out to make Lisp do things, but hard to become an effective writer and debugger of Lisp code. It's very condensed and hard to read.

Has anyone read "On Lisp" by Graham? I'm thinking about reading it. It's free online.

I have it and printed it out a few months ago, though I only read a part of it I really liked it. I recall there being a heavy slant towards the use of macros, at least when compared to my many other lisp books, I'll have to load it up. I want to buy a used copy, though they start out at around $150. Cheers.

Edit: Oh, I just realize that you're the OP. I wouldn't recommend On Lisp as a beginner's text.

[Edited by - Woodsman on June 19, 2004 6:12:38 PM]
0

Share this post


Link to post
Share on other sites
I've already read Winston and Horn... it was okay, I guess. I wish I would've learned with Norvig, though.
0

Share this post


Link to post
Share on other sites
Ok, that book was pretty good. I really liked Paul Graham's ANSI Common Lisp. It had a comprehensive reference to CL in the back which is still helpful, and I still consider it the best book on the subject that I've come across.

Incidentally, what Lisp implementation are you using?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Forcas
Has anyone read "On Lisp" by Graham? I'm thinking about reading it. It's free online.


On Lisp is a great book, definitely worth a read. If you're a relatively experienced programmer you should be able to work your way through it with little previous Lisp experience, although parts of it are tough. And if you do read it, keep in mind that the real point of the book is the last few chapters, so you're really wasting your time if you stop halfway through. Why?

It's not a "teach yourself Lisp in XX days" book, and it's not a reference book. What it really does is demonstrate how to use Lisp to create specialized programming languages that are geared towards whatever problem you're trying to solve. Most of the book focuses on teaching you the tools you need to do this (Lisp macros), and the real meat (where these specialized languages are implemented using macros) isn't until the end.

Keep links/copies of the Hyperspec and CLTL2* handy while you read it though, or as a Lisp newbie you'll be lost.

edit: that's a common abbreviation for "Common Lisp The Language 2" which you can find free online with a quick Google - basically the Lisp bible, it will explain a lot of the Lisp concepts while the Hyperspec really explains the syntax of the various built-in functions that implement those concepts.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Dobbs
Most of the book focuses on teaching you the tools you need to do this (Lisp macros), and the real meat (where these specialized languages are implemented using macros) isn't until the end.
Disagreed.. "How macros work" was actually explained pretty quickly, and then there were all these different techniques using variable capture and other stuff with small examples. The very last chapters weren't that interesting IMO, but pretty specific and almost tiresomely lenghty examples of how macros can be used in some particular problems. Not so useful as the chapters before those, which had more general ideas that you can apply to your own macros.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by civguy
pretty specific and almost tiresomely lenghty examples of how macros can be used in some particular problems. Not so useful as the chapters before those, which had more general ideas that you can apply to your own macros.

I see your point and I suppose it depends entirely on the interest level of the reader and what she expects out of the text.
0

Share this post


Link to post
Share on other sites
Did SabreMan leave the forums or something? You'd think he'd be all over this.
0

Share this post


Link to post
Share on other sites
Lisp is kinda fun, but it feels inelegant and pieced-together. Just as the first airplane ever probably ended up with a lot of ugly nailed-on afterthought pieces, so does this pioneer of functional languages. Scheme may be more to the liking of the programmer who wants to make use of functional programming.

However:

GUY STEELE COMMANDS YOU TO LEARN LISP.
0

Share this post


Link to post
Share on other sites