# Comfortable Windows installer of Castle Game Engine, plus notes how to integrate InnoSetup with Jenkins and into your own applications

**URL:** <https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711>\
**Category:** News\
**Created:** [January 8, 2023, 12:05pm UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711 "2023-01-08T12:05:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [January 8, 2023, 12:05pm UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711/1 "2023-01-08T12:05:07Z")

</div>

| [![Castle Game Engine installer](https://forum.castle-engine.io/uploads/default/original/2X/c/c10b58272ca752079829fc3792a170a24fe65c54.png)](https://i0.wp.com/castle-engine.io/wp/wp-content/uploads/2023/01/cge_installer_3.png?ssl=1 "Castle Game Engine installer") |
| [![Castle Game Engine installed on Windows](https://forum.castle-engine.io/uploads/default/original/2X/b/bfd8501371c65b3c922135039f60a9ae257e9787.png)](https://i0.wp.com/castle-engine.io/wp/wp-content/uploads/2023/01/cge_installer_4.png?ssl=1 "Castle Game Engine installed on Windows") |
| [![Castle Game Engine installer](https://forum.castle-engine.io/uploads/default/original/2X/f/f6e58a6c8bdefcf2ba72c2d899d9921f106f4790.png)](https://i0.wp.com/castle-engine.io/wp/wp-content/uploads/2023/01/cge_installer_2.png?ssl=1 "Castle Game Engine installer") |
| [![Castle Game Engine installer](https://forum.castle-engine.io/uploads/default/original/2X/5/52aaf432a239869f5a49b1e9e6111241bc0fb742.png)](https://i0.wp.com/castle-engine.io/wp/wp-content/uploads/2023/01/cge_installer_1.png?ssl=1 "Castle Game Engine installer") |

Our [Castle Game Engine download page](https://castle-engine.io/download) now recommends Windows users to download the engine as a self-extracting installer (EXE), which is a typical installation method on Windows.

The installer is done using excellent and popular [Inno Setup](https://jrsoftware.org/isinfo.php). It will install CGE to a user directory, like `C:\Users\USERNAME\AppData\Local\Programs\Castle Game Engine`. The installer automatically creates menu and desktop shortcuts, shows you the license summary, runs CGE editor for the 1st time if you want and generally makes the whole process completely straightforward for Windows users.

This is similar to e.g. [VS Code](https://castle-engine.io/vscode), that also uses InnoSetup and installs for the current user. Note that we don’t install VS Code with CGE (though we may in the future), and as always you have a choice which IDE to use — VS Code, Lazarus, Delphi, Emacs or really any text editor you find suitable to edit Pascal.

As a bonus, unpacking using the InnoSetup is also _much_ faster than unpacking the zip using built-in Windows zip support.

TODO: Note that the installer right now does not make system-wide install. I have an option to activate system-wide installlation for CGE (and the setup can offer you a choice whether to install for current user or system-wide). But it is hidden for now, because system-wide installation means that examples are read-only, and it means you cannot easily explore + just build / tweak the examples. At some point in the future, we should allow you to open example by _making a copy of it_ and then we’ll reenable the option for system-wide installation here. Note that everything else worked smoothly with system-wide installation, the CGE editor and build tool work as usual, our tools in general have always been written to handle the case when they are installed in read-only directory.

Since you know I love automation and CI / CI, of course the whole process of building the installer is automated, and thanks to InnoSetup it was really trivial to automate. So the installer is rebuild using [Jenkins](https://castle-engine.io/jenkins) after every commit (that passes a number of automated checks) and you always have the installer for the latest CGE snapshot available.

1. We keep a [ISS file describing how to package CGE](https://github.com/castle-engine/castle-engine/blob/master/tools/internal/pack_release/cge-windows-setup.iss).

2. Our [pack\_release.sh](https://github.com/castle-engine/castle-engine/blob/master/tools/internal/pack_release/pack_release.sh) script has an option to, once it prepared the CGE distributable files, instead of zip it can create a setup. To do this, it calls `iscc` with parameters that define input, output directory, version etc. It looks like this (this is bash script):

3. And that’s it 🙂 Jenkins archives the resulting exe, our scripts copy it to a [GitHub release of the next snapshot](https://github.com/castle-engine/castle-engine/releases/tag/snapshot), and we [link to them](https://castle-engine.io/download).

The process was very straightforward I have to say, and in the future we will likely add an easy option to package your games into a self-extracting Windows installer too (using InnoSetup under the hood). For now, you can roll such setup on your own, using the output of CGE package in “directory” format as a start (input for Inno Setup) and following above notes and just [Inno Setup documentation](https://jrsoftware.org/isinfo.php).

---

<div class="post-metadata">

**Author:** ![Wysardry](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/wysardry/32/266_2.png) [@Wysardry](https://forum.castle-engine.io/u/Wysardry)\
**Post date:** [January 8, 2023, 5:08pm UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711/2 "2023-01-08T17:08:27Z")

</div>

Personally, I find this a little more confusing than before.

Firstly, the filename for the installer executable does not give any clues that it is for Windows (other the .exe suffix) nor whether it is 32 or 64 bit. It would be less confusing if it followed the same naming conventions as the other files.

Also, it isn’t clear from your description whether installing VS Code is _optional_ for those that prefer to use another IDE such as Lazarus.

---

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [January 8, 2023, 8:51pm UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711/3 "2023-01-08T20:51:54Z")

</div>

> [@Wysardry](#):
>
> Firstly, the filename for the installer executable does not give any clues that it is for Windows (other the .exe suffix) nor whether it is 32 or 64 bit. It would be less confusing if it followed the same naming conventions as the other files.

It’s linked under “Windows…” on [Download | Castle Game Engine](https://castle-engine.io/download) 🙂 And as you say, it is .exe – so naturally it is for Windows.

As for bits: This _is_ the version of Castle Game Engine for Windows we recommend you to download, whether you want to build 64 or 32-bit applications. To build 32-bit you just combine it with a compiler that makes win32 applications (FPC or Delphi), but regardless of it you can use CGE editor in 64-bit mode.

Most of the world has moved to 64-bit by now, and we don’t actively test CGE editor on win32 (even though it should work). So you really should use CGE editor win64 version. And you likely should also make win64 applications, this is what users generally expect, unless you really have some specific needs.

> [@Wysardry](#):
>
> Also, it isn’t clear from your description whether installing VS Code is _optional_ for those that prefer to use another IDE such as Lazarus.

Nothing has changed here, and the installation is _not_ bundled with VS Code. I see how the text in my news announcement could be confusing, I edited it – the point was just that [https://code.visualstudio.com/](https://code.visualstudio.com/) installer for Windows is also using InnoSetup and ends up installed alongside CGE. But this is unrelated to CGE, i.e. we do not install VS Code automatically (yet).

And as always, and we mention it also on [Install | Manual | Castle Game Engine](https://castle-engine.io/install) , the choice of IDE is yours. VS Code, Lazarus, Delphi, Emacs or really any text editor. This will never change, whatever we will recommend as default. Any IDE you like is suitable to edit Pascal code.

---

<div class="post-metadata">

**Author:** ![Wysardry](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/wysardry/32/266_2.png) [@Wysardry](https://forum.castle-engine.io/u/Wysardry)\
**Post date:** [January 8, 2023, 9:36pm UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711/4 "2023-01-08T21:36:46Z")

</div>

Thanks. The description is much clearer now.

Does the installer make it any easier to update CGE?

When I mentioned the filenames being confusing, I meant on the GitHub latest releases page, where the filename is the main way of knowing what each file is.

---

<div class="post-metadata">

**Author:** ![michalis](https://forum.castle-engine.io/user_avatar/forum.castle-engine.io/michalis/32/3_2.png) [@michalis](https://forum.castle-engine.io/u/michalis)\
**Post date:** [January 9, 2023, 2:15am UTC](https://forum.castle-engine.io/t/comfortable-windows-installer-of-castle-game-engine-plus-notes-how-to-integrate-innosetup-with-jenkins-and-into-your-own-applications/711/5 "2023-01-09T02:15:57Z")

</div>

> [@Wysardry](#):
>
> Does the installer make it any easier to update CGE?

Not (yet). There is no auto-update feature (for now). To update CGE, you just have to go to [Download | Castle Game Engine](https://castle-engine.io/download) and download and install the new version.

When and how we will deal with auto-updates is a task for the future 🙂 Definitely first we need to finally release 7.0 and then get on some reasonable “release cycle” (i.e. recommend to users stable 7.0, 7.2, 7.4 etc.) instead of recommending “7.0-alpha.snapshot” 🙂

InnoSetup makes sure that if you install another version of CGE on top of existing, it will be upgraded properly (you don’t need to make explicit “uninstall” before doing explicit installation of new version).
