Tuesday, 8 September 2020

Can’t Upgrade Delphi RADStudio from Embarcadero

Why I used to love Delphi – but not so much now…

So I loaded up Delphi (Community Edition) this morning and I saw an unhelpful dialog box telling me that the software had expired and prompting me to enter a valid serial. I found my serial number, entered it, but it wasn’t accepted. What was I to do? The damned dialog box didn’t give me any other options.

Time to Google. Lots of other people had the same problem. Advice was to go to the Embarcadero site and download a new copy of the software: https://www.embarcadero.com/products/delphi/starter/free-download 

I did that. Or tried to. Every effort I made to log in failed with a warning that my session had expired. Maybe my browser (Chrome) was the problem? OK, so I tried in Firefox. Same error. In desperation, I tried the Microsoft Edge web browser. Amazingly, this time I managed to log in.

I now had to download the latest version of the software, uninstall my old version, install the new one, wait for a new serial number, enter that… anyway, eventually the installation went again successfully.

Look, I like Delphi. I’ve used its Object Pascal language ever since Delphi was first launched and before that I used its predecessor, Turbo Pascal, since the early 1980s. But, come on, chaps, this download-and-install palaver is nuts. You provide a free edition of Delphi (good) but you make it bomb out after a year and then you go to some lengths to make the reinstallation as painful as possible. It’s a positive incitement to use the open source Object Pascal alternative, Lazarus instead: https://www.lazarus-ide.org/index.php?page=downloads

The history of the free edition of Delphi is an odd one. From the launch of Delphi 1, way back in 1995, I was the Delphi columnist for PC Plus Magazine in the UK. I wrote Delphi programming columns every month for over ten years and readers could follow along using the free copy of Delphi that its developers, Borland, supplied on the PC Plus cover disk. Whenever a new version of Delphi was released, we had a new free copy on the cover disk.

Then the Borland programming team split away to form a company called CodeGear and they were quickly bought up by another company called Embarcadero. Sadly, Embarcadero didn’t seem to understand the importance of providing a free edition. I asked for one so that I could teach a course on Delphi. And for the first time ever, my request was refused. So I based that course on Lazarus.

In the meantime, Microsoft had decided that it would be a jolly good idea to provide free copies of its IDE, Visual Studio, to anyone who wanted one. Visual Studio doesn’t support Pascal as standard but it does support C# – a very good language that was created by Anders Hejlsberg, the man who had previously been responsible for Delphi before Borland made the unfortunate error or losing him and other members of his team to Microsoft. 

Now let me be ruthlessly honest. Delphi/RADStudio is a fine programming environment. But it’s not as good as Visual Studio. Visual Studio is simply the best. Embarcadero must have noticed that the Delphi market was dwindling while C# was very much in the ascendant. Rather (too) late in the day they decided to release a free Community Edition of Delphi. OK, so better late than never.

But then they go and implement this incredibly infuriating expiry, download and update mechanism. This doesn’t stop you carrying on programming with Delphi after one year is up. All it does, is make you very annoyed with the software and the company for making the update process as inscrutable and infuriating as possible. I have no idea why they do that. It’s bad PR, it’s bad marketing, it’s just really bloody annoying.

OK, so I finally have Delphi reinstalled. But I now feel so ill disposed towards it that I think I’ll spend the rest of the day programming in Visual Studio!

Tuesday, 1 September 2020

Program Adventure Games with the BIFF Framework

As a passionate adventure game player and programmer, from the 1980s onwards, I’ve decided that the time has come to help other programmers embark on the noble quest of developing retro-style adventure games. I’ve already taught a course and written a book (available on Amazon US, Amazon UK and worldwide) on writing adventure games in C#. But if you’ve never written a game before you might still find it hard to implement all the features needed. Wouldn’t it be great if someone had already written a library of classes that encapsulated all the essential behaviour needed for a game – a parser to interpret text commands, Rooms to create a map, Treasures to create objects, actions to let the player look at objects, take, and drop them or put one object inside another one?

Welcome to BIFF!

BIFF is short for The Bitwise Interactive Fiction Framework. I’ve spent much of the last year writing this framework in Java and now I’m starting work on translating it into C#. The Java version of BIFF is currently more complete – it can handle reasonably complicated commands such as “Put the small golden egg into the big carved wooden box” or “Unlock the treasure chest with the magic brass key”. I will make BIFF for Java freely available later in the year.

Since many people have already read my C’# book or followed my course, I decided that, rather than wait until the C# release of BIFF has all the features in the Java version, I would release BIFF for C# in incremental stages so that existing readers and students can carry on developing their games using the new features. This necessarily means that the early releases will always be substantially incomplete. However, if you want to deepen your understanding of game programming, this is a great opportunity for you to try to modify the latest release by adding on additional features. You are free to modify BIFF as required as long as you leave my copyright notice in the comments of the source code.

To download the code of my C# adventure game book (whether or not you’ve actually bought it!) as well as the current release of BIFF for C#, juts sign up to my mailing list at www.bitwisebooks.com. Meanwhile, here is a short introduction to BIFF…

Friday, 28 August 2020

