Feature Requests, from Rawrbear!

There are so many different features which would be great to see in the app! I just wanted to list some off:

  • A modules system! Just like real code, this allows you to import usable pieces of code which others have specifically designed to aid you in making your projects. So instead of digging around through confusing code, trying to figure it out (and directly remixing someone else’s project in the process) - for instance, a 3D rendering example - it’d simply be a quick import from another project, with parameters you could pass in, and even custom objects you could utilize from those projects! Think about it - instead of coding that finnicky joystick again or recoding a drawing pad system again, you could simply import a really good one from another user. Per se, if you wanted to use @Valgo’s cool custom velocity pen tool in a project, or his instant loading clone system, or even something as robust as @CreationsOfaNoob’s 3D rendering system - it’d be a simple drag and drop to import and reimplement, and less reinventing or reconstructing the wheel! And it really would help people like me that aren’t very good at super advanced math :blush:
  • A refined collaboration or pass off system! Forget the remixing and in with the versioning! So this would allow you to pass off projects privately with other people, much like Git in the real world! Or at least something like private remixing, so that your project doesn’t get leaked when you post it for that split second on the app for everyone to see, even for just a minute. So your cool collab with MagmaPOP doesn’t get leaked and spoiled!
  • Official asynchronous thread support! So I don’t have to make two separate when/forever loop conditional loops to complete asynchronous tasks. :joy: What this means is that, because only one block runs per frame, you have to separate code that you want to run at the same time into separate conditions! (I suppose with the new signal capability added to the app, if you delay by 1 frame this next sentence becomes semi irrelevant - but) With this, because these “async” processes are (or have been, I guess) based on constantly checking if a variable is true every frame, overall this will cause problems in your project running, and will also cause lag. So it’d be so cool to see a new collapsible “async” loop that creates a separate thread to run code within on the next frame, without having to separate when loops!
  • Arrays (or lists)! Just think about how much easier pixel art would be if you could assign color values to a list/array… and that just about scratches the surface of what an array would be capable of!! Instead of storing data in many different variables or draw loops, just call an array and iterate upon it with a repeat/if loop combo! Finally, a nice way to make pixel art with DRY code. :cactus: (And it would definitely not be limited to pixel art!) Arrays are preferred but lists would be ok too, I’m not complaining about it. :joy:
  • A really good music system! Audio has always been half the experience of a great project, in my opinion, when it comes to videos, movies and video games! Whether you’re a composer like @Anonymous or just a casual Hopscotcher looking to add some extra energy to their project, sound possibilities are crucial to creating a more original artistic experience! At the very least, it would be great to be able to:
    • Change the pitch of sounds and music notes programmatically! So you could play a really deep drum or a really high pitched water droplet sound! This one feels like it’d be very simple to implement, if nothing else!
    • More sounds:
      • Different instruments! We’ve already got the xylophone but imagine using a toy piano, or a triangle, or a violin! Or maybe something electronic like a saw wave! Adding musical (aka “sonic”) possibilities would make a world of possibilities in terms of experiencing a project!
      • More drum variety! There are only a handful drums in Hopscotch - most notably the kick and the snare - but it would be sweet to get a closed hi hat, open cymbal, toms, claps, or more types of drum kits in general! Of course, changing the pitch on some of the current samples would be suitable too :)
    • Audio effects! This is a big one! Effects truly make your music stand out in terms of originality, and allow for much cooler sounding songs! Many game engines have their own reverb engine built in, for example, and it would be great to have “room size” (how big the simulated room is which the reverb is played in) and “reverb time” (how long the effect lasts for) as parameters, but it would also be cool to get a simple delay effect that lets you set your delay time in milliseconds or beats, an 8-bit effect and maybe even a stereo field plugin, so you can send sounds to the side for headphone users, and to reduce clutter in music projects at the same time. Just play notes in the side channels and sounds in the middle channel, or vice versa! :smile::musical_note:
    • Lag-free notes straight out of the box! When you play notes, by default there is a lot of stuttering and delays that happen. It’s also pretty hard tp play lots of sounds in a short period of time without noticing some lag, in my experience. I know there are already some methods of bypassing musical delay lag [(Courtesy of @Awesome_E)] but it would be great to have some speed optimizations to the current music system!
    • A dedicated BPM system! I mean come on, this would be sweet! :)
  • Levels, curves and gradient editing to images and sprites. Okay I have no idea exactly how practical this would be, but it’d be cool to see. :joy: Imagine making Bear a polar bear!!! Just with one grayscale gradient modifier! It’d be a dream come true. :joy: (Think HSV Adjustment/Curves/Levels in Photoshop, but on sprites, and it’s programmatic!)

This is a kids coding app, not an adult one. A lot of these features are definitely more advanced (or at least just a bit less advanced than I made them sound). But generally, these are features which experienced Hopscotchers would just love to see in the app, and there are many topics on this forum that feature “real” coding, like HTML and JavaScript (come on, there’s a JSON editor!), and these features would just be great to see in the app! From my two-year-long break from Hopscotch I’ve learned a lot, and these ideas would just be super practical to the experienced Hop!!

