Suggestion List

Jason

  • Posts: 9
I tried submitting all of this via the StencylWorks feedback dialog, but it didn't seem to send. Sorry if any of this has already been mentioned.

1. When you want to add a behavior to an actor, it would be nice to be able to do that straight from the actor's tab, not have to go somewhere else to create the behavior and *then* add it to the actor. Also, you shouldn't have to place the behavior in a category either. It's just another impediment. If you want to provide that ability, at least make the first category listed and automatically selected be called something like "Any". I guess I get your thinking about defining external behaviors and categorizing them to encourage behavior reuse/sharing, but it's just troublesome. Please reduce the amount of clicking around done in this program. My hand hurts!

2. Scene-specific behaviors didn't work for me at all. I added a simple one just to create an actor somewhere "when created", but all it did was laugh at me.

3. Your loop blocks increment a counter by 1, but I should be able to set the amount of the increment on the loop block itself. Otherwise, I seem to have to create an attribute named "i" (an attribute for a temporary variable???), set it to 0 whenever I want to start a loop, use a loop block that increments its own counter that I'm not using, and then increment my "i" by the amount I want.... Seems pretty inefficient. I don't want anyone complaining "OMG! UR GAEM  LAGGED MY FLASH!11!"

4. Ah, Scratch. The Programming Model That Was Foretold To Come.... More like, The Programming Model Forged In Hell!! I was forced to use Scratch for one of my Computer Science courses, and I absolutely hated it, for a number of reasons. Almost all of my classmates hated it as well, so we switched to another engine for our finals. One problem is that this block editor was horribly slow and often buggy on the computers at my college, and it's horribly slow on my computer at home also, which can certainly handle more complex things. I know you won't toss the block system. Just venting my and others extreme dislike of it.

5. Need toolbar buttons for common things like undo and redo. Clicking on Edit --> Undo or Ctrl+Z is too much for my carpal tunnel.

6. There were some things I didn't immediately know I could do because the buttons were on the bottom of the screen and "camouflaged", whereas the only thing most people expect on the bottom of the screen is a status bar. (Well, I'm a Windows user and haven't used a Mac in years, so I don't know what you crazy Mac users expect. Yeh, I know Windows sucks.)

7. Let me change the interface's color scheme! My eyes shed blood looking at all this dull gray and black.

8. I had clicked on Publish from an example game just to see the steps that it would take me through. I assumed it would've notified me that I was on the final step and the next click would push the game to the site. It wasn't until I saw a progress bar and "Publishing..." that I said "OH CRAP!!" and realized I wasn't provided such a notification. So, to avoid publishing the example game to the site like a n00b, I quickly shut the entire program down. lol. No Cancel button???. The publishing step should be much more informative/user-friendly.

9. Sure, I could've read the tutorials, but no program that's meant to be simple for the masses should need one right? Speaking of tutorials, clicking on the 1-hour course did not launch anything at all. The first tutorial did launch however (but I didn't read it). Although, even if the 1-hour course button had worked, I doubt I would've felt like going through it. Yeh, I know,  lazy.... But I'm a guy who sat down and read the entire Game Maker manual before even starting the program. So with my general patience level, you just know most of the other slack-jawed yokels and whatnot on the net won't read that thing. Also, the tutorials should start with a Table of Contents with links that I can click to quickly get to the parts I'm interested in and maybe some breadcrumb navigation. Just having Next and Previous buttons is not enough.

10. Having some sort of "place_free()" and "position_free()" Game Maker-like functions for blocks would be useful. I mention Game Maker, which I actually hate because of its brain-dead interface and company, but it currently has the best, most expansive list of functions for 2d development out of any other package out there.

That's all for now...

Hectate

  • *
  • Posts: 4643
I tried submitting all of this via the StencylWorks feedback dialog, but it didn't seem to send. Sorry if any of this has already been mentioned.

1. When you want to add a behavior to an actor, it would be nice to be able to do that straight from the actor's tab, not have to go somewhere else to create the behavior and *then* add it to the actor. Also, you shouldn't have to place the behavior in a category either. It's just another impediment. If you want to provide that ability, at least make the first category listed and automatically selected be called something like "Any". I guess I get your thinking about defining external behaviors and categorizing them to encourage behavior reuse/sharing, but it's just troublesome. Please reduce the amount of clicking around done in this program. My hand hurts!
When viewing an actor, there's a tab for behaviors. If there are no behaviors attached it'll have a large "click here" to attach one. If there are already behaviors attached instead you'll have to click the "+" icon at the bottom left to select another. The image below shows an example from Stencylpedia. As an aside, I agree that the extensive list of categories is more than I want as well. I'll generally use the first category in the list unless I intend to offer the behaviors for distribution elsewhere.

Quote
2. Scene-specific behaviors didn't work for me at all. I added a simple one just to create an actor somewhere "when created", but all it did was laugh at me.
I'd be glad to help you with this if you're having difficulty. What exactly was the issue you encountered?
Quote
3. Your loop blocks increment a counter by 1, but I should be able to set the amount of the increment on the loop block itself. Otherwise, I seem to have to create an attribute named "i" (an attribute for a temporary variable???), set it to 0 whenever I want to start a loop, use a loop block that increments its own counter that I'm not using, and then increment my "i" by the amount I want.... Seems pretty inefficient. I don't want anyone complaining "OMG! UR GAEM  LAGGED MY FLASH!11!"
I have to say I'm confused by your description - what were you trying to accomplish with your loop? That said, I've never had to increment a loop by more than 1 (not an accomplished programmer), so I'm sure you have a pretty good idea of the purpose.
Quote
4. Ah, Scratch. The Programming Model That Was Foretold To Come.... More like, The Programming Model Forged In Hell!! I was forced to use Scratch for one of my Computer Science courses, and I absolutely hated it, for a number of reasons. Almost all of my classmates hated it as well, so we switched to another engine for our finals. One problem is that this block editor was horribly slow and often buggy on the computers at my college, and it's horribly slow on my computer at home also, which can certainly handle more complex things. I know you won't toss the block system. Just venting my and others extreme dislike of it.
Everyone here understands that the "block building" isn't for everyone, no harm in that. That's one of the big reasons why "code mode" and "code blocks" are available as well. No sense in forcing everyone into the same mold.
Quote
5. Need toolbar buttons for common things like undo and redo. Clicking on Edit --> Undo or Ctrl+Z is too much for my carpal tunnel.
Good suggestion. Perhaps a good extension would be to add a floating/dockable toolbar similar to the ones in some of Microsoft Office products, where you can shuffle them as desired.
Quote
6. There were some things I didn't immediately know I could do because the buttons were on the bottom of the screen and "camouflaged", whereas the only thing most people expect on the bottom of the screen is a status bar. (Well, I'm a Windows user and haven't used a Mac in years, so I don't know what you crazy Mac users expect. Yeh, I know Windows sucks.)

