kbm's Forum Posts

  • Hi,

    I have a rather specific set of problems/requirements and I was wondering if anyone had an idea on how to do this:

    I am building an iOS and Android Game with ingame-leaderboards that are currently being submitted & fetched by the clay.io API

    Unfortunately, I have found out that Ejecta & Clay.io don't work together because Ejecta doesn't use the HTML DOM that the clay.io API needs to load.

    Anyways, I can't use CocoonJS because of some rendering bug and Ejecta is my only viable iOS Export option that supports WebGL so I'm kind of stuck with Ejecta.

    Do you guys know of any other way to implement online leaderboards with Ejecta WITHOUT Game Center? The reason I don't want to use Game Center is that the player can choose his own name ("arcade-style") ingame and then submit with that name. So far the only 3rd party plugin I've found that supports these kind of scores is clay.io

    So this is kind of a Catch 22 and I'm really stuck and need help. If anyone has had any experiences with implementing this kind of thing I would really appreciate your time & help.

    Thanks a lot,

    kbm

  • Bump: I know that this is a very specific problem but I've just spent more than 12 hours nonstop on this and can't believe that no one else seems to have encountered this error, it's mindboggling.

    Anyways, another question: I'm committed to using Ejecta and right now, clay.io as well. If I switched from clay.io Leaderboards to another system this system would need to let me submit scores with both custom name and custom score values WITHOUT asking the user for a login. So far, neither google play nor apple game center integration seems to supply this option, both require a logged in user and only submit a custom score value. For that reason, I'm pretty much stuck with clay.io at the moment and would REALLY love to make Ejecta&clay.io like each other

    TL;DR I need a combination of Letterbox Scaling, WebGL and a Leaderboard Plugin with custom names and timestamped scores and export possibilites for both Android and iOS. This seems to be impossible as I have encountered bugs in each direction for the past few days.

  • GoGugutiGames hmmm interesting.. even if you have privacy policy on? I'm surprised it's restricting that.. I'll have to ask my local MS rep what he knows about that when I get to that point

    How has your testing on iOS been? When I load a game on my phone it just does splash screen, then all black.. if i then remove the clayio plugin the app loads just fine.. i've emailed clayio support about this because it seems the lockup happens at load time.. before any clayio functions are called.. in the first scene i just have a preload/splash screen with no clayio calls..

    dashboard message where? is the message from clayio, C2 or microsoft dev center?

    I'm using Ejecta 1.5 as my wrapper for iOS.

    Thanks!

    Caleb

    Hey man, I have the exact same problem as you! It's nerve-wrecking as I've been trying to figure out what's wrong with the combination of Ejecta & clay.io all day and have had no success. Can you post your console output from Xcode? I am very curious if it's the same "TypeError: undefined is not an object (evaluating 'tag.parentNode') at Line 17462 in index.js" output. I really hope there is some solution for this because I've tried nearly everything..

  • Maybe this helps: I checked the index.js file and on line 17461 it says the following:

    clay.src = window['Clay']['PROTOCOL'] + "clay.io/api/api.js";

    This seems to be the source for the error, right? Unfortunately I know too little about the inner workings of the API to actually do anything about it. Maybe someone else can enlighten me?

    EDIT: Okay, the problem seems to be that the following code produces an error:

    ( function() {
    	var clay = document.createElement( "script" );
            clay.src = ( "https:" == document.location.protocol ? "https://" : "http://" ) + "clay.io/api/api.js";
    	var tag = document.getElementsByTagName( "script" )[0]; tag.parentNode.insertBefore( clay, tag );
    } )();
    [/code:2vjvpwvi]
    
    tag.parentNode seems to produce the error because when I delete just this line, the whole thing works again (but, of course, clay.io doesn't)
    
    EDIT2: Okay, so I have wasted the entire day on this and I'm completely stuck. Unfortunately, clay.io integration is a pretty huge deal for me at this point and I REALLY want to make this work. So, if anyone (probably only @Ashley knows something about this?) has the slightest hunch about how to fix this, what is going wrong etc. -> You would make my day, week and probably month, too if you could help me out here. I've googled the crap out of this and NOTHING comes up, nada, niente. Very frustrating.
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Has anyone had any experiences using the Clay.io plugin together with Ejecta Export? Did it work for you? All I get is a blackscreen at the beginning and an error saying "TypeError: undefined is not an object (evaluating 'tag.parentNode') at Line 17462 in index.js". When I remove the clay.io object everything works just fine!

  • On another note: If this does in fact not work due to a bug, do you guys have any recommendation on what other score system to use?

    My requirement would be that I can post scores and fetch leaderboards WITHOUT the user having to log in somewhere.

  • Hey everyone, I just encountered a bug when exporting my game from Construct with the "Ejecta" Option.

    I loaded the game into Xcode and the clayio plugin seems to crash the app on loading. When I remove the clayio plugin from the project everything works perfectly.

    Things I'm doing with clayio are basically just posting scores and fetching leaderboard objects. I don't understand what I can do now and would love to use clayio since I can use it cross-platform.

    The exact error code in Xcode is: "TypeError: undefined is not an object (evaluating 'tag.parentNode') at Line 17462 in index.js

    I even tried removing all clayio related events and just leaving the plugin and that crashes the app as well. I'm stuck :/

  • Thanks for clearing that up for me, hmin ! Unfortunately I get the "AttributeError: 'module' object has no attribute 'maxint' " error and make_apk.py doesnt work. I have no idea what the problem is, my setup/paths seem to be alright and I followed the instructions in the documentation step by step.

    Anyways, thanks again and I'm looking forward to future updates!

  • Hi, I read through all your posts, here I'd like to give some clarifications and background about gpu blacklist issue.

    * Why not ignore gpu blacklist in Crosswalk now?

    The gpu blacklist was originally ignored by default in Crosswalk. However, about several months, some C2 users reported WebGL running with Crosswalk gets crash on their device due to the buggy gfx driver. Such a crash seems not so good, and Crosswalk is not ignore the blacklist, instead it lets web developer decide if it is on or off via command line options.

    * How to append the command line option to ignore gpu blacklist?

    I am sorry to confuse you with a different context. The approach I mentioned above is in the context of using make_apk.py directly instead of Intel XDK build. With XDK build, there is no way for web developer to add an individual file in assets folder. XDK is working on adding such an option to ignore gpu blacklist for web developer.

    * What is the relationship between XDK build and open source Crosswalk?

    Crosswalk is a HTML5 app runtime to run web app. It supports the HTML5 standard API and features without phonegap APIs and plugins support. XDK build uses a Crosswalk variant as the backend engine. This Crosswalk variant integrates phonegap APIs and plugins based on the open source Crosswalk project. For simplicity, we call both of them as Crosswalk.

    So if you web app depends on phonegap API or plugin, you can't build a workable web app by use of make_apk.py. The make_apk.py is only useful for 'pure' HTML5 app.

    [BTW: since I have no enough reputations to paste URL and pm some of you. Sorry for no reply if you PMed me:)]

    Thanks a lot for your quick response! Really awesome to speak directly to a Crosswalk-Dev.

    Anyways, does that mean that I basically can't use Crosswalk without Intel XDK because it doesn't fully support Construct 2 [with plugins and all]?

    On another note, you say that the next XDK release might give us an option to turn off the blacklist, but you also said that doing so may lead to crashes or even brick the phone. Maybe I'm naive but wouldn't a better solution be to manually remove specific phones from the blacklist, such as the mentioned Galaxy S3 and S4? Turning off the whole blacklist seems very brute-force.

  • kbm I think hmin refers to the assets folder inside the app_src folder. You can find it downloading the Crosswalk binaries. You'll have to pack your app by yourself without using the intel XDK cloud compiler. Currently there's no way to enable the ignore-gpu-blacklist flag with the Intel XDK.

    See here:

    Thanks for your post. I tried self-compiling but failed miserably because setting my path variable got screwed up and I got errors

    Anyways, ignoring the gpu-blacklist is not an option for a release build on Android, what other options do we have, then? From what I've read in this thread the Samsung Galaxy S2 and S3 both seem to be blacklisted? These two phones alone represent a significant amount of Android-Users, right? - so just accepting that our Crosswalk-Apps run on these phones only in Software-Rendering doesn't seem like a good option.

    Unless someone can convince me of a better way to handle the problem?

    EDIT: I managed to get the Crosswalk-System including Python, Ant, JDK etc. up and running but it's giving me errors when I try to compile via make_apk.py

    It just says "AttributeError: 'module' object has no attribute 'maxint' error and I'm stuck on this

  • On another note: Will there be a permament fix for the situation in the near future? I mean, a lot of devices seem to be blacklisted for WebGL by Chromium and thus Crosswalk and this means crappy performance for all those phones, right?

    Unfortunately, for me, Crosswalk is the only viable Android Export option as CocoonJS's inability to render Fullscreen Letterbox is a dealbreaker for my game.

  • >

    > Hi hmin, I'm currently in the process of moving over from CJS to Crosswalk, and I came across this issue. What is the resolution process for this bug? Is this something that you guys deal with on your side, or is WebGL just never going to work with Crosswalk on a Galaxy S3 due to a driver bug that's beyond your control?

    >

    > I understand that blacklist ignoring is something that's coming up soon in Intel XDK. Will it be safe to simply ignore blacklistsed GPUs to ensure WebGL works? I've been testing on my GS3 using Cocoon for some time now (with WebGL enabled), and it's always behaved itself fine.

    >

    GeometriX, currently Crosswalk disables WebGL internally by default for a buggy driver , which means WebGL would never works unless gpu blacklist is ignored .

    If you want to ignore gpu blacklist by manual, from Crosswalk 6, it allows to add app-specific command line options by adding a new asset file to your apk. You can add <APP_DIR>/assets/xwalk-command-line into your apk with the following content:

    xwalk --ignore-gpu-blacklist[/code:32i5blxf]
    and then rebuild your apk.
    

    I would like to try this out but I don't know how. Where exactly in the process of exporting with Construct, importing into Intel XDK, building and installing the build do I do this? Do I have to modify the built APK file (because then I would have to resign it, right?) or can I do this BEFORE building with Intel XDK?

    EDIT: I read the Crosswalk Documentation and tried out making a blank file named 'xwalk-command-line' containing the single line: 'xwalk --ignore-gpu-blacklist'. I copied this file to the root directory of the App (before compiling, the one containing index.html). I then built the App with Intel XDK and Crosswalk 6 (beta) enabled. This didn't work.

    P.S.: I am doing all this because on my test device, a Galaxy S2, the GPU seems to be blacklisted and WebGL is disabled by default.

  • I am not sure but some people seem to have a similar problem when exporting with Cocoon JS? But maybe I am confusing two different issues here..

    Anyways, is there any way to get low-res games to properly display with "Fullscreen scaling: Low Quality" and "Fullscreen mode: Scaling outer" ?

    EDIT: This is really weird: I just disabled WebGL and the rendering problems seem to be gone completely. However, there is a caveat When before there was no visible anti-aliasing now it is really strong. Is there any way to disable anti-aliasing completely without WebGL?

  • I have the exact same problem, I have been developing a 32x32 pixel game and the problem seems to have something to do with Scale Outer as the seam-lines also appear when I preview in Chrome/Firefox.

    When I switch to "High Quality" Fullscreen Scaling the seam-lines disappear but so does my pixel grid

    Can anyone help us out here? Ashley maybe?

  • Also just to note you could leave it on a letterbox knowing full well that it drops down to scale outer in cocoonjs. This allows your project to look nice in browser with letterbox as well as in cocoonJS with scale outer.

    Thanks a lot, I managed to center the layout now, but I have a new, different problem:

    I have to set "Fullscreen scaling: Low quality" because my game is 32x32 px and in order to display correctly it needs to render first, then scale. Unfortunately, depending on the final resolution this screws up the rendering. For example one line of pixels doesnt even show up, screwing up the complete layout.

    I drew up a quick explanation of the problem.

    Choosing "Fullscreen scaling: High quality" seems to fix the problem, but then some objects render like this

    instead of this

    And I need all objects to be pixellated like shown in the second image.

    Can anyone help me out here?