Thanks!, I will try the suggested approach for compiling modules.
mirkohd
Creator of
Recent community posts
I have some questions regarding Hoot (or the game template):
- Is it possible to reduce the compile times?, maybe compiling into separate wasm modules and combining them somehow using tools external to Hoot?
- Emacs geiser does not work with hoot right?, I tried evaluating hoot related modules, even with the load path indicating Hoot's source code does not seem to work. I wonder how can I use the guile repl and hoot, it would improve development time considerably. Maybe it can be done by organizing the code in a different way and keep some guile modules without Hoot dependencies?.
- Guile specific question. Is it possible to filter the error messages, sometimes the full backtrace is not that useful, only the file and line number indicating the error. Ideally Emacs next-error would work with Guile or Hoot's error reporting. Here is an example error message.
- hoot/library-group.scm:1231:27: unbound top-level #("engine/map.scm" 151 11) some-undefined-variable
Ideally some hoot compiler option could present the error like this:
- engine/map.scm:151:11
I have some questions regarding hoot.
- is there some sort of enum or constant? the (rnrs enums) guile module is not available.
- how can I use #:print with define-record-type?, bytevectors printed using pk are not very informative; and I can't use pk in a module so I'm not sure how to create a print function.
- what is the use case for the call-external function?. It seems that it allows direct access of javascript function without the need of a binding.
The bar increases faster depending on the number of juggling props in action, the goal of the game is to fill the bar, I did not tweak the score mechanic enough to get a more intuitive feel. I like your idea of an angle selector, maybe for a special move or a more difficult mode, since I would have to reduce the current gravity value.
The source should be in in the download page.
Thanks. I originally intended to create a more realistic juggling animation, and the juggling mechanic to be just pressing a button at the right time, but in the end a poor animation with simpler mechanics seemed to work best( a happy accident I guess).
I considered drawing the hands, but knew I would not have time to animate them. I will probably add them later, there is a list of things that i would like to add, and learn a bit more of Hoot in the process.
This is a fantastic way to combine games with the programming experience . I would suggest the addition of a few structural editing commands (I personally use only a few but it makes lisp programming a really enjoyable), and also a run command, to keep the flow of the game going. I feel that this is a kind of game that can work well with very few (programming like) languages.
Thanks. After the jam I realize now that I totally underestimated how time consuming creating art and sound is (which is why I ended with no sound and the cartoony style). And I expected to finish with coding much sooner, my original simple design was harder to implement than expected. Anyway I'm hyped for the next jam.
Also, Hoot is fantastic, this was a great opportunity to learn about it. I will definitely use it ( if not for a more fully developed game) for making some tools or for web development.
I like the funny names (autogenerated?) and the look of the text and boxes. The movement between the menus is clumsy but I guess this is a shortcoming in most turn based rpgs. Maybe a key could be use to speed up the 'advance to next day' action.
Also, I did not manage to play the linux version(missing glfw error) but the windows version runs fine using wine.
I'm trying to use the record #:parent property to refactor some code. I'm unable to use the parent property of a record, what is the proper usage of this property?
(define-record-type <particle> (make-particle) particle? ;; omitted) (define-record-type <prop> #:parent <particle> (make-prop) prop? ;; omitted)
Please, I need some help with this, to get a better guile hoot understanding.
I'm trying to create a toggle full-screen command.
(define-foreign full-screen-element "document" "fullscreenElement" (ref extern) -> (ref null extern) )
I already have the full-screen and exit full-screen commands. But the command required for testing is giving me some trouble.
The function returns either null or the element, I expected that the null value would be considered as false in scheme but it is not the case. I'm supposed to cast these values ? test for the string "null" ? or is my usage of define-foreign wrong?
Edited: I found out about the external-null? and external-non-null? this work for the mentioned example but I'm still confused about the general approach for define-foreign. Extra care is needed for those functions in scheme code?

