Quick Links: Download Gideros Studio | Gideros Documentation | Gideros Development Center | Gideros community chat | DONATE
Gideros 2016.8 released! (WITHDRAWN: 2016.8.1 in testing) — Gideros Forum

Gideros 2016.8 released! (WITHDRAWN: 2016.8.1 in testing)

john26john26 Maintainer
edited August 2016 in Announcements
Guys, we've had to withdraw this release owing to serious errors where Gideros cannot run correct Lua code in some cases. This seems to be due to a "power patch" which we included to upgrade the Lua language. However, it seems this has broken Lua! We have now removed this from the code base and will create a new version (2016.8.1) in the next few days. Sorry about this, we bit off more than we could chew in trying to "improve" Lua. Thanks for everyone who let us know about the problems. Please continue to use 2016.6 for now, or, if you have 2016.8, please treat it as a beta test. We'll get a replacement very soon

We are proud to announce the release of the latest version of Gideros, Gideros 2016.8!

Download Gideros 2016.8!

An exciting feature of the new release is an automatic plugin export mechanism. As many of you will know, adding plugins to exported Gideros apps (eg to incorporate ads, analytics, game controllers etc) currently involves delving in to the "All Plugins" folder of your Gideros installation and manually copying files into the exported project. This is tedious and accident prone and means reading through complex docs like these. The new mechanism means Gideros can do this for you, just click on the "Select Plugins" button in the Export dialog and select the plugins you want (see screenshot).

The automatic plugins also make Direct APK export more useful as it was previously restricted to "vanilla" Android apps without plugins. Now you just select all the plugins you want using "Select Plugins" and everything is baked into the APK Gideros auto-generates! No need for Eclipse or Android Studio!

