|From:||Brandon J. Van Every|
|Subject:||[Chicken-users] 3D games in Chicken|
|Date:||Fri, 10 Feb 2006 17:06:48 -0800|
|User-agent:||Thunderbird 1.5 (Windows/20051201)|
Peter Keller wrote:
"A game you can hack in Scheme" already exists: http://stratagus.sourceforge.net/index.shtmlOn Fri, Feb 10, 2006 at 04:18:36PM -0800, Brandon J. Van Every wrote:BTW I did float the idea of a standard OpenGL 2.0 binding for all Schemes on comp.lang.scheme. Crickets chirped. Nobody cares, nobody's doing 3D with Scheme. I'm on the frontier. Well, ok, OpenSceneGraph has got a Scheme binding, so there isn't *zero* 3D done in Scheme. But really, there are very, very few projects that do any 3D. Maybe you fare better in databaseland, I dunno. It's just that, this apathy really hit home how fragmented the Scheme universe is.Maybe some of us should write a pretty fun game using an opengl 2.0 binding for chicken (along with the SDL_* API if it isn't already done). Make it hackable with lots of small but interesting things in the codebase (like higher order functions for AI, etc, etc, etc that people can drop in). Give people a reason to want to use and hack Chicken for 3D.
It's a Warcraft clone. It is not 3D and it is not Chicken. I played the Warcraft demo once upon a time and didn't like it, so I haven't pursued this. Generally speaking I don't like the Real Time Strategy genre. I'm a Turn Based Strategy guy.
I've been playing an inordinate amount of The Battle For Wesnoth lately. http://www.wesnoth.org
It has rather high production values for an open source game. It's a Turn Based Strategy done in a sort of a fantasy RPG way. I guess like Age Of Wonders or something. You build an army, you level up the guys in your army. Unfortunately, your guys tend to get killed and then you start all over again. I am sorta wondering if there's a point to the leveling up. Anyways it's a SDL / C++ / Python thingy. No 3D. I've thought about seeing if Chicken's C++ capabilities are up to interfacing with Wesnoth. However, figuring out how to build Wesnoth with MinGW looks tedious, if doable. So I'm still hemming and hawing about it. Maybe I'll take a stab at it; I'm bored with signature gathering and need to kill some time before a film event this evening.
One problem I have with all these "use someone else's game" projects is that they're all GPLed. I want to work on stuff that I can use for my own commercial games. If I work on an AI for some GPLed game, I feel like I'm wasting my time. Ditto if I do any significant amount of OpenGL 2.0 work. Really I'm only interested in MIT / BSD licensed stuff, and almost nobody offers games to hack under those terms. LGPL is on the borderline of what I'd be willing to deal with.
Actually, "C-Evo" is a TBS kinda like Civ and its license is, surprisingly, public domain. http://www.c-evo.org . But, the main codebase is Pascal. Someone wrote a C++ binding for the AI stuff, but honestly, doing a Pascal / C++ / Scheme shuffle doesn't turn me on. Again, not a 3D game.
I've thought about binding Chicken to various 3D engines. I'm inclined to view this as a waste of time, though. Every 3D engine out there will have its own stupid C++ calls for manipulating the scene graph, and really, that's something you'd rather be doing with Scheme proper. Having to ape other languages' baloney high level data structures just strikes me as really really tacky and counterproductive. I'm thinking it is better to implement a 3D engine almost from scratch. In practice, that means from scratch.
As far as giving people a reason to want to hack Chicken for 3D, well, how many people on this list are already interested in doing that? Really there has to be some critical mass to get started. Otherwise, it's just like I was telling the other fellow about database standards. All I can do is make my own stuff. Nobody else is really going to get anything done. For my part, getting other people to hack Chicken for 3D is a decidedly secondary goal. My primary goal is to make something of use to me for my own commercial games.
Brandon Van Every
|[Prev in Thread]||Current Thread||[Next in Thread]|