Update your Construct 2 export Process

Seeing how construct 3 is out, and released this is rather important steps to do as scirra will no doubtfully drop support at some point and stop updating the applications that are behind scenes. At this point they are saying they will continue support for it but some day support may just drop out of the blue.

First thing I need to explain is how construct 2 actually works is with a bunch of band aids of other applications Scirra didn't actually make. Such as Flac, pngcrush, and much more. I have a feeling if I were to look at their source code I would see much of the same uncredited practices.

Basically how it works is when you go to do a test run or debug it will do a mini-uncompressed quick export, and when it does this it doesn't do any compression for images, and sounds are already compressed thanks to flac oggenc, and video files are just straight up loaded in with only specific formats and codexs supported. Its tricky to actually get video files to load at all often resulting in massive projects due to including every video format possible practically and hoping it works with every export, or just simply creating seperate versions and knowing which formats are fully supported.

The advantages to this guide over using scirra's defaults are not only that you can use 64bit versions of the software, but that you have it most up to date, and the reason you would want 64bit versions of the software is faster compile times and faster imports for sounds for 64bit os versions.  Meaning this won't work for 32bit os users outside of just updating to latest versions of the software.

Keep in mind scirra applies limitations to modifying the source code of their software, luckily they include software that isn't exactly theirs in their Construct 2, which in construct 3 you would have no control over as it is more than likely either replaced or all done server side.


One of these tools is pngcrush, which scirra uses a old out dated form of it. Keep in mind there are ways to compress more than scirra's usage of pngcrush ex: color index mode, which will limit the colors of a image based off a color index table rather than storing every possible color in each pixel it will only store a color refference ID which will refference a color stored in a table. Meaning a 2mb image can easily be compressed down to 64 colors at 300kb depending on resolution. Construct 2 doesn't have a option for doing this via batch process, but rather I recormend using gimp to do the task as you can alter the color pallets as needed if you know how to which is simple to do. But that is for another tutorial.

This is how to improve the export process for construct 2.

First things first, is to update pngcrush, You can check your version by doing windowskey+r &
cmd /k "Drive\CONSTRUCT2ROOTFOLDERS\Construct 2\exporters\html5\tools\pngcrush\pngcrush.exe"

Scroll to the top and construct 2 uses 1.7.? the most upto date version is 1.8.11 which has had many bug fixes, many many many added features, and some redundancies removed.

Now for some of the other tools you can update this trick doesn't work all that well to display version due to the creators not having anything output other than on failure.

To download latest PNGcrush version click here: https://pmt.sourceforge.io/pngcrush/

Once you download it backup the older version of PNG crush in a subfolder just name it OLD and move it in there, then move your new version of PNGcrush into the folder and match the old versions its name by renaming the program if need be.


After doing PNGCRUSH it is wise to also update this, Luckily this is Opensource software with various derivatives of it, so I recommend replacing this application entirely as pngqi is just a derivative of pngnq anyways. pngnq-s9 seems to compress better download that here: https://sourceforge.net/projects/pngnqs9/?source=typ_redirect

Once downloaded, goto "\Construct 2\exporters\html5\tools\pngnqi" back up pngnqi, a create folder named OLD place it in there.
Then just move the pngnq-s9.exe file into the folder "G:\Construct 2\exporters\html5\tools\pngnqi" and rename it to match the old program "pngnqi". 

This newer version proclaims it will be 70% smaller than the original interms of file size. So basically I tested this with a 261kb image file with color index, and the image was compressed with construct2's pngnqi and it ended up 69.9kb and with pngnq-s9 and it ended up 64kb. Which means slightly better compression. Keep in mind inorder for this to work it has to be derived of pngnq which the native builds have not been updated since 2011 just different derivatives of it since then.  Which means with larger image sizes that percentage difference of compression could be a larger gap especially since some of the images get converted into sprite sheets which get larger as a single image sprite sheet than they would as a series of single images.


PNGOUT for construct 2 hasn't been updated since 2013, pngout's last release was in 2015.
So we have another just update the program here.
Simply download PNGOUT.exe commandline  from http://www.advsys.net/ken/utils.htm

Back up the old version, by going to "\Construct 2\exporters\html5\tools\pngout"
Create a folder named old, place the old version of pngout.exe into that "OLD"  folder and just move the new version of pngout.exe into "\Construct 2\exporters\html5\tools\pngout" done.

