Updates to the “Modern Object Pascal Introduction for Programmers”

Posted on

I wrote a few new chapters to the “Modern Object Pascal Introduction for Programmers” book:

It is also available now under a shorter URL, on a new domain for our Castle Game Engine. The book is not tied to the Castle Game Engine (I want it to be something useful on it’s own). Although it is also part of my plan for “how Castle Game Engine can succeed”, as it helps programmers interested in Castle Game Engine to use the Object Pascal language 🙂 If you like it, please consider supporting me on Patreon !

Comment on this post ➤

In Space Everyone is Screaming (gamejam game:)

Posted on

in-space-everyone-is-screaming_screen_1
in-space-everyone-is-screaming_screen_3
in-space-everyone-is-screaming_screen_4
in-space-everyone-is-screaming_screen_5
in-space-everyone-is-screaming_screen_10

Simple platformer-shooter done during 12-hour gamejam using Castle Game Engine! Binaries on https://gitlab.com/michaliskambi/in-space-everyone-is-screaming/tags/v1.0 , source code on https://gitlab.com/michaliskambi/in-space-everyone-is-screaming . This is really just a technical beginning, without any playable level design, or fancy enemies swarms, or graphics.. But it’s a working start, with jumping and shooting and enemies, ready to be extended! 🙂

Comment on this post ➤

Build tool, iOS, Android great improvements!

Posted on

DSC_0248
DSC_0235
DSC_0236
DSC_0237
DSC_0238
DSC_0245
DSC_0246
DSC_0247

First of all, I’m proudly attaching a few images of various games using Castle Game Engine running on a real iPhone:)

Our build tool got some significant improvements lately. I hinted about some of them in the recent “Easy compilation for iOS” announcement, but actually there’s more, and some of them benefit all platforms 🙂 Here are the details:

  1. Using the "castle-engine-output" directory for compilation temporary files (.ppu, .o), and for Android and iOS projects. The advantages:

    • The compilation files are kept per OS/CPU, so they can be reused more (no need to recompile everything just because you switch platforms).
    • The Android project is in a predictable location (not in some /tmp/castle-engine-), which is useful to run ‘ndk-gdb’.
    • The iOS project is in a predictable location, which is useful to run XCode.
  2. Project files (lpr) for Android, iOS (and soon — for others too) can be auto-created. So you really don’t have to write anything to recompile your project for a new platform. You only need to provide game_units in CastleEngineManifest.xml, and make sure your units initialize Application.MainWindow . Make sure you define game_units in CastleEngineManifest.xml.

  3. Android packaging process fixes and updates.

    • CGE code fix for using (exact) FPC 3.0.2 to cross-compile to Android.
    • The build tool no longer requires so many things (from Android SDK and NDK) on $PATH. It can guess everything’s location now from ANDROID_HOME (your SDK location).
    • Much improved wiki page about installing Android dependencies. In particular, it contains now screenshots how to use the “SDK Manager”, that is integrated in “Android Studio” and replaces the old “android” GUI tool from previous SDK versions.
  4. iOS-specific improvements:

    • The iOS wiki page was much improved and updated, to describe the process of compiling to iOS.
    • The src/library/compile-iOS.sh script was reworked and updated. Many changes, but in principle it should generate exactly the same thing:)
    • The "castle-engine compile --target=ios" is available, and generates a ready libxxx.a to be inserted into an XCode project.
    • CastleWindow “library” interface (used for iOS in a library) simplified.
    • Package any game for iOS! Just run "castle-engine package --target=ios" and you get an XCode project, that compiles out-of-the-box in XCode, and can be tested and published from XCode. You can add --mode=debug if you like.
Comment on this post ➤

Easy compilation of your games for iOS

Posted on

screenshot
screenshot2
screenshot3
screenshot4
screenshot5
screenshot6
screenshot7

Trivially easy compilation of your games to iOS!!!

You can now take any Castle Game Engine game, and recompile it for iOS (iPhone, iPad) easily. No need to write *any* iOS-specific code. Short instructions:

  1. Follow iOS documentation to get FPC, with a cross-compiler, for iOS targets.
  2. Inside CastleEngineManifest.xml, define game_units="...", listing the necessary game units to be included in your lpr. It’s often just a single unit, that pulls other units along as dependencies.
  3. Run "castle-engine package --target=ios --verbose" in console.
  4. Open the resulting project in XCode. From XCode you can build it, run it in a simulator, publish… I emphasize that the project builds out-of-the-box on Xcode, zero modifications on your side are necessary. Just open the project, and press “Run” button in XCode.

I will be posting more details (and polishing some rough edges) soon 🙂 Learn more about the build tool (“castle-engine”) and CastleEngineManifest.xml at these wiki pages. I just updated them with information about --target=ios and game_units.

Many thanks go to Szymon Stoma and Ten Square Games for making Apple hardware available to me, making it all possible!

And a great many thanks to Jan Adamec, who made the initial iOS work in our engine! Everything I did was just rehashing of that work, to integrate it with the build tool.

Comment on this post (8 comments now) ➤