It does really slide, A+ sliding.
Very good woofing too!
I like the game, I think there’s a good loop and fun gameplay.
I think there are a lot of small problems as of right now:
But overall, pretty fun loop, pretty neat gameplay, I’ll be waiting for the next version!
I like this, but it was impossible for me to beat the two bosses, mostly out of confusion because of the bright colors which make it difficult to read what’s going on, and random slow-downs/speed-ups.
What I disliked:
What I’m not sure if I disliked or if it’s interesting:
What I liked:
Good feel overall
There’s something extremely interesting here which I enjoyed playing, but I have a legibility problem with it. I genuinely have to squint to see my character and understand what’s going on.
I think the camera should be more zoomed in, or, alternatively, colors should be more contrasted.
All in all a pretty cool idea and well realized!
I am one of the moderators of the Godot Discord, and a huge huge fan of your work, Mr Cavanagh. Super happy to see you try Godot!
Despite moderating the community, I don’t know everything about the engine, so if I can find the time, I’ll definitely pick up a new aspect to learn this weekend. Looking forward to participate.
And I’ll try to answer any questions here too, if anyone has any (though asking them in more public spaces like the Discord is probably more likely to be fruitful).
Good luck to everyone!
Interesting style, good music, fluid gameplay, cool ideas. I like it, would play more
Problems:
This is a very fun game, with a good hook, beautiful style. I would have the following wishes:
If there were some more mysteries and if the game was a tad longer (not too much! Maybe twice as long), I’d easily pay money to buy it. Heck, I’d ave bought it as it is, but there’s no “pay what you want” button?
Still, an excellent game
I would like to store JSON values as properties of characters, as well as be able to procedurally create dialogues from bits and pieces.
I propose that the method Dialogue.start_dialogue(json_path)
receives a sibling method Dialogue.start_from_data(data, character)
, where data
is pre-parsed json (or, in my case, generated).
A possibly better API would be:
Dialogue.set_data(data)
Dialogue.set_data_from_file(json_path)
Dialogue.start()
Then the external Dialogue.start_dialogue
API could stay as it is, but use the underlying set_data_from_file
.
An additional though: if the two set_data*
methods return self
, then one can do:
Dialogue.set_data(data, character, context).start()
# or
Dialogue.set_data_from_file(json_path, character, context).start()
Hello! Great plugin.
I’m looking to use it in an RPG where talking with people might trigger actions on those people. For example, a person might be able to barter with you.
Or, a person may like/dislike you for saying certain things.
I know I can run global actions, but I would want to run methods in the context of the character you’re speaking to.
One way I’ve found to do this would be to have an autoload singleton like so:
# Interact singleton
var character
func dislike():
character.love = character.love - 1
func open_barter_dialog():
character.barter.popup()
Then, before starting a dialog, setting Interact.character = current_char
, before Dialogue.start_dialogue
.
Then, my script nodes can call dislike()
and open_barter_dialog
.
That works if every character has the same actions, but that means it’s very hard to call a specific command for a specific character.
A more flexible solution would be:
# Interact singleton
var character
func command(command_name: String, args: Array):
if character.has_method(command_name):
var func = funcref(character, command_name)
funcref.call_funcv(args)
And then use in my scripts: command("invoke_devil", ["candles", "sulfur"])
.
That seems overly cumbersome and very easy to get wrong.
Slightly different, but related:
How would I get local variables in text variables?
For example, I need a class of characters to change their text based on if they saw the player steal before or not. But each character individually tracks if they saw the player steal or not.
How can do: if current_character.<some value>: branch 1 else: branch 2
?
Seems to me like the only way is also to set the character, then read character.has_seen_player == true
. Which is ok, but also less practical than having access to a context.
Much easier for both problems would be to be able to do:
Dialogue.start_dialogue(json, character, context)
, where context
is usable to call methods or retrieve values. The @
could be used to denote the local context, rather than global context. Otherwise, another character could be used.
Luciano I have a request from you also, please package all your belongings and tell me when you’re ready, I’ll tell you where to send them.
It’s ok if some of your clothes are old, I’ll accept them. I need your stuff, all of it (you can leave one pair of pants and one shirt for yourself). Please hurry.
Cute and does what it says on the tin. Specially polished for a game made in such a short time.
I wished for some variety in the shapes, because, at least in easy mode, since you can “teleport” the cursor (by moving the mouse), as long as you stay focused, it’s very hard to lose. In hard, it’s almost unfair as the view is not large enough to predict what’s going to come.
Of course, I do not think it’s fair to call out a gamejam game made quick on such refinements, but I’m nitpicking :)
The music is fun and engaging, and I found myself trying to avoid the hexagons while making the cursor dance.
As a fan of Super Hexagon, this is a nice variation and I can see myself playing it a little more.
All in all, good job!
Hmmm sorry it was me being stupid. The game isn’t available for Windows! I noticed the “Install” button appeared on my Linux box.
That’s even better and a great surprise, I’m just so not used to games being available on Linux and not Windows that it didn’t occur to me to check before now.
Sorry for the worry!
I think if you use Butler it should directly pick the executable. If you manually upload, there may be some convention to how you should do things, not sure (I’ve only used Butler).
The game seems super interesting, but I haven’t installed it for that reason yet. It’s really petty of me, but bypassing the app makes my launcher also not pick it up, which makes it not listed in my “games to try” list, etc.
I’m not saying that to put pressure on you to fix it, I’m saying that to give context as to why I am not giving you any feedback on the game proper. I’ll keep checking for a few times and if you haven’t had time to fix it, I’ll install Crescent manually, it’s totally ok, no sweat.
– edit –
Me being stupid, I didn’t read that Crescent wasn’t available on Windows and by coincidence I just happened to be using my Windows machine which I almost never do. The message I wrote is thus irrelevant.
Original message below
Any chance you’d make the game discoverable by the itch app? From the app, I only get “open page”. I can download Crescent Loom from the website, but I like using the app to keep things nice n tidy.
This is the game I’ve always wanted to play. Ever since playing A Link to the Past in the 90s, I’ve anticipated each Zelda, awaiting “A Short Hike”. This is my favorite game of all time. It’s cute, soothing, beautiful, easy to handle, doesn’t last a minute longer than it needs to (but offers a decent amount of optional content if you want to stay longer). I love this game.
Thank you so much for this game, I’ve literally waited for it my whole life.