I see Julian, so when you said you were looking for an "embedded language
for doing quests" that's exactly what you meant... :)

I'm curious how you end up splitting your data structures. Perhaps it's all
in C/C++ and then you access then from Scheme? There's an example of you
might do that, if you haven't found out already:
http://wiki.call-cc.org/Wrapping%20simple%20c%20structs

You can also use chicken-bind <http://wiki.call-cc.org/eggref/4/bind> to
familiarize yourself with foreign-lambda and friends. Chicken-bind has
almost a complete C/C++ parser and can produce foreign-lambdas:


$ echo "struct player { int level, health; }" | chicken-bind - -o -

;;; GENERATED BY CHICKEN-BIND FROM -

(begin
  (define player-level
    (foreign-lambda*
      integer
      (((c-pointer (struct "player")) s))
      "return(s->level);"))
  (define player-health
    (foreign-lambda*
      integer
      (((c-pointer (struct "player")) s))
      "return(s->health);"))
  (define make-player
    (foreign-lambda*
      (c-pointer (struct "player"))
      ((integer level) (integer health))
      "struct player *tmp_ =  (struct player *)C_malloc(sizeof(struct
player));\ntmp_->level = level;\ntmp_->health =
health;\nreturn(tmp_);;\n")))

;;; END OF FILE


If you don't have it already, you can do `chicken-install bind` and play
around. Note that `make-player` above leaks memory.

Best of luck!
K.


On Thu, Jan 24, 2013 at 1:25 AM, Julian Day <jcd...@mail.usask.ca> wrote:

> On 23/01/2013 6:09 PM, Kristian Lein-Mathisen wrote:
>
>  Are you planning on using any established game-engines or libraries?
>> What will probably become very interesting is where your C++-code ends
>> and where your Scheme begins.
>>
>
> Hi Kristian,
>
> The game is currently pure C and C++.  As for libraries, I currently use
> xerces (XML), curses (UI), Google Test, and boost/stl.  The game itself is
> currently in a playable state - the player can win or lose, there's a
> generated world to explore, etc., though it's currently pretty bare.
>
> My plan is to start with reasonably small scope, and use Scheme for the
> quest logic.  I'd like to have a number of optional side quests beyond the
> basic roguelike "dive to the bottom of the dungeon".  I could do this in
> C++, but I see an opportunity to work in my favourite programming language,
> so I'm going to take it. :)
>
>  So I have a crazy idea, how about writing all of it in Scheme? So
>> instead of exposing a function to add a message to the UI, you can
>> expose functions to draw the UI,  and do your game in Scheme. Then as
>> you move along and things settle, you can port the slow/critical parts
>> to faster C-code if you need to. Just a thought. There are several eggs
>> <http://wiki.call-cc.org/**chicken-projects/egg-index-4.**html#graphics<http://wiki.call-cc.org/chicken-projects/egg-index-4.html#graphics>>
>> for
>>
>> graphics available that might suit your drawing needs, like cairo or
>> opengl.
>>
>
> Much too late for that, I'm afraid!  The game itself is currently just
> under 2 MB of code, resource strings, and configuration details.  I'm quite
> happy with its current state.  I'd love to try Scheme as the main language
> for a game, but this project's much too far in for that.
>
> Julian
>
>
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to