Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
Some questions on Gideros — Gideros Forum

Some questions on Gideros

moopfmoopf Guru
edited February 2012 in General questions
Hi,

I've only come across Gideros in the last 24 hours and I've got some initial questions on it if anybody could help me out. A bit of background is probably in order. I wrote my last app in cocos2d but have been looking, since the new year, for a cross-platform SDK. I've been trying out Corona for the last few weeks but when I came across Gideros I was interested to see how quick development appears to have been and that there is a plugin system. But, there are some basic questions on built-in support I'd like answering if possible.

1. Z Ordering. Is there built in support for z ordering and being able to alter the order easily? In Corona there's only the ability to move to back or to front, and everything else you have to remove a display object and re-insert it to change ordering.

2. Texture Atlas. Are there built in methods for bringing static textures from a packed texture (I use TexturePacker which I believe already supports Gideros). In Corona the texture atlas features are poor and are really geared towards sprite frames, rather than packing and using static imagery in packed textures.

3. Are all textures loaded as 32-bit? Coming from cocos2d, it was possible to change the bit depth dynamically so if you only needed 16-bit for some imagery you could change the mode, load the texture, then change it back for other textures. Essentially, you could mix 16 and 32 bit, which is efficient for texture memory usage.

4. Audio. Is there built in support for simple left/right positional audio? Along with support for playing individual samples at different volumes plus altering the volume of any mp3 streaming?

5. Content clipping. Is there any built-in support for clipping content, for instance scrollable areas that don't extend to screen edges (think a scrolling popup for instance) etc. I'm thinking here of something implemented using the glScissor facility in Open GL. In Corona everything has to be done with masks, even for simple rectangular clipping.

6. Particles. Am I right in thinking that there is currently no built-in particle support? Is there already a plugin available to add particles?

7. Is there a concept of layers in Gideros, or grouping of display objects into containers that can be transitioned as a whole?

Anyway, sorry for all the questions, I'm just trying to get a handle on whether I should invest more time in looking at Gideros over Corona now, before I take the plunge with that.

Cheers,

Gareth