Adventure Games In C# – the next step

If you’ve read my book or followed my course on adventure game programming in C#, you will already know how to create a map of linked rooms which the player can wander around in order to take or drop treasures. You will be able to communicate with the game using simple English language commands such as “Take the sword” or “Put the coin into the box”. 

But what happens if there are several swords in the current location? In that case, when the player enters: “Take the sword” you want to game to reply:

“So you mean the gold sword, the silver sword or the Elvish sword?”

And when there are multiple coins boxes here, the player should be able to enter:

“Put the small silver coin into the big carved wooden box.”

In order to do that, we need adjectives – “big, small, gold, silver, carved, wooden” and so on. To implement that I’ve begun to extend the code that was supplied with my book. My aim is to create a reusable game framework of ready-to-run classes that you will be able to use to program your own games. This code is in its very early stages at the moment. The main new feature is the addition of adjectives to the parser. I have not yet defined properties to match those adjectives for the treasures. That is, while you can say “take wooden box”, the game doesn’t yet check if the box you want to take really is wooden. I’ll add that in a future update.

The game framework is called The Bitwise Interactive Fiction Framework (BIFF) for C#. I’ll also shortly be releasing a version of BIFF for Java. To keep up to date with developments and download the source code for BIFF (and for my any of my books and YouTube tutorials), just sign up to our mailing list on: www.bitwisebooks.com.

Saturday, 8 August 2020

Camtasia 2020 Broken Backward Compatibility

In my recent review of the screencasting suite, Camtasia 2020, I said that “The latest release of Camtasia is less focussed on adding big new features than making the existing features easier to use”. Since writing that review I’ve become aware of one feature that makes Camtasia harder to use – well, for long-time Camtasia users at any rate. Because the new release no longer supports old Camtasia file formats. That means that if you made some recordings a few years ago and you want to load and edit them with Camtasia 2020, in all probability you won’t be able to do so.

Put simply, Camtasia 2020 no longer supports older Camtasia project files (with the extension .camproj) nor screen recording files (ending .camrec). I Googled for help on this and the only solution I found (in the Techsmith forums) was to use Camtasia 2019 to convert .camproj files and then load those into Camtasia 2020. But even if you do that, the individual clips (.camrec files) are invalid so in effect the conversion fails. I contacted Techsmith to see if the company had a solution to this problem. This is what the Camtasia project manager replied:

“You are correct that both camproj (projects) and camrec (recording) formats were retired in 2020. We replaced both formats many years ago (I believe TREC was introduced sometime in 2014 in version 8 of Camtasia) to introduce cross-platform project and recording support between Windows and Mac. You are also correct that the solution for opening camproj files is to open them in 2019 and then convert them to the tscproj format. Unfortunately, there was no easy or fast method of handling this for camrec to TREC format. We investigated to see if this would be worth the investment, but only a very small percentage of imports (something like 0.05%) were camrec format.

“Probably the easiest workflow for getting these older videos into 2020 will be to install Camtasia 2019, which will install the camrec shell extension. With this, you can right-click on camrec files in the Windows File Explorer and extract the video as an AVI. You can then bring this video into Camtasia 2020 (note that this will not include any cursor data though; if you need the cursor, you will have to produce the video from Camtasia instead).”

Friday, 31 July 2020

Medieval Knights and YouTube

Mediaeval history is not a subject that I often discuss here but I am going to make an exception to that rule because I've discovered the best history videos I've ever seen (and that includes those made by TV companies such as the BBC or The History Channel). They are all freely available on YouTube and if you have the slightest interest in how knights managed to go into battle wearing armour, how they trained their horses, what they ate, how their swords were made - in fact, if you have any curiosity about what the Middle Ages were really like (not what they look like in the movies), I have this simple advice: subscribe to the Modern History channel today!

This is just one of their videos...


This channel is the creation of Jason Kingsley, the founder and CEO of the Rebellion computer games company. When not running his business, he lives the life of a mediaeval knight. His channel is one of the great gems of YouTube. He really brings history to life. He goes to an armourer to see how suits of armour were made. He puts the 'shield wall' battle strategy to the test. He has sword fights, he jousts. He doesn't just talk about things - he actually does them. I am blown away by this channel. It deserves to be much better known. 

Monday, 8 June 2020

Camtasia 2020 Review

Camtasia 2020 $249

Camtasia is a long-established and widely-used screen-casting program, available for both Windows and Mac. It lets you record direct from your computer so it’s ideal for making software demos, tutorials and walkthroughs. Here I look at the newly released update, Camtasia 2020, which I tested on Windows 10.


Camtasia is a great tool for making screencasts. It lets you record from the whole screen, from a selected window or from a marked rectangular area. Optionally you can make a simultaneous recording from your webcam and there are even tool to add annotations – boxes, circles or free-form drawings – while you are recording. When you stop recording, your new video clip is added to the Camtasia editor. In the editor you can arrange multiple clips on a stack of tracks. Clips can be cut, moved, slowed down or sped up. Adjacent clips can be smoothly joined using transitions to fade one into the next or create dissolves and folding effects. You can zoom in or out, add annotations and callouts (text and speech bubbles), and apply various types of animation. You can do basic audio editing to change the volume and remove background noise. And, if you recorded your webcam video in front of a coloured backdrop (usually a green screen) you can remove the background colour so you appear ‘in the scene’ that you recorded from the computer screen.

