Live data from Hacker News

Gamedev in Lisp. Part 2: Dungeons and Interfaces

gitlab.com

31–40 of 68 posts

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#32

Earlier quoted context omitted.

Something can be mindbending in its implementation, but offer a very convenient interface at the same time. If mindbending isn't relating to its usage, but to its implementation, then I could see, how it could still be a good thing.

How does that relate to a simple loop construct though? Why would you want that to be mind bending in interface or implementation? Every other language makes it as simple as possible.

This isn't really true – you have languages like Odin that only have a for loop, no while loop, that only supports index-based iteration. Then you have languages like Python that let you loop over an arbitrary iterable, and define your own iterables. Some languages allow conditionals in loops, some don't. Some let you loop over multiple iterables, while some only take one at a time.

Common Lisp happens to be on the upper end of what loop allows – you can use it as a standard for loop pretty easily, but the interface gives you many other options.

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#33
post #9

Earlier quoted context omitted.

I'm with you there. Is a bit of a mind bend, as I really disliked it the first few times I saw it. For an even sillier mind bend, I'm using tagbody to be able to directly transcribe some of Knuth's algorithms as I am learning them.

I don't understand why turning a simple loop into a 'mindbend' is considered good. The downfall of programming is complexity, if you're getting your mind blown by a loop how are you going to do the rest of the program?

Simple minds loop simply

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#34

Earlier quoted context omitted.

Why loop when you can https://iterate.common-lisp.dev/ instead? No s-expr-less alien syntax, no need for `do` to switch to back to Lisp syntax, normal `if`/`when` without the ugly `else`/`end` and generally useful features added.

Have they fixed the problem in Iterate yet where it breaks any uses of the built-in count function?

Sadly no. Biggest bug in there, "fortunately". Easy to patch, though.

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#35

Earlier quoted context omitted.

How does that relate to a simple loop construct though? Why would you want that to be mind bending in interface or implementation? Every other language makes it as simple as possible.

This isn't really true – you have languages like Odin that only have a for loop, no while loop, that only supports index-based iteration. Then you have languages like Python that let you loop over an arbitrary iterable, and define your own iterables. Some languages allow conditionals in loops, some don't. Some let you loop over multiple iterables, while some only take one at a time. Common Lisp happens to be on the u…

> Common Lisp happens to be on the upper end of what loop allows – you can use it as a standard for loop pretty easily, but the interface gives you many other options.

If you really wanna get freaky try 'do. It is the heroin addicted cousin of 'loop

https://www.lispworks.com/documentation/HyperSpec/Body/m_do_...

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#36
post #29

Earlier quoted context omitted.

Jon Blow tried to make a game like this way back. It might be worth learning how/why it failed.

Link to any video or anything on the subject?

Unless I'm mistaken, I think fire_lake might be referring to a wholly unrelated first-person RPG spellcasting game project wherein the player would draw glyphs with their mouse in order to cast spells, and then there would be a surprise later in the game based on this mechanic (which was later repurposed for The Witness).

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#37
post #3

Nice, just this week I started developing a roguelike in Python, but Lisp might be cool as well.

There's also this full-fledged Lisp-based roguelike tutorial: https://nwforrer.github.io/posts/roguelike-tutorial-part1

There's also Langband: a fairly complete Angband clone written in CL by my late friend. Including SDL/tiled version; however the code is pre-Quicklisp and it'd probably would be some work to get it to run again.

https://github.com/fufie/lambdarock

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#38
post #29

Earlier quoted context omitted.

Link to any video or anything on the subject?

Unless I'm mistaken, I think fire_lake might be referring to a wholly unrelated first-person RPG spellcasting game project wherein the player would draw glyphs with their mouse in order to cast spells, and then there would be a surprise later in the game based on this mechanic (which was later repurposed for The Witness).

Yes, it reminded me of his talk on prototyping:

https://www.youtube.com/watch?v=ISutk1mauPM&t=426s

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#39

This is what all technical tutorials should look like. Well-composed and generally free of grammatical errors, spends just the right amount of time explaining each new topic as it is introduced, comes with full code samples, and includes visual samples of what the code does. Also, lengthy enough to treat the material in depth, while still being sufficiently self-contained that I can follow along -- without having rea…

Seconded! Top notch longform programming material.

Re: Gamedev in Lisp. Part 2: Dungeons and Interfaces

#40
This is super solid, but the setup in Part 1 (CL itself, Python, C, lots of steps) I think is indicative of why CL is not super popular, especially with young programmers. Which is a shame. Would be awesome if someone felt like putting in the work to make the language more approachable (installation wise).
Post reply on HN