<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Step by step tutorials — Gideros Forum</title>
        <link>https://forum.giderosmobile.com/</link>
        <pubDate>Sun, 17 May 2026 09:04:24 +0000</pubDate>
        <language>en</language>
            <description>Step by step tutorials — Gideros Forum</description>
    <atom:link href="https://forum.giderosmobile.com/categories/step-by-step-tutorials/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>ReactPhysics3D</title>
        <link>https://forum.giderosmobile.com/discussion/8808/reactphysics3d</link>
        <pubDate>Wed, 28 May 2025 19:04:07 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>MoKaLux</dc:creator>
        <guid isPermaLink="false">8808@/discussions</guid>
        <description><![CDATA[Please allow me to open this thread for <b>ReactPhysics3D </b>tips and tricks and tutorials?

Let's start with a nice simple r3d demo, a shoot'em up  :) 
- you control the ship with arrow keys and space to shoot
- there are waves of enemies (1 kind of enemy for now but should be easy to add more)
- player1 ship fires missiles
- player1 missiles collide with enemies
- particles emitted when colliding
- player1 ship and enemies collide too (and particles)
- some sounds
- onscreen 'joypad' for mobiles (game doesn't work on html5)
- game exported to android, win32, winQt <b>OK</b>  :p 
- scoring system
- ...

The code is imho pretty straightforward with some comments (should be a good candidate for one more Gideros Sample Game?)

The Gideros project is pretty light (with included 3D models!) <b>385KB</b>.

Link to project (Google Drive) not on GH yet:
https://drive.google.com/file/d/1kauDJm-2F_RlyWAQL8fyPnGrerV5scSD/view?usp=drive_link

I should be able to make a wiki tutorial pretty easily (God's willing)?

There seem to be some issue with Gideros r3d but it is what it is  ;) 

<b>EDIT</b>: adding firefox log for info

<b>Viva Gideros  </b>&lt;3 ]]>
        </description>
    </item>
    <item>
        <title>My YT Platformer Series is complete (NOT)</title>
        <link>https://forum.giderosmobile.com/discussion/7777/my-yt-platformer-series-is-complete-not</link>
        <pubDate>Tue, 27 Aug 2019 19:51:09 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>MoKaLux</dc:creator>
        <guid isPermaLink="false">7777@/discussions</guid>
        <description><![CDATA[I had a lot of fun doing this series. It is very newbies friendly. I tried to make them short. Hope this help! Peace.

<del>youtube.com/playlist?list=PLleSG2JPK7JG2_d4LtcKNSJbzqlPSnVFp</del>

PS1: gideros needs a camera!
PS2: I have a class for mobile control, I may add it to the wiki, tell me what you think about the code (it's in the video description <del>/watch?v=omoWZrZQh_Y&amp;list=PLleSG2JPK7JG2_d4LtcKNSJbzqlPSnVFp&amp;index=16&amp;t=0s</del>

It should be generic enough for any projects!

PS3: I have also all put down on "paper" in libreoffice writer but not sure where to put it
PS4: I may add the full project on github
PS5: thank you all for making gideros so great!

EDIT: see my last comment below  &gt;:) ]]>
        </description>
    </item>
    <item>
        <title>How to implement bullet raycast in 2D?</title>
        <link>https://forum.giderosmobile.com/discussion/8439/how-to-implement-bullet-raycast-in-2d</link>
        <pubDate>Sun, 13 Jun 2021 04:32:01 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>koeosstudio</dc:creator>
        <guid isPermaLink="false">8439@/discussions</guid>
        <description><![CDATA[Hello guys!

Just a noob question here.

So here's the setup.
I want to implement a bullet hit using raycast function.

 For example  I have a resolution of 480x980.

Let's say my hero is at (240, 900) and the enemy is at (400, 200) 

I want to hit the enemy instantly using bullet from my players coordinate. I want to use raycast if possible.

Please help me for the logic, and event listeners .

Thank you ☺️☺️]]>
        </description>
    </item>
    <item>
        <title>How to do 3D for the game</title>
        <link>https://forum.giderosmobile.com/discussion/8202/how-to-do-3d-for-the-game</link>
        <pubDate>Sat, 04 Jul 2020 05:58:39 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>oleg</dc:creator>
        <guid isPermaLink="false">8202@/discussions</guid>
        <description><![CDATA[Modern smartphones are able to create 3D objects from photos
But if you are not satisfied with the result of the smartphone, you can use the desktop program

Here is a video that tells how to make 3D from a photo
https://www.youtube.com/watch?v=45D0pFdqVgw

And here are 3d models that are made in this way for 3d games about survival, apocalypse, zombies and the like.
https://www.cgtrader.com/3d-models/industrial/tool/collection-old-tools-pbr

I just wanted to share this opportunity, maybe it will be useful to someone.]]>
        </description>
    </item>
    <item>
        <title>Topdown RPG template</title>
        <link>https://forum.giderosmobile.com/discussion/6823/topdown-rpg-template</link>
        <pubDate>Tue, 17 Jan 2017 12:18:22 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>Greywine</dc:creator>
        <guid isPermaLink="false">6823@/discussions</guid>
        <description><![CDATA[Hi gang,

I just wanted to make everyone aware of a little tutorial series I started writing that went live last weekend.  In it, I give the basic introduction to Gideros Mobile and TileMap.  Tutorial #2, I believe, is the simplest way to program with TileMap.  The examples that come with Gideros Mobile require pre-generated Tiled maps which not everyone will want to use.  

Anyway, take a look and tell me what you think:

https://programmingbymoonlight.com/

Thanks.]]>
        </description>
    </item>
    <item>
        <title>A Full Gideros Bubble Game is Available</title>
        <link>https://forum.giderosmobile.com/discussion/7779/a-full-gideros-bubble-game-is-available</link>
        <pubDate>Wed, 28 Aug 2019 11:51:59 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>MoKaLux</dc:creator>
        <guid isPermaLink="false">7779@/discussions</guid>
        <description><![CDATA[For a smooth intro to gideros game making, I did this first casual game series:

removed

I believe that new starters should go through this one before doing the <del>platformer series</del>.]]>
        </description>
    </item>
    <item>
        <title>Lua: built-in macro</title>
        <link>https://forum.giderosmobile.com/discussion/6621/lua-built-in-macro</link>
        <pubDate>Wed, 17 Aug 2016 12:44:48 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>n1cke</dc:creator>
        <guid isPermaLink="false">6621@/discussions</guid>
        <description><![CDATA[Since 2016.08 release we have added built-in macro support to Lua, so now you can use it anywhere. To denote macro definition we are using `@` sign (instead of `=`) so you can read `x@100` as "x at 100". Even in it's current basic form (which will be extended in the feature) it is already useful for:
◘ simple numeric and string constants to make your code little faster:
<pre xml:lang="lua">
num1 @ -100.54
num2 @ 232
num3 @ 444.10
str1 @ 'hello'
str2 @ "world"
str3 @ [[
Hello,
world!
]]</pre>
◘ language sugar without any overhead:
<pre xml:lang="lua">
on @ true
off @ false
fn @ function
ael @ addEventListener
</pre>
◘ reducing amout of repetitive code:
<pre xml:lang="lua">add @ |stage:addChild|</pre>
Note: you can use any of this delimiters after `@` but they should be in pairs:
<pre xml:lang="lua">\`~ ! # $ % ^ &amp; * / + = | </pre>
◘ to "include" files like in C:
<pre xml:lang="lua">
-- define your lib in init.lua
include_my_lib @ \
local f = function(...) return ... end
-- your functions here
\
</pre>

<b>How to use defined macros:</b>
You just need to type macro name you have defined before and it will be extended to it's macro body, for example:
<pre xml:lang="lua">
pi @ \math.pi\
print(pi + pi / pi ^ pi)
</pre>
All defined macros are constants, so you will get an error if you will try to redefine them with `@` again. But you still can redefine them if you need: just use `@@` instead.
You can also put one macro inside another macro and put them inside third. The sky's the limit:
<pre xml:lang="lua">what @ /
what @@ |
 what @@ \
  LOL @ !
   "LOL"
  !
 \
|
/
what
what
what
print(LOL) -- guess what you will get :)</pre>

<b>Some useful macros:</b>

◘ commenting `print`:
<pre xml:lang="lua">print @ |--|</pre>
Usage:
<pre xml:lang="lua">print(x, y, z, x + y, y * z)</pre> -- this line will be skipped

◘ benchmarking:
<pre xml:lang="lua">
time_ @ |local _time_ = os.timer()|
_time @ |print("TIME:", os.timer() - _time_)|
</pre>
Usage:
<pre xml:lang="lua">
local x = 0
time_ for i = 1, 1e8 do x = x + i end _time
</pre>

◘ random color:
<pre xml:lang="lua">rnd @ |math.random(0, 0xFFFFFF)|</pre>
Usage:
<pre xml:lang="lua">local pixel = Pixel.new(rnd, 1, 200, 200)</pre>]]>
        </description>
    </item>
    <item>
        <title>Platformer Gaming Mechanics</title>
        <link>https://forum.giderosmobile.com/discussion/7665/platformer-gaming-mechanics</link>
        <pubDate>Fri, 21 Jun 2019 13:40:31 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>oleg</dc:creator>
        <guid isPermaLink="false">7665@/discussions</guid>
        <description><![CDATA[hello girls, I found a great guide for game designers:

<img src="http://forum.giderosmobile.com/uploads/editor/oj/6kck866zv0mz.png" alt="" />
in english:
http://mrbossdesign.blogspot.com/2008/10/platformer-primer.html
Ukrainian Украінською:
https://simartinfo.blogspot.com/2019/06/blog-post.html
maybe you know the other guides for other game mechanics.
 - share with us ..

]]>
        </description>
    </item>
    <item>
        <title>my french memo</title>
        <link>https://forum.giderosmobile.com/discussion/7407/my-french-memo</link>
        <pubDate>Fri, 20 Jul 2018 12:01:19 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>flashjaysan</dc:creator>
        <guid isPermaLink="false">7407@/discussions</guid>
        <description><![CDATA[I'm writing a memo about Gideros in my native tongue (french). Still, it's quite uncomplete but might be useful for beginners so I share it :
<a rel="nofollow" href="https://docs.google.com/document/d/19rgKTNek_99qqNx0uuBXh1_0cHm_dylgZGtNGOW3ZQ4/edit?usp=sharing">https://docs.google.com/document/d/19rgKTNek_99qqNx0uuBXh1_0cHm_dylgZGtNGOW3ZQ4/edit?usp=sharing</a>
Hope you'll like it!
Amusez vous bien!]]>
        </description>
    </item>
    <item>
        <title>Procedural Cave - Source Code for Gideros</title>
        <link>https://forum.giderosmobile.com/discussion/7085/procedural-cave-source-code-for-gideros</link>
        <pubDate>Tue, 26 Sep 2017 22:57:35 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>HubertRonald</dc:creator>
        <guid isPermaLink="false">7085@/discussions</guid>
        <description><![CDATA[Hi folks!

In this link you find the subject source code 
https://github.com/HubertRonald/ProceduralCave

<a rel="nofollow" href="https://imgflip.com/gif/1wlglt"><img src="https://i.imgflip.com/1wlglt.gif" title="made at imgflip.com" alt="image" /></a>

Enjoy it! and any feedback is welcome

]]>
        </description>
    </item>
    <item>
        <title>Foul Job - Source code</title>
        <link>https://forum.giderosmobile.com/discussion/7079/foul-job-source-code</link>
        <pubDate>Fri, 22 Sep 2017 12:26:03 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>HubertRonald</dc:creator>
        <guid isPermaLink="false">7079@/discussions</guid>
        <description><![CDATA[Hi folks!

According to what I post in an earlier <a rel="nofollow" href="http://giderosmobile.com/forum/discussion/7060/foul-job#Item_14">discussion.</a>

In this link you find the subject source code ;)
https://github.com/HubertRonald/FoulJob

<b>Main Features</b>
<b>* </b>You can create any boxes draggable (Box2D) with camera
<b>* </b>Improved properties of kinetic zoom camera and tilemap for support multiple screen resolution
<b>* </b>Many combined liquid fun effects
<b>* </b> Button Class support many effects (easing, Gtween and moviclip) Sample <a rel="nofollow" href="https://www.youtube.com/watch?v=Ug7HLq2wMDg">Winki App</a> Button

<a rel="nofollow" href="https://imgflip.com/gif/1wc7k4"><img src="https://i.imgflip.com/1wc7k4.gif" title="made at imgflip.com" alt="image" /></a>

In last case, I have not attached any examples for lack of time but I can attest that you can make nice effects like the one shown above.

Enjoy it! and any feedback is welcome
]]>
        </description>
    </item>
    <item>
        <title>Material Design Icons on Gideros</title>
        <link>https://forum.giderosmobile.com/discussion/7072/material-design-icons-on-gideros</link>
        <pubDate>Sat, 16 Sep 2017 18:34:21 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>HubertRonald</dc:creator>
        <guid isPermaLink="false">7072@/discussions</guid>
        <description><![CDATA[Hello 

I'm checking "Path2D" and I want to show you the next
<pre xml:lang="Lua">

application:setBackgroundColor("0x3A3F3E")

pcall(function() require "json" end)
local function load( filename )
	local path = filename..".json"
	local contents			-- will hold contents of file
	local file = io.open( path, "r" ) -- io.open opens a file at path. returns nil if no file found
	
	if file then
		contents = file:read( "*a" ) -- read all contents of file into a string
		io.close( file )		-- close the file after using it
		return json.decode( contents ) -- return Decoded Json string
	else
		return nil	-- or return nil if file didn't ex
	end
	
end

local iconsSVG = load("paths")
print("\n",iconsSVG["dice-multiple"])
print(iconsSVG["eye-off"])
print(iconsSVG["account-alert"])
print(iconsSVG["bus-side"])


local icon = iconsSVG["dice-multiple"]
local p=Path2D.new()
p:setSvgPath(icon) 		
p:setLineThickness(0) 	-- Not Outline
p:setFillColor(0x4D524C)
p:setAnchorPosition(-50,-50)
p:setScale(3)
p:setConvex(false)		-- some icons aren't convex
stage:addChild(p)

</pre>
Attach file paths.json as zip

If you need a specific icon in paths.json please visit the next page:
<a rel="nofollow" href="https://materialdesignicons.com/">https://materialdesignicons.com/</a>

'cos all icons were took of that site web and you must check its name and put it in your code

For more information about how <b>paths.json</b> was generated please check the next link:
<a rel="nofollow" href="https://github.com/HubertRonald/material-design-icons-svg">https://github.com/HubertRonald/material-design-icons-svg</a>

Enjoy it!

<img src="http://giderosmobile.com/forum/uploads/FileUpload/6e/e62bf911233be5dd0e7cfaedfdb1c7.png" alt="image" />]]>
        </description>
    </item>
    <item>
        <title>Profiling code in 2017.8</title>
        <link>https://forum.giderosmobile.com/discussion/7057/profiling-code-in-2017-8</link>
        <pubDate>Fri, 25 Aug 2017 13:06:54 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>hgy29</dc:creator>
        <guid isPermaLink="false">7057@/discussions</guid>
        <description><![CDATA[Gideros 2017.8 comes with an integrated native lua profiler.

For those who don't know what is a code profiler, it is a tool that measure effectiveness of the code and outputs statistics about the CPU usage: number of times each function was called, how much time it took to execute, and where was it called from. Gideros nows provide four functions to manage a profiling session:
- Core.profilerStart(), which instructs gideros start collecting profiling data
- Core.profilerStop(), which pause collecting
- Core.profilerReset(), which clears collected data
- Core.profilerReport(), which returns a table containing collected profiling data
 
To ease report generation, I've made a small lua file which convert the collected data into a more readable log. My profiler has just two functions: Profiler.start(): start profiling, Profiler.stop(): stop profiling and outputs data on console.

<b>Ok, but what is it for ?</b>

So suppose you are running the following code:
<pre xml:lang="lua">
local function myFunction1(a)
	local function c(a) return math.cos(a*math.pi/180) end
	return c(a)+c(a+1)
end
</pre> and happen to use it very often. It is far from being optimized (on purpose, right) and turns out to be slow, but how can we do better ?

Lets ask the profiler how does it run, say we want to run it 1000000 times:

<pre xml:lang="lua">
local function profile(myFunction)
	Profiler.start()
	for i=1,1000000 do myFunction(i) end
	Profiler.stop()
end

profile(myFunction1)
</pre>

This code outputs:
<pre>
&lt;	[  6]	  3768	100%	1000000	 @main.lua:22
=	[  1]	  3768	 36%	1000000	myFunction @main.lua:1
&gt;	[  2]	  2424	 64%	2000000	c @main.lua:2
--------------------------------
&lt;	[  1]	  2424	100%	2000000	myFunction @main.lua:1
=	[  2]	  2424	 63%	2000000	c @main.lua:2
&gt;	[  3]	   892	 37%	2000000	cos =[C] 6E416930
--------------------------------
&lt;	[  2]	   892	100%	2000000	c @main.lua:2
=	[  3]	   892	100%	2000000	cos =[C] 6E416930
--------------------------------
=	[  4]	     0	 -1%	     0	 =[C] 00456FA0
--------------------------------
=	[  5]	     0	 -1%	     0	stop @profiler.lua:7
--------------------------------
=	[  6]	     0	 -1%	     0	 @main.lua:22
&gt;	[  1]	  3768	  1%	1000000	myFunction @main.lua:1
--------------------------------
=	[  7]	     0	 -1%	     0	 @profiler.lua:2
--------------------------------
=	[  8]	     0	 -1%	     0	profilerStop =[C] 004536A0
--------------------------------
</pre>
This is a list of all functions ran by the code sorted by CPU usage (highest first). The first chunk is:
<pre>
&lt;	[  6]	  3768	100%	1000000	 @main.lua:22 (This is the function that called this one)
=	[  1]	  3768	 36%	1000000	myFunction @main.lua:1 (This is the considered function)
&gt;	[  2]	  2424	 64%	2000000	c @main.lua:2 (This is the function that was called by this function)
</pre>
So the function 'myFunction' took most of the time. Figures tell us that it was called 1000000 times and consumed 3768ms on CPU. We also learn that it was called from function [6], located at main.lua:22, and that all the time (100%) spent in myFunction was due to being called by main.lua:22.
More interesting, we discover that 64% of the time (2424ms) was spent in calls to function [2], named 'c' and located at main.lua:2, and that c was called 2000000 times (twice per call).

The second chunk, about function [2], that is c@main.lua:2 shows us that 37% of the time was spent in math.cos(), and 63% in the function itself.

We now that calling a function is expensive, and that 'c' function is rather simple. Lets try to inline it:

<pre xml:lang="lua">
local function myFunction2(a)
	return math.cos(a*math.pi/180)+math.cos((a+1)*math.pi/180)
end
</pre>

Now profiler report looks like this: (truncated)
<pre>
&lt;	[  5]	   912	100%	1000000	 @main.lua:22
=	[  1]	   912	 76%	1000000	myFunction @main.lua:6
&gt;	[  2]	   215	 24%	2000000	cos =[C] 6E416930
--------------------------------
&lt;	[  1]	   215	100%	2000000	myFunction @main.lua:6
=	[  2]	   215	100%	2000000	cos =[C] 6E416930
</pre>

myFunction is already faster: 912ms now where we had 3768ms before.
We still call math.cos two times. Lets make it (and math.pi) local.

<pre xml:lang="lua">
local function myFunction3(a)
	local cos=math.cos
	local pi=math.pi
	return cos(a*pi/180)+cos((a+1)*pi/180)
end
</pre>

and profiler report:
<pre>
&lt;	[  6]	   798	100%	1000000	 @main.lua:22
=	[  1]	   798	 73%	1000000	myFunction @main.lua:10
&gt;	[  2]	   216	 27%	2000000	cos =[C] 6E416930
</pre>
We saved time in myFunction, while cos() took the same time.

What if we use new gideros deg to rad operator instead of math.pi and 180 constant ?
<pre xml:lang="lua">
local function myFunction4(a)
	local cos=math.cos
	return cos(^<a>

and profiler report:
<pre>
&lt;	[  5]	   741	100%	1000000	 @main.lua:22
=	[  1]	   741	 71%	1000000	myFunction @main.lua:16
&gt;	[  2]	   216	 29%	2000000	cos =[C] 6E416930
</pre>

We saved a few more precious milliseconds!

As you can see, the profiler is an useful tool to spot CPU bottlenecks in your app, and some times a few minor changes in the code can make big differences: avoid table access, avoid function calls, avoid duplicate computations.</a></pre>]]>
        </description>
    </item>
    <item>
        <title>Make a game like Arkanoid</title>
        <link>https://forum.giderosmobile.com/discussion/6788/make-a-game-like-arkanoid</link>
        <pubDate>Sun, 11 Dec 2016 15:58:30 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>antix</dc:creator>
        <guid isPermaLink="false">6788@/discussions</guid>
        <description><![CDATA[Hey all. I found an interesting post over on the Love2d reddit..

https://www.reddit.com/r/love2d/comments/5gkc56/tutorial_on_making_arkanoidtype_game_with_love2d/

There is some interesting stuff in there, especially about resolving collisions using Hardon Collider. It's all Lua based so can be converted to work with Gideros quite easily  :)&gt;- ]]>
        </description>
    </item>
    <item>
        <title>Facebook Android Plugin</title>
        <link>https://forum.giderosmobile.com/discussion/2929/facebook-android-plugin</link>
        <pubDate>Wed, 27 Mar 2013 07:59:11 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>ar2rsawseen</dc:creator>
        <guid isPermaLink="false">2929@/discussions</guid>
        <description><![CDATA[Here is a Facebook Android Plugin.

https://github.com/ar2rsawseen/GiderosFacebookAndroidPlugin

It will probably be included in next versions of Gideros, but for those of you who can't wait and want to try it out now (maybe even find any bugs :) ) here it is.

I've attached two files, one (FacebookPlugin.zip) for Android exported project other (FacebookGideros.zip) a Gideros sample project.

Installation instructions:
<ul>
<li>Download Facebook SDK here: http://developers.facebook.com/android/</li>
<li>Facebook SDK installation instructions here: http://developers.facebook.com/android/
<ul>
<li>Download and unzip</li>
<li>Import SDK into eclipse <strong>(Note you need to import it in workspace and check copy all files)</strong></li>
</ul>
</li>
<li>Export Gideros project to Android project</li>
<li>Import Android project to eclipse <strong>(Note you need to import it in workspace and check copy all files or Facebook SDK won't work)</strong></li>
<li>Link Facebook SDK to your project:
<ul>
<li>Right click on your project</li>
<li>Select properties</li>
<li>Choose Android</li>
<li>In library section click Add and choose FacebookSDK</li>
<li>If it's not there or not linking properly, it means that you haven't imported FacebookSDK into eclipse or it's not in your workspace or your project is not in your workspace</li>
</ul>
</li>
<li>Copy contents of FacebookPlugin.zip into your project:
<ul>
<li>Copy .so files to each separate armeabi folder</li>
<li>Copy facebook folder to src/giderosmobile/android/plugins folder</li>
</ul>
</li><li>Inside your main activity:
<ul>
<li>Add lib as System.loadLibrary("facebook");</li>
<li>Add external class as "com.giderosmobile.android.plugins.facebook.GFacebook"</li>
<li>Add this line inside onActivityResult method: GFacebook.fb.authorizeCallback(requestCode, resultCode, data); (This step will not be needed, when plugin will be included in Gideros SDK)</li>
</ul>
</li>

<li>Clean and launch the app, if it does not work, come and complain here, because I may have also screwed something up :) </li>
</ul>


<strong>EDIT</strong>
Attaching Facebook SDK I used while developing plugin]]>
        </description>
    </item>
    <item>
        <title>Lua: bitwise operators with new metamethods</title>
        <link>https://forum.giderosmobile.com/discussion/6622/lua-bitwise-operators-with-new-metamethods</link>
        <pubDate>Wed, 17 Aug 2016 13:00:02 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>n1cke</dc:creator>
        <guid isPermaLink="false">6622@/discussions</guid>
        <description><![CDATA[With 2016.08 release we get full support of Lua 5.3 bitwise operators and integer division operator:
<pre xml:lang="lua">
|  __bor  -- bitwise or (binary)
&amp;  __band -- bitwise and (binary)
~  __bxor -- bitwise exclusive or (binary)
&lt;&lt; __shl  -- bitwise left shift (binary)
&gt;&gt; __shr  -- bitwise right shift (binary)
~  __bnot -- bitwise not (unary)
// __idiv -- integer division (binary)
</pre>
All operators and their according metamethods are same as Lua 5.3 ones.
Example 1:
This function encodes any integer number (32 bits) to 4 chars to pass it over network later:
<pre xml:lang="lua">local function encodeInt(n)
	local t = {}
	local char = string.char
	t[1] = char(n &gt;&gt; 24 &amp; 0xFF)
	t[2] = char(n &gt;&gt; 16 &amp; 0xFF)
	t[3] = char(n &gt;&gt; 08 &amp; 0xFF)
	t[4] = char(n &gt;&gt; 00 &amp; 0xFF)
	return t:concat()
end</pre>
Example 2:
You can use new metamethods same way as old ones:
<pre xml:lang="lua">
mt = {
	__bnot = function(t)
		local r = {}
		for i = 1, #t do r[i] = ~t[i] end
		return r
	end
}
t = {1, 2, 3, 4 ,5}
setmetatable(t, mt)

print(require"json".encode(~t)) --&gt; [-2,-3,-4,-5,-6]
</pre>
]]>
        </description>
    </item>
    <item>
        <title>Export project to Android.</title>
        <link>https://forum.giderosmobile.com/discussion/6925/export-project-to-android</link>
        <pubDate>Wed, 26 Apr 2017 18:06:11 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>Favfly</dc:creator>
        <guid isPermaLink="false">6925@/discussions</guid>
        <description><![CDATA[Please forgive the stupidity and lameness of my questions: I'm not a natural programmer.

I'm going to export my project to Android. I've clicked on 'export project' in Gideros Studio. I now have a list of ten values to fill out.

1. Package name - com.yourdomain.yourapp
Okay. What is this? Am I suppose to leave this name as is or alter it in some way?

2. Android Target Version
Pretty sure this is the android api number. I've set it at 19 (KitKat 4.4). Am I right?

5. Key store
Yeah. I have no clue what this is.

6. Key alias
What am I supposed to put in here?

7.8.9.10.
All these say that they are optional... is that true? Can I just leave them blank? Is that a good idea?


Any help with this would be really appreciated.]]>
        </description>
    </item>
    <item>
        <title>Publishing tutorial</title>
        <link>https://forum.giderosmobile.com/discussion/6894/publishing-tutorial</link>
        <pubDate>Sat, 25 Mar 2017 19:43:32 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>Favfly</dc:creator>
        <guid isPermaLink="false">6894@/discussions</guid>
        <description><![CDATA[So, I've finally finished my first Gideros game. Yay! Now, I want to publish it... is there a step-by-step tutorial (or anything like that) to guide me through the process?
I'm currently stumped... and knackered. It's been a long dev.

Any help very gratefully received.]]>
        </description>
    </item>
    <item>
        <title>Direct APK export</title>
        <link>https://forum.giderosmobile.com/discussion/6800/direct-apk-export</link>
        <pubDate>Sun, 18 Dec 2016 05:01:44 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>SinisterSoft</dc:creator>
        <guid isPermaLink="false">6800@/discussions</guid>
        <description><![CDATA[The biggest new improvements in the upcoming 2016.12 release are to the export system.  Being able to make exports easier is currently our highest priority.

With the click of a button you will be able to export your app with the following plugins directly to a signed APK...

Ads (Unity, Admob (untested), AppLovin and Chartboost for now)
IAB (Google and Amazon payment systems)
Gaming (Google Play and Game Circle)
Facebook (API v3 for now)
Controllers
Flurry
Media
Camera
Countly (untested)
LFS (untested)
LPeg (untested)
LSqlLite3 (untested)
Microphone (untested)
Require (this is new and very useful)
Struct (untested)

The googlebilling plugin will be depreciated as its functionality will be covered by the IAB plugin, currently the only thing missing is subscriptions.

The googleplay plugin will be depreciated as its functionality is covered by the gaming plugin already.

Heyzap (gaming plugin) will be removed soon as Heyzap depreciated the gaming side of their business a long time ago.

Consider storekit and gamekit ios plugins depreciated as they will also be covered soon by the iab and gaming plugins.

APK export though will need to know where on your computer some files are and what version of those files to use...

Attached is a screenshot as an example of correct settings.

]]>
        </description>
    </item>
    <item>
        <title>Step By Step : How to write a C++ plugin and Deploy it to the Desktop (Windows) Player</title>
        <link>https://forum.giderosmobile.com/discussion/1025/step-by-step-how-to-write-a-c-plugin-and-deploy-it-to-the-desktop-windows-player</link>
        <pubDate>Wed, 23 May 2012 08:32:44 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>SatheeshJM</dc:creator>
        <guid isPermaLink="false">1025@/discussions</guid>
        <description><![CDATA[OK! This is a step-by-step tutorial to deploy your C++ plugins to the desktop player.
Having 0 experience in developing for Windows, I almost went insane trying to build dll files.  I hope Someone finds this useful.

1. <b>Install Visual C++</b>
     Almost all the tutorials I found recommended using Visual C++ to build dlls. Maybe there are other ways, but I used Visual C++ 2010 Express Edition. 
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express

2.<b> Install Lua</b>
     Lua installation is not needed(I think) if you can add your C++ header files into the project yourself.  But I find this method a hell of a lot easier. I used Lua for Windows.
http://code.google.com/p/luaforwindows/downloads/detail?name=LuaForWindows_v5.1.4-45.exe&amp;can=2&amp;q=

3. <b>Add Gideros Header Files to Lua .</b>
Again this is not compulsory. Just makes things easier
         &gt; Download the sample BitOp Library from this link http://giderosmobile.com/forum/uploads/FileUpload/a0/29cdedc9a3ecc63ba1608c9a88992b.zip
         &gt; Extract the rar file to a folder
         &gt; Inside the extracted folder, navigate to BitOp/jni/   folder
         &gt; Copy gexport.lua, gfile.lua, gideros.lua, gplugin.lua, gproxy.lua  and greferenced.lua
         &gt; Go to the Lua installation folder (Mine was C:\Program Files\Lua\5.1/)
         &gt; Paste the copied files into the include folder (C:\Program Files\Lua\5.1\include)

4.<b>Create a New Dll Project in Visual C++ 2010 Express Edition</b>
         &gt;  Open Visual C++ 2010 Express Edition
         &gt;  Choose  FILE --&gt; NEW --&gt; PROJECT
         &gt;  In the New Project window, select WIN32 --&gt; WIN32 CONSOLE APPLICATION.  Enter a name for the project and also a name for the solution.   Click OK
         &gt;  A Win32 Application Wizard opens. Click Next.
         &gt;  Choose APPLICATION TYPE as DLL and select EMPTY PROJECT.  Click FINISH.
         &gt;  A Project is created


5.<b>Add plugin code in C++ </b>
         &gt;  Right Click on SOURCE FILES --&gt; ADD --&gt; NEW ITEM
         &gt;  In the window that opens, select C++ FILE, enter a name for the file and click OK
         &gt;  A blank C++ document is added.  Add your code there.
         &gt;  Let us use the sample plugin code found in https://docs.google.com/document/pub?id=149g_P1YlE4_6v_hHbFx3YAaYpdU0HoM70XJSLTE38ww#h.fv5ug2ke945w
Copy and the paste the code in the C++ file.
<pre xml:lang="lua">
#include "gideros.h"
#include "lua.h"
#include "lauxlib.h"
static int addTwoIntegers(lua_State *L)
{
        //retrieve the two integers from the stack
        int firstInteger = lua_tointeger(L, -1);
        int secondInteger = lua_tointeger(L, -2);
        int result = firstInteger + secondInteger;
   
        //place the result on the stack
        lua_pushinteger(L, result);
   
        //one item off the top of the stack, the result, is returned
        return 1;
}
static int loader(lua_State *L)
{
        //This is a list of functions that can be called from Lua
    const luaL_Reg functionlist[] = {
            {"addTwoIntegers", addTwoIntegers},
            {NULL, NULL},
      };
            luaL_register(L, "myFirstPlugin", functionlist);
   
    //return the pointer to the plugin
    return 1;
}
static void g_initializePlugin(lua_State* L)
{
    lua_getglobal(L, "package");
    lua_getfield(L, -1, "preload");
   
    lua_pushcfunction(L, loader);
    lua_setfield(L, -2, "myFirst");
   
    lua_pop(L, 2);    
}
static void g_deinitializePlugin(lua_State *L)
{   }
REGISTER_PLUGIN("myFirstPlugin", "1.0")
</pre>



6. <b>Add Lua librarites to the project.</b> The following are the steps. 
        &gt;  Go to Lua Installation Directory
        &gt;  Navigate to /lib/ folder   ( in my system C:\Program Files\Lua\5.1\lib)
        &gt;  Copy the files Lua5.1.dll and Lua5.1.lib
        &gt;  Navigate to your project directory and paste the copied files there. (make sure you paste the files in the correct directory. If the .cpp file which you created is in there, then that is your project directory)


7. <b>Add external dependencies and incude directory to the project</b>
       &gt;  Right Click on Project and select Properties. 
       &gt;  Select Configuration Options --&gt; VC++ Directories. Add the following path in INCLUDE DIRECTORIES
[Lua Installation Directory]\include    ( in my case C:\Program Files\Lua\5.1\include)
       &gt;  Select Configuration Properties --&gt; Linker --&gt; Input. Add "lua5.1.lib" (without quotes) to Additional Dependencies
 

8.<b> Build the project</b>
       &gt;  Right Click on the Created C++ file and select BUILD . See if the C++ file comiles without errors.
       &gt;  Right Click on the Project and click BUILD. If everything goes well, you will see the message 
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
       &gt; The path of the new dll file will also be displayed along with the above message. Go to the path and Copy the dll file. 


9. <b>Include the created dll file</b>
       &gt; Go to Gideros Installation Directory
       &gt; Paste the copied dll file (the one copied in Step 8) into the Plugins directory(in my case C:\Program Files\Gideros\Plugins)
     

10. <b>Call the plugin from Gideros Desktop player</b>  
       &gt; Open Gideros and create a new Project. Create a main.lua
       &gt; In the main.lua include the following code
<pre xml:lang="lua">
require "myFirst"

local result = myFirstPlugin.addTwoIntegers(14, 48)
print("\n\nSample 1 - Result of addTwoIntegers:", result, "\n\n")
</pre>
        &gt; if <i><b>Sample 1 - Result of addTwoIntegers:	62	</b></i> is printed in the console, then the plugin has been successfully inported and called from the desktop player. 



Thats it! Its quite a tedious process if you're doing this for the first time.   And I have explained more in detail than necessary so bear with me.  if you encounter any difficulties, please comment below 

Cheers!]]>
        </description>
    </item>
    <item>
        <title>How to implement a simple last in first out (LIFO) stack in Lua</title>
        <link>https://forum.giderosmobile.com/discussion/6658/how-to-implement-a-simple-last-in-first-out-lifo-stack-in-lua</link>
        <pubDate>Sat, 03 Sep 2016 04:27:38 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>simwhi</dc:creator>
        <guid isPermaLink="false">6658@/discussions</guid>
        <description><![CDATA[Hi all,

I've been researching and tinkering around with data structures and algorithms on and off for some time so I thought I would write a little tutorial on creating a simple stack.   Let me know if you think of any suggestions to improve it.  I hope you enjoy it.

<pre xml:lang="lua">
--[[
  stack.lua

  This Lua class implementation of a stack data structure was based on Mário Kašuba's function 
  in the book, Lua Game Development Cookbook (2015)

]]

Stack = Core.class()

function Stack:init(list)

  if not list then
    -- create an empty stack
    self.stack = {}
  else
    -- initialise the stack
    self.stack = list
  end
end

function Stack:push(item)
  -- put an item on the stack
  self.stack[#self.stack+1] = item
end

function Stack:pop()
  -- make sure there's something to pop off the stack
  if #self.stack &gt; 0 then
    -- remove item (pop) from stack and return item
    return table.remove(self.stack, #self.stack)
  end
end

function Stack:iterator()
  -- wrap the pop method in a function
  return function()
    -- call pop to iterate through all items on a stack
    return self:pop()
  end
end
</pre>

Here is how to use it:

<pre xml:lang="lua">
  -- main.lua

  local stack = Stack.new({"one","two", "three", "four", "five"})

  stack:push("six")
  stack:push("seven")
  print ("Remove an item from the stack: "..stack:pop())

  for item in stack:iterator() do
    print("Item: ".. item)
  end
</pre>

I think this implementation is self explanatory, but if you need any further information I can provide a step by step guide.
]]>
        </description>
    </item>
    <item>
        <title>2016.08: TextField improvements</title>
        <link>https://forum.giderosmobile.com/discussion/6623/2016-08-textfield-improvements</link>
        <pubDate>Wed, 17 Aug 2016 17:25:05 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>n1cke</dc:creator>
        <guid isPermaLink="false">6623@/discussions</guid>
        <description><![CDATA[TextField now has new optional 'sample' parameter in it's constructor:
<pre xml:lang="lua">TextField.new(font, text, sample)</pre>
where `sample` is a string to set Y position and line height of a text.
Sample parameter is very useful to vertically align texts. When sample is defined Textfield gets it's highest char Y as a start line to align every char from `text`:
<pre xml:lang="lua">
TextField.new(font, "my world", "l")
TextField.new(font, "my world", "m")
TextField.new(font, "my world")
</pre>
<img src="http://giderosmobile.com/forum/uploads/FileUpload/d4/30cf05b231667b506c70e71e5e47c1.png" alt="image" />
You can also use new method `getLineHeight()` to get sample height and make your own multiline text. For this you need to use same `sample` parameter for each text field and shift their Ys by line height. It is different from `getHeight()` method because last one uses `text` to measure height instead of `sample`. On that pic line height is shown with red boxes.
You can get `sample` of each textfield with `getSample()` method. 
And `setFont(font)` method is self-descriptive:) It changes a font of the textfield on-the-fly, so no need to create new textfields anymore for that.

So, in short, TextField has 4 new methods:
<pre xml:lang="lua">setFont(font) -- font should be either bitmap or true type font
setSample(sample) -- sample should be a string
getSample() -- returns sample string
getLineHeight() -- returns height of the sample as a number</pre>
]]>
        </description>
    </item>
    <item>
        <title>[TUTO] Video tutorial - How to add Admob plugin to your app</title>
        <link>https://forum.giderosmobile.com/discussion/5801/tuto-video-tutorial-how-to-add-admob-plugin-to-your-app</link>
        <pubDate>Tue, 23 Jun 2015 09:44:24 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>jeromegsq</dc:creator>
        <guid isPermaLink="false">5801@/discussions</guid>
        <description><![CDATA[Hello, 

I made a little tutorial to show everybody how to add ads to their application. 
I made this because the first time I wanted to add a plugin, I had a lot of bugs and problems

https://www.youtube.com/watch?v=3OcVwYhBWCI

I hope that will help lot of people :)

]]>
        </description>
    </item>
    <item>
        <title>[TUTO] Video tutorial - How to add Google Services to your app</title>
        <link>https://forum.giderosmobile.com/discussion/5806/tuto-video-tutorial-how-to-add-google-services-to-your-app</link>
        <pubDate>Wed, 24 Jun 2015 07:25:25 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>jeromegsq</dc:creator>
        <guid isPermaLink="false">5806@/discussions</guid>
        <description><![CDATA[Hello,
Like the other one, this is a second tutorial to add Google Services like leaderboard and achievements. :)
Don't forget to sign your apk before testing.


Admob : <a href="">http://giderosmobile.com/forum/discussion/5801/tuto-video-tutorial-how-to-add-admob-plugin-to-your-app</a>

https://www.youtube.com/watch?v=UkDKtYswmyQ
]]>
        </description>
    </item>
    <item>
        <title>Quick and easy starfield...</title>
        <link>https://forum.giderosmobile.com/discussion/6502/quick-and-easy-starfield</link>
        <pubDate>Sun, 19 Jun 2016 13:05:12 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>SinisterSoft</dc:creator>
        <guid isPermaLink="false">6502@/discussions</guid>
        <description><![CDATA[Using the new particles system...

<pre xml:lang="lua">w=application:getContentWidth()
h=application:getContentHeight()
application:setBackgroundColor(0)

stars=Particles.new()
stars:setPosition(w/2,h/2)
stage:addChild(stars)

function gameLoop(e)
	stars:addParticles({{x=0,y=0,size=5,ttl=200,speedX=math.random()-0.5,speedY=math.random()-0.5,decay=1.04}})
end

stage:addEventListener(Event.ENTER_FRAME,gameLoop)
</pre>

http://giderosmobile.com/examples#Graphics/ParticlesStars

Makes:
]]>
        </description>
    </item>
    <item>
        <title>Increasing performance with @def macro</title>
        <link>https://forum.giderosmobile.com/discussion/6488/increasing-performance-with-def-macro</link>
        <pubDate>Fri, 10 Jun 2016 12:07:55 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>n1cke</dc:creator>
        <guid isPermaLink="false">6488@/discussions</guid>
        <description><![CDATA[Gideros Studio has powerful built-in feature: Lua code preprocessing with macros which is based on great work of Steve Donovan: https://github.com/stevedonovan/LuaMacro
You can use built-in macros or write your own. In this tutorial I will show you how to use built-in '@def' macro.

NOTE: To enable preprocessing you need to turn on 'Macro Support' in Settings of Gideros Studio first.

@def macro has two syntax forms:
<pre xml:lang="lua">@def name body --&gt; oneline
@def (name --&gt; multiline
  body
)</pre>

Let's start with simple example:
<pre xml:lang="lua">@def HELLO "Hello, World!"
print(HELLO) --&gt; Hello, World</pre>
We are defined a simple constant. Why constants are good? Because they have no performance overhead as variables have and they also don't occupy valuable variable space.

More complex example:
<pre xml:lang="lua">@def CUBE(x) ((x)*(x)*(x))
local n = 5
print(CUBE(n)) --&gt; 125</pre>
Instead of 'function CUBE(x) return x * x * x end' (which is expensive in this case) that macro-function will replace all xs with any given expression i.e. will be unrolled to 'n * n * n'.

Unlike C LuaMacros are lexically scoped and their expansion controlled by Lua itself:
<pre xml:lang="lua">@def x 1
do
  @def x 2
  print(x) --&gt; 2
end
print(x) --&gt; 1</pre>

Another macro-function example:
<pre xml:lang="lua">@def (complain(msg,n)
  for i = 1,n do
    print msg
  end
)
complain("Hello!", 5) --&gt; print "Hello" 5 times</pre>

As you can see @def macro is well suited to inline optimized Lua code. It's also well known to programmers because of C 'define' directive which is frequently used.

You can find other macros in 'Gideros/Tools/luamacro/macro/' folder and if you want to write new macro you must put it here. To require them in your code use @require:
<pre xml:lang="lua">@require "do"
y = 0
@do(i, 1, 10, y = y + 1)
print(y)</pre>]]>
        </description>
    </item>
    <item>
        <title>Tutorial and Source Code for Simple Box2D Game</title>
        <link>https://forum.giderosmobile.com/discussion/6434/tutorial-and-source-code-for-simple-box2d-game</link>
        <pubDate>Thu, 05 May 2016 18:11:31 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>hotbuttered</dc:creator>
        <guid isPermaLink="false">6434@/discussions</guid>
        <description><![CDATA[I've posted a short tutorial explaining some of the code for a demo game I wrote called GiBricks:
http://hotbutteredgames.tumblr.com/post/143878823915/gideros-tutorial-a-simple-box2d-game-gideros-is-a

The game is a simple variation on Breakout. Full source code is also available:
https://github.com/hotbuttered/GiBricks

Feedback is welcome. Thanks!]]>
        </description>
    </item>
    <item>
        <title>Tutorial: Making mobile game with Gideros for newbie - Part 1</title>
        <link>https://forum.giderosmobile.com/discussion/3229/tutorial-making-mobile-game-with-gideros-for-newbie-part-1</link>
        <pubDate>Mon, 13 May 2013 13:05:31 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator></dc:creator>
        <guid isPermaLink="false">3229@/discussions</guid>
        <description><![CDATA[Hi guys, this is the series of tutorial <a rel="nofollow" href="http://vietgamedev.net/blog/212/l%C3%A0m-game-mobile-v%E1%BB%9Bi-gideros-studio-part-1/">I wrote in Vietnamese long time ago</a>. And now, I decided to translate it into English and share here.

Before we get started, I want to show you the video of the final product of this tutorial. It's a simple game like this:
http://www.youtube.com/watch?v=Qn4DhEOrWKs

We are at the Gideros Forum so I don't think I need to tell you what is Gideros? Can we eat it? or blah blah blah.
And for anyone who cares about pricing, see this link: http://www.giderosmobile.com/pricing

<h2>What do you need to have to use Gideros?</h2>
<b>For Android developers, you need:</b>
- A computer (PC or Mac)
- Android SDK and JDK installed
- Eclipse or any IDE you want to build for Android
- Google Play Developer account (only 25$)

<b>For iOS developers, you need:</b>
- A Mac
- Xcode + iPhone SDK
- Apple Developer account (99$/year)

<h2>Getting started with Gideros Studio</h2>

<b>The IDE</b>
After download and install, start the Gideros Studio and you will see the Gideros IDE like this
<img src="https://dl.dropboxusercontent.com/u/6934517/Tutorials/gideros/bai2/giaodienEng.png" width="500" alt="image" />
You can open and run some example projects to see what you can do with Gideros.

<b>Create new project</b>
To create new project, click Create New Project, enter project name and click OK


<b>Build and run in Simulator</b>
You need to start the Gideros Player by click on the gamepad icon in toolbar
<img src="https://dl.dropbox.com/u/6934517/Tutorials/gideros/bai2/giderosPlayerIcon.png" alt="image" />
After Gideros Player started, the Play button will be enabled and you can click it to run
<img src="https://dl.dropbox.com/u/6934517/Tutorials/gideros/bai2/giderosPlayer.png" width="500" alt="image" />

<b>Using the Gideros Player</b>
<img src="https://dl.dropbox.com/u/6934517/Tutorials/gideros/bai2/giderosPlayer2.png" alt="image" />
One thing you need to know in Gideros Player is the Hardware menu. 
- Rotate Left/Right: Rotate the simulator to left or right
- Orientation: switch between Landscape and Portrait mode
- Resolution: change screen resolution (to test your game on many display resolution)
- Frame Rate: setting the simulator's frame rates
And in the View menu, there is a Always On Top option to bring your simulator on top of all other applications.

<b>Build and run on real device (iPhone, iPad, Android phones,...)</b>
Unlike Unity3D or some other engines, Gideros cannot export directly to APK and IPA files, you have to build it manually.
Go to File -&gt; Export Project
Choose your platform, enter some information then click OK
After exporting, you will get the Xcode Project (for iOS) or Android project (for Android) and you will have to build them by yourself.

You can install mobile version of Gideros Player to test your game directly on device (you also need to build the iOS version for yourself)

In the next post, we will learn some basic Lua and take a look at Gideros API.]]>
        </description>
    </item>
    <item>
        <title>In app purchases and Ads</title>
        <link>https://forum.giderosmobile.com/discussion/6370/in-app-purchases-and-ads</link>
        <pubDate>Thu, 31 Mar 2016 09:27:27 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>travismix1980</dc:creator>
        <guid isPermaLink="false">6370@/discussions</guid>
        <description><![CDATA[I feel like a tard for even asking this but trying to figure out how to create and display ads as well as in app purchases.  I can figure out how to add the plugins and all of that and the ads plugin and I have looked over the documentation for ads in the plugin folder just wondering what to do for ads and in app purchases inside gideros before we get to the android studio/eclipse stuff.  It would be nice to have some step by step stuff on the whole process for ads setup as well as in app purchase stuff.  Corona SDK has these things just wondering why Gideros doesn't as it is a better tool overall just lacking in the tutorials departments.  
I have been through the forums and I can probably with a lot of trial and error get ads to work just really mostly lost when it comes to in app purchases.  And the most promising helpful things when it comes to trying to figure these things out in the forums are links that are broken.]]>
        </description>
    </item>
    <item>
        <title>How to run Android apps in Chrome (ARC Welder)</title>
        <link>https://forum.giderosmobile.com/discussion/6372/how-to-run-android-apps-in-chrome-arc-welder</link>
        <pubDate>Thu, 31 Mar 2016 13:01:47 +0000</pubDate>
        <category>Step by step tutorials</category>
        <dc:creator>yubaro</dc:creator>
        <guid isPermaLink="false">6372@/discussions</guid>
        <description><![CDATA[Hi guys, if someone did not know, iit can be a great help with this extension.

How to run Android apps in Chrome for Mac, Windows, Chrome OS using ARC Welder:

English:
http://9to5google.com/2015/04/01/how-to-use-arc-welder-to-run-a-plethora-of-android-apps-in-chrome/

Español:
http://www.elandroidelibre.com/2015/04/google-arc-welder-aplicaciones-android-en-chrome-pc-mac-o-linux-oficial.html]]>
        </description>
    </item>
   </channel>
</rss>
