Ignition V1.10 now up!

Monkey Forums/Monkey Programming/Ignition V1.10 now up!

Playniax(Posted 2013) [#1]
Hi,

Here is a little update!

Mostly tile engine changes and improvements. Have a look at this Boulder Dash demo:

http://playniax.com/demos/bd/html5/demo.html



Eventually I want to have a complete Boulder Dash engine/template.

Look in the changes.txt to read about the tile engine changes!


- Added centered field to iGuiTextField.
- Added Ghost () method to fix gui states to get stuck bug. So instead of doing ghost = False you can do Ghost (False).
- Reworked and improved tile engine. See an early demo of a boudlerdash game setup in the demo folder.
- Added iLinesCollide () to the collision module.


Also have a look in the templates folder. I have added a game template and cut it into separate files instead of everything in one.

It can be downloaded from our member area:

http://monkey.playniax.com

Or buy Ignition at http://www.playniax.com if you don't own a copy :)

(If you don't see it try reloading the page)

Cheers!


Why0Why(Posted 2013) [#2]
Thanks for the update! I have been going back through the demos since I haven't used Ignition in awhile and I am definitely using it in my next project.


dooz(Posted 2013) [#3]
Yes! I love boulderdash, good job.


Playniax(Posted 2013) [#4]
I almost forgot how much fun these simple games are. And they are 'easy' to make.


Qcat(Posted 2013) [#5]
Nice! enjoying the boulderdash demo. how is the GUI going?


Playniax(Posted 2013) [#6]
So far so good.

The Ignition GUI was initially written for games but for (desktop) applications it needs a more sophisticated system and that takes time to write and test.


CodeGit(Posted 2013) [#7]
Cheers. This engine just gets better. Thanks. :)


Playniax(Posted 2013) [#8]
Thanks!

Btw, today I finally had a good look at the new monkey tool makedocs. It's awsome!

For me now the job to convert the docs but this will make a huge difference!


skape(Posted 2013) [#9]
Awesome! Thanks for the update.

Monkey docs would be a fantastic addition as well.


Tri|Ga|De(Posted 2013) [#10]
I was looking for something like that!
Thanks!

I was trying the Tiled demo but I get an compiler error:

"Identifier 'PUT' not found"


Playniax(Posted 2013) [#11]
Oops! My bad, I forgot to upload it the new version. You can now download the new tiled demo from the member section.

Thanks!


Tri|Ga|De(Posted 2013) [#12]
Thanks!
That did it.


Tri|Ga|De(Posted 2013) [#13]
Is it possible to get a Boulder Dash template that uses Tiled maps?


Playniax(Posted 2013) [#14]
No need really, Ignition supports basic orthogonal functions of tiled.

You can use tiled to create a map yourself using the graphics provided with the demo and load it directly in Ignition if you save it in the format described in the demo source code.

Or did I misunderstand your question?


Tri|Ga|De(Posted 2013) [#15]
I just thought it would be nice with the template supporting Tiled Maps.
I like the template as it is but I would like to use it in a game and use Tiled to make maps.

Its not the graphics from your template I want, but the engine....


Playniax(Posted 2013) [#16]
Ignition supports basic orthogonal functions of tiled so the same template could be used if the map was created in tiled. So you can make levels with tiled and load them in Ignition. If there is a certain game style you need a template for maybe I could help you set it up (if are not asking something out of the ordinairy). I need a good description of the game type for starters. Just send it by email.


Tri|Ga|De(Posted 2013) [#17]
The game type I'm looking for to mu next game is something that look like boulder dash.
Thats why I wondered if it could support Tiled because I like to work with Tiled.


Playniax(Posted 2013) [#18]
It can load the data.

The next couple of weeks I will improve the Boulder Dash template. I am going to add things like the pushing/falling of rocks etc. The idea is to get a full Bouldler Dash engine. Maybe I will be doing the most work for you :)


fsoft(Posted 2013) [#19]
@Playniax

I have problem inserting my registration code for downloading the latest Ignition.
If I insert it using the "-", I am not able to insert all chars (the last one is missing).
If I insert it without the "-", it does not turn on the "Login" button when finished.


rIKmAN(Posted 2013) [#20]
In a side note - is there any way you can make the input box accept pasting of the key?


qwerty(Posted 2013) [#21]
@fsoft

try monkey.playniax.com instead of www.monkey.playniax.com
(I mean try url without www)


Playniax(Posted 2013) [#22]
I should have a go at that again. I need to find a way to read the clipboard from html5.


Why0Why(Posted 2013) [#23]
I second being able to paste :)


skape(Posted 2013) [#24]
On a semi-related note:
I can't get Ignition to play nicely with Monkey v72+ new GLFW graphics mode switching features. Specifically switching to fullscreen. I have tried a lot of different things (including restarting the game/coldstarting the state from the beginning, etc.) But I haven't been able to get this working...

In fact, I haven't been able to use fullscreen modes at all in Ignition. Switching windowed graphics modes works excellently.

(Maybe I'll have to hack around in the Ignition source...)

Anyone else seen this?

Thanks.


Volker(Posted 2013) [#25]
..being able to paste

Yes, pleeease.


Playniax(Posted 2013) [#26]
@unlikely: I will have a look at this but try puting playfield.UpdateVirtual () in the engine OnUpdate ()


semar(Posted 2013) [#27]
Sorry, double post.


semar(Posted 2013) [#28]
@Playniax,
the Boulder Dash demo freezes each time I walk on a second bomb.

Getting the first one works, and an explosion animation is fired. But when I walk on a second bomb, there's no animation more and the game freezes.

Refreshing the page resets the game and the same issue can be repeated.

I'm using Firefox.

Anyway, impressive demo, very smooth !

Regards,
Sergio.


skape(Posted 2013) [#29]
@playniax

Thanks, but that doesn't seem to fix the problem.

There is a several pixel wide bar of semi distorted pixels along the top edge of the screen, but that's it. Interestingly enough, when I take a screenshot, it gives me a perfectly fine looking image, matching the fullscreen graphics mode resolution...

I get the same results when I use fullscreen from the beginning.


@semar

Hmm... works for me in Firefox...


Playniax(Posted 2013) [#30]
@semar: I have tested all demos including the Boulder Dash demo on firefox and I see no problem. Does it work on other browsers on your computer? Try testing our other demos in firefox or test the Boulder Dash demo on another computer with firefox.

@Unlikely: I am not sure what is happening. Can you send me the source? A playfield automatically inherits the size of the native screen resolution when its created so when changing the resolution it should also be updated with UpdateVirtual ().


skape(Posted 2013) [#31]
@Playniax
Arrrg... turns out it was just me being stupid. (Like usual.)

I had hardcoded in the graphics settings for testing purposes. When I switched to my external screen, the resolution mode I had was unsupported... how embarrassing. :|

Thanks for looking into this and sorry that it was me all along!


Tibit(Posted 2013) [#32]
@Playniax - I heard sometime that Ignition should work with the new Doc system. Is this a work in progress or is it something I need to do/build/update to get it working?

Another issue I have,

I can't get input to work with a iGuiButton. The examples work. I have a iSystemGUI working. In my GameState iEngine I added a iGUIButton to playfield, playfield added to the Engine. The button renders, but it won't accept any input (checked them all) nor change image when I click it.

It is as if it isn't updating UpdateInputs. However I tried adding the button without playfield - calling render and update & updateinput myself and I get the same.

I'm not doing anything that I can think of that is out of the ordinary. I based the game on one of the ignition templates even.

I have tested all scenarios I can think of.

Any ideas?


Playniax(Posted 2013) [#33]
For the docs, next release. I am working on it right now.

For the input problem, what version of Igntion are you using?

Maybe you can send me your project?


Tibit(Posted 2013) [#34]
I should be using 1.10

Yeah, I should have sent you the project earlier. Now I have already made my own button for in-game use which I had a need for anyway since I wanted them to "click" on press and not on release to increase responsiveness.

I'm still using iGuiButton for menus and SystemGUI and there it works perfect, problem is only in game. I am using topRender = true , if that could be related?

Looking forward to the updated docs :)


Playniax(Posted 2013) [#35]
Maybe you can still send me your project? ;)


Tibit(Posted 2013) [#36]
ok, I'll quickly try to reintroduce the bug tomorrow and send it to you :)


Playniax(Posted 2013) [#37]
V1.10b is up!

It includes the following bug fixes:

- System gui blocking normal gui objects responding.
- Ignitions fontmachine class not returning the proper height causing iTextfield not to work correctly.

It also includes a preview of the new documentation. You can now use F1 in the IDE.

You need to run makedocs after installation.

Note that the new docs are NOT finished!!!

Download v1.10b at http://monkey.playniax.com

(If you don't see it try reloading the page)


computercoder(Posted 2013) [#38]
Has this been tested with OUYA to see if it works right there? I have no problem paying for a framework :) I don't want to buy it for it if its not compiling against it. I've tried Diddy and fantomEngine, both fail against the CE version of the OUYA target. It *could* be the target too, but it seems unlikely as its actually working for most examples (that I have tried).


Playniax(Posted 2013) [#39]
Hi computercoder,

Can you send me your email adres?

I want to send you something so you can test this for the OUYA target...

contact [at] playniax.com


computercoder(Posted 2013) [#40]
Not a problem. Should be in your inbox :)


Playniax(Posted 2013) [#41]
Check your email :)


computercoder(Posted 2013) [#42]
Got it. Thanks!


computercoder(Posted 2013) [#43]
After playing and tinkering and tinkering and playing and ... well I come to the conclusion that Ignition IS able to compile with both Android (Ouya) Game (beta version) and Ouya Game Community Version, plus the revision of the control mappings I added to get the individual controller feedback, which uses new method definitions instead of the Key Mappings the CE version has.

The bad part is that the controllers do not work EXCEPT for the Touchpad. You can swipe around and tap about and the engine will pick it up. I think building a OuyaGamepad class for Ignition will help with this pain, so my next mission is to see what I can come up with there. Short of anything official that Mark releases, I can at least make something with the CE version of the OUYA target. I believe a hybrid version of my CE edition and the actual CE edition would be most beneficial, as the key differences there are the key mappings. I'll look further into this.

So this is good progress. Ignition has a LOT to offer. I built the demos, and watched each pop up on the OUYA. Pretty neat indeed. :) I have some nice ideas for the controller classes. Well, its about 3:25 am. I am gonna call it a night. I'll pick this back up tomorrow night.


Playniax(Posted 2013) [#44]
@computercoder:

Thanks for testing this!

I did not have time to try it out myself and I am not sure yet how I can help but ask me anything. Maybe I can help you with building that OuyaGamepad class for Ignition.

The reason why Ignition is able to compile is because I avoid native stuff. If it doesn't compile, it probably is a problem with monkey and not Ignition.

That is the theory :)

Goodnight!


computercoder(Posted 2013) [#45]
@Playniax:

Not a problem :) Glad to help out! Hopefully I can write it clean enough to work smoothly within the framework. LOL :)

Both the CE version and the official (beta) one uses the JoyX,Y,Z commands with the JoyHit,JoyDown at least to get the analog controls. You can get the DPad through the use of the KeyHit and KeyDown commands in the CE version. The official (beta) version does the same, but uses different keys. That took me a little bit to figure out how it worked, mainly due to how new Monkey is to me (and how each were written). I came from BlitzMAX so I am somewhat familiar with the syntax, just not Monkey's way :)

I broke it out into new commands instead, similar to what DrT did. Thats where I got the inspiration from. It seemed (at the time) the logical way to go with it. I have since dove further into the OUYA docs, and now realize that I can still go with how the CE version uses the KeyDown/KeyUp events, and still retain the analog granularity. Its actually really slick. The only issue I have with it (in its current state) is that I have no idea which controller is doing what from within my application, and the analog buttons become digital buttons.

From what I can see from the game side is that I know which controls are affected, but not which controller sent them. Perhaps I am missing something with it? That would be great if so. Once all that is sorted out, the OuyaGamepad class will be very straight forward. As it stands, I could wrap it up, but it feels like a single controller even if you are using 4 at the same time.

This is what I learned and where I am at right now. Since I am not at my Mac at home right now, I cannot proceed any further until after work :| (Yeah, I gotta code boring business apps and databases YAY!)

I'm having a blast working on this stuff though =8D


computercoder(Posted 2013) [#46]
I have been hard at work tinkering around with the OUYA and Ignition v1.10. I'm using MonkeyPro v74a beta with the new 'Android (Ouya) Game' target, since this is really the way Ignition should go if Mark does an official release with it.

It is really straight forward. MOST of the time, I can get Ignition to work... Boulder Dash runs very smoothly, as does the Jungle example. I mapped in the OUYA controller for both examples. Its fairly straight forward. I have some constants that you may want to include to the engine itself for making the controls easier to map.

I've gotten the DPad, O-U-Y-A buttons, Left and Right bumper buttons and the touchpad all confirmed and working. I have yet to get the Menu button or the analog sticks and triggers to work with the engine. The best part? I have not needed to make any new classes to accomplish this! :)

This all works with a single controller. The other controllers work too, but the way the target is made and possibly the way the commands are written in Monkey for the Joystick controls, all the controllers control the first player only. :(

As a result, Gravity Zone is incapable of running on OUYA using this target with Ignition due to the multi-player controls. It does however compile and execute on OUYA.

It is coming along nicely... work has me busy so my progress is a bit slow. Hopefully, I'll have a complete working OUYA controller (minus the Menu button, because the target doesn't have anything yet for it - JOY_START and JOY_BACK don't map to it).


Playniax(Posted 2013) [#47]
Great! Are you going to share the code when it is finished? :)


computercoder(Posted 2013) [#48]
Yes! I'll send you the code. You can handle adding it to the examples and distributing with Ignition :)

As it stands right now, I have most of the controller working, and going through seeing what does and doesn't work within Ignition using the target. I'm hoping when Mark releases the official v74, that Ouya game controllers are able to be used independently and all at the same time!

I'd feel more comfortable releasing that code when the official target is ready :)


Playniax(Posted 2013) [#49]
Great!


computercoder(Posted 2013) [#50]
Last night I upgraded to MonkeyPro v75a. I dove pretty deep into fixing up the OUYA CE version to support JoyDown, JoyX, JoyY, and JoyZ plus be able to detect the phantom menu button! I thought that Mark decided to do away with android_ouya, so I had to do something to support the OUYA! Of course, this morning I see Mark IS keeping it, so AWESOME news!

I got OUYA CE working VERY well AND I did it so that the original key code maps for using KeyDown are still available. The only down side is that due to the way OUYA coded the menu button, I could not detect the press without decoupling the the KeyUp event altogether. Instead of the normal onKeyUp and onKeyDown events, I used ONLY the onKeyDown event for the JoyDown commands and treated it as a state. Press it once, and its says its pressed, press it again and it says it no longer is pressed (with a brief pause, otherwise the OUYA will terminate the app!) I figured that was acceptable. I mapped the Left and Right stick buttons to JOY_BACK and JOY_START, but now realize that I could have mapped them to new commands as well. I did make a new one special for the Menu button.

My next task is to support the keys needed for KeyDown in Monkey - Like KEY_JOY0_DOWN, KEY_JOY1_DOWN, KEY_JOY2_DOWN, KEY_JOY3_DOWN, etc. That way when you are using the KEY commands, you can still get at each individual controller :) Someone else was looking for that, I figured it was a simple and easy thing to support. When using them, you have to use my constants instead of what Monkey has. I'm going to start with the Monkey set, and then expand it out. The downside of those is that the analog controls become digital, so you lose precision. It really doesn't matter though, because if you want those controls, you are more than likely looking for digital feedback anyways :)

After I complete these changes to the OUYA CE version, I'll see about getting it put into the repository.

With all that soon to be aside, hopefully I can focus more attention to Ignition with the official Android (Ouya) Game target again. I think we can get Gravity Zone up and running -- OUYA style! :)

The plan is to get both working. It shouldn't make much difference between the targets, so Ignition should be happy with either. I'll do my best to make the mappings compatible between them.


Playniax(Posted 2013) [#51]
Keep on the good work!


Playniax(Posted 2013) [#52]
Ignition for Monkey now comes in 3 license flavors:

Budget - Basically just the framework and support like before.
Deluxe - Trouble shooting and trainng / guidance.
Premium - Trouble shooting and trainng / guidance, customized framework or engine setup and debugging.

Have a look here

If you already purchased the framework you can contact me about a discount on the Deluxe / Premium license or if you need more information about custom work.


Playniax(Posted 2013) [#53]
V1.10c is up!

Fixed some GUI auto positioning and other GUI bugs.

I also managed to convert most of the tutorials to the new docs system.

Read the READ THIS FIRST.TXT file first :)

Note that the new docs are still NOT finished!!! It is just because I needed to do these bug fixes that I have included it for you to play around.

Download v1.10c at http://monkey.playniax.com

(If you don't see it try reloading the page)


rIKmAN(Posted 2013) [#54]
Can you please make the input box accept pasting of the key?


Playniax(Posted 2013) [#55]
Hi,

I am having a look at that. I have a demo working on Internet Explorer but on other browsers this is not that simple because of security issues. There are ways to do it I think but it involves copy paste handlers and divs. Yuk!

But I will be happy on IE alone, it is something :)


Why0Why(Posted 2013) [#56]
I just wanted to say that I have worked with Tony on a level between deluxe/premium on a project and he was great to deal with.

Keep the updates coming!


rIKmAN(Posted 2013) [#57]
Thanks Playniax, I don't mind using IE to download updates as long as I don't have to keep typing the key in by hand :)


Playniax(Posted 2013) [#58]
okay, I will try to add it for all browsers if possible.

But it should already remember the key once entered. This does not work on your computer?


skape(Posted 2013) [#59]
I wouldn't worry about it too much Tony. It's a very small grouping of characters that rarely need entered. I type all day anyway. :)


RENGAC(Posted 2013) [#60]
I have just purchased it and now I'm looking trough the examples and tutorials. This framework looks very good. A question about pixel-perfect collisions: What performance may I expect on Android (or how many objects might I use on a "standard" Android device without damaging FPS ?


computercoder(Posted 2013) [#61]
@RENGAC:
I haven't ventured into the collisions yet, but I have toyed around with a lot of the GUI, Input, Tiled maps and the demos. Most of which I've been working on to use with the OUYA, in particular - multiple controller support!. The framework is very powerful, and adds a lot of nice features ready for you to use at minimal effort on your part. Tony did a great job with this framework and I think you will be very pleased with your purchase :)


Playniax(Posted 2013) [#62]
Thanks guys!

@RENGAC: Hard to say but pixel collision is very expensive and mostly not needed. It also depends on the device since monkey doesn't have hardware support for this and the processor is doing all the work. In Galaxy Protector I use a 8x8 accuracy between the spaceship and the scrolling background. The background is static and just the spaceship and the bullets read directly from a collision layer. I have never needed a 1x1 accuracy so I have not stress tested it.


Neuro(Posted 2013) [#63]
How's the support for Ouya controllers coming a long?


computercoder(Posted 2013) [#64]
If you are using MonkeyPro v75c or d, you can use at least a single controller now with Ignition! I'll get the mappings out to Playniax so he can distribute it. Multiple controller support will come. :)

I'll get onto that tonight and get it over to him this weekend.


garyk1968(Posted 2013) [#65]
Yep I purchased it too, some really good demos and as mentioned does add some nice features to monkey.


Neuro(Posted 2013) [#66]
I just loaded up the Boulder Dash demo on Ouya. Control don't work, or they haven't been mapped out to Ignition yet?


Playniax(Posted 2013) [#67]
@computercoder and garyk1968: Thanks!

The boulderdash demo does not use any controllers simply because I have not put it in the demo. It just reads the keyboard arrow keys and the virtual keyboard. The boulderdash demo will be expanded in the future.


computercoder(Posted 2013) [#68]
I have modified the Boulder Dash demo to allow controllers in the OUYA and to keep it working for the other platforms as it originally did.

I'll wrap this code up and send the demo to Playniax in a few moments :)

@Playniax: Check for an email soon from me :)


computercoder(Posted 2013) [#69]
The Boulder Dash demo DOES work on OUYA using the Touchpad and the Virtual Joy Pad that displays on the screen. You can move around by moving the mouse over the direction arrow and tapping the touch pad. So it does work, just not a very convenient way; nor proper way if you have a full controller like OUYA has :P


computercoder(Posted 2013) [#70]
Ok. So I couldn't resist seeing Jungle work on the OUYA either so I updated it as well :) I submitted both Boulder Dash and Jungle to Playniax. Both demos still work on all other previously supported targets.

Hope to see them updated in Ignition soon for you all to enjoy :)

Take care!


Playniax(Posted 2013) [#71]
Thank you! I will have a look at it...


Playniax(Posted 2013) [#72]
You can download the OUYA demos by clicking here

Thanks computercoder for this!

I will give them a better spot soon when I have more time.

I am working on some exciting stuff myself :)

Next update will have a small gui positioning editor and gui scripter meaning you can setup a gui in a text file, load this file in the editor, edit it and save it.

For the layer objecs I am also working on an editor but this will not make it for next release yet. Scripting on the other hand is already possible :)


computercoder(Posted 2013) [#73]
Very cool Playniax! You're welcome for the code :) I hope it helps everyone that's interested.

Just so anyone knows that looks at the demos: I only added controller support, as there isn't anything with IAP. You'd need to look at both OUYA documentation and BRL's official Android (Ouya) Game target files to determine how to work that. I haven't really even looked over those much yet myself.

Hopefully I'll get some more code time this weekend somewhere. Busy getting repairs around the house done has kept me away from doing anything fun :P

Looking forward to seeing the updates tho! Keep up the great work!

EDIT: It just occurred to me that I should also make note that in order to use these demos, you will need MonkeyPro v75d (stable) or later. Some of the mappings will not work in versions before it. Three new constants were added to Monkey - JOY_LSB, JOY_RSB, and JOY_MENU. JOY_MENU was added specifically for the OUYA Menu button. Additionally, full multiple controller support is now there too. So you can play four different players in the same game at the same time on the same console :)


rIKmAN(Posted 2013) [#74]
Playniax,

I have spent the last few hours pulling my hair out trying to pin down a memory leak in my game in which I am using the iEngine class from Ignition to function as a state manager.

After removing pretty much all off my game code, it was still happening and I basically boiled it down to a barebones program which used iEngine.
When I run the following code on iOS, and monitor it using Instruments in XCode, the memory usage goes up steadily - although no leaks are reported.

The memory usage is increasing by around 1mb every minute.

Here is the code I am using to compile, and monitor with Instruments.
Strict

Import mojo
Import playniax.ignition.framework.engine

'-------------------
Function Main:Int()
    New myApp
    Return True
End
'-----------------------------------
Class myApp Extends App
		
    Field game:gameClass
	
    Method OnCreate:Int()
        game = New gameClass
        iStart(game,60)
	
	Return True
    End Method
	
    Method OnUpdate:Int()
        iUpdate()
	Return True
    End Method
	
    Method OnRender:Int()
        iRender()
	Return True
    End Method
End
'-----------------------------------
Class gameClass Extends iEngine
		
    Method OnCreate:Int()
        Return True
    End Method
	
    Method OnUpdate:Int()
        Return True
    End Method
	
    Method OnRender:Int()
        DrawText "Debug Text", 0, 0
		
        Return True
    End Method
End

...and here is a screenshot of the memory allocation as shown in Instruments in XCode, you can see the steady increase in usage.



I'm using Ignition 1.10c and Monkey v74a.

Any ideas what it might be that is causing this, and is it possible to get a fix? :)

Of course this may be due to the conversion monkey does to native iOS code, but I thought that would have come up before as a bug/issue if it was unrelated to Ignition and purely a Monkey issue.


Playniax(Posted 2013) [#75]
Hi, after running some tests it looks like it's not Ignition but this happens with all Monkey apps. In the beginning the memory usage goes up. The bigger your app (meaning also how much objects are created) the faster memory usage goes up but is stabilizes after some time. It also depends on the target how memory is handled. I’m not sure how this works but I can imagine the GC and memory allocation calculation on the targets work differently. I run Galaxy Protector (and this is a huge project) without a problem and some other Ignition stuff I am working on. Maybe you can start an Ignition or normal Monkey app and wait and see what happens after 15 minutes or so if it stabilizes? On some apps I found it can take a few minutes before it stabilizes and on some just seconds. That is my experience but I will do more tests to be sure. Maybe Mark can shine a light on this if he is reading :)?


rIKmAN(Posted 2013) [#76]
Hi Tony,

First let me apologise for my mistake :)

I did test a vanilla Monkey program (exactly the same as above without iEngine) and it literally started at ~5mb and stayed constant at that for the next 10mins.

With the iEngine test (above) it continued to steadily climb, but did indeed stabilise at ~21mb after around 20mins once I tested again tonight for a longer period.

I only tested for around 10-12mins originally as I didn't think it would take so long as I only had the vanilla Monkey test as a benchmark - which was instant.

As an (unrelated) side note - why does it take so long?
I don't have to wait 20mins before I can access the objects, so I'm a little stumped with this - although I am admittedly new to iOS debugging.

Now my question is - is there any way to get down the memory usage when using iEngine, as the difference between 5mb and 21mb for what is essentially an empty program loop is quite big.

I notice engine.monkey imports a lot of other things - are these all required when just using the iEngine class as a simple state machine?
Is it even these that are causing the 16mb of extra memory usage?

Thanks for the quick response :)


Playniax(Posted 2013) [#77]
The targets seem to handle the memory count differently. It looks like the XNA target is much faster in collecting memory usage then for example GLFW. I don’t know exactly how this works but the objects are already created and the memory allocation information is gathered afterwards. I have run for example bouncy aliens and it takes about 14 MB on GLFW and so does an Ignition program with 2 engines setup . The Ignition modules are setup in a way that they depend on others as little as possible except for the engine module. The engine modules uses the other ones. The engine module can still be considered light weight as you consider what’s in there. On my to do list there is the task of making the engine module more modular by using more preprocessor variables but for now this has to do.


Redspark(Posted 2013) [#78]
I just bought Ignition and downloaded the framework today. I think I followed the instructions to install properly but when I run makedocs_macos, it is running a very long time (hours) and not completing. I'm on OSX Mavericks and activity monitor says that it is consuming 100% of the CPU. So I know it is running.

What did I do wrong? Thanks.


Playniax(Posted 2013) [#79]
Ignition for monkey v1.10d is up.

This should fix most of the makedocs problems.

Some of the new stuff for upcoming release v1.11 is in too.

Changes / new stuff:

- Ignition now has a scripting engine!!!

The scripting engine can create objects loaded from a text file. Playfields, layers, layer objects and gui objects are supported! Very useful to create level data or theme files.

And I have uploaded an early version of the new docs. More work has to be done on this...

http://docs.playniax.com

Thank you Mark for giving me permission to upload the monkey docs too!

- Sounds now come in wav, mp3 and .ogg (expanded the sound library with .ogg file format)

- Added iLoadFloatArray to arrays.monkey
- Added iLoadIntArray to arrays.monkey
- Added iLoadStringArray to arrays.monkey

- Added iBitmapFont support for the content manager.

- Added iLayerText object.

- Moved module 'playniax.ignition.framework.blastwave' to 'playniax.ignition.fx.blastwave'
- Moved module 'playniax.ignition.framework.explosion' to 'playniax.ignition.fx.explosion'
- Moved module 'playniax.ignition.framework.smoke' to 'playniax.ignition.fx.smoke'
- Moved module 'playniax.ignition.framework.trail' to 'playniax.ignition.fx.trail'


DarkyCrystal(Posted 2013) [#80]
Hi :) thank's, just a question can we load map created with Tiled with your framework ? I know there is tile editor but I like Tiled, is there a way to load them with your map class ?

Thank's.


Playniax(Posted 2013) [#81]
Ignition can load basic orthogonal support for Tiled.


DarkyCrystal(Posted 2013) [#82]
with the same method we load tile map made with your tile editor ?


computercoder(Posted 2013) [#83]
There is a separate demo thats for Tiled you can download from his site. Login and look for the Demos :)

Its a fairly straight forward demo.


DarkyCrystal(Posted 2013) [#84]
ok thank's I downloaded editors and co a while may be I didn't see it. I will get an eye on it :) thx.


Playniax(Posted 2013) [#85]
Yes, there is an experimental tiled loader for Ignition.

It converts the Tiled data to the Ignition tile engine.

Like computercoder said, you can download it from the member section.


Redspark(Posted 2013) [#86]
I was just looking for Tiled support in this framework. Awesome! Thanks.


Playniax(Posted 2013) [#87]
Ignition comes with more then 200 examples mostly small samples but I thought it would be nice to add a demo page to the documentation.

The source codes of the demos are also visible.

http://docs.playniax.com/Ignition_Ignition%20demo%20page.html

And I was bored with the daily routine so I decided to port the Defenstar screen mode selector:

http://docs.playniax.com/data/Ignition%20demo%20page/sms/screenmodeselector.build/html5/MonkeyGame.html

No point for the driver or resolution option in Monkey games but it makes a nice gui example.


DarkyCrystal(Posted 2013) [#88]
I think it's very important to have to doc online (instead of compiling the doc in monkey). Just because, I like to see the doc of monkey as it is. It's more easier to see differences and addition to the langage.

May be you could make a link to the doc on your framework webpage ?

Thank you to have make this online doc ! FE has an online doc too it's pretty cool.


Playniax(Posted 2013) [#89]
Yes, online docs are good only this way you can not use HELP (F1) in TED.

There is a problem with HELP (F1) in TED anyway.

When pressing F1 for HELP monkey cannot differentiate between 2 functions with the same name in different classes or I am missing something .

I am still not finished with converting all the docs but I am happy that monkey now has an official doc maker and with the result so far.

Without this documentation system writing and maintaining docs was very frustrating and I think good documentation is the key to success so I will put more and more effort in this.


DarkyCrystal(Posted 2013) [#90]
That's right when 2 functions with the same name in different classes we have a problem in Ted and F1 because it's ambigous and Ted choose one of them.

I prefer have separate docs like online docs :)


DiabloV(Posted 2013) [#91]
someone he already bought (and especially understand) this framework?
because I find it interesting but I would like it to be supported over time.

(and yes, how framworrk in BlitzMax emerged and trimmed ... flow3d have been subscribers for example, cost me Euros and after, hop, nothing!)


Why0Why(Posted 2013) [#92]
Many users have bought the framework. Tony is great to work with and I feel confident that it will continue to be supported.


DiabloV(Posted 2013) [#93]
I have got it :)

but, i dont find the Content manager (descripted in the front page of playnax)

??


DarkyCrystal(Posted 2013) [#94]
Diablo, the content manager is a class of the framework.

The content manager allows you to create 'groups' of data.
Data can be images, sounds and strings.

The content manager makes sure the data is only loaded once in memory.

If data is no longer needed you can flush the data from memory by simply using the flush command.

See more here : http://docs.playniax.com/Modules_playniax.ignition.framework.contentmanager.html


DiabloV(Posted 2013) [#95]
ok thanks, i think it's a external editor of gfx...


Playniax(Posted 2013) [#96]
Ignition was released on 10-08-2012 and we sold a few hundred copies of it. We plan to release an update every 1 or 2 months. We use Ignition for our own projects and Ignition profits from that. We have 3 games/prototypes in the works, a very nice looking UI, a UI positioning editor and a level editor (uses layer objects). Ignition comes with more than 200 sample files and I started to write some tutorials for Ignition. Like I said before, the lack of a proper doc system for monkey was very frustrating for me but now that there is a proper doc system I can improve and expand the docs and tutorials (almost) the way I want. The docs you see online are ok but not finished so I would classify them as a work in progress. Anyway, a big thank you to everybody who bought the framework. We will do our best to support the community! If you have a question, just send me an email.

@DiabloV and DarkyCrystal: The content manager now handles bitmap fonts too. At the moment I am looking if I can have the content manager to discard images and sound and reload them on the fly when needed. I need this for our next game.

I also want to do something about the login at our member page. Copy/paste doesn't work that well with all browsers so I thought it would be nice if people could choose their own username and password but it's to earl to make promisses :)


DiabloV(Posted 2013) [#97]
thanks !


DiabloV(Posted 2013) [#98]
i try the exemple 1, work great on htmlm5, but don't work on glfw ?

#GLFW_USE_MINGW=True
	' Special effects (normal use).

	Import playniax.ignition.framework.engine

	' Import the special effects:

	Import playniax.ignition.framework.blastwave
	Import playniax.ignition.framework.explosion
	Import playniax.ignition.framework.smoke
	Import playniax.ignition.framework.trail

	Global gameState:Game

	Function Main ()
		New MyApp
	End Function

	Class MyApp Extends App

		Method OnCreate ()
	
			gameState = New Game
			
			iStart (60)

		End Method

		Method OnRender ()
			iRender ()
		End Method

		Method OnUpdate ()
			iUpdate ()
		End Method

	End Class

	Class Game Extends iEngine

		Field playfield:iPlayfield
		Field layer:iLayer

		Method DebugRender ()

			DrawText "Press 1 for Explosion", 0, 0
			DrawText "Press 2 for Blastwave", 0, 16
			DrawText "Press 3 for Smoke", 0, 32
	
		End Method

		Method OnCreate ()

			' Load stuff:
		
			iExplosion.Load ()
			iBlastWave.Load ()
			iSmoke.Load ()

			playfield = New iPlayfield
			playfield.AddLast ()
		
			layer = New iLayer
			layer.AddLast (playfield)
	
		End Method
	
		Method OnUpdate ()
	
			' Some monkey code and functions to call the special effects:
	
			If iKeyHit (KEY_1) iExplosion.Create ( MouseX (), MouseY () )
			If iKeyHit (KEY_2) iBlastWave.Create ( MouseX (), MouseY () )
			If iKeyHit (KEY_3) iSmoke.Create ( MouseX (), MouseY () )

			' (FX are created at run time)

		End Method

	End Class

compiler :

"D:/DEV/MonkeyPro/bin/transcc_winnt" -target=Glfw_Game -config=Release -run "D:/DEV/MonkeyPro/bananas/playniax/ignition/05_advanced_stuff/05_layer_fx/example_1.monkey"
TRANS monkey compiler V1.56
Parsing...
Semanting...
Translating...
Building...
g++ -O3 -DNDEBUG -I../glfw/include -I../glfw/lib -I../glfw/lib/win32 -I../openal/include -I../stb -c -o ../main.o ../main.cpp
In member function 'int c_iLayerSprite::_ZN14c_iLayerSprite8p_UpdateEv.part.20()',
inlined from 'virtual int c_iLayerSprite::p_Update()' at ../main.cpp:7651:5:
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
../main.cpp: In member function 'virtual FILE* BBGame::OpenFile(String, String)':
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
../main.cpp: In member function 'int c_iContentManager::p_SystemInit()':
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
../main.cpp: In constructor 'c_iContentObject::c_iContentObject()':
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
../main.cpp:1184:16: warning: attempt to free a non-heap object 'String::nullRep' [-Wfree-nonheap-object]
g++ -Wl,--subsystem,windows -L../openal/libs/Win32 -o Release/MonkeyGame ../glfw/lib/enable.o ../glfw/lib/fullscreen.o ../glfw/lib/glext.o ../glfw/lib/image.o ../glfw/lib/init.o ../glfw/lib/input.o ../glfw/lib/joystick.o ../glfw/lib/stream.o ../glfw/lib/tga.o ../glfw/lib/thread.o ../glfw/lib/time.o ../glfw/lib/window.o ../glfw/lib/win32/win32_dllmain.o ../glfw/lib/win32/win32_enable.o ../glfw/lib/win32/win32_fullscreen.o ../glfw/lib/win32/win32_glext.o ../glfw/lib/win32/win32_init.o ../glfw/lib/win32/win32_joystick.o ../glfw/lib/win32/win32_thread.o ../glfw/lib/win32/win32_time.o ../glfw/lib/win32/win32_window.o ../stb/stb_image.o ../stb/stb_vorbis.o ../main.o -lopengl32 -lOpenAL32 -lws2_32


DiabloV(Posted 2013) [#99]
another question.

Sorry, but do not understand or I findthis tools :

Ignition tools

Tile editor - Editor for the Ignition Tile Engine screenshot
Pixel collision editor - Creates a collision mask of a bitmap image
GUI grid or slice editor - Creates data for resizeable gui images
TTF font converter - Converts TTF files to the Ignition font format screenshot


descripted in the help of ignition.


DarkyCrystal(Posted 2013) [#100]
You can download them in the member area of the Playniax website.


DiabloV(Posted 2013) [#101]
and how to acces this member area ?


DarkyCrystal(Posted 2013) [#102]
http://monkey.playniax.com

And the code is in your email confirmation of purshase.


DiabloV(Posted 2013) [#103]
i have this error when i try to build on android :

install:
[echo] Installing D:\DEV\MonkeyPro\bananas\playniax\ignition\01_getting_started\02_simple_rendering\example_3_ontoprender.build\android\bin\MonkeyGame-debug.apk onto default emulator or device...
[exec] pkg: /data/local/tmp/MonkeyGame-debug.apk
[exec] Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
[exec] 4327 KB/s (101919 bytes in 0.023s)




glfw is ok


Volker(Posted 2013) [#104]
"If you get INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES
after removing the debug key, the app must be deleted from
and fresh installed on your device. "
http://www.monkeycoder.co.nz/Community/post.php?topic=1382&post=24203


DiabloV(Posted 2013) [#105]
ok thanks.

but, wat is "the debug key" ?


Playniax(Posted 2013) [#106]
These problem are not necessarily Ignition but Monkey related.

I get the warning: attempt to free a non-heap object 'String::nullRep' also with the demo's provided with Monkey but they do run!

I will investigate it more.


DiabloV(Posted 2013) [#107]
another question : isometric with playnax ? howto ?


Playniax(Posted 2013) [#108]
Sorry, only orthogonal tile support for now...


Playniax(Posted 2013) [#109]
warning: attempt to free a non-heap object 'String::nullRep'

I have contacted Mark about this. It seems to be a problem with Monkey and MinGW and it will be fixed ASAP.