There now user variables, custom images, copy pasting and z indexing added to the editor, which are really nice features, honestly! Thanks for adding them! :smile:
But I feel like the engine could use some slight adjustment, for things like easier collaboration, a nicer music system, some simple async support, and of course, arrays! (And then the levels adjustment thing would be cool too. :joy:)

Please consider my ideas, @Ana and @AwesomeOnion! As if the app wasn’t already fun and easy to use, the app would be much bigger and even more fun to use with these features in mind :smiley:

I’ll tag you guys in this topic again if I think of more good features to add!

Thanks!!
Rawrbear :paw_prints:

29 Likes

If you’re reading this post, do you have any suggestions to add on, with these ideas in mind? Feel free to add to the discussion!! :slightly_smiling_face:

8 Likes

Nice I think these would all be cool
But the collaboration thing could easily have PI if it wasn’t moderated

6 Likes

I’m sure it would be fine! I honestly don’t think there would be any real abuse issues with a refined collaboration system. As long as remixed or reused modules always credit the original owners, I think it would work out great! And it would be so nice to have the ability to reuse code for the better, like if there wss something you’ve always wanted to code but never had the skills for. :smile:

6 Likes

I meant personal information. People could contact each other and try to meet up or smth with this because technically you could use it as a dm system

4 Likes

Well technically collaborations would also have to be moderated, at least by THT, to ensure that nothing bad is being sent privately at all. But that’s just moderation!
And the collaboration would have to be based on invites, so I’m pretty sure that depending on the amount of collabs that happen on this forum, it wouldn’t be a big deal for The Hopscotch Team to moderate like regular projects, I would presume! So it would be temporarily be private in terms of listing, not in terms of justice and rulebreaking. And this is where it might be easier just to implement a project trading system rather than a versioning system (like Git). But maybe not!

4 Likes

ok cool ideas I guess

3 Likes

Great ideas! Like you said, these are very advanced features. Maybe they could create different levels of the app (grades k-5, 6-8, 9+)?

2 Likes

All of these ideas are amazing (cough cough add a trumpet cough). Definitely need to add a more wide range of notes!

Possibly? They should not organize it in grade levels, as I can name quite a few hops where their programming knowledge is greater than their grade level.

3 Likes

lol

2 Likes

I think grade levels are unnecessary, in the sense that every project is still typically moderated, generally (I think). And I think it’s still important for everyone to follow the Community Guidelines in the same way. With these things in mind, I don’t think it would really be necessary to add a grade system. :+1:

Thanks for the support! (And yes, a trumpet would be a great instrument to add. :joy:)

5 Likes

So directed

2 Likes

Ikr smh

Huh :sweat_smile:

Honestly though, you see a lot of sticky joysticks on HS and there’s a way to make them not sticky, but I don’t think those are very common

3 Likes

So I’ve thought of some more ideas for the app!

  • Abilities with parameters! I’ve learned how to declare and use functions with parameters. They’re super for organizing your code, and they’re very nice because they allow you to get dynamic results from using a function! So it’d be great to be able to write code once and reuse it everywhere using a “function” (as they call it in real programming languages). This would also benefit pixel artists, because you could write a pixel function which would take a color as an input variable. :smile:
  • The ability to create a project with a horizontal aspect ratio from mobile! I’m pretty sure 99% of Hopscotch users use the app from an iPad. I’ve rarely ever seen any vertically orientated games on the platform. So it’d be great if I could create a game in landscape mode instead of portrait mode from the start, to account for the people with iPads! Right now, I could remix one of my old projects to achieve a similar effect, or I could borrow my little brother’s iPad with Hopscotch on it to make a new iPad-sized draft, but it’s just not as easy!
  • Change the position of the block dragging button! I find it a little difficult to scroll through my code with my left finger, contrary to using my right one, but when I do accidentally use my right thumb to scroll, blocks go everywhere! This disorganizes my code, and then I have to spend an extra minute trying to figure out what dragged where. It would be great if the scroll button on each block was moved somewhere to the left, or there was a setting I could change to do that! A scrollbar might be as nice too. :) Here’s some feedback some of us Hopscotchers left concerning this issue. :+1:

@Ana and @AwesomeOnion - per usual, it would be great if you two would consider adding these things to the app! I think they would be really nice to see. :smile:

Thanks,
Rawrbear :paw_prints:

12 Likes

Although not a native feature, you can currently do this by entering a project, turning the phone, exiting it, and tapping “create”.

4 Likes

Oh, nice! Thank you! ^.^

1 Like

Another thing would be to change the aspect ratio in game with a block. Also a variable that tells you the width/height of the device the user is on. That way you could have an adaptive screen size that works on all devices.

set project width () height ()
2 Likes


Maybe it could be done in this if they ever do decide to do this?

3 Likes

Yeah, that would work

2 Likes