My game Raildale is now available on the App Store for iOS and Mac OS X. You can find more information about Raildale here.

Objective-D – alternative or supplement to Objective-C

Objective-C, about which I wrote the previous article, is a language with many problems and inconveniences. But we have to write applications for iOS using this language. Therefore, I have developed another language, which generates Objective-C code, and where you can simply use an Objective-C class and a C function. You can also use a generated class in an Objective-C code. It’s therefore no problem to develop in two languages at the same time. I have named this language “Objective-D”.

Top 13 worst things about Objective-C

Please don’t think I hate Objective-C, but…

  1. Bulky syntax

    You have to write a lot of code to declare a class or a property. Compare this code in Objective-C with the code in Scala:

Geometry of lines in game development

When I started developing Raildale, I didn’t think that lines would be a problem. I, however, did not manage to find any good articles suitable for game developers about this theme. I was trying to solve the collision detection task, and I had to find the intersection of lines. I found many articles for amateurs, but there were many numbers and no good formulas. That’s why I had to solve this task myself.

I thought it would not be very difficult, but I realized that I had forgotten mathematics and solving of a simple system of equations was a problem for me. I was surprised since I was strong in math and geometry during my time at university. However you lose control over some skills if you don’t practice them.

I will rely on vectors in this article. So if you are not familiar with the concept of vectors, I would advise you to read this great article first.

Language-Oriented Programming

Most programmers are unaware of the concepts and latest trends in Language-Oriented Programming (LOP). This programming paradigm can be extremely useful in decreasing the overall development time and for reducing the number of bugs. This model has numerous other benefits as far as the overall progress of the project is concerned.