7. Let me change the interface's color scheme! My eyes shed blood looking at all this dull gray and black.
More emphasis on buttons and color scheme adjustments. Should be possible to do at some point.
Quote
8. I had clicked on Publish from an example game just to see the steps that it would take me through. I assumed it would've notified me that I was on the final step and the next click would push the game to the site. It wasn't until I saw a progress bar and "Publishing..." that I said "OH CRAP!!" and realized I wasn't provided such a notification. So, to avoid publishing the example game to the site like a n00b, I quickly shut the entire program down. lol. No Cancel button???. The publishing step should be much more informative/user-friendly.
I believe a cancel button is in the works, I've heard mention of it from the developer team.
Quote
9. Sure, I could've read the tutorials, but no program that's meant to be simple for the masses should need one right? Speaking of tutorials, clicking on the 1-hour course did not launch anything at all. The first tutorial did launch however (but I didn't read it). Although, even if the 1-hour course button had worked, I doubt I would've felt like going through it. Yeh, I know,  lazy.... But I'm a guy who sat down and read the entire Game Maker manual before even starting the program. So with my general patience level, you just know most of the other slack-jawed yokels and whatnot on the net won't read that thing. Also, the tutorials should start with a Table of Contents with links that I can click to quickly get to the parts I'm interested in and maybe some breadcrumb navigation. Just having Next and Previous buttons is not enough.
There's a difference between "simple" and "idiot-proof". If Stencyl was to be a "click up to ten options and press OK to generate your game", then sure, no tutorial needed. Since it's intended to be a fully capable tool for creating games - expect some complexity that can be uncovered.

That said, I didn't use the tutorial ever either - but I started with even fewer features in the private beta, lol.
Quote
10. Having some sort of "place_free()" and "position_free()" Game Maker-like functions for blocks would be useful. I mention Game Maker, which I actually hate because of its brain-dead interface and company, but it currently has the best, most expansive list of functions for 2d development out of any other package out there.
Perhaps other people will recognize what you meant by those, but I've never used Game Maker so I have no frame of reference to place their function. What's their use?
Quote
That's all for now...
Let us know if you need any help or have more suggestions. Thanks for the feedback, it's the only way Stencyl will improve over time!
:
:
Patience is a Virtue,
But Haste is my Life.
Proud member of the League of Idiotic Stencylers; doing things in Stencyl that probably shouldn't be done.

Joe

  • *
  • Posts: 2478
Thanks for the comments. A few additions To Hectate's response:

- There's an AS3 function you can use to get all Actors at a point, which can give you a similar effect to !place_free() from GM.
- The CC tutorial is intended to be completed sequentially and ideally in a single sitting, which is why it doesn't have an explicit Table of Contents. Same thing for the Design Mode Intro. The other articles should mostly have Tables of Contents.
- Since you're familiar with GM/programming, I'm not sure what your concern is with the loop block. It's exactly the same as the standard For loop (using i++). You have to modify the loop index for your calculations, as you typically would with GM or any other language.

Keep the suggestions coming! :)

