Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

friendlycosmonaut

63
Posts
276
Followers
13
Following
A member registered Jun 27, 2017 · View creator page →

Creator of

Recent community posts

Wow Joel this was so lovely!! The assets are stunning as always and the movement/effects feel really juicy. I really like your use of the theme - starting off with a player that has no properties and abilities and slowly acquiring them. I think having the movement so restricted (ie. only being able to move left for a while) was so great, especially for gamers used to platformers like this, it feels really debilitating. And then so freeing when you finally gain the ability later! The level design following each new major acquisition was great too, allowing the player to explore and appreciate their new capabilities and restrictions. It's a great exemplar of graduated tutorials/skill mastery and level design. I loved the silly upgrades too - the elevator music, fairy that just says "hey, listen".

I'm a little disappointed in the commenter I saw below framing their negative experience as if it were an objective judgement of the game, or as if they understood what care went into making it/where you spent your time. I had the complete opposite experience and was extremely impressed by how much polish and content you put into this, and I found the humour really subtle and well-delivered. It's possible to deliver constructive critique without being mean or framing your view as if it's the definitive one - we're all different people and even if you don't like something, someone else might. Claiming something fails because you personally didn't like it is silly and not helpful feedback.

Aaanyway, I can totally see this being expanded into a larger game; each ability acquisition could be expanded and given even more time, to really push the edges of what the ability can do (or what you can do by combining one of your old ones with the new one). But of course, even on its own this is a really great game and excellent execution of the "you start with nothing" concept. Great work, Joel! :)

Hey sorry for the slow reply - it wouldn't be the EASIEST thing to tweak, but you could save an array of voices instead of just one entry. So for example, voice = [snd_voice1, snd_voice2, snd_voice3].

Then track down the part where it plays audio, I'd just use CTRL + SHIFT + F and put "audio_play_sound", and it should take you to the function that plays it. Instead of just putting in the "voice" variable as an argument, you could do irandom_range(0,array_length_1d(voice)).

Hope that helps!

Aw thanks for playing it, I'm glad you liked it! Oh, doh, I even remember writing that and thinking it looked odd, checked the spelling, and thought I had it right!! Thank you for letting me know.

Thanks so much!! That's lovely to hear :)

Oh that's awesome to hear! Of course, I'd love to see what you're working on - do you have a twitter?

best game on the market

Hey - it looks like this is actually because you don't have a layer called "Text" in your room. This is where the textbox will get spawned by default.

Hey thanks! Haha fair enough, more player control options are always good :)

Aww thanks Crabby :)!!

Ah okay I think this wasn't clear in the documentation - for lines where there is a choice but you DON'T change any variables (BUT on other lines in the dialogue you HAVE) then you need to set:

myChangeVars[1] = -1; 

for those lines. That basically means there won't be any variables changing in those lines. 

Also, for the changing variable thing to work, you have to give a SPECIFIC instance ID in that argument. You'd given just an object_index, but the function variable_instance_set requires an instance ID. So at the very top when you set the diretor to an object, you can use instance_find to get the ID (hopefully there's just one instance of that object. If not, you can use "ID" to refer to itself).

Also as a note, you'd forgotten to put the "breaks" after your other cases :)

I've put all the changes into this pastebin:

https://pastebin.com/TURyKsdr

Oh okay hmm - then I'd guess it might just be a misplaced/missing bracket somewhere. Just make sure that you set an option for ALL the possible dialogue choices. If there's two dialogue choices, there should be two values it's going to change to. 

myChangeVars[dialogue_line_number] = [obj_id, "choice_variable_as_string", ["value1", "value2"]];

If you're still having trouble could you send me a screenshot of the code where you declare this?

So basically you just want branching dialogue? That error I think is just an indication that all the variables haven't been set up quite right.

