Chowdren: Fast Construct runtime for consoles/desktop

11 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • Hi everyone! Mathias from MP2 Games here.

    I'm happy to announce that there is now support for Construct 2/3 in Chowdren.

    Website

    Overview

    Chowdren is a blazingly fast runtime for Construct. It supports

    • Desktop: Windows, Mac, Linux
    • Consoles: Nintendo Switch, PS4, PS5, Xbox One & Xbox Series X/S
    • Mobile: Android, iOS
    • Web: HTML5 (Emscripten)

    Chowdren automatically translates your events to C++, and uses a C++ runtime.

    This means that you can expect significant speedups when using Chowdren for your game.

    Chowdren also optimizes for several common usecases. An example of this is the use of the Function plugin, where "On function" directly translates to a function in C++.

    Chowdren has been used for several games, such as

    • Astral Ascent (Construct 3, PC & consoles)
    • Mighty Goose (Construct 3, PC & consoles)
    • Cyber Shadow (Construct 2, Nintendo Switch/PS4/PS5/Xbox One/Windows/Mac/Linux)
    • Iconoclasts (Construct Classic, Nintendo Switch/PS4/PS Vita/Windows/Mac/Linux)
    • Petal Crash (Construct 3, Nintendo Switch/PS4/Windows/Mac/Linux)
    • Baba Is You (Clickteam Fusion, Windows/Mac/Linux/Nintendo Switch)
    • Freedom Planet (Clickteam Fusion, Nintendo Switch/PS4/Wii U/Windows/Mac/Linux)
    • Noitu Love: Devolution (Clickteam Fusion, Nintendo 3DS/Wii U)
    • NOT A HERO (Clickteam Fusion, PS4/XB1/Windows/Mac/Linux/Amazon Fire TV)
    • (and more...)

    Features

    Chowdren has

    1. support for all current PC and console platforms
    2. an optimizing C++ compiler for events, layouts and objects, allowing for incredible performance
    3. a C++ runtime with a huge set of supported plugins and behaviors
    4. a smart shader optimizer & merger, allowing for very fast effects

    We used to have a list of supported Construct plugins/behaviors, but at this point, adding support for a new Construct feature or plugin is straightforward and does not require a massive amount of work.

    Get in touch

    We work with small indie teams to bring games all the way from caproj/capx to release on other platforms.

    We have years of experience porting Construct games, and we usually tailor Chowdren for the games we work with.

    If needed, we do game-specific optimizations to make sure games hit 60 FPS. Typically, we also add features such as localization support, achievements, and perform changes that would be difficult to do from Construct.

    Typically, the porting process is this:

    • The developer provides us with caproj/capx files, and we send them Windows builds for testing.
    • Once the Windows build is free of issues, we bring the game to the target platform. If the developers have a devkit for the platform in question, we send them builds for testing.
    • When a build for the target platform is free of issues, with no gameplay or compliance issues left, we will prepare it for submission.

    With that said, we would be happy to hear about your game!

    E-mail: construct@mp2.dk

    Please make sure to include a short introduction and description of your game.

    Articles

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • (reserving for future use)

  • Very interesting topic, very curius about development. Keep up the good work Mathias!

  • Would be interesting to see how this stacks up to nw.js for PC exports

  • As I told you on Discord, this looks absolutely nice and I'm really looking forward to those benchmarks. Keep up the good work, I might drop an email in the near future.

  • If you can port to consoles, and desktop that would be great, but I'm kind of curious as to how this would be beneficial to web or mobile.

    I just don't see it being faster on web, and I can't really see how you could port to native on mobile.

    If you could, please give us some more details on the finer points. Like on mobile and if this is just for one-off solutions only.

    Thanks, and good luck.

  • YES! So glad to see this migrating to the Construct 2(+ someday C3?) realm

    I vote to sticky this post!

  • newt: On Android, Chowdren uses JNI / SDL.

    We released NOT A HERO using this Android backend, so you can check it out for yourself on e.g. NVIDIA SHIELD

    For HTML5, Chowdren has an Emscripten backend, which I assume is still faster than the standard C2 runtime, especially when WebAssembly is used. For Chowdren, the emphasis is on console/desktop platforms, i.e. mostly Switch/PS4/XB1 and Windows/Mac/Linux.

  • I don't recall any information saying Emscripten, or WeAssemby was faster than the standard html5 export, but I look forward to seeing the eventual results.

  • If you're in the Construct Community discord you already know but, Here's a fake3d test we did earlier today

    Construct 2 running in google chrome(latest edition)

    the Same project running in Chowdren

    C2 capx

    https://cdn.discordapp.com/attachments/225550155531812865/441623438486929428/3d_car_example_-_V3.1_now_with_Families__optimised_picking.capx

    Chowdren compiled game

    https://cdn.discordapp.com/attachments/225550155531812865/441623610503725056/f3d.zip

    Edit: Families were toggled off for this previous test so here's a more accurate test

  • newt Web assembly is indeed much faster than the Web export, Emscripteen is a compiler that compiles languages like c++, python,lua etc to javascript.The standard c2 web export is slower than javascript itself due to the data being parsed thru a 2nd array layer rather than just running in normal javascript.Web assembly is essentially the lowest and most performant you can get with any web browser.Here's an article from Mozilla to give you an idea how much more powerful a chowdren compiled web game would be https://hacks.mozilla.org/2017/03/why-webassembly-is-faster-than-asm-js

  • Proof positive that native is significantly faster, even when it has to deal with interpreting data created for another (non-native) runtime.

    Thanks for starting this thread Hopefully this helps cancel out any future related arguments before they begin.

  • Phacanu Well, obviously the Chowdren example doesn't have "for each" yet, so that one change accounts for the fps difference.

    There are others, such as text rendering, and setting the layer angle... every tick, but those are minor optimizations.

    There are a few options to avoid the "for each", I would go with the instance index, or object(iid).x and stay away from families.

    Edit:

    Now that I think of it, a container of all the parts as separate objects would be the simplest method.

  • digitalsoapbox it's more of a c2 thing,Pixi.js for instance is on chowdrens rendering level even tho it's a javascript rendering framework

    newt not even really sure what you're saying, either way, this is proof that chowdren would be viable for more serious devs

  • digitalsoapbox it's more of a c2 thing,Pixi.js for instance is on chowdrens rendering level even tho it's a javascript rendering framework

    newt not even really sure what you're saying, either way, this is proof that chowdren would be viable for more serious devs

    It's not on Chowdren's level for console support, however, nor does Construct seem to be getting any love on that front in terms of, say, full XB1 feature support, which like Steam support, seems to not be coming any time soon from Scirra.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)