Quote Originally Posted by kree8 View Post
I stumbled on this site by searching for the game "machine flow" which seems like it was developed by a fellow South African, the username is Nitrogen and Nitrogen2.
Interesting. I am a member of this forum for quite a while now but until now I never knew that "machine flow" was made by Nitrogen. I have its source code on my computer for several years but I never managed to compile it because of some third party dependency that I haven't manage to solve (couldn't find the missing library, don't remember which one it is).
Unfortunately Nitrogen hasn't visited this site for about 5 years now. At least not by logging in. Has any other PGD member been in contact with him recently?

Quote Originally Posted by kree8 View Post
What tips/advice do you have for me? Where should I start? I will do my best to check in with this forum everyday. Looking forward to meeting everyone.
If you are just beginning to learn Object Pascal and are interested in game development then I strongly recommend you star learning about these next basics:

1. Classes: Object Pascal is Object-oriented programming language and as in most object oriented programming languages classes are most important feature. Now you probably know basic idea of what class is from JAVA but in Object Pascal classes are even more powerful than they are in JAVA (at least based on my limited JAVA knowledge - tried my luck in JAVA and gave up because its syntax doesn't seem logical enough to me).
When used correctly classes can make your program very modular and lately I'm using them heavily in order to achieve data reusability. I'm in the process on writing a large tutorial about classes and their potential use in games (for to long now), but unfortunately I don't have as much free tine as I would like.

2. Arrays: You probably already know about arrays from JAVA and what they can be used for. What you might not know is that in Object Pascal you also have a Dynamic array. Unlike static arrays which are pretty much like arrays in JAVA dynamic arrays does not have fixed size. In fact you can change their size at any time during your program execution.
Object Pascal also supports multidimensional arrays and if they are declared as dynamic multidimensional arrays they have a rather unique ability in that their dimensions don't need to be of fixed size. Hard to explain without an actual example. In fact I don't know if any other programming language does support something like this out of the box.

3. Streams: Streams are actually series of classes that serialize data access like reading from and storing data to files or memory for instance. Their best part is that they are interchangeable (same approach for reading or writing data in different kind of streams). They can be a bit more difficult to understand at first but once you figure them out you realize how powerfully they can be.

NOTE: While Advance Reference Counting was introduced to Object Pascal I believe it can be a bit more tricky to make it work properly. Maybe this is because I haven't managed to grasp the concept entirely myself.
If you will be developing with Delphi make note that ARC is only available for MacOS and mobile platforms (newer version of Delphi is required) while on Windows ARC is still not available out of the box.
If you are using FPC/Lazarus make sure you select ARC based compiler (also available for windows) for ARC to be included in your program.
So unless you will be specifically using ARC in your program which is not default for Object Pascal you will unfortunately have to learn how to manage your objects yourself. In short this means you will need to learn when to create and when to destroy objects. So transition from JAVA which relies on ARC could be a bit more difficult.
But once you master this you will see that it has some advantages in comparison with ARC. Probably most notably advantage is that there are no Garbage collection hiccups which all gamers hate

Anyway welcome to PGD!