You shouldn't actually need the myChangeVars. The one you want to play around with is the myNextLine variable, where you'll set where you want each line of dialogue to go to. As the documentation says (here is the documentation if you haven't seen it already), for normal lines you can just set myNextLine[number] = number, and for dialogue choice lines you'll set it like myNextLine[number] = [num1, num2, num3] corresponding to the different choices.

It might help if you lay out all your lines consecutively and then plan where you want each line of dialogue to go (what will be the next line). 

Thank you! :)

Hey Aavri - sorry, I didn't see this in my notifications!

I know this may be coming too late - at the moment you can't use the myChangeVars outside of dialogue choices. In the next version I'm going to change this a bit and have a more flexible system where you can just specify scripts (including those to change a variable) to run at any point in the dialogue. 

This was a lovely devlog! They sound like great projects. Looking forward to the follow-up on Sunset Witch -- and I absolutely love the sound of the Valve Kid game having a hand-drawn aesthetic!! Looking forward to your updates :)

Thank you!

The detection_radius is actually already a rectangle (well, a square) - the "radius" is just half the width. This variable is found in the par_speaker variable. By default the speaker objects will inherit this value, but you can tweak it for individual objects. 

Since as you said you might want to make it a rectangle instead of a square, you might want to tweak the step event for some objects too. Instead of just adding the radius to all the rectangle variables, you could add half the collision box height, and half the width, for the x and y values of the rectangle.

I hope that makes sense - let me know if you have trouble!

Awesome game Joel!! You got a great amount of polish in for such a short jam (the art, the bounciness, the sounds & music, the dust particles) - and I loved the dialogue and item descriptions. It's a great foundation and I hope you continue with the missions/building up the town/usurping the double triple mayor once and for all. :)

Oops sorry I missed this notification -- it's possible, but may take a bit of work. In my system, the letters are printed individually, and each time it moves where it's going to draw a letter over by the "width of one letter". This is calculated in one place and just takes the width of a generic letter written in the font. What you may have to do instead is make something like a ds_map  of the font you're using, and enter the string_width of every single letter you're going to be using. Then, in the loop that is printing all the letters, it could look up the letter in the data structure and grab its specific width to move over the y position.

So it would take a little bit of messing around, but not at all impossible - I may look into adding this feature in in the future!

Yes. Or, not really, but it will end up spacing every letter the same amount. 

Adorable, you've done a great job! It's a fun and simple game. I can actually see this translating to mobile quite well, with progression in the levels (perhaps travelling around the world, changing the "scene" a little bit), little power ups (speed, larger basket, invincibility from fallen fruit etc), and a certain "score" that you have to get by the end of each level to progress.

One possible tweak to make might be to reduce the possible spawn points of the fruit to be within the possible distance the player can travel. This is just because sometimes a fruit spawns over the total other side of the screen, and the player has no chance of collecting the fruit. Whereas if it was always "possible", you could even have an achievement mechanic like a "perfect level" where you don't drop ANY fruit.

Sorry for the rambling! Of course it's also totally fine to shelve this and move on to your next awesome project :)

Aw, thank you so much! We're delighted to have this feedback. In future jam games, I'll definitely keep this in mind!

And Happy Holidays! :)

Ah thank goodness!! So glad we solved it. Don't feel bad, I've done things like this so many times before! And I bet someone else is going to run into this problem in the future, so this will help them :).

Then I'm stumped :(! It definitely comes up for me as an existing function (you can middle click on a function to bring it up in the documentation). 


Though, I've done some googling and noticed that it's listed in GMS2 as a new function... perhaps they only recently added it to 1.4 as well? So the only thing I can think of at this point is to make sure you've installed the latest version of GMS1.4. 

Hmmmmm, what version of GameMaker Studio are you using? Is it 1.4?

Thank you! I hope you have a lot of fun with it. If you didn't know already: the next version has now been added, with that functionality of being able to change object variables :)

Hey - that's weird! That function does actually exist in GM1. Could you send me a screenshot of the error so I can see it exactly? (It may be that it's what you're GIVING the script is what it has a problem with.) Also - did you change anything after importing, or does it throw an error as soon as you run the demo? 

