4 ms·
3D Game Engine in Lisp
- pnathan 15y agoThis is really cool. I have no idea what is going on, though. Is this a senior project? I'm unfamiliar with the course numbering at your school. I'd love to see it even non-commercial open-source, I have some game ideas I'd like to implement (about 2 projects down the pipe. :D), but don't feel up to putting together a graphics engine.
- biot 15y agoProject is here with video and link to the course as well: http://code.google.com/p/blackthorn-engine-3d/ http://code.google.com/p/blackthorn-engine-3d/
- burgerbrain 15y agoMight be worth mentioning in this context that the Crash Bandicoot games were in a Lisp.
- jcromartie 15y agoAnd the developer continues to use Scheme (on top of the standard C++ SDK) to power their most recent games: Uncharted and Uncharted 2, two of the most critically acclaimed games of all time. I'd definitely call Naughty Dog a Lisp gaming success story... Abuse is another (but not that successful).
- kgthegreat 15y agohttp://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp http://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp
- spacemanaki 15y agoI had no idea Abuse used Lisp, that's kind of cool! I played that rather a lot for a few months in high school. Anyone else interested, the source is apparently also public domain and available here http://abuse.zoy.org/wiki/download http://abuse.zoy.org/wiki/download
- iterationx 15y agoSo was Mario64 http://www.franz.com/success/customer_apps/animation_graphics/nichimen.lhtml http://www.franz.com/success/customer_apps/animation_graphic...
- Wilduck 15y agoAnyone who reads this without clicking the link should note that the game Mario64 was NOT programmed in lisp. Just one of the tools used to write Mario64 was written in lisp.
- wlievens 15y agoI remember peeking at log or configuration files (can't remember well) of Age of Empires 2 and seeing them full of S-Expressions.
- ihodes 15y agoIt was, though it was basically imperative code wrapped in sexps. EDIT: It was for scripting AI "personalities".
- __rkaup__ 15y agoLike ihodes says, the AI personalities were coded in a language that looked like Lisp. It was hardly a language though. Everything was oriented around setting the AI 'goals', and you had little control in how the AI would actually achieve them. Edit: grammar.
- jpr 15y agoThe page doesn't seem to load for me.
- kgthegreat 15y agoAs pointed out by biot earlier, http://code.google.com/p/blackthorn-engine-3d/ http://code.google.com/p/blackthorn-engine-3d/ has the code and a video.
- Figs 15y agoI worked on this project doing most of the input coding (XBox 360 controller & keyboard), some of the game loop & networking, and some of the game play. If you have any questions, I'll try to answer as best as I can remember -- it's been a few weeks since I've worked on it. Elliott's site seems to be down, but our code is open source: http://code.google.com/p/blackthorn-engine-3d/ http://code.google.com/p/blackthorn-engine-3d/ You'll find our project development notes for the class (status reports, some of the initial planning, final report, etc.), along with the code, screen shots from various points in the development, etc. A lot of things are probably still a bit messy there; we only had 10 weeks during the course to hack the engine together. (Although I believe Elliott's been continuing work on generalizing it since the end of the school year.)
- rsaarelm 15y agoAny opinion on which elements were particularly nice to code due to choosing Lisp? What about anything where choosing Lisp gave you particular trouble?
- Figs 15y agoMost of the team was unfamiliar with Lisp starting out, so that was an extra challenge to it -- only Elliott was an expert, and only one other person had actually used Common Lisp as far as I recall. I had some prior exposure to Clojure (although not recent), Python (what I usually use for many of my personal projects), and Haskell. Trying to use an unfamiliar language for a fairly serious project in a group setting like this was something of an experiment in itself. This lead to a lot of the sorts of problems that you face when you're just learning a new environment. As such, most of the code is probably not idiomatic Lisp, although we picked up enough to get something written fairly quickly. A lot of the places where things like macros or functional programming could have been used to simplify things were missed due to lack of familiarity with the way things are done in Lisp. Looking back on my input code for example, there's an enormous amount of repetition that I could probably factor out -- and that would have been quite handy around week 8 or 9 of the project, since I needed to extend the controls. One feature that we found quite handy though were multimethods. We didn't have too many problems with performance once the game was running, although we were running mostly on fairly decent machines. Starting things up with the load and compile was rather slow though.
- eslaught 15y agoSite should be back up. Congrats on taking it down =)