I'm pretty sure scirra violated  a license agreement here aswell

"Redistributing, repackaging, or reusing the PNGOUT or KZIP executable is prohibited without the express consent of Ardfry Imaging, LLC, and a formal business agreement." - Stated on their website unless they actually got permission to do so which I don't see that without credits.

But downloading it this way seems the only legit way to do it as scirra probably didn't care. 


Next you will want to update FLAC.
You can check your version by doing windowskey+r &
cmd /k "Drive\CONSTRUCT2ROOTFOLDERS\Construct 2\tools\audio\flac.exe"

Which is GPL Free software which the license isn't directly included with the executable just in the old out dated source code which versions do not match.  Naughty naughty scirra not following the actual GPL to the letter.

At any rate just simply download flac from here: https://sourceforge.net/projects/flac/?source=typ_redirect
Once you download it backup the older version of FLAC.exe in a subfolder just name it OLD and move it in there, then move your new version of FLAC.exe into the folder and match the old versions its name by renaming the program if need be.


Possible update
You can check your version by doing windowskey+r &
cmd /k "Drive\CONSTRUCT2ROOTFOLDERS\Construct 2\tools\audio\flac.exe"

Currently construct 2 is using OGGENC2.88 for  it which is the most up to date. How ever there is different audio library reffers for OGGenc2.88 which produces different level of compression results and outcomes. Construct 2 uses OGGENc2.88 libVorbis v1.3.5 by default which you have the option for generic, p4, x68, source code+ libraries for download here. But you can also attempt to use Oggenc2.88 using aoTuVb6.03 2015/ (Lancer Builds).

So if you want the advantages of x64 or p4 or use aoTuV instead of libvorbis, then here is your options.

Simply download here: http://www.rarewares.org/ogg-oggenc.php


This one scirra produces a solution for this but how ever it is already outdated,  Which is the norm for them at this point.  So basically what you need to do is first download scirra's solution, which just installs it to a specific location that c2 looks at when compiling NWJS.

Download Scirra's solution:

Go through the install wizzard and just install it.

Next you need to download every version of the latest version of NWJS from the offical website here: https://nwjs.io/downloads/

The next step involve copying the latest version platforms of NWJS replacing scirra's solution with them. The only reason why scirra did this was because c2 just looks at a programfiles location grabs from it and copy pastes a lot.  Basically all you need to do is just replace each platform files.

Closure Compiler

This one is googles so it is easy to update, but of course google makes downloading it hidden within walls and walls of text. Of course this means it may as well be close sourced. You can download the latest version of this compiler at: https://developers.google.com/closure/compiler/

Back it up: Goto: "\Construct 2\exporters\html5\tools\closure"  Create new folder name it "OLD" , put compiler.jar into "OLD" folder, then move new downloaded compiler.jar into folder, rename it to match old name if name is different.

Building from source codes

Keep in mind the GNU GPL software include with this also allows you to use dirivitives of the same software, meaning you can use modified versions of the same software which could have improved on it better than the normal ones.  For the software that does include source code you can improve on it aswell and improve it and use it so long as the license permits it which the GNU GPL software does.

After export optimization

The applications used will take multiple PNG images and put them together for a new image. So this is the time to actually limit the color pallets of each image. Now if you export using nwjs you the package file is just a zip folder. So open it using any file archive tool, and export the images out open using gimp, click on image, and color mode, then select index. Once you use color index select how many colors you want and if the image comes out distorted then ctrl z and try again, you can also select how from many color pallets and even make your own. Save the image and go onto the next image.

Also you may need to do resource hacking inorder to have a good icon for your project.  There are various tools to do this with since construct2 doesn't actually do this it just uses nwjs's native icon. I will talk more about this later.

Sound compression is another thing you can do after exporting, you can easily compress it more than pngcrush can, keep in mind you might be lowering quality which might be your goal as well for retro style games.  Keep in mind you can keep the same sound format which is important to do.

File including process

With construct 2 you can include any file you want with your project, This is where you want to include any licenses , readmes, and additional files such as a desktop ico image file because the icon file options do not always work with c2.

