Quick Links: Download Gideros Studio | Gideros Documentation | Gideros community chat | DONATE
Gideros 2025.10 — Gideros Forum

Gideros 2025.10

Hello,

A new Gideros version is available, mainly focused on performance improvements in specific cases.

Full change log:
Improvements
[gfx/sprite] new 'addChildrenAt' call to add several children to specific positions inside a sprite in one call (faster)
[gfx/particles] addParticles is much more efficient with a lot of particles
[export/html5] Change code to support WASM64 (not yet enabled)
[layout] getLayoutContsraints, getLayoutParameters and getLayoutInfo now accept a mask of needed values in return for faster processing
[styling] More color operations in styles

Fixes
[export/html5] Fix some existing files not replaced on export
[plugin/tts] Use correct lua context in callbacks
[Library] Fix 3D library shader

Download it from here:
http://giderosmobile.com/download
Tagged:
+1 -1 (+9 / -0 )Share on Facebook

Comments

  • MoKaLuxMoKaLux Member
    edited October 2025
    awesome, thank you hgy29 :)
    will update the wiki to the best of my ability asap, God's willing!
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Yes @MoKaLux, I didn't explain how to use those new functions.
    Sprite:addChildrenAt() takes a single argument, a table with keys indicating the position where to add a new child, and values the children themselves.
    Exemple:
     parentSprite:addChildrenAt({1=child1, 3=child3})

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Another example for Sprite:getLayoutParameters()
    -- Return a table containing only the computed cellSpacingY of the layout, instead of returning everything
    local lp=sprite:getLayoutParameters(true,Sprite.LayoutKeys.cellSpacingY)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited October 2025
    hgy29 said:

    Exemple:

     parentSprite:addChildrenAt({1=child1, 3=child3})
    I tried but got this instead :|
    local sprite = Sprite.new()
    local pix = Pixel.new(0x0000ff, 1, 32, 32)
    pix2 = pix:clone()
    pix3 = pix:clone()
    pix2:setColor(0xff0000)
    pix3:setColor(0x00ff00)
    -- position
    pix:setPosition(1*32, 1*32)
    pix2:setPosition(1.5*32, 1.5*32)
    pix3:setPosition(2*32, 2*32)
    -- order
    sprite:addChild(pix)
    -- Expected '}' (to close '{' at column 22), got '='
    --parentSprite:addChildrenAt({1=child1, 3=child3}) -- not ok
    --sprite:addChildrenAt( { 2=pix3, 3=pix2 } ) -- not ok
    --sprite:addChildrenAt { 2=pix3, 3=pix2 } -- not ok
     
    local pixs = {}
    pixs[1] = pix3
    pixs[3] = pix2
    sprite:addChildrenAt( pixs ) -- OK
     
    stage:addChild(sprite)
    :)
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    Example for new 'brightness' operator in style tables:
    local stageStyle={
    	baseColor=ColorValue(0.7,0.6,0,1)
    }
     
    local spriteStyle={
    	__Parent=stageStyle, --Inherits from 'stageStyle'
    	color1="=baseColor:brightness:1.1",
    	color2="=baseColor:brightness:0.8",
    }
    for x=1,4 do
    	for y=1,4 do
    		local gradient=Pixel.new(0xFFFFFF,1,32,32)
    		gradient:setPosition(x*32,y*32)
    		gradient:setStyle(spriteStyle)
    		gradient:setColor("color"..(1+((x+y)%2)))
    		stage:addChild(gradient)
    	end
    end
     
    stage:addEventListener(Event.MOUSE_DOWN,function() 
    	stageStyle.baseColor=ColorValue(math.random(),math.random(),math.random(),1)
    	stage:setStyle(stageStyle,true)
    end)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @MoKaLux,

    Sorry right syntax was probably:
     parentSprite:addChildrenAt({[1]=child1, [3]=child3})

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    There was a little bug in the binaries, I have updated them a few minutes ago. If you already downloaded them, the new style functions weren't completely correct.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Also, Sprite:addChildrenAt() can also be used like this:
    parent:addChildrenAt({ child1, child2, child3 })

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited October 2025
    ok I added a couple of the new functions (plus some more) :p :
    - Sprite:setHiddenChildren
    - Sprite:isOnStage
    - Sprite:setStyle
    - Sprite:resolveStyle
    - Sprite:addChildrenAt

    Those are missing because I couldn't wrap my head around them :/ :
    - sprite:setWorldAlign
    - sprite:updateStyle (is this one actually really easy?)
    - sprite:spriteToLocalMatrix

    Viva Gideros!

    Likes: hgy29

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    Sprite:setWorldAlign(boolean) instructs Gideros to align the Sprite position on a screen pixel. This is useful for Textfields since it makes the text look more sharp.
    Sprite:spriteToLocalMatrix(otherSprite) returns a Matrix that transforms a coordinate in otherSprite space into a coordinate in current sprite space.

    Sprite:updateStyle() performs what need to be done when the style table of a Sprite has changed. It is called automatically by Gideros or when application:applyStyles() is called.
    It can be overriden by your own classes if needed, so it is lua visible so that you can call it in such cases.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • MobAmuseMobAmuse Member
    edited October 2025
    Using latest Android Studio Narwhal (API 36.1) and latest updates results in gradle build problems on Android export...

    Android Studio Narwhal 4 Feature Drop | 2025.1.4
    Build #AI-251.27812.49.2514.14217341, built on October 6, 2025

    ---

    [Incubating] Problems report is available at: file:///C:/Temp/Dweebs/tmp/build/reports/problems/problems-report.html

    Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

    For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

    FAILURE: Build completed with 2 failures.

    1: Task failed with an exception.
    -----------
    * Where:
    Build file 'C:\Temp\Dweebs\tmp\app\build.gradle' line: 4

    * What went wrong:
    A problem occurred evaluating project ':app'.
    > Value is null

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    > Get more help at https://help.gradle.org.
    ==============================================================================

    2: Task failed with an exception.
    -----------
    * What went wrong:
    A problem occurred configuring project ':app'.
    > Android Gradle Plugin: project ':app' does not specify `compileSdk` in build.gradle (C:\Temp\Dweebs\tmp\app\build.gradle).

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --info or --debug option to get more log output.
    > Run with --scan to get full insights.
    > Get more help at https://help.gradle.org.
    ==============================================================================

    BUILD FAILED in 4s
    Exec returned: 1
    Export failed! See details above.
  • hgy29hgy29 Maintainer
    MobAmuse said:


    * What went wrong:
    A problem occurred evaluating project ':app'.
    > Value is null

    Gideros does set 'compileSdkVersion' in the build.gradle if it was able to find it. I will investigate further.

    Likes: MobAmuse, MoKaLux

    +1 -1 (+2 / -0 )Share on Facebook
  • Me too have the same problem.

    A problem occurred configuring project ':app'.
    > Android Gradle Plugin: project ':app' does not specify `compileSdk` in build.gradle
  • I found what's the problem.
    In export project you must fill Android SDK version (optional) too.

    Likes: MoKaLux, pie, MobAmuse

    +1 -1 (+3 / -0 )Share on Facebook
  • @test29 That works great thank you!

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    @MobAmuse, @test29,

    Problem spotted, I pushed a fix in Gideros for that
    +1 -1 (+4 / -0 )Share on Facebook
  • @hgy29 Awesome thank you :)

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • JohnJohn Member
    edited November 2025
    When I export to html and run it in firefox / mac I get splash screen and spinning gideros icon. I get the following error: Loading failed for the with source “localhost:8888/gideros-wasm.js”. That file not exported. It doesn't work with previous version either so it is not a new problem.
  • JohnJohn Member
    edited November 2025
    OK - Found a workaround that works. It happens when you check the enable PWA and compressed files. If you uncheck both of them it works. I haven't narrowed it down to specific checkbox as the cause but it one of those 2.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hgy29hgy29 Maintainer
    We should remove compression mode anyhow. Most web servers do perform gzip compression on the fly and some android devices tinker with the .png that holds compressed data.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
  • hello gideros people, hope you are doing well :)

    I just found this folder C:\Program Files\Gideros\Players\WinRT which has many version of giderosgame.Windows_XXX_Test:
    - giderosgame.Windows_2025.3.0.0_Test -> 54.1Mb
    - giderosgame.Windows_2025.7.0.0_Test -> 38.9Mb
    - giderosgame.Windows_2025.9.0.0_Test -> 36.5Mb
    - giderosgame.Windows_2025.10.0.0_Test -> 39.2Mb

    I think those are created when compiling Gideros from source so this won't make Gideros.exe smaller but could save some space on one's HD 😛

    Likes: MobAmuse

    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
    +1 -1 (+1 / -0 )Share on Facebook
  • MoKaLuxMoKaLux Member
    edited January 5
    Hope all you guys are doing great 🙋‍♂️
    I am experiencing some little bugs in Gideros Studio 🤔: while coding, the studio is doing its stuff for word highlighting as usual.

    I realize now that when you want to do a right click with the mouse and the highlighting is not done yet then the mouse click won't register!

    I thought I had a virus at first but realized that was only happening while I was on Gideros, I am safe 🙂.

    That's it! Viva Gideros!
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited January 11
    I am trying RenderDoc on my win32 exported gideros app but it complains:
    "OpenGL. Context not created via CreateContextAttribs. Capturing disabled. Only OpenGL 3.2+ contexts are supported"

    As per google this means:
    The message "OpenGL. Context not created via CreateContextAttribs. Capturing disabled. Only OpenGL 3.2+ contexts are supported" means that your application is creating an older, legacy OpenGL context (typically version 2.1 or earlier). RenderDoc requires an OpenGL 3.2 or later core profile context for capturing and debugging

    The question is: does Gideros really use OpenGL version 2.1 or earlier on win32 exported apps? 🤔
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • MoKaLuxMoKaLux Member
    edited January 11
    I don't like https://www.gideros.rocks/ first paragraph and english not being my mothertongue, so I asked ai 🤷‍♂️
    please rephrase this sentence: "Gideros is free and open sourced and provides the cross-platform technology to create amazing games. In a couple of hours, you’ll find yourself building and running your next great game."

    Here are a few ways to rephrase the sentence, depending on the tone you want:

    **Professional & Concise**
    > "Gideros is a free, open-source engine that offers cross-platform tools for game development. You can start creating and running impressive games in just a few hours."

    **Enthusiastic & Marketing-Focused**
    > "Harness the power of Gideros to build amazing games across all platforms. This free, open-source software is so intuitive that you’ll be developing your next big hit in a matter of hours."

    **Casual & Friendly**
    > "Gideros is free and open-source, making it easy to build awesome games for any platform. You'll be surprised how quickly you can get your next game up and running—often in just a couple of hours!"

    **Short & Punchy**
    > "Create amazing cross-platform games fast with Gideros. It’s free, open-source, and gets you building and running your next project in only a few hours."

    **Action-Oriented**
    > "Start building your next great game today with Gideros. This free, open-source technology provides the cross-platform tools you need to go from concept to a running game in just a couple of hours."

    😉
    my growING GIDEROS github repositories: https://github.com/mokalux?tab=repositories
  • hgy29hgy29 Maintainer
    MoKaLux said:

    I am trying RenderDoc on my win32 exported gideros app but it complains:

    "OpenGL. Context not created via CreateContextAttribs. Capturing disabled. Only OpenGL 3.2+ contexts are supported"

    As per google this means:
    The message "OpenGL. Context not created via CreateContextAttribs. Capturing disabled. Only OpenGL 3.2+ contexts are supported" means that your application is creating an older, legacy OpenGL context (typically version 2.1 or earlier). RenderDoc requires an OpenGL 3.2 or later core profile context for capturing and debugging

    The question is: does Gideros really use OpenGL version 2.1 or earlier on win32 exported apps? 🤔
    Seems like many other tools behave the same: for instance https://forum.juce.com/t/creating-an-opengl-3-2-context-easy-fix-included/48872
    Gideros doesn't use CreateContextAttribs, but it definitely could. According to other sources (https://community.khronos.org/t/wglcreatecontextattribsarb-not-needed-anymore/70936), it seems that not using it doesn't mean we don't get a 3.2 context.

    I will patch Gideros code to use it anyway.

    Likes: MoKaLux

    +1 -1 (+1 / -0 )Share on Facebook
Sign In or Register to comment.