cjbruce's Forum Posts

  • X3M,

    Shoot! I was really hoping to see your game among the entrants. Are you still thinking of releasing your game? I am hoping that we can get a really good bunch of C2 games in there for people to see that you can make great games in the engine.

    Also, thank you so much for tracking down the scaling issue in the controller -- we are looking forward to using C2 on the controller side as well.

  • I played it a month ago and it was quite good, the AI was impressive, did you assign their behavior with events or what ?

    Thanks for the kind words!

    The whole project is now around 800 events, but the AI is pretty simple. It uses a "greedy" algorithm with a few tweaks to make sure the AI isn't self-destructive:

    1. Determine the direction to the nearest target (enemy wheel, enemy body, or powerup). Disregard any targets that are too close to the arena edge, or are invisible.

    2. Apply torque to the wheels to turn toward the nearest target. (dot product of velocity * angle to target)

    3. Apply torque to the wheels to drive toward the nearest target. (cross product of velocity x angle to target)

    CPUs are pretty vicious right now, as they can maneuver toward you with unerring control. The computer's ability is offset by the fact that they can't pickup or launch bombs. They will, however, rush you if you have a bomb, so you have to be really careful when you pick one up.

    X3M,

    By any chance, did you end up submitting your game to AirConsole as well? I was hoping when it is all said and done with the contest, we could do a thread where folks could see all of the awesome stuff the C2 community has created for AirConsole.

  • Robot Rumble is out!

    Moderators, could you please move this to "Completed Creations"? Thank you!

    YOUTUBE TRAILER:

    https://youtu.be/bry1hOjbb3E

    DIRECT PLAY LINK:

    http://www.airconsole.com/#!play=com.nerdislandstudios.robotrumble

    Robot Rumble is...

    • fighting robots! -- Use various weapons and abilities to destroy your opponents or to shove them off of the platform.
    • fully 3D! -- Robot Rumble uses the excellent Q3D plugin developed by

    1-8 player local multiplayer -- You use your smartphone as a controller to play against others on a computer screen.

    AirConsole Game Dev Contest 2017 entrant -- Robot Rumble has already been awarded an honorable mention for the AirConsole 2016 student competition. The AirConsole team reports "We're all pretty amazed that a game like this is possible in Construct2."

    Splash Screen:

    In-game (showing 1 human + 2 computer players):

    End-game (showing 2 human + 6 computer players):

  • Hmmm. I couldn't get ondevicejoin working for awhile, but realized I hadn't set maxplayers correctly. Now I am getting duplicates of ondevicejoin approximately 1 time out of 6. In C2, I just kept track of all joined deviceids, and ignored the duplicate calls.

  • I am a Construct 2 user and a pragmatist.

    I have been using Construct 2 to develop mostly web-based interactive simulations, with the occasional export to iOS and Android. I could go through the trouble to develop simulations natively in javascript or in some other language, but I have found that it is not worth my time. As a physics teacher, I can wake up at 5:00 am with an idea, and by 7:30 am have a working simulation for my students, complete with art, animation, user interface, and, of course, the important physics idea. I can't imagine doing this any other way.

    We don't have computers in school, but every student has a school-issued iPad, and most students have personal cell phones. I started out as an iOS native developer, but I quickly realized that there was no way I could implement a new idea and push it out to students in a few hours if everything I built had to be approved by Apple. HTML5 is the only way to do this, and the major reason that I haven't spent a whole lot of time looking at other engines.

    Up until now, Construct 2 has been the best fit for what I do. Nothing else comes close. Not Unity, not native javascript, not any of the Lua-based engines, not Gamemaker, and not even the various web-based scientific visualization tools like NetLogo or glowscript (although I am now using glowscript more and more to teach coding).

    I am excited for Construct 3. I would gladly pay a fee of around $100/year for something that I spend 2-3 hours every day using. I already pay similar amounts for Dropbox, Netflix, and Amazon Prime, and none of those bring nearly as much joy as tinkering in Construct 2. I have felt guilty for years now that the Scirra crew doesn't have a yearly subscription fee, and yet they push out updates on this major piece of software every week. That is literally years worth of uncompensated time. If you find yourself struggling with the idea of paying a subscription, consider that you are already working with a wonderful piece of software that is being improved at an absolute breakneck pace. If we don't pitch in, this support will go away and we will be left with a tool that will wither and die.

  • matriax

    Loading materials regardless of model filetype is done the same way: using specially named animations.

    You can find a list of the animation naming that is supported in the (incomplete) documentation : https://www.dropbox.com/s/vpn0mbh4m7lo9 ... .docx?dl=0

    .mtl files aren't really supported, and material info in .js files is poorly supported as well. This is because of poor standardization, there's no "useful" way to support them since material properties generally don't operate under some standard shader model across all platforms, so they're not very useful in Q3D / three.js.

    QuaziGNRLnose,

    This documentation is fantastic! Yes, it has sections that are not finished, but everything is extremely clear and well-written! I recommend including it on the first post of the thread.

  • X3M, sounds good. Would you mind taking a look at the stackoverflow thread I posted above?

    I don't know if it is something that can be fixed in code (a weird CSS setting that could be overridden with javascript, maybe?), but it might be possible to make a fix in the C2 plugin. This wouldn't help the Phaser.io and Unity folks, of course.

  • cjbruce Do you have Skype so we can collaborate and resolve this problem ? I've got some fixes that I want you to try.

    Your project won't get approved by Airconsole if that problem persists right ?

    X3M,

    We're pretty close to launching our game, so we don't want to make any big changes in the next few weeks. We're actually hardcoding the controller using jQuery and divs instead of HTML5 canvas/Construct 2.

    For what it is worth, I also used the Phaser.io "Tanks" example to create a Phaser.io-based controller:

    1. I renamed the "Tanks" game screen.html as controller.html. I used this because it has all of the appropriate working AirConsole code, but was not created using Construct 2.

    2. I used the existing "Pong" example as my screen.html.

    3. I loaded the resulting game in the AirConsole simulator.

    Everything loaded fine in the simulator and on my Nexus 5, but the Phaser.io-generated controller screen shifted on my iOS devices, just like it does using the Construct 2 AirConsoleController plugin. Since the same problem occurs in controllers created with both Phaser.io and Construct 2, I suspect the fundamental issue is an interaction between the AirConsole code and canvas elements.

    I would be happy to set up a Skype session. Can we work it out over PM?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Has anyone tried the capx of the driver I sent? Is it shown in full screen on iPhone? Psychokiller1888 Ustes shows an image of AirConsole Simulator. Have you tried your iPhone driver? Do you have iPhone screen capture? I do not think it's a cache issue. It's something more technical.

    amariscal,

    I am see the same issues that you are seeing. Here are photos and screenshots from various devices:

    Nexus 5 - The square is correctly centered in the screen:

    iPhone 7 Plus - The square is pushed partway down the screen:

    iPad Air 2 - The square is also pushed partway down the screen:

    A few days ago, I started the following thread on stack overflow:

    http://stackoverflow.com/questions/4192 ... er-created

    I think it might help if we had more people looking at the problem -- I'm stumped at the moment.

  • X3M,

    Thank you for humoring me and putting in the User HTML elements = true/false capability. Unfortunately, this wasn't the fix. *feeling a little sheepish*

    X3M and Psychokiller1888,

    I finally had a chance to sit down with both the Nexus 5 and the iPhone 7 Plus running the "pong" example. I tested every combination that I could think of:

    Scaling Modes:

    None

    Crop

    Scale Inner

    Scale Outer

    Letterbox Scale

    Letterbox Integer Scale

    Plugins:

    AirConsole Plugin + AirConsoleController Plugin

    AirConsole Plugin Only

    AirConsoleController Plugin Only

    Neither Plugin

    Phones:

    iPhone 7 Plus

    Nexus 5

    Hi-DPI Mode On

    Hi-DPI Mode Off

    I found that in all cases, the Nexus 5 had no problems, and the iPhone 7 Plus failed to recognize scaling mode whenever either the AirConsole Plugin or the AirConsoleController Plugin were used. The problem went away when I removed both plugins.

    From the above, I have concluded the problem with iOS failing to recognize scaling is most likely an adverse interaction between AirConsole's API and Construct 2, and has nothing to do with either plugin. Perhaps there is something in the AirConsole code that is overwriting the C2 scaling?

    FraConsole,

    Would it be possible to take a look at this within the airconsole API itself? I know this is probably asking a lot, but it would be nice to know if a fix is possible. We were really looking forward to using Construct 2 for our controllers, but understand if this isn't really a priority. I have posted the details on StackOverflow.

    Thank you all for putting so much time and effort into getting this working!

  • cjbruce It can't be the DOM elements since they are laid on top of the C2 canvas in an absolute position, so they cannot affect the size of the canvas.

    May I ask why are you using the Crop mode?

    X3M,

    I'm not using crop mode. I'm just exporting the example "pong" .capx provided in the download link at the beginning of this thread without changing anything. It is set to "letterbox scale", but I get the weird cropping effect on iOS.

    I have seen similar problems before when I have attempted to create things in C2 for iOS. HTML elements render inconsistently across browsers, sometimes pushing the canvas around on iOS, but appearing fine on my Nexus 5. Since I primarily target iOS devices for my work, I have stopped using HTML elements entirely.

    Just to be sure, I removed the AirConsoleController object from the "pongcontroller" project, and the problem went away.

    Would it be possible to modify the plugin so that you can create a "global" object, without having to load HTML elements onto the page? This would work exactly the same as the AirConsole plugin itself.

  • X3M,

    I've done a fair amount of testing, and can't seem to isolate the section in code that is causing the screen to be scaled incorrectly. On my iPhone and iPad, the screen is effectively in "crop" mode. I have a hunch that it is because of the way iOS deals with HTML elements overlaid upon a C2 canvas, but I can't test my hypothesis unless I can create an instance of AirConsoleController without creating an HTML element ("button", "dpad", "swipe area", "joystick", etc.) as well.

    When I run the "pong" example .capx on my iphone, this is what I see:

    Notice that the bottom portion of the controller, including the text with my nickname, is cut off, along with a chunk of the right portion of the controller. This is the same as what I see when I run the pong example on my iPad using the iPhone version of the AirConsole app.

    Would it be possible to rework the AirConsoleController plugin such that it is a global object, like the AirConsole object? That way we wouldn't have to worry about instantiating any of the HTML elements, but could still have access to the controller methods?

  • X3M,

    It works! I haven't tried sending custom messages yet, but it should just be a matter of parsing through a JSON string now...

    I just tested on my iPad, and I'm still seeing the scaling issue:

    I don't have my iPhone or Nexus 5 handy, but I will test those as soon as I can.

  • Could you add accelerometer options? For example, as the occlusions of the Touch object. Thank you, and your plugin is amazing!

    amariscal,

    You should now be able to get accelerometer data by including a Touch object, and sending a message to the screen.

  • Psychokiller1888,

    Thank you for taking a look at this! I just think you saved my sanity.

    X3M,

    Nice work! I'll try it out today as soon as I get a chance. You rock!