Well, I'm doing my living from Pascal Games for several years and I hope to be creating Pascal Games for a long long time yet, I don't see any reason to exchange to another language. Windows/Mac/iOS/Android. Pascal does have everything I need! =)
Druids Battle of Magic - Windows (Mac and iOS ports to be released)
http://www.bigfishgames.com/download...agi/index.html
Abra Academy - Windows
http://www.bigfishgames.com/download...emy/index.html
Abra Academy - Returning Cast - Windows
http://www.bigfishgames.com/download...ast/index.html
Dreams of a Geisha - Windows/Mac/iOS
http://www.dreamsofageisha.com
Sultan's Labyrinth - Mac and iOS
http://www.bigfishgames.com/download...ame/index.html
http://itunes.apple.com/en/app/the-s...hd/id465814548
http://itunes.apple.com/en/app/the-s...th/id465814690
Sultan's Labyrinth - A Royal Sacrifice - Mac (iOS to be released)
http://www.bigfishgames.com/download...ice/index.html
And I do have more 4 games scheduled to be released this year! Well, I'm really sure Pascal is not dead for GameDev! =)
Cezar Wagenheimer from Green Sauce Games
Programmer of Druids - Battle of Magic, Abra Academy, Abra Academy - Returning Cast, Rabbit Jump, Dreams of a Geisha and Heroes from the Past: Joan of Arc
Wagenheimer's Game Development Blog
First, notice I say "and it's derivitives", so I'm putting C#, C++, PHP, Java, Javascript, LSL, etc... Not just "C".
Second, they ALL share being needlessly cryptic, having a structure nowhere near that of assembly (despite the wild and nonsensical claims to the contrary, line numbered BASIC was closer to ASM than C in terms of syntax!), lacking all the tools to prevent errors in the first place that pascal does. No forward declaration, typo's instantly become new variables, complete lack of range checking, compilers so stupid they resort to =, == and === as separate operations, complete lack of a real STRING type, did we mention a complete lack of range checking and lack of a real string type so buffer overflows are inherently the name of the game? (admittedly modern pascal's have tread into this #DDD idiocy with pChar), the seemlingly random and inconsistent use of -> vs. . on STRUCT, the outright annoying idiocy of .h files (because maintaining two files that redeclare the same thing is SO useful.. admittedly I'm the same way about interface/implementation in unit), willy-nilly error handling...
... and did we mention it being needlessly cryptic? This is even MORE true of C++, which is even MORE half-assed and pointlessly so than C. It is probably the worst object implementation I've dealt with, and on the whole seems carefully crafted to make 100% sure every program is susceptible to buffer overruns, memory leaks, and illegible inconsistent code.
Though you do have a point, bad code is bad code, regardless of what language it's written in; the difference to me is the amount of bad code C lets past the precompiler, compiler and dozen other points at which they could easily have been trapped.
As the joke goes, Pascal won't let you shoot yourself in the foot
You want to see REALLY pointlessly cryptic though, have a good look at Rust... A language for the people who thought that C is a bit too verbose and clear for their tastes -- which is a bit like saying the Puritans who settled in Boston in 1630 traveled across the pond because the CoE was a bit too warm and fuzzy for their tastes.
Last edited by deathshadow; 17-06-2012 at 01:43 AM.
The accessibility of a website from time to time must be refreshed with the blood of designers and owners. It is its natural manure
Ok, now you're exgerrating a bit.
Uhm, forward declaration is exactly the thing .header files do in C. And if you mean forward declaration of variables, well, there's nothing that would hold you back from putting all the vardecls at function beginning, then slapping a newline or two and putting actual code. I don't know a lot of languages, but typos becoming new variables is mostly a PHP thing, where "first appearance equals declaration" is a means to make coding faster. No such thing appears in C/CPP.
Well, yep, this is somewhat annoying, but mainly due to the fact that = also returns a value (otherwise a=b=c would not be possible), so putting "if (a=b)" instead of (a==b)" works perfectly fine and most often, if the compiler isn't set to verbose, it won't even give you a hint that there is an assignment instead of comparison in the conditional. As for ===, I gotta say, that's my most beloved PHP syntax element.
derp. Sorry, but no. It's exactly the same as use of "^." vs. "." on Pascal records/objects. The -> operator in C-like languages stems from the fact that dereference is done by putting * before the varname - and, as far as my memory goes, the dot has higher priority than the asterisk, so you must do "(*a).b" in order for it to work. This thing is obviously hard to read, so to easen things up, the -> operator was introduced. So - if it's a static var, you go ".", if it's a pointer, you go "->", as you would go "^." in Pascal. Nothing random nor incostistent for me.
Every language has its pros and cons, that's needless to say. Pascal sometimes tends to get a bit to verbose, while minimalism is one of key traits of C. This most often makes writing in C-derivatives quicker and I'd even say, easier. As much as Pascal purposely introduces some error control, C purposely does not so - following the thought "if you don't want to, no one will force you". So, following the foot joke, it's kind of "compiler forces you to make sure you aren't aiming at your foot before shooting" vs. "you can shoot wherever you like and checking whether you're not aiming at your own foot is up to you".
As for me, one of the things that still keeps Pascal back is a lack of a good IDE. Recently I had to, as part of my studies, write an app in QtCreator - and honestly, I found it quite entertaining, as the thing had all the syntax completion I could ever long for, drastically reducing the amount of key-smashing needed. As for Lazarus, well, dunno, maybe it's just me, but I absolutely hate hate hate the "shitload of floating windows" type of interface - I would much prefer if there was an option to have a "single window with embedabble/movable/switchable panels" one.
I can't say for FPC/Lazarus but in latest versions of Delphi you can turn off a lot of theese error checkings. I personally rather see that compiler warns me of potentionally bad code rather than I have to go bughunting becouse of one single poorly writen line. I started programing in C++ and I must say that I had huge problems in making simple code work properly.
Pascal does have a good IDE and it is Delphi. It alows a lot of syntax autocompletion. The only thing about it is that it forces it's own style of code formating wich is a bit different that the one I'm using.
As for the floating windows from Lazarus. They are implemented like that to mimic Delphi 7 interface. It can become quite useful when programing on computers with multiple monitors. Having floating windows easily alows you to have code window on one screen and Form design window on the other.
And if we are talking about pros and cons I think that the biggest pro for pascal is the ability for quickly rebuild existing project (only units wich has ben changed gets recompiled all others are already compiled from before). Becouse of this you don't have to wait several minutes for some big project to be recompiled just to see how change of a single line affects your application.
I rember the days when I began programing in C++ and had to wait up to a minute to compile some of a bit more advanced Helo World program.
Yes I know that some of today IDE-s for programing in C++ already allow precompiled units but most of them are still slower at linking them together than Delphi for instance.
And finally I probably shouldn't even mention that in some cases Pascal based programs runs better than those made in C++ even when they have same function implemented.
Last edited by SilverWarior; 17-06-2012 at 03:40 PM. Reason: Fixing typos
Just wanted to comment on this: in all our projects, range checking is assumed to be off. The reason for this is that in many situations number wrapping is the desired behavior, not to mention that range checking slows the execution down, so it should only be used in debug builds anyway. The appropriate software design comes into mind that you should make your code fault tolerant and if a parameter has invalid range, you should return the feedback appropriately.
Regarding other syntax discussion of C++ vs Pascal, I think it's been fought to the death already and my opinion is that both have reasonably good syntax. For that matter, I try to stay away from Basic and its derivatives, and Fortran, which is, unfortunately, still quite popular in scientific community.
Last edited by LP; 17-06-2012 at 05:52 PM.
As someone already said, the future only depends on us using the language. Lots of people criticized my use of pascal instead of C++ for developing my engines and games, but over the years (around 15 of pascal) I've always proved them that it was more than enough for my needs
Definitely.
A good idea isn't enough, you also need good style, good execution and good marketing/buzz.
The game mechanics of Angry Birds f.i. were not invented by Angry Birds, there have been quite a few (more or less experimental) predecessors, and where Angry Birds succeeded was in:
- having cutesy characters that "scaled" well in the real-world and had enough fun/appeal (ie. good stylistic ideas, predecessors were unimaginative bomb or rock throwing)
- great execution on churning out levels and themes to keep the trend going (most predecessors had neither the polish nor the quantity)
- great marketing (viral buzz "the way it has to be done")
Overall I would say the code and engine are the simplest and cheapest part in terms of man/hours.
I put my 2 cents a bit late, but better late than never, and sorry if I perhaps repeat what said other people, I writing it in a rush need to support the language :$.
The fact is that you can do anything with Delphi, the other fact is that many people sweat only for Unity these years and so the old Objective-C. The fun of that is that the use of this language before it was lost in the fog.
We mustn't forget that Delphi must thanks to FreePascal/Lazarus duo to keep the language afloat, especially since there's no free version of Delphi for basic use. Visual Studio and Unity start free... But it's also a beaten debate...
Borland marketing is for a lot of the state of Delphi today, why ? because its main market position was for database dev, not very fancy isn't it ?
Embarcadero apparently try to break that with Firemonkey.
that's my 2 cents
Current (and lifetime) project: FAR Colony
https://www.farcolony.com/
I would also add that having a talented artist in your pocket doesn't hurt either. Nice looking assets can make all the difference from looking amateurish to professional or even stylistically cleaver. Minecraft might not have as much oomph in the 3D graphics department, but you still need someone with at least an ounce of visual talent to make the game look decent and complete all things need done.
From my experience I've noticed a huge difference in my own projects when I had a talented person who is committed to my graphics needs versus trying to create things myself or using programmer art or even friends and colleagues who don't exactly have a nack for professionally looking artwork. Garland's Quest as a direct example will be able to make a good run for it's cost on stores like Apple's App Stores and Steam thanks to the extra visual oomph that hiring a professional artist has given it.
Not that you have to hire a professional artist, but if you don't have a "committed" person with this talent in your group, you may need to shop around for one. ...and get a commitment!
This bares nothing for the language it's self as it's a common rule for an indie developer of ANY language. It's just good practice if you want to get serious with Pascal game development and want to have a good run of it. ...same is said of any language though.
I do however love seeing all the commercial games coming out from Big Fish games that stretch multiple platforms, especially iOS which proves it's being kept current by those making tools and libraries for it.
Cezar is a notable contributor to this cause. I hope to follow within a year or so with one of my own titles myself... finally!
Bookmarks