On Wed, Jan 15, 2014 at 2:56 PM, Panicz Maciej Godek <godek.mac...@gmail.com> wrote: > Hi guys! > Since I'm also an author of a(nother) multimedia framework > in guile+sdl/opengl called SLAYER, I thought that I might join > the conversation :) > > Perhaps it would make sense to collaborate more and to somehow > integrate our efforts. It might seem difficult at first, because > I guess that everyone of us does his work in his spare time, > and our plans and visions might be vague, but it would be really > nice if we were able at least to formulate the intersections of our > goals.
Yes, I agree. > Mine is to create games that would teach their players programming, > i.e. to show that some repeatable actions could be automated quite > easily and naturally with simple scripts, that could later on become > more complex. > > I thought that it would be more motivating if a gameplay was set > up in a competetive environment, so that the players would easily > see that even simple programatic enhancements of their user > interface would give them an advantage over their opponents. > > I came up with the idea of a 3d robot sword battle game, where > the players can come up with new moves for their avatars, > and even write scripts that would control their robots entirely. > > For that reason, SLAYER is equipped with bindings to Open > Dynamics Engine, and also has a stub of a text editor widget > (which obiously allows to evaluate lisp expressions in a similar > way emacs+geiser does ;]) > > Some time ago, I have also been experimenting with a design > of a general network architecture, but I eventually dropped it, > believing that there were some more urgent things to be done. You could perhaps use gzochi for this now. > Anyway, the goal is ambitious, and I think that for that reason > we have a lot in common. There are also some ideas that I > see in guile-2d and that I truly love and would love to steal, > but that's impossible, because it's LGPL :) I guess there is a gap in my understanding of the compatibility between the GPL and LGPL. I chose the LGPL for 2 reasons: It is the same license as Guile and there are already a million game libraries out there that are either proprietary or more liberally licensed so I also opted for a more liberal license. I could surely grant exceptions to let you use my code for SLAYER, if necessary. > I also see that our approach differs in that I have been > using the GOOPS system extensively for the GUI design > (which has some advantages, despite its drawbacks, such > as decreased portability between other Scheme > implementations) Ah, I have chosen to not depend on GOOPS in favor of plain old record types. > One thing that might seem dubious is my decision to keep > slayer a stand-alone application (rather than guile module). > It is not a deep decision and could be changed rather easily, > but as for now it has proven good at some points (namely, > it gave me a better control over the program behaviour while > I was creating a Windows port), and a pain-in-the-ass at > anothers (it's difficult to create slayer applications using the > emacs+geiser methodology). Our differing choices is a good example of "embedding vs. extending". You've probably already read this article (https://twistedmatrix.com/users/glyph/rant/extendit.html) but it explains exactly why I prefer to extend. One of Guile-2d's main goals is to work really nicely with Emacs + Geiser. I am working on a patch for the Guile 2.0.10 release that will allow any Guile program that runs an event loop to integrate a REPL server that doesn't have the multi-threading issues present with the normal REPL server. So, if you are open to turning SLAYER into a shared library, I hope that a free REPL server will sweeten the deal. :) > Anyway, if any of you thinks that we could cooperate, > I'm really looking forward to it. I'd also like to hear about > your goals and ideas, if you're willing to share :) I would definitely like to cooperate. Perhaps there is a library or two that we could extract from our projects for everyone to use. My main goal is to apply the Emacs philosophy to game development. I want guile-2d to be an easy way to create 2D games interactively using the REPL with the ideal environment being Emacs + Geiser. Ideally, guile-2d will remain pure Guile and use the CFFI to call out to other libraries. - Dave