• Custom Scene Editor WIP • Grid, Snap-To-Grid, Zoom, Multi-Select

1235712

Comments

  • SocksSocks London, UK.Member Posts: 12,822
    How does/will this work with multiple scenes within a project? Will we have options to call upon the scene we wish to work on or is this intended for 1 level at a time type process.
    From what I can see (from Manto1's video) you select whichever scene you want to work on . . .

    >Project
    >>Scenes
    >>>XML 1
    >>>XML 2
    >>>XML 3
    >>>XML 4

    . . .etc
    I maybe getting ahead of myself with this and layers but damn i'm envisioning how this could help me soo much!
    +1,000,000,000
  • SocksSocks London, UK.Member Posts: 12,822
    No worries, im only jesting! Yeh its a shame as that would be proper neat :)
    It shouldn't be too much of a problem as you should be able to generate a pool of actors prior to doing your layout with Manto1's application.
  • beefy_clyrobeefy_clyro Member Posts: 5,390
    @Socks Nice one! I hope we can continue to come up with some nice ideas as it helps the overall development of this tool and its gonna be brilliant to use! I could of used this on virtually all of my existing projects and most certainly my current 2 projects (where im half way through level editing and getting bored of how tedious it is lol) where it would be a tremendous help!!!
  • SocksSocks London, UK.Member Posts: 12,822
    . . . if you're laying out platforms for your level and you're two platform actors short it'll be nice to be able to create those clones in your editor rather than having to go back into GS to create two more clones . . .
    Agreed, it'd be great if Manto1 could get around the ID issue, but I'm sure if that's impossible to overcome people will just adapt a different working method like duplicating a load of actors (perhaps more than you need) prior to doing the layout in Manto1's application ?
  • brickamatorbrickamator Member Posts: 316
    What about a way to tell the divice screen size? And not only the divice the game is made for, but a way to tell what it would look like on others too?
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    What about a way to tell the divice screen size? And not only the divice the game is made for, but a way to tell what it would look like on others too?
    Do you mean an overlay of the target screen size ?

    Also it might be useful if users could lock individual actors, a locked actor would not be picked up in a marquee selection or a 'Select All' command. Obviously this feature would exist only in Manto1's application as the locked status would not transfer across to GameSalad, but it would be useful nonetheless.

    Another feature that might prove useful would be live vector-to-angle and magnitude read outs, you select two actors and are able to read off their absolute distance and relative angle.
  • brickamatorbrickamator Member Posts: 316
    What about a way to tell the divice screen size? And not only the divice the game is made for, but a way to tell what it would look like on others too?
    Do you mean an overlay of the target screen size ?

    Also it might be useful if users could lock individual actors, a locked actor would not be picked up in a marquee selection or a 'Select All' command. Obviously this feature would exist only in Manto1's application as the locked status would not transfer across to GameSalad, but it would be useful nonetheless.

    Yes and also non target screen sizes
  • SocksSocks London, UK.Member Posts: 12,822
    Yes and also non target screen sizes
    Agreed, I can see that being really useful, I'm also beginning to see how Manto1's application would be really useful for converting a finished game/app from one device size to another . . . .
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    @Manto1 - another couple of possibly useful alignment ideas:

    Distribute - select a group of actors > hit the distribute button/command > the actors are evenly distributed along a horizontal (or if chosen, vertical) plane using the left-most and right-most actors as the boundary for the distribution area.

    Stack - as above but actors are stacked so that (in the case of a horizontal stack) the left-most actor retains its position and the next actor to the right butts up to the first actor's righthand side, then the next actor butts up to the second actor's right hand side . . . and so on.

    I can think of uses for a trigonometric distribute too, the ability to distribute actors along a curve would be great for those who want rolling hills or rollercoasters or smooth ramps that their actors can interact and collide with, but I imagine that might be too complex to do ? It's easy enough in GS using sin and cos, but it would be nice to be able to have it as a build rather than it being genrated at run time . . . but I really am pushing my luck here, to be honest I would have been happy with only snap-to-grid ! :)

    Also a couple of selection ideas: Invert selection (always useful) and select unused objects (select all actors not in the scene), a quick way of cleaning up all the extraneous clutter left over on the surrounds after a busy scene building session - although invert selection would cover both as all you'd have to do was drag a marquee selection over the scene > invert selection > delete (this is assuming the ID thing doesn't prevent you from deleting an actor ?).

    It would also be really cool if you could use the keyboard arrows to move actors or groups of actors in set increments, grab some actors, set the increment size to 117, hit the up key and watch all your actors go up by 117 pixels.

    One question, when you zoomed in on your aliens it looked as though their pixels were being interpolated or otherwise smoothed (much like OS X's smooth option in the system zoom), for me personally I would prefer that any smoothing (if possible) was switched off, being able to see the actual pixels is much more useful (and accurate).


    :)
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    @Manto1 . . . .

    And colours ! can you access colour values ?

    There are a whole bunch of colour functions that might prove useful, adding to and subtracting from colour values in various ways, individually on a per channel basis (eg: increase the blue channel value for a group of actors by 80% for when a scene turns from day to night) . . . or across all three channels at once (eg: make all these actors bright red), as well as adjusting the alpha channel (make these 20 cloud actors 50% opaque), throw in random functionality and you could very quickly fill a sky with clouds of varying levels of opacity, or subtle variations in colour, or subtly and randomly change the green of a hundred leaves on a tree to add variation to the same copied actor.

    ?
  • lycettebroslycettebros Member, PRO Posts: 1,598
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    You aren't working hard enough @Manto1! ;)
    @lycettebros

    I did ask him if it was cool to make suggestions, he said that what this thread was for, so I was just throwing ideas out there (although I'll admit that trigonometric distribution is pushing-the-boat-out :D ) but like I said I'm happy to just to know that we could have snap-to-grid someday ! Everything else is icing on the cake.

    :)>-
  • lycettebroslycettebros Member, PRO Posts: 1,598
    be cool Socks, I get you...it is why I winked ;)
  • Benjamin_m5Benjamin_m5 Member Posts: 646
    edited August 2013
    @Manto1 Awesome dude! would be great to use this!!!

    @Socks You speak all the time that Manto1 has done this things in 3days and GS couldn't do this in 3 years.

    1. It's one thing to create an additional tool to do this things. But it's another thing to implement this in an exsisting application/engine/editor.

    2. GS can not only work at this. They have to do all the stuff with the whole tool...Server for publishing, editor, iOS versions, viewer, html5, android, amozon, editor on windows and mac, etc.
    that's a lot of stuff to do at the same time!!!

    3. I know it's possble for GS to do this with the engine in the past 3 years. But they have to set priorities. And (almost) no one did this before @CodeWizard. He is a very
    experienced engine developer. I think he know how to set priorities..

    4. Don't understand me wrong - i want this tool/features too. But do not underrate the work that is to do to run a whole engine and all the stuff.

    5. @Manto1 Give me this tooooooool!!!!! ;P
    ---
    Benjamin
  • KevinCrossKevinCross London, UKMember Posts: 1,894
    @Benjamin_m5 GS could have created a similar external tool to edit levels/scenes and not worry about mucking up the existing GS Creator/code base. @Socks mentioned the same thing in the other post. If one person can do this in 3 days unpaid, imagine what a small team in GS could do if they were given the reins to go and create a scene editor as an external tool.
  • gyroscopegyroscope I am here.Member, Sous Chef, PRO Posts: 6,598
    @Benjamin_m5 GS could have created a similar external tool to edit levels/scenes and not worry about mucking up the existing GS Creator/code base. @Socks mentioned the same thing in the other post. ...
    Or as a plugin...

    ""You are in a maze of twisty passages, all alike." - Zork        temp domain http://spidergriffin.wix.com/alphaghostapps

  • KevinCrossKevinCross London, UKMember Posts: 1,894
    Wouldn't a plugin require rework of the Creator though, or have they got the option in the editor already but switched off?
  • mataruamatarua Auckland, New ZealandMember Posts: 854
    The XML architecture has meant that people can go in and see how that is structured and works and create solutions to update those front end XML files true?

    But when you have a whole application with more than just art location and movement there are so many other things to consider.

    This is a juggling game - I do think that these features should be part of GameSalad.

    I opted for snap to grid in the feature request.

    @Manto1 seeing your implementation of this has been impressive.

    I always thought snap to grid would be one pixel - dragging on stage stuff. You have made it oh so powerful.

    Great for people like me who use tiles!

    At the moment every single actor is just dragged on screen and then I have massive hand written tables to go in and edit the actors location to make them bang on the pixel.

    It kind of defies the quick prototyping that GameSalad is renowned for when it comes to larger projects.

    It's looking fantastic for four days in to it.

    Nice work :D

    ^:)^
  • gyroscopegyroscope I am here.Member, Sous Chef, PRO Posts: 6,598
    edited August 2013
    Wouldn't a plugin require rework of the Creator though, or have they got the option in the editor already but switched off?
    Good question, Kevin... I guess there would be some reworking of GS to allow plugins but I'm not sure it'd be all that difficult or take much time...

    Or perhaps, as you say, there's the option for plugins already there but switched off... I don't know...

    Either way, maybe GS wouldn't want an editor as a plugin anyhow....I personally would still like to see @Manto1 excellent editor streamlined into GS although I won't hold out much hope... ("it was a dream, all a dream..." ;-) ) Still be excellent as a stand alone editor, of course.

    ""You are in a maze of twisty passages, all alike." - Zork        temp domain http://spidergriffin.wix.com/alphaghostapps

  • MantoManto Member Posts: 796
    edited August 2013
    @beefy_clyro Flipping/mirroring the entire scene is really easy to do. Flipping selected will require more time.
    Would the following achieve the flipping of selected actors.

    (assuming they are flipped around a collective horizontal mid point).

    1) change the actors X position relative to the group's collective horizontal mid point (so mid point plus 78 becomes mid point minus 78 . . . )

    2) check 'Flip Horizontally' in the actors Graphics attributes.

    3) Adjust the actor's rotation accordingly (not worked out the math, but it'll be simple)


    Would that work ?


    Yes, that would work. Although, I believe the hardest part is to calculate the mid point.
    Yes! You know what mean right? just like illustrator when select a bunch and it puts a bounding box around all of it and scales it according to that and not each individual thing you've selected. if that makes sense haha. That would be awesome!
    @Flamingbanana I know what you mean now. I was thinking about setting a size to all actors selected. For example selecting 10 enemy actors and setting their size to 64x64.
    If we could have the option flip graphics as well that would be super sweet! The rotation im not too fussed about but would be a lovely bonus!
    I will add it as an option.


    @Socks Thanks a lot for all the suggestions!
    you grab 20 leaf actors on a tree and scale each of them to a random size ? . . . that kind of thing ?
    Cool idea! Definitely useful. Added it to my to do list. :)
    One question, when you zoomed in on your aliens it looked as though their pixels were being interpolated or otherwise smoothed (much like OS X's smooth option in the system zoom), for me personally I would prefer that any smoothing (if possible) was switched off, being able to see the actual pixels is much more useful (and accurate).
    Smoothing is now turned off.
    @Manto1 seeing your implementation of this has been impressive.

    I always thought snap to grid would be one pixel - dragging on stage stuff. You have made it oh so powerful.

    Great for people like me who use tiles!

    At the moment every single actor is just dragged on screen and then I have massive hand written tables to go in and edit the actors location to make them bang on the pixel.

    It kind of defies the quick prototyping that GameSalad is renowned for when it comes to larger projects.

    It's looking fantastic for four days in to it.

    Nice work :D

    ^:)^
    Thanks a lot! :)
  • Benjamin_m5Benjamin_m5 Member Posts: 646
    @gyroscope and @KevinCross
    I think GS won't do an additional tool to make that. I think it doesn't look proffesional. But @CodeWizard said a while ago that he's planning to open the creator for third-party tools and i think this tool from @Manto1 is a first step in that direction!! I hope more of this tools (hopefully a custom font editor, DeepBlueApps had one in development a year ago but i think they don't work at it anymore) are coming in the future.

    If GS doesn't make it the community has it to do!! ;D
    ---
    Benjamin
  • gyroscopegyroscope I am here.Member, Sous Chef, PRO Posts: 6,598
    edited August 2013

    @Benjamin_m5 Thanks, Benjamin, this is all getting very interesting. I look forward to future developments along these lines (as I know we all do. :-) )

    ""You are in a maze of twisty passages, all alike." - Zork        temp domain http://spidergriffin.wix.com/alphaghostapps

  • MantoManto Member Posts: 796
    Added:
    @Socks locking actors
    • Smoothing automatically turns off when zoomed in
    • Invert selection (not shown on video)

  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    @Benjamin
    @It's one thing to create an additional tool to do this things. But it's another thing to implement this in an exsisting application/engine/editor.
    I'll just echo what I said in another thread:

    No one is asking for this tool to be integrated into GameSalad (beyond XML compatibility).

    The point still remains, Manto1 has created something in three days that allows us to access features that we have been requesting for 3 years . . . and after 3 years I doubt people care whether it is done within GameSalad or whether it's done in a browser window with a 1994 version of NetScape Navigator running on a hacked Sony Playstation which itself needs to be powered by a team of mice on a treadmill . . . as long as it can be done.

    Of course it would be nice to have these features within GameSalad, but not I'll-wait-three-years nice - and after three years the options are:

    1) Manto1's application.
    2) Nothing.

    Personally I'd chose option 1. :)
    Do I care whether it's integrated into GameSalad ? At this point - no.
    2. GS can not only work at this. They have to do all the stuff with the whole tool...Server for publishing, editor, iOS versions, viewer, html5, android, amozon, editor on windows and mac, etc. that's a lot of stuff to do at the same time!!!
    Agreed, Creator (at least the UI) is not a priority, I don't think anyone will disagree with you on that point, even GameSalad will admit as much.

    But the idea that it's these things that are keeping GameSalad away from addressing issues with Creator is a little bit questionable given that the desperate cries for bug fixes and basic tools all pre-date things like Tizen and GameCircle, Tizen and GameCircle - and a dozen other similar projects - came along after it was long agreed that Creator needed some work. When people were first pointing out bugs and petitioning for zoom functionality Tizen didn't even exist.

    But I agree with your general point, GameSalad need to juggle various things to make this all work, they are a business after all and if they spent their working day exclusively carrying out user's requests they'd go bust pretty quickly, I just think the one thing they make, the actual product, the thing people see as 'GameSalad', deserves (needs) more attention than being relegated to just one person and even then being third on his list of priorities.
    4. Don't understand me wrong - i want this tool/features too. But do not underrate the work that is to do to run a whole engine and all the stuff.
    No one is underestimating the work involved in producing an evolving SDK environment, like I've said no one is demanding Manto1's application must be integrated into GS.

    CodeWizard has said, that it would have been no problem to produce something like this in just a few days - if they'd done that 3 years ago they would have saved a biblical amount of man-hours, millions of double clicks, endless amounts of moving between windows, opening and closing, back and forth all day, entering X and Y coordinate values and so on - I'm surprised given the almost dismissive tone (dismissive of the work involved - not the idea) shown towards what it would have taken to do something like this, and given user's repeated and longstanding and ongoing requests, that they wouldn't have either done something similar themselves or at least fully recognise quite what Manto1 has here.

    Imagine you dropped into the forum in June last year and saw this . . . .

    Hey everyone ! Today we are pleased to announce the official GameSalad Layout Tool™ - it allows you to rapidly lay out large scenes with tools like snap-to-grid, alignment control, group selection, group translations, select all, fit scene to window, zoom in and zoom out, guides, snap to guides, live access to X/Y coordinates . . . etc etc . . . with a simple, easy to use import and export from GameSalad . . and it's completely free . . . !

    . . . I'll guess you would have been ecstatic like most GameSalad users, it would have instantly revolutionised aspects of game construction, it would have removed hours of repetitive tasks, it would have made level design a pleasure, allowing you to see the whole game layout at the click of a button - or being able to align 50 objects at once - or even something as simple as group selection would have shaved hours off projects - I'd even go as far as to suggest an improvement in the quality of games might have come about due to being freed from repetitive tasks and being able to try different ideas a lot quicker.

    I'm happy to use Photoshop to generate graphic elements outside of GameSalad, I am also happy to use Logic/GarageBand to generate audio content outside of GameSalad and AfterEffects and C4D to generate animations outside of GameSalad - and there's a bunch of other tools people use from Image Optimisers to DBA tools, and I've never heard anyone call for them to be integrated into GameSalad - people are perfectly happy to work with external editors from what I can see.
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    At the moment every single actor is just dragged on screen and then I have massive hand written tables to go in and edit the actors location to make them bang on the pixel.
    If you put the following two Attribute Change rules into each actor they will always sit on whole pixel values.

    Change Attribute: self.Position.X to floor( self.Position.X )
    Change Attribute: self.Position.Y to floor( self.Position.Y )

    It can be easily adjusted to snap to multiples of pixel values too, the following will snap the actor to the nearest 10 pixel grid position (140 - 150 - 160 - 170 . . . etc)

    Change Attribute: self.Position.X to floor( self.Position.X /10)*10
    Change Attribute: self.Position.Y to floor( self.Position.Y /10)*10

    . . . . it's a lot of extra rules (they would need to go into every actor), and you can't see what you are doing while you are laying stuff out, but it works.
  • SocksSocks London, UK.Member Posts: 12,822
    Smoothing is now turned off.
    Fantastic, it will make a real difference, you can actually zoom in and see what the pixels are doing - line them up and so on - rather than seeing an impressionist watercolour.

    :)
  • ArmellineArmelline Member, PRO Posts: 5,211
    I think I just found god and his name is Manto1.
  • SocksSocks London, UK.Member Posts: 12,822
    edited August 2013
    @Socks locking actors
    Yeah !!!! :D
    • Smoothing automatically turns off when zoomed in
    Yeah !!!! :D
    • Invert selection (not shown on video)

    Yeah !!!! :D


    Great work, really appreciated !


    If you combined 'locking actors' with an alpha channel value change (0) - would you have a 'hide objects' function ?
  • KevinCrossKevinCross London, UKMember Posts: 1,894
    If you put the following two Attribute Change rules into each actor they will always sit on whole pixel values.

    Change Attribute: self.Position.X to floor( self.Position.X )
    Change Attribute: self.Position.Y to floor( self.Position.Y )

    It can be easily adjusted to snap to multiples of pixel values too, the following will snap the actor to the nearest 10 pixel grid position (140 - 150 - 160 - 170 . . . etc)

    Change Attribute: self.Position.X to floor( self.Position.X /10)*10
    Change Attribute: self.Position.Y to floor( self.Position.Y /10)*10
    That's a genius idea. Thanks!

Sign In or Register to comment.