Comments

  • Actually in addition to point 5, is there any masking support at all currently in Gideros?
  • ar2rsawseenar2rsawseen Maintainer
    edited February 2012
    Well, I guess Atilim would answer questions more thoroughly, but what I can answer (hopefully right) now is:

    1. No build it in support right now, the last added is on top (so you can manage z ordering by removing and adding sprites)

    6. @GregBUG is making one http://www.giderosmobile.com/forum/discussion/402/gda-particle-engine-for-gideors-early-preview-#Item_12

    7. Yes there is, starting from Sprite and anything derived from it, can have children, meaning your group container can be practically anything, starting from simple sprite, to movieclip.

    Dislikes: Yan

    +1 -1 (+0 / -1 )Share on Facebook
  • Hi, thanks for the reply. So, on z ordering, there isn't a "to front" or "to back" operation? Presumably you can re-insert at any point in the display object table, rather than just at the end?

    Thanks on point 6, that looks promising.

    And on point 7, that's great. I'll be happy to work with that (you could do similar things with cocos2d).
  • gorkemgorkem Maintainer
    5. Clipping supported currently for tilemaps (if you have a huge tilemap, only the portion that's inside the screen is drawn, so you don't have to bother with calculations). Clipping for other screen assets is underway :)

    Likes: Dale

    +1 -1 (+1 / -0 )Share on Facebook
  • Hi Gorkem, right that's not really what I'm talking about, it's more clipping contents that don't extend to the edge of the screen. I take it at the moment, as masking doesn't seem to be supported either (please correct me if I'm wrong), there's really no way to clip, without overlaying a texture with a hole, which would need to extend to the edge of the screen to cover what you're scrolling. Is that correct?

    How long do you think until clipping for other assets is available?
  • Hi moopf,

    let me add my 2 cents. Atilim and Gorkem are goind to Casual Connect this weekend, might be that it takes time for a reply from atilim.
    Hi,
    1. Z Ordering. Is there built in support for z ordering and being able to alter the order easily? In Corona there's only the ability to move to back or to front, and everything else you have to remove a display object and re-insert it to change ordering.

    7. Is there a concept of layers in Gideros, or grouping of display objects into containers that can be transitioned as a whole?
    Here Sprite:AddChild, Sprite:AddChildAt, Sprite:RemoveChild and SpriteRemovechildAt are your friends. It could be that you only need AddChildAt to reorder. I didn't test this.

    2. Texture Atlas. Are there built in methods for bringing static textures from a packed texture (I use TexturePacker which I believe already supports Gideros). In Corona the texture atlas features are poor and are really geared towards sprite frames, rather than packing and using static imagery in packed textures.
    Do you mean if the TexturePacker supports rotated sprites? It doesn't but the packed texture is an atlas if you want to use that term.

    3. Are all textures loaded as 32-bit? Coming from cocos2d, it was possible to change the bit depth dynamically so if you only needed 16-bit for some imagery you could change the mode, load the texture, then change it back for other textures. Essentially, you could mix 16 and 32 bit, which is efficient for texture memory usage.
    From what I know, all textures are convert to 32 bit internally.


    4. Audio. Is there built in support for simple left/right positional audio? Along with support for playing individual samples at different volumes plus altering the volume of any mp3 streaming?
    You can set the volume of a sound channel but you can't position it left or right.

    5. Content clipping. Is there any built-in support for clipping content, for instance scrollable areas that don't extend to screen edges (think a scrolling popup for instance) etc. I'm thinking here of something implemented using the glScissor facility in Open GL. In Corona everything has to be done with masks, even for simple rectangular clipping.
    You can do something like this kinda with the Blend functionality but it isn't a real clipping mask. That is definately something we need.


    6. Particles. Am I right in thinking that there is currently no built-in particle support? Is there already a plugin available to add particles?


    Niot build in. Someone is working on a module. So far plugins are only iOS and you can't interface with the graphics of an app.
    Cheers
    Michael
  • atilimatilim Maintainer
    Hi,

    Addition to above, we have addChildAt function after beta3 (you can update to beta8 from here http://88.198.22.6/downloads/beta/)
    local parent = sprite:getParent()
    parent:addChildAt(sprite, 1) --> moves to front
    parent:addChildAt(sprite, parent:getNumChildren()) --> moves to back
    parent:addChild(sprite) --> same as above, moves to back
    2. TexturePack class supports both dynamic creation and pre-packed texture atlases. (You can use both TexturePacker and Gideros Texture Packer to pack textures). And you can access individual texture regions and display them.

    3. Currently not supported but this is important. Added to the requests list. I'm somewhat against PVR textures but 16-bit textures usually look good.

    4. Each playing sound is controlled by a SoundChannel object and you can change the volume of both static (.wav) and streaming (.mp3) channels by using SoundChannel:setVolume(volume). But we're not support adjusting volumes of left/right channels independently because OpenAL doesn't support it officially:
    concepts such as panning and left/right channels are not directly supported
    http://connect.creativelabs.com/openal/Documentation/OpenAL 1.1 Specification.htm

    5. We're still thinking about a good way to clip. Both polygonal clipping (glScissor) and texture masks (OpenGL texture combiners) have both advantages and disadvantages. But, mostly we're in favor of glScissor. Do you know what cocos2d is using to clip?




  • Michael and atilim, many thanks for your replies.

    1. atChildAt should be sufficient I think. If you add an object that's already added, would it be removed and placed at the required position using atChildAt or do you need to remove it first? Not a problem, either way, just checking.

    2. On texture atlases - that's great.

    3. Glad to hear it's being looked into. It's great for helping limit texture memory. For my game in cocos2d - it's here if you're interested to see what I've produced before - http://itunes.apple.com/gb/app/arthur-charles-present-create/id454675579?mt=8 - I loaded quite a bit in 16 bit where quality didn't suffer, the rest in 32-bit.

    4. Ah I'm getting the same answer here that I got from the Corona devs. I'm fully aware that positional audio in OpenAL is a more complex beast than just left/right panning but left/right panning is kind of standard. It's reasonable to expect it from the SDK in my opinion, especially as people use headphones with mobile devices. Audio is important, panning helps to create atmosphere.

    5. It wasn't actually supported by cocos2D in the core, but there was neat little class created by a third party to extend the nodes in cocos2D to provide it using glScissor. It's here: http://www.learn-cocos2d.com/2011/01/cocos2d-gem-clippingnode/

    Anyway, thanks everybody for the quick replies so far. It's helping a lot.
  • Hi,
    5. We're still thinking about a good way to clip. Both polygonal clipping (glScissor) and texture masks (OpenGL texture combiners) have both advantages and disadvantages. But, mostly we're in favor of glScissor. Do you know what cocos2d is using to clip?
    Please add both. Sometimes it is needed to mask irregulary shapes. With just scissor clipping, you can't do that.

  • Yes, both would certainly be the best solution but if they need to come in stages, then do glScissor first ;) That would make interfaces with scrolling segments, that don't have to be full height or width of the screen possible, plus many other simple clipping needs.
  • hnimhnim Member
    edited February 2012

    5. We're still thinking about a good way to clip. Both polygonal clipping (glScissor) and texture masks (OpenGL texture combiners) have both advantages and disadvantages. But, mostly we're in favor of glScissor. Do you know what cocos2d is using to clip?
    waiting for this feature. vote for both =D>
  • gorkemgorkem Maintainer
    I've added this request here :

    http://giderosmobile.com/DevCenter/index.php/New_Ideas_for_Gideros_Studio

    Feel free to ask us to add your requests.

  • atilimatilim Maintainer
    scissor clipping is much more straightforward to implement. Most probably it will come first then texture combiners second.
  • Many thanks, gorkem, that's much appreciated. I figure that scissor would be easier to implement - it would give much more flexibility when creating UIs.
  • Did clipping make it?
    REAL programmers type copy con filename.exe
    ---------------------------------------
Sign In or Register to comment.