Oh goodness this is my bad - you're right, they do look like emotes, but the emotions will indeed change the FRAME of the portrait (the emotes are just squares I put at the corners of the different frames to differentiate them). The actual emotes are the "pop-ups" that appear in little speech bubbles above the character's head. 

Ah yeah true, you can just write names into the text, if that's where you want to put it. But a little textbox on top was exactly what I was thinking! Or perhaps on the portrait itself. I know people will want to play with it and pick the positions.

This was beautiful.  The music and visuals are wonderful, and complement each other so well - both tranquil and eerie, inviting and suspicious. 

I played it late at night, lights off, with headphones, and rain tapping at the windowsill. It was very easy to get pulled into the game; I played through multiple times to get all of the endings. I was full of questions, and suspected everything - I love how you plant little seeds, and the player can let their mind wander. 

And all that aside, the "feeling" the game creates is definitely one that stays with you. Thank you for making this!

Ahhhh okay I see where you're going with this. It's always good to have options, and I can definitely see the appeal of setting it out like this. I'll work on putting this in in one of the next iterations of the system!

Ah that's awesome! Yeah to be honest I need to clean that script up. When I was initially adding the arguments I wanted to keep them optional, so I just had it depend on the arguments you gave it. But now that there's so many it would make more sense to just check if you input a default argument (-1) instead of having it depend on the argument COUNT, which is pretty silly. 

I'll definitely change this in one of the next iterations to make it easier for you/others to play with the code!

Hmmm I'm not sure why that would be. I'm going to upload a new version in a few days, so hopefully it will work then.

Cheers! I've had another commenter run into the same issue, so I'll go ahead and change the code for the new version. (I can't believe I've never run into the problem myself!)

Thanks for letting me know & discussing it with me :)

Sorry I've just done the same thing and can't seem to reproduce the error. But maybe some of the assets are missing?

Did this error throw after you customised/added your own kind of text event? I can't be sure without seeing your code, but I'd say it's because it doesn't have the right number of arguments for the "emotes" part. Make sure you fill all of the arrays with the same number of arguments.

If you're still having trouble, feel free to e-mail me your project at friendlycosmonaut@gmail.com and I can take a look.

Thank you!

1) Yes I'm working on including an argument in the script that allows you to change a variable according to the player's choice. That'll be in the next version, along with some stuff for animated portraits!

2) I'm not 100% sure what you mean. Are you saying you'd prefer to input each line individually, instead of all at once in the create_dialogue script?

Oh, how weird!

Ah yeah at the moment you'd have to fiddle with the system yourself to grab what choice the player has made -- but I'm planning to release a new version in a few days that'll make this easier. 

(1 edit)

Actually this isn't a mistake; the function has an optional argument. Its default is just to destroy the calling instance, but you can destroy a specific instance other than the calling one via the optional argument. This is according to the GameMaker documentation on the function.

As far as I know this has never caused me any problems -- have you encountered some errors?

Ahh yeah importing things into GameMaker (both 1 and 2) can cause quite the headache. There is a way to import things into a pre-existing project as a resource via the marketplace, which I have done for the GMS2 version, but unfortunately I don't have a GMS1 license to upload to the marketplace. So the next best thing would be to download the demo, and then add the assets to your own project by (for example, for an object):

Right click on the "Objects" folder -> click "Add Existing" -> Locate the folder where the demo .gmx is -> objects -> open each object.

Unfortunately this manual loading takes a bit of time, but I'm not aware of any other method (I would love to be corrected though!). 

Haha yeah I love dialogue options! There could be a way to allow text input at some previous stage, that is saved into a variable, and then you can add THAT variable to the string (you can piece strings together like: "my cat is named " + cat_name + " and they're adorable!".

Thanks so much :)! To be honest, I'm pretty terrible at making gifs. I use GifCam to record them - though half the time they come up with weird pixelation or distortions!