It is also important that you include any file dependancies such as video files, models, and any other applications. IE if you make a launcher using nwjs and rex's nwjs extended plugin. Keep in mind if you use other applications to include their licenses and keep them separate from your own via subfolders.

Keep in mind the more you include with your project the longer the download size will be and the larger the game will be with longer loading screens, but small text files won't matter much neither will the icon image so long as it is formatted for desktop icon resolutions.

Also I highly recommend you create a generic credits for all plugins you use so it will lessin the chances of them coming after you demanding money out of you for not including credits for what they did.


With updating these tools runs a risk of construct 2 breaking, I nor scirra will support you on this front, this process is do at your own risk with no warranty. These things are also liable to change faster than this guide can provide.

Newer versions or self built versions may cause problems, which is why I recommended you back up all older versions of the applications.

That being said when a problem happens, first attempt to find a solution, if you can't find a solution then comment explaining the problem the best you can in the comments.

No comments :

Post a Comment

Please be kind to others, and my self.

Rss Feed

Undeadbobop's blogs

↑ Grab this Headline Animator

My Other Blogs


I heart FeedBurner


construct 2 Nintendo game review ouya wiiu windows android games linux pc google Microsoft Chrome free mac web scirra Dreamout Sega chrome os controller development steam valve chromebook play controls programming youtube game development #nintendo 2d Apple DRM Wii help store template Dream chrome book gaming music unity update video video games 3d GNU/Linux How to SEO bus construct custom driver gamepad menu out raspberry pi rush tutorial HTML5 Nintendo Switch bad cheap console experience javascript online software website xbox 360 Genesis Iphone Pokemon go amazon art assets code font gamejolt halflife iOS os retroarch sale sega genesis sonic sound sprite support Doom Mario Megadrive Saturn Sega Saturn Switch adventure app chromeos clone css down effects emulation engine fix internet level life nes opengl phone problems snes source spritefonts spriter work 3ds Game development companies in detroit Game review Mario Kart Micro-transactions Playstation Scam Sony Sucks Ubuntu acer ad ads adsense adv advance advertisement affordable atari book bugs build c++ computer counter strike global offensive delay drawing emulator example free software gamestop gimp java kongregate lies modeling money network pack platformer project ripoff starter system undeadbobop web server webhosting windows 8 $oft 2014 Beginner C# Corsair DLC Developers Dreamcast Facebook Fishing NX Photoshop Retropi Sega Genesis Ultimate Portable Game Player Tech Things USA Virtual abuse acer 11 adv menu application apps arcade best bing blog blue bobop coin construct 2 gaming engine construct 3 construct2 counter strike crash csgo design develop directx face faceplate fps fraud game development tools give away glitches gnu googleplay graphics hackers halflife 3 halo issues itch.io libretro link low make make money fast maps menus movie nvidia of optimization options patch php plate pokemon pool pro raspbian retropie screw security sega dreamcast server sounds summer terrible tf2 top trirectimo up usb valve editor hammer virtual console voice vs web design wireless worst xbox 360 xml zelda 1 2 3 submit pro 2 25th Anniversary 5 AI America C# XNA Gamestudio CD Call of Duty Cast Comparison Controller Pro Controller Pro U Copy DVD Digital Direct Discs Dragon Drive East Detroit Eastpointe Eshop GBA Golden HTML ID Marker Microshaft Microsoft store in michigan Moore Mupen64 Nights Old PS2 Personal Peter Record RollApp Samsung Screenshots Secret Skateboard Sprite font Steam controller Super Mario TV VR review WoW XBL Zelda breath of wild abandon abandonware ad free advance menu system alternative amd angry app development art work assault audio away balls bfxr block blogger bo's breaks brick bride bug bundle bungie bus driver 2d experience rush capture card cards cat character cheaters choice chrome web browser club color commercial connect contest convict convict gaming corruption cost counterstrike create crush dead demo depression descriptions download e3 easy education electric electronic email emulation station emulators event evil exploit family fast feed flac flash fonts functions fx galaxy game development companies game development companies in michigan game engines gameplay gaming assets get gif give google chrome greed guide half halflife 2 head hl2 homebrew honest hosting improves information is issue item items jam jolicloud keyboard kick kickstarter kitten kitty lag lan learning liars lock making manager map menu system micro milkshape 3d minecraft misleading mobile mods monogame multiplayer netplay networking new news noncommercial not odd off one paint pewdiepie pie players playing plugins port program quake quick random red remote require rewards rip road save saving screen screenshot script sdl search settings site skate skeleton small snapshot song sprite sheet spyware steam box steam gamepad steam os steamos strike team templates terrorists text tic tac toe to tool tools top 10 touch tree unreal use version video game videogame vidme ware web server ultimate webgl webmaster websites webstorage webstore wedding world xbone xbox one xboxdone xboxone zombies #e3 10 10 ways 200 2015 2600 3.14 343 3:4 ratio 3DTin 3d modeling 5 nights 64 7 7th guest 8 90 AAC AIFF AMD Ryzen 5 API ARM AT&T ATT AVGN Ace Adriano AlphaOmegaSin Amiibo Android disable ads in games Animation Backlinks Balmer Batdan Bernie Bethesda's New Review Copy Policy Bill Blackjack Blackmail Bluetooth Boarding Bros Building Bully C++. directx CD Audio COPPA Cities Classic Computers Consoles Cool Corruption in gaming news journalism Creators Cyanara DDOS DMCA DMZ DNS Deluxe Detroit Documentations Dogs EA EU EULA Eco Edge gamepad Edition Emio Encore F.E.A.R. FCC Fanboy Feminism First person shooter Flowcharts Footage GPL Game development companies in michgian Gamer Gaming PC Gates Gear VR Genesis Ultimate Portable Game Player God Gold Google maps Grammar HD HDMI HP HTC Vive Halo 2 Halo 2 Anniversary Halo 2600 Halo Reach Halo legends ICEY ID Tech IDE IE IGN IOS 9 ISP IT Impact Impressions Install Irate Irategamer Japanese Jet pack Jim Kainy Kart Kim Jong-un Knuckles Kotaqu LG LGBT Las Vegas Last Launch Lenovo Library Linksys Lucid Lycoming mall MP4 Mad Mad over Mario Galaxy Mario kart 8 deluxe Mario odyssey Marker sprite font Media player Metro Michigan Microcenter Microsoft wordpress Monodevelopment Moon Mortal Kombat Mote Movies Musepack Mysterious NSA Navel Nes classic New PC Next Nintendo 64 North Korea November OC OS X OSX Ocarina Ohio Omega On off switch Onedrive Paradise Parts Paths Performance Pokken tournament Pokken tournament Pikachi controller Privacy Badger Projared Promotion Pygames Pyshell Python Python Fiddle RPG RSS Rage Reach Released Remix Retrobit Retroduo Retrogen ReviewTechUSA Rig Rock Rock Paper Shotgun Rockstar Roseville SMM SQL SWF SWJ Scholarship Shaft Ship Sin SkyDrive Smash Sonic 3d blast Speex Star Starling Steven Stolar Sun Super Mario Maker Super Smash Bros Tails miles Text adventure The Interview The Letter Tony Hawk Total Media Town TreeFall Studios Treehouse Tuner Twitch UML US Ubisoft VBA VLC Valor Vegas Vengeance Video game art Visio Vorbis WAV WMA Watch Watchdogs WavPack Wino WoW! Woofle XBLA Zilla accessories accounts achievements acting adapter adblock add on admin adreno advertisers airplane algorithms alone alpha always amazing amazon app store android development animal animate animated animations anime app developer in detroit Michigan appegg appspotr arch array ashleey assault cube asus atgames attack audience auto back back links background badges bag bags ball ballz bandicoot banks bar base basic basics basketball battery battle. DLC. link bayonetta beating bed bgoat big bios bioshock birds birthday bit bites black blackberry blacklist blade blast blender blockstorm bloodmoon blur bo boom bored borkin button boxes boy bricks broke broken brotherhood browser bsd buck bucks buggy bust buy c++. html c64 cable can can't canceled candy capcom car care caret-t caster cb3-111 cereal chair challenges change cheating checking chrome cast chromebooke chromecast app cinebench clara clara.io classical clearance client closure compiler cloud applications cloud computing cocoonjs code envy coding college colour comedy command comments community compatibility competitive market compile compiler complaints complete roms list computer AI connect 4 connecting cons constroller construct 2 gaming engine plugin construct 2 holiday plugin construct 2 plugin construct 2 time and date plugin content costume couch counter counter strike condition zero counter terrorists court cpu crafting crap crazy crd creating creation creativity credit crossing crusher ctf cubes cue curse cursor customization templates cylinders daniel date object dbz deathmatch dell demonetization desert desktop desura develoming developing development kit dial dialup died difficult dig disabilities discontinued dishonest disney do dollar done dos downfall drag dragonball dreams drug store ds duckduckgo dug dumb dumbphone dust button easter egg eastside ebaulms edge eminem emu end engines enlightenment entertainment environment ethics ever exclusive expand expired site exporting eyes fail fall fallout fallout 4 famous fan art fear features fees feminist file fill fire firecore firefox firefox marketplace firefox os firewall firm firmware first five flaw flickr food football for forget forgotten domain fortress fox frame frame rate framework freddy's free money free to play freeware fried friend friendship fsf full fullscreen fun gambling game asset pack game list game maker game servers gameboy gamegear gameinformer gamemaker gamers gaming easter eggs gaming engine garrys mod gas gears geek gender glitch glove go good google contribute google play google+ gore gorescript gpu grand grandtheft auto gray greedy green grey grid groom gta guestbook gunners h2100 hack halflive handheld hard hardware harmony hawk headphones headset hedgehog hell hexen highschool highscore hl1 holidays home homicide hook hori gamepad hotel hotmail humble humor hyperkin hypermart illegal image images index color indie indiedb industries industry informer inn input input device insomnia instinct institute instructors intel intel vs amd intentional internet explorer internet radio interview introduction ion ip ip address irish iron island isometric iwork jack james jelly jif jiggly puff jiminquestion job joint joke jokes journalism joytokey js k70 key keystation killed killstreak kingdom hearts kryo lMP3 land lash law legacy collection legal length lerp liar lib GDX light lilly lithium live load local locked logic logmein lonely loop lost temple text adventure low end lowest market ludei lynx machine macomb community college macombacon makefile maker manifest mapping market market share marketing marriage married master mechanical media megaman melody meow microsd microusb midi mii miitomo mike mike v mind mini mini game minimum wage minish cap misleads moddb modding mode models mogotxt moltres monetize monitziation montization monzilla mouse murder musial mussels mystic n64 nba need nerd net netlink newgrounds nexon nfl nitch no notepad++ now nurse nwjs nyan o'reilly odk office offline oggenc2 oh operation out of order out of service out there overscan p2p p2w pad paid pandora panic papagayo paper weight parody party passmark pause pay peer peerblock pewdie phones photo pi pi zero piano picture pin pink pixel art plagiarism plants plants vs zombies plastic platinum player playzool please plus pngcrush pngnqi pngout poke balls poker pokestops pool table popular populate portable posts power practice practive pre-order premade presentation preview price private processors promises promote provider ps1 ps3 ps4 public purple qlife qualcomm quest rack radio raffle ram rant rare raspberry pi zero rate razer recommend recording red cherry redit remove renaissance repair representation resources rest retirement retrode retron 5 retry rigging ripper river roads rolfe rom roms routing saga same score screen sharing screencastify scroogle scum seamless seed sega master system sequel servers service set setup seven card shapes share this shareware sharing shield shit shockwave shooter shop shot show your stuff off signs simple slavery sleep slip slow slumber smart smartboy smo snapdragon social media soda solitions spam sparks sparky spartan specialized spell check spelling spheres spoiler free spotify spyro stakes steam link sterling steve scott stop storm strategy game strategy guide stream streaming stud studio studios styles subscribe success super super famicon super mario maker bugs super mutants super nintendo sync systems table tac tags tamagotchi target target marketing tax taxes teachers teaching team fortress 2 crafting teams tegra temple run temple run 2 testing textbase texture packer the king's league odyssey the world theft this thoughts thunder tic tile tilemap time time date tin titles toe tony top 5 topic matter torque touchpad toys trading travel traveling trees tube unearthing union unusual usb 3.0 usb y useless users vc view views villager vimeo vine vintage virtual reality virus volume voxel wall wallet wan wave wayback web assembly websitesubmit what is my ip white wired word wordpress workaround workshop xbox gamepad xeno xenoblade xhml xl xna you yourself zapdose zip zombie zombie panic zombie panic source