Alexin

  • *
  • Posts: 3127
Jason, search for Actor Picker in StencylForge. It shows how you can get a list of actors at a particular point. A similar approach can be used to get actors along a line or inside an area. You need AS3, though.

Joe, I understand his concern about the loop counter. Sometimes it's convenient to incremented it by some arbitrary value.
Currently, it serves the most common case, which isn't a bad thing at all.
"Find the fun"
alexin@stencyl.com

Jason

  • Posts: 9
Thank you for the responses. I searched for "Actor Picker" with no luck, but I will look at the API. Although I'm sure I can manually loop through the actors or use the "for each actor of type" block and do bounding box/radius collision checks, etc. I was just being a little lazy and expecting a block to already be made for me. :)

While thinking of this, one last idea to add to this thread came to mind, and that's the ability to set an actor's "parent". I know you can just duplicate an actor, but being able to just select an actor's parent from a drop-down list in order to inherit the parent's behaviors and whatnot would be better. That way I can change the parent's behaviors and not have to touch the children, since they'd automatically be updated. Another thing would be that I could use that parent actor as the argument to something like the "for each actor of type" block for example, and the operation will not only collect all actors of that parent type but all actors that are descendants of that parent type. Programmers know what I mean when I say "Polymorphism". Anyway...

What I meant was that you can't *create* a new behavior from an actor tab. You have to add a behavior that was already added to the library elsewhere. That's an extra step and more tab-switching and clicking around you have to do. So maybe have two different buttons on an actor tab -- "Add Behavior from Library" and "Create New Behavior". And when creating a new behavior, maybe have a checkbox that lets you decide whether you want to also add the new behavior to the library or just let it be local/private to the current actor, providing some sense of "security/encapsulation". Because, for example, what happens when you or someone you're collaborating with wants to change a behavior in the library so that it works better for a particular actor you/they are working on, but then you forget that behavior is also attached to one or more other actors that were expecting the behavior to work another way? One other idea to help with that problem is that when you click on a behavior in the library, a list of all the actors that currently have that behavior attached is displayed. Also, maybe have a minor warning that if you alter the behavior, these other actors that use it might not work as intended.

Scene-specific behaviors work now for some reason. Thanks. If I figure out why it didn't work before and it wasn't just something silly done by me, I'll report it as a bug later.

Being able to set the loop increment can cut down on some of the math operations needed to accomplish some things (increasing efficiency) and make the blocks/code leaner. Here is one scenario. I was creating actor instances that were meant to be placed 32 pixels apart (because their widths are 32 pixels) for the entire width of the scene. This has to be done in code and not the level editor because the value of 32 is actually read from a variable that can change. So with a loop block only incrementing a counter by 1, an actual "for" loop (Stencyl's "repeat" loop) would look something like the following: (Sorry to some, but I'm gonna use code here. Note that I know I could just write this code in the editor. I'm merely suggesting a way to make the loop blocks more powerful.)

var num = getSceneWidth() / 32, yy = 0;
for (var xx = 0; xx < num; xx++) {
    createActor(getActorType(1), xx*32, yy, FRONT);
}

So in that example, I have to do a division operation to get the number of times I want the code to loop (num), and then do a multiplication operation on the loop counter (xx) to make the instances get created 32 pixels apart. What I'd rather do is this:

var num = getSceneWidth(), yy = 0;
for (var xx = 0; xx < num; xx += 32) {
    createActor(getActorType(1), xx, yy, FRONT);
}

By incrementing the loop counter by 32 instead of 1, I avoid both the division and multiplication operations. So the code (and the equivalent blocks needed to produce this code) is more efficient and looks cleaner.

There's a difference between "simple" and "idiot-proof". If Stencyl was to be a "click up to ten options and press OK to generate your game", then sure, no tutorial needed.

lol. C'MON! Y STENCLY NO LET ME SNAP 2GETHER POKEMON MMO!! >:( I forget the name of it, but there's a 3D game authoring tool I tried out awhile back where you could do just that -- click a few options and then click "make game". haha.

EDIT: In other news, I just realized that sample "Maze Game" I thought I had prevented from getting published to the site has gotten 6 plays. lol. Sorry folks. I just removed it.

« Last Edit: June 14, 2011, 09:47:44 pm by Jason »

Alexin

  • *
  • Posts: 3127
Script.getActorsAtPoint(x, y, callback).

Search for Mouse Events On Collision Shape (it's featured).
"Find the fun"
alexin@stencyl.com

Jason

  • Posts: 9
Ok, sweet. Thank you.