Live data from Hacker News

Cl-bodge: a cross-platform Common Lisp game and application framework

borodust.org

1–10 of 38 posts

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#2
There’s a small, somewhat quiet, but very welcoming and very vibrant community of Common Lisp games developers. #lispgames on Libera is where many of them hang out.

There are a few people who are trying their darndest to build and support libraries for graphics and other game-necessary things. It’s a tall order, since computers and operating systems have become so wildly complex and incompatible. (It’s no wonder people go straight for the browser to do little graphics things now.) Often it means finding a way to robustly interop with C++, graphics cards, etc.

Borodust, Baggers, dto, mfiano, and Shinmera are but a few Internet pseudonyms of people working hard along these lines. Shinmera in particular just released a demo of his team’s game Kandria [1]. It’s a cool and modern game with neat mechanics and effects. It’s powered in part by a ton of open source Common Lisp tools he’s developed.

[1] https://kandria.com/

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#3

There’s a small, somewhat quiet, but very welcoming and very vibrant community of Common Lisp games developers. #lispgames on Libera is where many of them hang out. There are a few people who are trying their darndest to build and support libraries for graphics and other game-necessary things. It’s a tall order, since computers and operating systems have become so wildly complex and incompatible. (It’s no wonder peop…

I feel like this is a good time to shoutout to Baggers for the excellent "Little Bits of Lisp" Youtube series: https://www.youtube.com/watch?v=m0TsdytmGhc&list=PL2VAYZE_4w...

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#4

There’s a small, somewhat quiet, but very welcoming and very vibrant community of Common Lisp games developers. #lispgames on Libera is where many of them hang out. There are a few people who are trying their darndest to build and support libraries for graphics and other game-necessary things. It’s a tall order, since computers and operating systems have become so wildly complex and incompatible. (It’s no wonder peop…

On a somewhat related aside, the book Land of Lisp [1] is an interesting introduction to both Common Lisp and game programming. If anyone, like me, was interested in learning Common Lisp through a casual and fun mode, I highly recommend the book.

[1] http://landoflisp.com/

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#5
post #4

There’s a small, somewhat quiet, but very welcoming and very vibrant community of Common Lisp games developers. #lispgames on Libera is where many of them hang out. There are a few people who are trying their darndest to build and support libraries for graphics and other game-necessary things. It’s a tall order, since computers and operating systems have become so wildly complex and incompatible. (It’s no wonder peop…

On a somewhat related aside, the book Land of Lisp [1] is an interesting introduction to both Common Lisp and game programming. If anyone, like me, was interested in learning Common Lisp through a casual and fun mode, I highly recommend the book. [1] http://landoflisp.com/

I generally recommend people avoid Land of Lisp as an introduction to CL book. It's simultainisouly too easy and too hard for most people approaching the language in that it goes way too briefly over core concepts then all of a sudden shifts gears into much more involved programming.

That being said, it's probably the best second book on CL ever. It showcases a variety of lisp techniques on some very real and fun example projects working itself all the way up to a web base game rendered via SVG which is quite fun.

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#6
I think Lisp is wonderful, and I would love to develop games using Lisp. However, I was under the impression that, by all accounts, developing games in Lisp is completely unrealistic due to the garbage collector.

I'm not familiar with Common Lisp, but in Racket, “GC pauses [...] typically run from 50ms to 100ms” [0]. On a 16ms maximum frame budget, that doesn't really work. Am I missing something?

[0]: https://docs.racket-lang.org/portaudio/index.html#%28part._....

EDIT: I'm aware of GOAL at Naughty Dog — Andy Gavin who wrote it described the GC as being a problem in a HN comment. [1]

[1]: https://news.ycombinator.com/item?id=1998321

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#7

I think Lisp is wonderful, and I would love to develop games using Lisp. However, I was under the impression that, by all accounts, developing games in Lisp is completely unrealistic due to the garbage collector. I'm not familiar with Common Lisp, but in Racket, “GC pauses [...] typically run from 50ms to 100ms” [0]. On a 16ms maximum frame budget, that doesn't really work. Am I missing something? [0]: https://docs.r…

I can't speak to the exact numbers, but in comparison to Scheme based lisps, CL has a much wider variety of optional hints you can give to the run time to drastically speed up performance thanks to its more pragmatic industrial heritage.

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#8

I think Lisp is wonderful, and I would love to develop games using Lisp. However, I was under the impression that, by all accounts, developing games in Lisp is completely unrealistic due to the garbage collector. I'm not familiar with Common Lisp, but in Racket, “GC pauses [...] typically run from 50ms to 100ms” [0]. On a 16ms maximum frame budget, that doesn't really work. Am I missing something? [0]: https://docs.r…

Naughty Dog historically disagreed with this [0], plenty of games these days are developed in languages with GC but it is a performance trade off. For maximum performance any Lisp is probably not the way to go but I don't think it's unfeasable.

I want to say in general e.g. SBCL (a popular common lisp implementation) will perform a lot better than Racket. Racket is a great language but performance is not it's strong suit.

[0]: https://en.m.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#9

I think Lisp is wonderful, and I would love to develop games using Lisp. However, I was under the impression that, by all accounts, developing games in Lisp is completely unrealistic due to the garbage collector. I'm not familiar with Common Lisp, but in Racket, “GC pauses [...] typically run from 50ms to 100ms” [0]. On a 16ms maximum frame budget, that doesn't really work. Am I missing something? [0]: https://docs.r…

The `portaudio` is a few years old, so I have a hunch that the comment refers to the old backend "Racket BC". The new backend "Racket CS" has a new garbage collection mode "incremental", which I understand is better for this usage scenario. I don't have any numbers though.

Re: Cl-bodge: a cross-platform Common Lisp game and application framework

#10

I think Lisp is wonderful, and I would love to develop games using Lisp. However, I was under the impression that, by all accounts, developing games in Lisp is completely unrealistic due to the garbage collector. I'm not familiar with Common Lisp, but in Racket, “GC pauses [...] typically run from 50ms to 100ms” [0]. On a 16ms maximum frame budget, that doesn't really work. Am I missing something? [0]: https://docs.r…

You can write Lisp in a way that you manage your own allocations, including avoiding the heap. It defeats part of the point of Lisp, but sometimes you can use that coding style for a subset of your program that shouldn’t be leaning on the GC too much.

I don’t do game development, but in scientific computing, I rely on the GC a lot for workload preparation and other administrivia, then adopt a GC-famished Lisp style for the hardcore numerical computing part.

To be sure though, GC-less Lisp programming takes a great deal of effort and knowledge. It’s not exactly an a la carte option. But the fact it’s possible means latency-sensitive applications are possible. Fortunately, Lisp’s primary benefit isn’t the GC.

Post reply on HN