Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
New version: Gideros Studio 2012.09.3 and 2012.09.4 — Gideros Forum

New version: Gideros Studio 2012.09.3 and 2012.09.4

«1

Comments

  • A good pre-christmas gift, is it?
    twitter: @ozapps | http://www.oz-apps.com | http://howto.oz-apps.com | http://reviewme.oz-apps.com
    Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
    Cool Vizify Profile at https://www.vizify.com/oz-apps
  • atilimatilim Maintainer
    edited December 2012
    Yes :) And the next gift will be coming from you. There are only a few days left to December 17 :)
    +1 -1 (+3 / -0 )Share on Facebook
  • Hi @atilim,

    Can you tell me if this feature request http://bugs.giderosmobile.com/issues/112 has been addressed with your new Sound API changes?

    Many thanks,

    - Ian

    Likes: MobAmuse

    +1 -1 (+1 / -0 )Share on Facebook
  • Yes :) And the next gift will be coming from you. There are only a few days left to December 17 :)
    I need to now photoshop the santa hat on my picture too... before I come bearing gifts ;)

    Likes: atilim

    twitter: @ozapps | http://www.oz-apps.com | http://howto.oz-apps.com | http://reviewme.oz-apps.com
    Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
    Cool Vizify Profile at https://www.vizify.com/oz-apps
    +1 -1 (+1 / -0 )Share on Facebook
  • atilimatilim Maintainer
    @ianchia Partly yes. That request wasn't logical. But now it's possible to mix iPod audio with application audio.
  • denizdeniz Maintainer
    Did you know Santa Claus (Saint Nicholas) lived in Turkey? Near Antalya where Atılım and Görkem is from... very strange:)

    Likes: omer

    +1 -1 (+1 / -0 )Share on Facebook
  • petecpetec Member
    edited December 2012
    I just downloaded the new version of Gideros and it's objecting to some of my wav sound files. I get the message 'Sound format is not supported' to some (not all) of my files, all of which work fine in the previous version of Gideros. Any ideas why that might be?

    Thanks, Pete

    Edit: It seems if I resave the files in my sound editor they load, so maybe I saved them at a different setting originally and that no longer works?
  • @atilim Here's one example use-case. If I write a Gideros app and use an invisible UIWebView in iOS to leverage Web Audio APIs (use that as my audio engine), does Gideros' audio implementation prevent that from happening? I can send you a unit test project if you like. iOS 6 WebKit has good support for Web Audio APIs. eg. bandpass filter examples on http://www.html5rocks.com/en/tutorials/webaudio/intro/
  • At last , welcome rope joint ;)
  • MellsMells Guru
    edited December 2012
    @Atilim
    it's great to see this release, thank you for the hard work.

    1. I am wondering how to control the number of loops with this new API (play sound 3 times).
    Do you think it would be possible to dispatch an event at the end of each sound loop?

    Currently
    <strong>SoundChannel Events</strong>
    Event.COMPLETE = “complete” When the sound channel has finished playing,
    so maybe we could have
    Event.LOOP = “loop”                -- When a loop is over
    Event.COMPLETE = “complete” -- When the sound channel has finished playing,
    Or maybe you know a better way to control the number of times a sound has looped?

    2. I suggested the idea a few times here, can you add your test files to a repository so we can understand better new features introduced in Gideros?
    twitter@TheWindApps Artful applications : The Wind Forest. #art #japan #apps
  • Hi @atilim - does this version include the fix for packed textures using the trim option? Just want to make sure it's in there after having tested a version with the fix.
  • Yes :) And the next gift will be coming from you. There are only a few days left to December 17 :)
    I need to now photoshop the santa hat on my picture too... before I come bearing gifts ;)

    what is coming on dec 17
  • OZAppsOZApps Guru
    edited December 2012
    @HGVyas, The book "Learn Lua for iOS Game Development" (http://www.apress.com/9781430246626) will be available in print form. Though it is available for purchase in eBook format right now and there is also a 50% discount before 31-12-12 if you use the Promo Code SNOW12.

    This book has been technically reviewed by Michael Hartlef (Whitesky games), Atilim (Gideros Mobile), Patrick Meehan (Moai/Zipline Games), Simeon (Codea) and M.Y. Developers.

    Likes: hgvyas123

    twitter: @ozapps | http://www.oz-apps.com | http://howto.oz-apps.com | http://reviewme.oz-apps.com
    Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
    Cool Vizify Profile at https://www.vizify.com/oz-apps
    +1 -1 (+1 / -0 )Share on Facebook
  • Does the promo code work for the print version?
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • SinisterSoftSinisterSoft Maintainer
    edited December 2012
    @atilim I've noticed that my 60fps game slows down now at pretty odd times. Just spinning a sprite whilst another sprite scrolls in front of it now judders slightly when it didn't on the last version. This is on a Android galaxy s3 using the Player on the device. It seems to be as the sprite is being clipped (going off screen)...

    Any ideas?

    EDIT:

    I went to the Samsung developer options, if I tick "Disable hardware overlays/Always use GPU for screen composing" then the juddering stops and everything is back how it should be. Has something been changed with GiderOS so that it doesn't use the GPU when it should?

    This doesn't happen on the Nexus 7 (I mean the slowdown) - just on the Samsung S3.

    Edit 2:

    Is it something to do with 'android:hardwareAccelerated="true"' being in the manifest or not? Is the source to the player anywhere?

    Likes: MobAmuse

    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
    +1 -1 (+1 / -0 )Share on Facebook
  • Does the promo code work for the print version?
    Unfortunately No. It is for the eBook format only.
    twitter: @ozapps | http://www.oz-apps.com | http://howto.oz-apps.com | http://reviewme.oz-apps.com
    Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
    Cool Vizify Profile at https://www.vizify.com/oz-apps
  • No OpenSL yet then regards current OpenAL Android sound latency problems in GiderOS?

    Likes: SinisterSoft

    +1 -1 (+1 / -0 )Share on Facebook
  • Setting 'android:hardwareAccelerated="true"' in the application tag of the player manifest helped quite a lot, but still didn't fix it completely. Might have nothing to do with it?
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • atilimatilim Maintainer
    edited December 2012
    @ianchia I don't know exactly but most probably WebAudio and Gideros' audio can mix together without any problem.

    @petec can you send one me of your .wav files? so that I can extend my .wav loader.

    @Mells With this version, you won't be able to specify loop count anymore. loop count makes my implementation complicated and it's rarely used. I'll add more events to SoundChannel in the future. In your game, do you need to specify loop count?

    Usually my test files contains new functions one after another. I'm pasting one of these:
    local sound = Sound.new("bgmusicloop.wav")
    --local sound = Sound.new("bgmusicloop.mp3")
     
    local soundLength = sound:getLength()
     
    local channel = sound:play(26000, false, false)
     
    sound = nil
     
    collectgarbage()
     
    print(channel:getPosition())
    channel:setPosition(20000)
    print(channel:getPosition())
    channel:setPaused(false)
     
    channel:addEventListener(Event.COMPLETE, function() print("complete") end)
     
    local function onTimer()
    	print(channel:getPosition(), soundLength)
    end
     
    local t = Timer.new(100)
    t:addEventListener(Event.TIMER, onTimer)
    t:start()
     
    stage:addEventListener(Event.MOUSE_DOWN, function() 
    	channel:setPaused(not channel:isPaused())
    	--channel:setPosition(10000)
    	--channel:setPitch(1.5)
    end)
    I'm not sure if these are helpful or not.

    @SinisterSoft This is interesting. With this version, I've almost changed nothing on graphics side. Can you see the same behavior with other examples (e.g. Bird Animation) I need to investigate more.

    @MobAmuse yes I'm still using OpenAL on Android. But I'll drop that and move to OpenSL in near future.
  • atilimatilim Maintainer
    @moopf yes this version contains that trim fix also.
  • atilimatilim Maintainer
    edited December 2012
    @SinisterSoft and what's the android version of your Samsung S3? I don't know if this problem is related to: http://stackoverflow.com/questions/13319360/android-opengl-es-1-1-poor-performance-under-ics-eglswapbuffers-taking-60ms

    And with this version, I've moved from Android SDK 4.1.2 (target 16) to 4.2 (target 17). Also updated the NDK from 8b to 8c.

    There is a probability that one of these changes resulted this performance drop.
  • SinisterSoftSinisterSoft Maintainer
    edited December 2012
    @atilim It's 4.1.2, the previous version of GiderOS doesn't have the performance hit so it must be something to do with the target-17 or the update of the NDK? I looked through the list of changes though and I couldn't see anything that would relate to this.

    I looked at the link and if it's to do with OpenGL Es1.1 then all I can hope is that you start supporting OpenGL Es2.0 ;p

    I might revert back to the previous version or is it possible for me to build a version of the new player that targets 'target-16'?

    EDIT:

    The two large textures were in two different files. Moving them to the same file seems to fix the problem. This didn't happen on the previous GiderOS.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • atilimatilim Maintainer
    Hi,

    You can try this:
    1. Export your project.
    2. Open "project.properties" file and change the line "target=android-17" to "target=android-16"
    3. Build + deploy

    There is very little probably that it's related to NDK 8c and I hope it's related to target-17.

    (I've updated the release notes)
  • atilimatilim Maintainer
    And if you want to the player with target-16 you can follow these steps:

    1. Create a new project (you can name it as MyGiderosPlayer)
    2. Export it
    3. Delete the directory assets/assets
    4. Open "project.properties" file and change the line "target=android-17" to "target=android-16"
    5. Build + deploy
  • atilimatilim Maintainer

    The two large textures were in two different files. Moving them to the same file seems to fix the problem. This didn't happen on the previous Gideros.
    It's really interesting. S3 is a very powerful device and I cannot guess why this effects the performance (and why previous version doesn't have this problem).
  • SinisterSoftSinisterSoft Maintainer
    edited December 2012
    I know - crazy ehh? Only two sprites on screen too. One 568*568 zoomed and rotating, the other 440*139 zoomed by about 3 fold and scrolling across the screen.

    I've also noticed that the frame rate (although it's now not dropping frames and is synced steady) isn't as fast as the Nexus 7. It's like they are synced to different rates - it's like either the Nexus is at 70hz or the s3 is at 50hz I'm not sure. I didn't notice this on the previous GiderOS, but it might have been the same.

    Edit: The frame rate thing seems to be related to powersaving on/off - with powersaving on the frame rate is reduced but still synced to a set rate.
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • atilimatilim Maintainer
    edited December 2012
    You can use this code snippet to see fps:
    local frame = 0
    local timer = os.timer()
    local function displayFps()
    	frame = frame + 1
    	if frame == 60 then
    		local currentTimer = os.timer()
    		print(60 / (currentTimer - timer))
    		frame = 0
    		timer = currentTimer	
    	end
    end
    I know not every device has native 60fps. I've seen some devices with natively ~53fps.

    Btw, were you able to try target-16?
  • SinisterSoftSinisterSoft Maintainer
    edited December 2012
    @atilim Thanks for the routine...

    S3 on 4.1.2: Normal 59-60Hz, with powersaving 39-40Hz. Both synced perfectly though (it's not 'cause the CPU is slower when at 40Hz). It does the change live, change power save and it slows down/speeds up straight away (no need to reload).

    Not tried on target-16, works now so no problem.

    Is there a way to write a bitmap to a section of an existing texture, so I can reply certain gfx in a large texturemap with level graphics?
    Coder, video game industry veteran (since the '80s, ❤'s assembler), arrested - never convicted hacker (in the '90s), dad of five, he/him (if that even matters!).
    https://deluxepixel.com
  • @atilim
    with this version, you won't be able to specify loop count anymore.
    I understand that I have to handle the number of loops myself and I can't specify it with sound:play()
    However I thought that when loop=true then "somewhere" in the code it's instructing the file to play again once it's completed?
    If at this moment a loop event could be dispatched, that would allow us to handle the nbLoop ourselves? Unless I'm missing something?

    As an alternative, from what I understand I could setup a Timer.delayedCall :
    local nbLoops = 3
    local sound = Sound.new("music.mp3")
    local soundLength = sound:getLength()
     
    local channel = sound:play(0, true) -- loop infinitely
     
    -- Stop play after 3 loops
    Timer.delayedCall(nbLoops*soundLength, function() channel:stop() end, myData)
    but I don't think that this is better.
    I'll add more events to SoundChannel in the future. In your game, do you need to specify loop count?
    for example :
    • "On game start screen, launch intro video after the intro music has played 4 times".
    • "In game, launch gameLoop2 after gameLoop1 has looped 5 times" (to add variety to the music).
    • Before fighting a boss : "Play the dinosaur's step sound 4 times"
    twitter@TheWindApps Artful applications : The Wind Forest. #art #japan #apps
Sign In or Register to comment.