Currently automatic plugin export is only available for Android but we will add iOS later (for plugins Gideros doesn't yet export automatically, you can still do things manually as before).

Another great new feature is macros. Currently Lua has no constants, you just have to define variables like
Now you can define symbolic constants like this
pi @ 3.14159
and then simply use "pi" in the code as normal. When the Lua code is byte compiled, the constants are replaced with their literal values which saves CPU time. You can also do more advanced stuff like this.
pi @ |math.atan(1.0)*4|
Note the delimiters. And even,
-- macro definition
time_ @ |local _time_ = os.timer()|
_time @ |print("TIME:", os.timer() - _time_)|
-- macro usage
local x = 0
time_ for i = 1, 1e8 do x = x + i end _time
We've also added bitwise operators to Lua. I'll leave it to @SinisterSoft to explain these in more detail! (it's basically like in C or Java)
And our Lua now supports binary and octal number constants as Lua 5.3 does:
To deal with 64-bit integers Lua was extended with `int64` library. You can create int64 numbers from Lua numbers with `#` prefix and convert them back to Lua numbers with postfix `()` or to Lua strings with postfix `""`.

Here's the full list of additions and bugfixes:

Export features
Android Studio upgraded Gradle version
Gideros Studio non blocking export dialog with progress
Plugin installer now works with built in exports
added lots of plugin installer scripts for Android (Android Studio, Eclipse, APK exports)
allow providing default app and tv icons that are replaced on export for all supported platforms
allow providing default horizontal and vertical splash images that are replaced on export for all supported platforms

Gideros Features
shaders code can be supplied in-line from Lua
textures can be created from raw pixel data
global frame counter in Core.frameStatistics
Core.frameStatistics now returns table
method to get shader language
TextField parameter for alignment: sample
RenderTarget can be saved to file

Lua features
built-in macro support
bitwise operators with new metamethods
type metatables powerpatch
int64 library
binary and octal number constants
print() is sent to logcat

player connectivity
correct requesting Open GL on desktop (due to upgrade to Qt 5.6: caused Gideros Player to crash on startup for some users)
lua and luac binaries compilation with mingw
particles alpha
particles are now visible after removed
Android player check file for null pointer when loading existing projects
Timer's behavior to run as set
Path2d texture positioning

[Controller] fixed Moga lib for Android 21
[Gaming Google Play] show all leaderboards support
[Gaming Google Play] step by step achievements handling on GMS
[Gaming Google Play] improved API for achievements
[Camera] initial alpha version for drawing camera texture in Gideros

We hope you enjoy the new version of Gideros!

Download Gideros 2016.8!
726 x 573 - 60K
+1 -1 (+10 / -1 )Share on Facebook


  • john26john26 Maintainer
    edited August 2016

    Pre-packaged Win32 native (non-QT) and HTML5 export template are broken, use the ones in win32.zip or Html5-2016.8.zip from here instead if you need them

    All Plugins folder is misplaced in Mac OS package, you'll need to move it inside 'Gideros Studio.app/Contents' folder (alongside Template folder) for automatic plugin export to work. (only applies if you use the "Select Plugins" button in the Export dialog
  • hgy29hgy29 Maintainer
    edited August 2016
    Also automatic plugin integration is still "work in progress", we've written a few scripts, tested some configurations, but it will take time until all plugins become integrable this way. We know you'll understand if it turns out to be buggy :)
    +1 -1 (+4 / -0 )Share on Facebook
  • john26john26 Maintainer
    And you, the Gideros community, can get involved getting more plugins to export automatically. Each plugin export is described by a .gplugin script file. Eg the controller plugin script is here (on my PC):
    C:\Program Files (x86)\Gideros\All Plugins\controller\controller.gplugin
    By adding more .gplugin files, you can make more plugins available for auto-export. There is no need to recompile Gideros!

    The .gplugin files are essentially XML files. I'll leave it to @hgy29 to describe the "language"...!

    Likes: antix, simwhi

    +1 -1 (+2 / -0 )Share on Facebook
  • My congratulations to all the people that has a contribution in this release. Marvelous job as usual.
    I couldn't make a donation previous month and was feeling bad about it still. Thank you very much and well deserved for a donation for all those beautiful features for this month.
    +1 -1 (+6 / -0 )Share on Facebook
  • Awesome work all! Some fantastic new features and some that I am really looking forward to trying out. I really think the addition of macros is very special. I can't tell you how glad I'll be when I don't have to type things like "actor.position.x = actor.position.x + (actor.velocity.x * dt)" ever again!!!!

    Time to install the new release and export some Plug-Ins :D
  • print() is sent to logcat

    Wow! Really useful sometimes!

    Likes: antix

    +1 -1 (+1 / -0 )Share on Facebook
  • antixantix Member
    edited August 2016
    @unlying.. finally! :)

    Okay on exporting the first thing I get in Android Studio on importing is some complicated error (which I'll investigate).

    I go to my gradle (module:app) and this here is present...
        signingConfigs {
            release {
                //storeFile file("jksgid_StoreFile")
                storePassword "jksgid_StorePass"
                keyAlias "jksgid_KeyAlias"
                keyPassword "jksgid_KeyPass"
    That's not supposed to be there right?
  • piepie Member
    @antix I think that these should match with your data: every app that goes to the store needs to be digitally signed by its developer.
    take a look here
  • SinisterSoftSinisterSoft Maintainer
    edited August 2016
    The logic functions are great for all kinds of things...

    I personally like to unify controller, keyboard, etc control in a game to a 'fudlr' byte.

    What I mean is the fire, up, down, left, right indicators for joypad / keyboard control each has a bit in a byte. 000F UDLR

    In your controller events if you get a joypad up pressed event then modify the byte like this:
    pad=pad|0b00001000 --this would OR the current pad value with the up bit.

    If your controller events if you get a joypad up released event then modify the byte like this:
    pad=pad&0b00010111 -- this would AND the current pad value to mask out the up bit.

    When you do this for fire, up, down, left right events then you have a single variable than can be used to easily add things like movement:

    see this table:
    directions={0,3,7,0,5,4,6,0,1,2,8,0,0,0,0,0} -- udlr direction table

    This will give me a direction (1-8, 0 being no dir) for a FUDLR value using this:
    dir=directions[(pad&0xf)+1) -- first mask out fire, then add 1 for index into dir table.

    you can also do this to get some nice useful values:
    changed=pad~oldPad -- this will let you know which bits have changed

    debounced=pad&changed -- this is debounced joypad values

    It's also worth noting that the new bitwise operators are much faster than using the bit library as they their own bytecode. They should be around 8x faster.

    Likes: hgy29

    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!).
    +1 -1 (+1 / -0 )Share on Facebook
  • @pie, yes I know but Gideros is exporting that stuff by default when it should not. If I had to hazard a guess that stuff belongs to @john26 ;)

    Likes: pie

    +1 -1 (+1 / -0 )Share on Facebook
  • antixantix Member
    edited August 2016
    It seems something else is happening also. The GameHelper.java and GameGooglePlay.java files that are distributed with the Gaming plugin cause compilation issues with the latest version of play services.

    @hgy29, was this stuff not updated in the distribution?

    Oh, and the att6ached zip file contains versions of the java files that work with the latest play services.

    1255 x 1040 - 160K
  • Can anyone tell me how to remove that tiny little splash image from my game please? I already have a fully animated Gideros Splash Screen that I made myself (http://giderosmobile.com/forum/discussion/6510/possible-gideros-splash-screen#Item_1)

    Likes: unlying

    +1 -1 (+1 / -0 )Share on Facebook
  • @antix

    Remove this code from yourprojectActivity.java. Also remove splash.png from resources and splash.xml from values.
    	if(getResources().getIdentifier("splash", "drawable", getPackageName()) != 0){
    			layout = (FrameLayout)getWindow().getDecorView();
    			hasSplash = 11;
    			//create a layout for animation
    			splashLayout = new FrameLayout(this);
    			//parameters for layout
    			FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
    		                FrameLayout.LayoutParams.MATCH_PARENT ,
    			//set background color
    			splashLayout.setBackgroundColor(Color.rgb(255, 255, 255));
    			//create image view for animation
    			splash = new ImageView(this);
    			//image view parameters
    			FrameLayout.LayoutParams params2 = new FrameLayout.LayoutParams(
    			//scale your image
    			splash.setScaleType(ImageView.ScaleType.CENTER );
    			//load image source     
    			//add image view to layout
    			//add image layout to main layout
    In my opinion there should be a checkbox to integrate or not such splash screen.

    Likes: antix

    +1 -1 (+1 / -0 )Share on Facebook
  • antixantix Member
    edited August 2016
    @unlying thanks. I agree that this should be optional, and disabled by default (opt in). I already uninstalled and have gone back to 2016.6 since I can live without the extra stuff this release has so my previous questions can be disregarded ;)
  • hgy29hgy29 Maintainer
    @antix, @unlying, the splash screen you see replace the black screen you previously had: it happens before lua had a chance to display anything, and as such it doesn't replace your animated splash screen.
    And of course you can replace this default splash by your own: just go to project properties and open assets tab: here you can change various static splash screens and app icons
  • hgy29hgy29 Maintainer

    I go to my gradle (module:app) and this here is present...
        signingConfigs {
            release {
                //storeFile file("jksgid_StoreFile")
                storePassword "jksgid_StorePass"
                keyAlias "jksgid_KeyAlias"
                keyPassword "jksgid_KeyPass"
    That's not supposed to be there right?
    This is the signing information, filled in by APK export. It is supposed to be initially disabled (signing commented out a few lines above), so shouldn't cause any problem.
    What error do you get actually ?
  • hgy29hgy29 Maintainer
    It seems something else is happening also. The
    @hgy29, was this stuff not updated in the distribution?
    Seems like it wasn't updated! I didn't dare do it myself without someone else reviewing the changes. I am afraid we could lose some functionnality since I don't know how the code is supposed to work.

  • @hgy29 thanks. The little splash screen is really not that great. Have you looked at it on a 4 inch phone screen in 320x480 resolution? It should at least be sized to stretch across the width of the screen.

    In my particular case it pops up in the middle of the screen, and then half a second later my splash sequence begins and it looks like there is some bug with it (because of the funny new splash graphic).

    The signing won't cause any problems but it's messy and isn't required.

    I fixed the error I was getting but it doesn't matter now because I'm not using this release anymore.

    Great work on the plugins by the way! It would have been good to have some more generic plugins in there too like IAB and Ads which are really key to actually making money with a product :)
  • hgy29hgy29 Maintainer
    @antix, @ar2rsawseen will know better about the splash screen since he added it :) It looks good on all android phones I have, but they all are recent ones with high dpi, so I suppose they is a bug with it and low screen resolutions.

    And yes, we'll work on making more plugins available.
  • @hgy29 okay cool. I know for a fact it looks pretty ugly on my Nexus 4 ;)

    Cool, I look forward to when more plugins are added to the export :)
  • We plan to have a 'fix' release in a couple of weeks. I think that if possible the splash should be on until lua initially runs out of code or on the first Yield, events don't actually start until then so nothing is displayed (only the background colour changes).

    I personally think that having the Gideros logo as default is a good idea, it's easy to change it to black or something else. imho we need to grow this community in order for Gideros to survive, so more people knowing that a game was written using Gideros - the better. :)

    A lot of platforms have a 'splash screen' system and take longer to load for one reason or another, so this is a good new feature. Some examples of the slow loaders/have a built-in splash screen feature are iOS and HTML5.
    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!).
  • @SinisterSoft as I said earlier I made my own splash screen for Gideros and it goes at the front of all of my games because I want to spread the word. I even made a thread and shared it so people could download and use it themselves. I think any splash screen type deal has to be optional, and able to be turned off at will.

    When we start talking about how we want the Gideros community to grow.. We need to take a cold hard look at ourselves first. Sorry to be a negative vibe but look at the website. If a new user comes to look there they will find many broken links and articles from the stone age of Gideros. This is a very good way to scare people away. None of Gideros's competitors have websites that aren't maintained.

    We also need a clear path to create a game from scratch and publish it, complete with monetization because that's what the majority of people who will ever use Gideros will want (in my opinion). I personally had a s**t of a time getting my first game published and even then it was missing things because Gideros didn't support them. My second game has been a bit smoother but still an uphill battle.

    The path from idea to money making product has to be smoother. Just go look at competing frameworks.. they are doing a lot better because people can actually benefit from using those frameworks without mashing their heads on hard surfaces.

    I don't mean to knock new features but there are still basic things that still don't work as they should (sound) and other things that don't even exist yet (like admob reward video adverts).

    If Gideros is a car then it has square wheels and that's not very good for a car is it? Let's make the wheels round so it can then move forward at speed!
  • I see what you mean, but that splash screen is before a screen can possibly display in Gideros. Before that it is always black. You can change it to black again by loading a black png in properties>assets. For some formats this method is good because loading takes longer than on Android - eg iOS and html5. Maybe something to turn it on/off per export format would be an option, I don't know.

    I know what you mean about sound, I think a move to a faster low level sound system is a must on Android, the other platforms seem ok. The sound API also needs to be expanded for effects and left/right volume.

    The plugin system is being worked on. It's also completely open, so everyone can help in getting more plugins working. I didn't know about admob still not working, I tend to use AppLovin and Chartboost.
    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!).
  • @SinisterSoft, perhaps the splash screen could be possible to choose between black screen (or any color even better), gideros logo or custom logo.
  • hgy29hgy29 Maintainer
    Also about splash screen, keep in mind that gideros is cross platform and tries to be consistent accross them all. On iOS the supplied splash screen is displayed bythe OS itself. It used to be a black image. On Android, it is up to the application to display the splash screen, the OS does nothing, so adding splash screen code on Android was a mean to make both platforms act the same.
    But yes it should be deactivable, if you don't have a replacement for the black screen and don't want the default one either. We'll try to come with a fix in next release.

    Likes: antix

    +1 -1 (+1 / -0 )Share on Facebook
  • SinisterSoftSinisterSoft Maintainer
    edited August 2016
    Maybe a dropdown menu with these options:

    Black, Gideros logo,Made with Gideros, etc Custom
    If custom is selected then it uses the file in the selector else it uses one of the prebuilt pngs. ?

    People could submit their own Gideros icon pngs so we can let the user have a choice of built-in styles.

    Likes: antix

    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!).
    +1 -1 (+1 / -0 )Share on Facebook
  • talistalis Guru
    edited August 2016
    It is a good idea to make a combobox. Just to promote advertisement Gideros we can do such stuff, maybe a little bit seems not professional but we are opensource .
    There can be an animated gif programmer icon somewhere in the gui. And whenever black is selected he can go in black and can not work anymore. And a small text can appear somewhere like "Promoting Gideors brings happiness to our community programmer" or maybe some other funny text.

    Just a silly idea but want to share in any case:D
    (click image for the animation)
    279 x 200 - 304K

    Likes: john26

    200.gif 303.9K
    +1 -1 (+1 / -0 )Share on Facebook
  • antixantix Member
    edited August 2016
    Well I have my own splash scene and just want this new one able to be disabled :)

    With regards to the ads plugin I feel that saying "it's open" is a bit of a cop out. If whomever created the plugin isn't prepared to maintain it then they should either not release it in the first place, or they should at least arrange for somebody else to pick up the torch when they move on so to speak.

    Do you think other competing frameworks allow people to not upgrade the code-base that they are responsible for? I don't think so. Of course I realize those people are actually getting paid to maintain the code ;)

    somebody needs to take ownership for and refresh the different frameworks, adding the features that are missing, etc. How will that happen?

    @SinisterSoft, great to see some forward movement on audio :)
  • hgy29hgy29 Maintainer
    If whomever created the plugin isn't prepared to maintain it then they should either not release it in the first place, or they should at least arrange for somebody else to pick up the torch when they move on so to speak.
    While this behavior would be ideal, it is often difficult for a developer to find someone else to take it over after him. And I strongly disagree when you say that a developer should keep its work for him if he is not prepared to maintain it afterwise, in fact the whole purpose of open sourcing if exactly that: give out some work and let other do what they want with it.

    So I just released a new camera plugin, and you make me feel like I shouldn't have. I thought it could be useful, but I will maintain it only as long as I am interested in it.

    We need more people involved in the maintenance of everything, thats the key, and I believe it can happen if we manage to attract skilled developers to Gideros.

  • @hgy29 sorry, I wasn't trying to offend anyone, it's just my own opinion I'm expressing.

    I won't bother from now on.
Sign In or Register to comment.