Chowdren: Fast Construct runtime for consoles/desktop

11 favourites
From the Asset Store
Casino? money? who knows? but the target is the same!
  • If you are not targeting multiple platforms (and probably consoles as well), then your best bet is probably the standard export options. We are working on games for mobile platforms, but most of those games have seen release on a console first.

    With that said, Chowdren should perform significantly better than the standard runtimes. Mobile platforms are constrained by memory/processing power, which also means they are constrained in terms of how much they can JIT applications. For that reason, I suspect the speedup ratio from the standard runtime to Chowdren will be higher on mobile platforms than on desktop.

  • Cyber Shadow has been announced! It's developed by MekaSkull in C2, and published by Yacht Club Games.

    We (MP2 Games) are porting the game to Switch/XB1/PS4/PC using Chowdren, and so happy to be involved with this game :)

    I've been talking to MekaSkull about Cyber Shadow for a long time, so I'm glad we were finally able to spill the beans!

    Subscribe to Construct videos now

    The game will be playable at PAX East at the Yacht Club Games booth, so make sure to check it out!

    MP2 Games is working on other projects as well, so I hope to be able to talk more about those soon!

  • Yatch Club?? Aren't they the Shovel Knight guys??

  • Yacht Club Games made Shovel Knight, yep!

    There's a few more details here of how Yacht Club Games are involved in Cyber Shadow, so it might be worth a read:

    yachtclubgames.com/2019/03/cyber-shadow

    In any case, Cyber Shadow did well at PAX East!

    The Nintendo Switch version of the game (which uses Chowdren) was on display, as can be seen here:

    twitter.com/afillari/status/1111323549665542145

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Thats incredible news and glad to see stuff like this happning. Gives us C3 developers hope that we can potentially get our stuff running on consoles now :).

  • That is great news about the possibilities with Chowdren and an awesome looking game to boot, I will definitely support on PS4 or XBone. Massive props to all involved! Well done.

  • Some good news: Chowdren now supports iOS! This means that Chowdren supports both iOS and Android.

    For now, iOS 9 and up is supported. On Android, API level 16 and up are supported.

    In terms of plugin/behavior/shader support on iOS/Android, the coverage should be the same as for PC/console platforms.

    For mobile platforms, most developers are probably better off with the native Construct export options. However, if your application is CPU-bound or makes heavy use of effects, Chowdren might be a good option if you also want to target console platforms.

  • How does one get in touch with you for porting services?

  • How does one get in touch with you for porting services?

    Justin64Their informations are available in the very first post of this topic : https://www.construct.net/en/forum/construct-2/general-discussion-17/chowdren-fast-construct-134395#forumPost935836

  • Cyber Shadow has been announced! It's developed by MekaSkull in C2, and published by Yacht Club Games.

    We (MP2 Games) are porting the game to Switch/XB1/PS4/PC using Chowdren, and so happy to be involved with this game :)

    I've been talking to MekaSkull about Cyber Shadow for a long time, so I'm glad we were finally able to spill the beans!

    Subscribe to Construct videos now

    The game will be playable at PAX East at the Yacht Club Games booth, so make sure to check it out!

    MP2 Games is working on other projects as well, so I hope to be able to talk more about those soon!

    Oh, I didn't know that Cyber Shadow is being made with C2. Glad to know.

    It seems to be running smootly on Switch. Awesome!

  • I've been getting a lot of questions about how to prepare a Construct project for porting.

    While a lot of porting advice applies to games in general, there are some specifics for Construct and Chowdren that might be interesting to know about!

    Compliance

    All consoles have compliance rules that you need to follow.

    Some of these are fairly straightforward to follow, such as

    • Terminology rules.
    • Rules about button icons and other platform-specific visuals.

    Others require more work or tuning, such as

    • Achievement requirements.
    • Controller/user profile requirements.
    • Audio level requirements.

    In Construct projects, if Sprite objects are used to show button icons, you could use a separate animation for each platform.

    If you use a Sprite Font to show icons in text, you could have a separate character for each button icon that you pick depending on the platform.

    Chowdren-specific note:

    Chowdren implements achievements by transforming achievement unlocks from the Steam4C2 or Greenworks plugin into platform-specific achievement unlocks.

    Gamepad inputs are translated to inputs in the Gamepad plugin.

    The controller layout is based on an Xbox controller, so you only need to make sure that your game works with an Xbox controller.

    Plugins

    Most plugins are not an issue, but there are a few things to be vary of:

    • Native plugins (the ones bundled with Construct) are used a lot more than non-native plugins. For that reason, if you use a non-native plugin, you are much more likely to hit an ACE or feature which hasn't been implemented in Chowdren yet.
    • Plugins which require online functionality are a large hassle for a few reasons, so if your game is not a multiplayer game, try to steer clear of those.

    Chowdren-specific note:

    The list of plugins that are supported (as of this post) are listed here:

    gist.github.com/matpow2/a574e81933e916f1831d41d34a9b5a86

    Plugins are implemented on a demand-driven basis, so you don't have to limit yourself to this list only.

    Memory

    Most pixelart games tend to use small images and require little memory for visuals.

    Other games with e.g. handdrawn visuals use much larger images, so to fit such images in memory, images have to be resized, switched in and out dynamically, or texture compression needs to be used.

    While the particular strategy to use is usually handled from the Chowdren-side, you can help reduce memory pressure by keeping your images as small as needed.

    Audio

    Construct supports audio effects through the Web Audio APIs, such as compression and distortion.

    Chowdren supports some of these through its audio mixer implementation, but new effects tend to take some time to implement.

    Consider applying effects offline in your DAW or by some other means.

    Effects

    For most projects, the use of effects is usually not a problem.

    However, the use of layout or layer effect stacks with many effects can be a rendering bottleneck.

    Try to achieve as much as you can using smaller effect stacks.

    Chowdren-specific note:

    Chowdren merges effect stacks together into 1 shader, and can render most effects that sample the background without an intermediate buffer.

    This reduces the overhead of shaders by a great amount.

    I've only seen 1 or 2 extreme cases where I've had to do a special implementation for a large effect stack.

    Performance

    Consoles typically have hardware which is slower than PC hardware.

    This applies to both the CPU and GPU. On some platforms, the CPU is mostly the bottleneck, while on others, both the CPU and GPU is.

    As a general guideline, if your game runs acceptably on middle to high-end phones, performance is a smaller concern.

    Chowdren-specific note:

    Chowdren compiles events to C++, and events are practically never a bottleneck.

    I haven't worked on a Construct game which had a CPU-side bottleneck on Chowdren yet.

    Also, feel free to make liberal use of functions and event variables!

    In C3, both event variables and function parameters are explicitly typed, which makes for a straighforward conversion to C++.

    Scripting

    A JavaScript scripting feature has been introduced in Construct 3.

    While this gives a lot of flexibility to developers, you may want to limit the APIs you use to a smaller subset.

    If you need to use any non-trivial DOM or ECMAScript features, it may be good to plan ahead and examine how these features would work on non-PC platforms.

    In essence, don't shy away from using scripting in C3, but make sure you understand which APIs you are using, and try to use an API subset in a consistent way throughout your project.

    Chowdren-specific note:

    We have created an experimental JavaScript to C++ compiler which we will be using for Construct 3 scripts.

    This is more than 1.45x times faster than JIT-less V8 on game-oriented benchmarks.

    While this is super exciting, I think this is a topic better suited for another post :)

    Conclusion

    I hope that gave a good overview of how to future-proof your project for porting.

    If there are other subjects you would like to see covered, please let me know!

  • Is the memory system used much different than Construct's? e.g., layout by layout loading. I mostly use a single layout for my game for my custom levels, but I have a lot of "storage" layouts, so I use the system action "load layout X images into memory" to load the ones I need all at once.

  • For most games, Chowdren is able to load all images of the game into memory on startup. For games where that's not possible, I haven't seen the "load layout/object images" being used, so for now, Chowdren has its own heuristics to determine which images to load and when.

  • I would like to be answer to this question I have for you guys team Construct >>> How did I get in contact with the Chowdren team to export my project to diferent consoles !? I've email to Chowdren a dozens times but I get no answer at all>> I need to get in contact with them>> and I mean business !!! God bless you Team Chowdren !!!

  • Is the memory system used much different than Construct's? e.g., layout by layout loading. I mostly use a single layout for my game for my custom levels, but I have a lot of "storage" layouts, so I use the system action "load layout X images into memory" to load the ones I need all at once.

    HOW YOU DO THAT !?? ON CONSTRUCT2!?

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