The latest release of Camtasia is less focussed on adding big new features than making the existing features easier to use. For example, whereas previously each new project started as a blank workplace waiting for video to be added, there is now the option of picking a pre-designed template that sets up a project complete with intros, outros, animations and titles. You can also create your own templates and save those for re-use.

These are some of the downloadable templates that can be used when starting a new project

The theme management has been extended too. You can create themes to do things such as set the colours and fonts of annotations and callouts. Camtasia 2020 now lets you preview the effects of those themes in the Callouts panel.

A Favourites panel has been added to the workplace. This lets you group together the tools and effects you use most often. For example, if I find I frequently use the Fade transition but rarely any others, while I use the noise-removal tool but not the other audio tools, I can click a ‘star’ icon in the corner of each tool or effect in order to add it to the Favourites panel. Then when I need to add transitions, audio effects, visual effects and annotations, I can select them from the Favourites panel instead of having to load up half a dozen different panels and scroll down to find the item I need.

The editor has gained a few handy features too. You can now add placeholders to the timeline. These are like ‘empty’ clips. You can move, cut and resize placeholders and then add an actual piece of video by dragging it onto the placeholder. This also makes it easy to replace one clip with another. If, for example, you’ve already finished a project but decide to replace a single clip, you can change the existing clip into a placeholder then add a new clip to it without being forced to re-edit the rest of your project.

Tracks have an optional ‘magnet’ mode. This means that adjacent clips automatically snap to one another, eliminating any gaps. The timeline can be detached so that it can be used in its own floating window. This is particularly useful if you are editing on a multi-monitor system, since you can place the timeline fullscreen in the second monitor.  

Here I'm editing on a dual-monitor PC. I've detached the timeline so that I can use it fullscreen (left) on my 2nd monitor

Track mattes are a new effect that can be enabled for media with ‘transparency’. In effect this removes the transparent areas from an image or video to allow clips beneath it to show through. If you want to share your customised changes to Camtasia – themes, shortcuts, templates and so on – the new package exporting tool simplifies this process by giving you the option of selecting the specific things you want to export. These are saved to a file and can be imported into an installation of Camtasia on another computer.

The official Camtasia 2020 demo

Although Camtasia can be used to edit and produce video recorded from any source (such as digital cameras), its real strength is in recording action from the computer screen. There is little change to the screen-recorder in this release apart from the ability to record up to 60 frames per second (the previous maximum was 30 fps but see HERE for a technical explanation of the actual framerate). It would have been nice to have had the option to record from webcam alone (without also recording from the screen) but this still isn’t possible. If you want to record a plain ‘to camera’ video you have to record the screen as well and then delete the screen-recording in the editor. 

The Recording toolbar

While there are various free templates, themes and resources available for Camtasia, these have to be downloaded, one at a time, from the web site . It seems to me that it would have been better if they were installed by default or, at any rate, downloaded in a single step. To be honest, this would seem to be the perfect project for Camtasia’s new package import/export feature to let the user import all additional content in one go.  Also, bear in mind that while some of these ‘added extras’ are free, others require a subscription. A subscription also gives you access to other resources such as royalty-free video footage,  images, music loops and sound effects. The subscription costs £192.95 a year, so you would probably need to use quite a lot of the available content to make it worthwhile.

Which brings me to the subject of the cost of Camtasia itself. At around £241, it’s not cheap. Bear in mind that many general-purpose video editors (software aimed mainly at editing video recorded from a camera) now include a screen capture tool, including modestly priced software such as Cyberlink PowerDirector (about $99) or even free software such as OBS Studio.

Obviously, if free is what you are looking for, OBS Studio is the way to go. But while it is extremely powerful (and can be used for streaming as well as recording), it’s by no means as easy to use for recording and editing screencasts as Camtasia. If, on the other hand, your main requirement is a general-purposes video editor and only occasionally need to record from the screen, PowerDirector is a good choice. 

But if screen-casting is your main requirement, Camtasia remains my top recommendation. The purchase price is justified if you regularly need to record and edit pro-quality screencasts. Given the relatively modest updates since the previous release of Camtasia, however, I can’t help thinking that the upgrade cost for existing users (£96.48) is a bit steep.

So, in short. Camtasia 2020 is an excellent screen-casting suite. The additions to this new release (as in the last couple of releases – see my reviews of Camtasia 2019 and Camtasia 2018) are useful but not extensive. While it’s not the cheapest software of its type, if you need an easy-to-use, fast and efficient screen-casting tool that lets you get your work done quickly, Camtasia would be a great choice.

Tuesday, 14 April 2020

Which programming language should you learn first?

There is a huge range of programming languages and a beginner may wonder where to start? Java, C, C++, C#, Python, Pascal, Ruby, Go, etc. The choices are overwhelming. In this video I give my thoughts on which languages would be good to start with - and which ones you should avoid!