PDA

View Full Version : Open discussion: What game devs need from Delphi



WILL
26-07-2013, 11:18 PM
Hey everyone! So I just finished talking with Embarcadero's new Lead Evangelist, Jim McKeeth.

It was mostly pleasantries until we started talking about you know what. Not that the conversation got bad or anything, rather the opposite. In short there were two cool things concerning you guys that came out of it.



Adding some PGD community members to Embarcadero's MVP Program (http://www.embarcadero.com/embarcadero-mvp-program)
He suggested that we create a little workgroup among himself and David I. with myself and a select few people from the PGD community


In short the small workgroup would discuss what we, the community, really need as game developers from Delphi. You all know my misgivings and what I've been hollering for for years. Are your thoughts in line with mine, do you have specific needs for your game projects. Do we need or like FireMonkey? Do we like where the mobile compilers are going? Do we need specific IDEs or other tools that aren't with the suite right now. How about bundling of "editions"?

The idea is not to turn this into a rant or a hate-fest. There is lots of that around the web already. I would like this thread to be a bit more constructive than that. And not another price debate either. (That's going nowhere!) Lets focus on what things it should include and

So lets talk about what your dream Delphi would be. What would be what you want and don't want or need?

For my money, I don't need all those visual components or database components or big business reports stuff in fact not even a visual form designer. Get me into OpenGL or whatver other graphics API I'm using and I'm good, I'll take it from here. I also would like to run it on Windows or Mac OS X without having to hook up all these annoying server apps that take a lot of configuring and other nonsense. That's me.

So what is your opinion?

And if you haven't voted in this oppinion poll yet, please do! http://www.pascalgamedevelopment.com/showthread.php?6397-Light-Edition-of-Delphi-at-a-Low-Cost

Sascha Willems
27-07-2013, 09:30 AM
First and foremost they need a free version of Delphi to get a foot into the game development community. Many people (including me) that did their game development with Delphi have moved over (at least partially) to Lazarus and FPC or other languages. Most of the stuff that makes Delphi great for application develeopment (which I'm earning my living with) is pretty useless for game development. I'd say you could remove 90% of the VCL-components for such a version. No need for database stuff, reporting tools, fancy VCL-styles and such.

For developing games you need direct access to a rendering API like OpenGL on all supported platforms. I've offered CodeGear / Embarcadero to include our headers several times without any real interest from them. The OpenGL headers included are like ten years old, miss all the current OpenGL stuff and are partially erratic, so including up-to-date headers for at least OpenGL would be the first step in the right direction. And someday we may get to a point where a group of us could develop an OpenGL (ES) based UI that could ship with delphi and be used for creating UIs in games.

As far as FireMonkey goes they should just drop it (at least for the free / game dev Delphi version). FM doesn't have a good reputation and isn't native at all. As a game developer with multiple targets in mind I want to use native API calls to create and manage my windows, and not some layer between like FM is.

And one really important thing (especially for Indies) are multiple platforms. They need to at least add native platform support for Mac OSX and Linux (Android would be great too, wonder how their announced implementation for that with XE5 looks like).

Along with that they need native ports of the IDE to those platforms too. The need to have two operating systems (one real, one a VM) and remote debugging to actually see and test your app on e.g. Mac OSX or Linux (if that'll ever get added) is cumbersome.

These are my initial thought's on this, and right now I think they'll have a hard time to compete with Lazarus/FPC on the game development front. I've evaluated XE4 and even made some Mac OSX apps with it, and compared to Lazarus they still have a long way to go, and since I moved over to multiple platforms I'm still baffled at how great this works with a free (open source) IDE and a free (open source) compiler, and how far Delphi is lagging (even down to the compiler and language features).

Dan
27-07-2013, 10:07 AM
I have to agree with Sascha on several points. Even if Delphi was free it cannot compete with fpc/lazarus in terms of features valued by game developers. The first and the most important is a powerful cross platform compiler and delphi does not have that yet. So imo they should really concentrate on the compiler.

laggyluk
27-07-2013, 10:09 AM
When I look at Embarcadero's Delphi I see a nice but pricey tool for corporate/business use. For game dev we don't need all the vcl components but if we strip them then what's left? Lazarus is already ahead of Delphi when it comes to 'multiplatforming' so I don't know if it's worth the time to talk to Embarcadero. It would be nice to have cheap Delphi edition but since Lazarus is already here then do we really need it?

LP
27-07-2013, 02:01 PM
The first and the most important is a powerful cross platform compiler and delphi does not have that yet. So imo they should really concentrate on the compiler.

Can you please elaborate more on that? What you feel needs to be improved? Are you talking about Intel x86, x64 or iOS/Android LLVM compiler?

SilverWarior
27-07-2013, 02:34 PM
WARNING! Long post ahead :D


In short the small workgroup would discuss what we, the community, really need as game developers from Delphi.

I would be interested in being part of such group.
But being part of Embarcadero MVP program? I don't know. If I understand their decription of this program correctly the main goal of it is promoting of their products. Now I can't go and say to sme pepole "look this is a verry good feature" when I know myself that that is not good feature becouse it has some bugs etc.



Do we need or like FireMonkey?

Overal idea of FireMonkey is good but its implementation is verry poor (slow performance, ackward usablility, bugs, etc.). So until it improves a lot it won't play of much importance to me.



Do we like where the mobile compilers are going?

Since I still have no expirience developing mobile applications I cant actually express my opinion on this.
But when reading various blogs about the cahnges that has been done to the programming language itself for new compiler to work I must say that I don't like what I'm seeing.



Do we need specific IDEs or other tools that aren't with the suite right now.

Some features that needs to be fixed ASAP:
Imrovments to code editor to quickly alow you to view in which scope of the code are you currently on.
Fixing Error Insight:
When you insert "{" for all the code from the current position of the cursor to the end of the unit gets marked as being comented out. This cause all folded code to automatically unfold. Code below cursor also gets unfolded when you write some syntactical error. This in turn makes code folding almost useless.
I would suggest limiting Error Insight to checking only code which is in current scope and not whole unit. This would solve theese problems and make Error Insight much faster.
Fixing code folding (besides the pre mentioned problem:
When folding code inner parts should fold first automatically (nested methods, nested regions, etc.)
Preventing block commenting (use of "{" and "}" characters) to span outside current code scope:
Right now you can do this:

procedure SomeProcedure1;
begin
I := I-2;
{
end;
procedure SomeProcedure2;
begin}
I := I+1;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
I := 10;
SomeProcedure1;
Form2.Caption := IntToStr(I);
end;

In the above code I actually merged the two procedures into one which could result in terible bug which might not be easily found especially if you have huge amount of code and you comented out large protion of it.
Fixing and Optimizing RTTI:
Since RTTI is most important part as it affect how your finall aplication would behave it is imperative that it has absolutely no bugs and that it is optimized as much as posible.
Based on the many rants on varoius Delphi based blogs there are lots of isues with RTTI which are now being present for several versions of Delphi. As many others I think that this is unacceptable.
When I'm dveloping applications of my own I never extend my code with new features until I'm sure there are no bigs or poor performance in the code which I'm extending. Why?
If you extend bad code all the extended code will be affected by the bad code from which it was extended. And fixing bugs in this bad code which has already been extended could cause the extended part of the code to no longer work. So this would result in more code to have to be rewritten. And since we are only humans more code we write, more chances there are that we introduce new bugs.
I belive all of theese can be fixed by making code editor to actually treat code as blocks. Delphi (Object Pascal) is object oriented programming language so why not treat its code as such.
By doing so you can solve many problems and integreate many new features (some listed below).

There are several features that I would realy lke integrated in Delphi IDE which are not present right now:
Ability to time-profile any part of your code with ease:
Currently you need to use complicated third-party tools. TStopWatch record also isn't verry handy to use as it needs quite some code to get the results out.
What I want is timeprofiling which would automatically output profiling results back into the IDE itself so that you can reuse that information in future.
Ability to draw method dependancy charts:
How many times were you wanderng which parts of your code would be affected when you make some changes to a single method of yours. In big projects making smal change to often reusable methods can cause large change in your projects behavior and could also easily cause lots of bugs.
If you would have easily accesible information about where your method is being used you could more easily predict what changes you mus not make. Or athleast you could expect which bugs would ocur with the changes you will make.
Another good thing that this will provide you is easily finding of unused parts of your code.
Ability to draw Flowcharts of your code:
Being able to visualize how your code executes could help you understand your code better.
Yes we have all been in position where we have been looking at part of our code and still not understand how it works even thou we have been comenting it. This can be especially hard with large prjects.
And inf you combine this with Time-profiling information you could also quickly visualize which parts of your code takes longer to execute. This would greatly help you in finding out code botlenecks.
Ability to set special parameter to various variables and objects which would alow custom classification of these with memory manager:
What this custom classification would provide is the ability to quickly get information of how much memory is being used for certain things.
Imagine that you can quickly see how much memory is being used by every variable which has this special flag set to "Game units", or "Graphics", or "Game map".
These would alow us to quickly find out which parts f our program use most of the memory and therefore make optimization process easier.
Now I could probably offer even more suggestions but I can't remember them now. Theese are the ones I would benefit the most from them right now.



How about bundling of "editions"?

Current bundling that EMBT uses is by my opinion compleetly wrong. Why? Becouse in many cases you are forced to pay for features that you might not even require. Let me give you an example.
If you need baic database support (local databases) you would buy yourself a Proffessional Edition. But if you need more advanced Database supoort (networked and online databases) you need to buy Enterprise Edition which brings you quite some other features that you might not even need but would have to pay for them.
So in such scenario many pepole go and buy Proffessional Edition and then get third party database component which also alows them to use ntwork based databases.

What I suggest is that Embarcadero compleetly changes the way they bundle their software. Instead of having pre set bundle packages (Proffessional, Enterprise, Architect, etc.) split your sofware into many smaller packages.
For example:
Base IDE
32 and 64 bit Windows compiler, linker, debugger
32 and 64 bit MacOS compiler, linker, debugger
32 and 64 bit iOS compiler, linker, debugger
32 and 64 bit Android compiler, linker, debugger
32 and 64 bit Linux compiler, linker, debugger
Basic VCL components
Advanced VCL components
Basic FireMonkey components
Advanced FireMonkey components
Basic database components (for local databases)
Advanced database components (for networked components)
Basic networking comunication components (TcpIP, UDP Sockets, etc)
Advanced networking components (HTTP, HTTPS, etc.)
WebService components
Reporting components
OpenGL components
Sound components
Multimedia components
etc.
This will alow users to actually chose which components they actually require.
This would make Delphi more afordable as you will be paying only for the components you will actually use.
It would also give Embarcadero clear picture of what parts of their software is comonly used and what not.
And if they also make seperate survey for each smaller package they could get invaluable information about where they should focus their development more, where there are bugs, with which features are Delphi programers pleasend and with which not.


As I have written on some blogs already Embarcadero can contact me at any time if they want even better explanation of any of my suggestons.

phibermon
27-07-2013, 03:03 PM
I'm having a very long think about this one. The continual existence of Delphi in the commercial space is a positive thing for the language (which is what I *really* care about). It's in the languages best interests and therefore mine that Embarcaderos experience with Delphi in the marketplace stays well above the level of economic viability, preferably in the maniacal laughter profit range.

I will express my opinion in a more comprehensive manner when I've got my angle nailed down but what I'm thinking in a hypothetical conversation with 'the man' is basically this :

Rip out all the visual form stuff, components, the whole works. Forget a visual RAD tool, just an IDE is all we need (like codeblocks)

Have a template system along with updated headers etc for popular cross platform APIs, SDL, Native+OpenGL, SDL+OpenGL etc (like codeblocks)

The IDE must work native on Linux, Windows, Mac. The *free* competition doesn't have any issues with this or platforms that we'd not even expect. That is totally unacceptable, compiling on Windows for OSX, IOS etc is just a big messy cop out and you should be very ashamed. Same again for lack of Linux support. That's damn near commercial suicide. I mean, Delphi is pushed as the perfect tool for database style applications and it really is! so why on earth would you cut off a large portion of the market? especially in places like Call centers etc the people that roll out installations to large number of machines, more and more are switching to Linux to lower costs, governments across the world are doing the same, even to the extent of banning windows etc in some places. This is a large part of your primary market right? rapidly evolving database clients? ignore Linux support at your peril!

So basically, we need the code window (preferably with code completion etc) compiler, debugger, and community contributed or regularly maintained headers / interfaces for common APIs.

---

Just don't let anybody in marketing get involved, they'll ruin it. They'll just try and cripple the product into an advertising platform for the more expensive versions. No doubt why cross platform support was removed from the previous basic versions of Delphi. This decision alone has made me personally highly resistant to even testing your new products. That cross platform support can be removed and stated as a 'feature' for more expensive versions? if you think that's acceptable then may I also suggest you charge extra for distribution DVDs that don't melt in the drive? perhaps you'd like to charge a subscription for the 'begin' and 'end' keywords? You get my point.

Edit : That's a little harsh, just don't remove cross platform from any version, it's not an additional feature, it's a basic fundamental expectation of any compiler + standard library/runtime etc. You *certainly* can't remove it when the free alternative not only has it but does it far better.

---

On an unrelated note, replace your compiler with FPC or open source yours. you're playing a game of catchup that you'll never win and if you'd switched before now you'd already have Delphi on all the platforms and saved yourself a ton of money. For a product where the compiler takes a back-seat to the component features, I don't understand why you're so adamant about wasting money on your in-house compiler when you could of contributed to FPC instead (like Apple and all those really rich companies do with things like Linux + LLVM) and have your main selling points reaching the maximum potential market. I mean if the Delphi compiler so much better, how come it doesn't work on Linux? or PowerPC? or in fact all the sqillions of things that FPC works with? Yes I can appreciate that the design might be superior, cleaner etc but Betamax lost to VHS didn't it? just how much money will you have to spend on your compiler to reach FPC as it is now? and when you finally reach it, just how far ahead will FPC still be?

It's Lazarus you're loosing customers to, not FPC.

Adding users to the language in general creates more customers for you. Contribute to FPC, make it utterly awesome. Be Apple to LLVM and thou shall dominate. If you love some aspect of your compiler so much that it's preventing you from making this leap, then fork FPC or contribute it to FPC. You could have a large force of talented developers working on your compiler *for free* (plus your in-house devs), more pascal users in general due to excellent tools, more market reached by Delphi due to the vast platform support plus your marketing guys can harp on about the whole Open Source aspect in the blurb. It works for Apple, Google etc

Dan
27-07-2013, 05:33 PM
Yes, Lifepower I am talking about the ios, and the non existent linux/android compiler.

WILL
27-07-2013, 08:20 PM
Free isn't an option. They tried it and it wasn't sustainable. Judging from the conversations I've had with David over a year ago and Jim more recently, they pretty much told me that this is not something that they can do if they want to stay in business. And frankly why not pay for something of high value like developer tools if it improves the quality. So buying a set of good developer tools, I don't have a big problem with. (Considering that a lot of free versions of dev tools, esp. those from big companies are crap.)

Lazarus is a great exception for game development. If you love to make GUI-based applications with the form designer and you love your databases and crystal reports then Delphi is all skippy, where as Lazarus (though I recall they have a really stable form designer now) is still not complete and doesn't have the components community that EMBT has. However for game dev we don't need all that fluff, as I keep saying.

Embarcadero does have a new compiler (than the one we've seen for years that only does Windows) that's where all these new cross-compiler and mobile projects are coming from. David I. and I have discussed it over a year ago when he told me that the EMBT R&D guys were working on it. Well I guess it's good enough to start releasing products with now?

Here is a link to their Mobile Roadmap: http://edn.embarcadero.com/article/42544

The question is how good is it? And how capable? Will the compiler it's self run ON Mac or Linux? Are they bringing out an IDE for either or will they allow something like Eclipse to hook into it? (I'd mention Lazarus IDE, but this would require asking them to support it as a new feature so it's not viable as a commercial solution.) And will things like the Android compiler (which is due out soon!) output into Java Byte code so that it can take advantage of native Android APIs and the environment it's self? I know a set of tools that already do this of course. :)

So far I've only seen demos and literature explaining the new Delphi cross-compiling roadmap as a better way to make business/GUI-based apps on mobile and across the desktop world. Which we can all give a flying monkey about. (Pun intended! :D ) What we want is to get into our APIs and game libraries without having to do brain surgery trying to take out crap that EMBT puts in our way. I would like to see some kind of OpenGL graphics demo running on all their targeting platforms from the same Delphi source that performs extremely well considering the target platforms. That would be a start, however I'm not sure that this can be done using their existing tools without a lot of leg work and hacking in exceptions all over the place. At least to be able to do this with 2 platforms would be great. Or at the very least among ALL the top 3 desktop platforms.

My concept of a game dev friendly bundle:



cross-compiler
debugger
Code Editor (IDE)
RTL + DOM + basic Delphi language stuff
maybe: some up to date OpenGL and DirectX(or whatever MS is doing) headers



That's it! That's what we need. Want more than that then by all means go get their business stuff. This is the core of game development. We don't want to avoid the code, we need the code. ("The code speaks to us and tells all."--ok I couldn't resist. ;) ) so other than cheating to make use of the GUI stuff to make a quick and dirty editor tool for my games, why do we need so much crap stuffed into it? We don't. If they insist that it's what makes Delphi Delphi then ok fine put it in, but keep it to the base components and nothing else. But I don't feel that that's even necessary. We can make editor GUIs using our graphics APIs. Some game libraries even come with a way to make custom OpenGL-based GUIs. Or we are good game developers and we make it all ourselves! :)

I agree with most of you guys that Delphi isn't the best game dev tool and it's far from being geared towards game development anymore. (New markets and platforms!) However since someone from EMBT actually reached out to me and suggested that we could maybe make Delphi better for game developers (no promises) I feel that that in it's self is a rare opportunity to tell them what they need to know.

And if they don't want to listen then well there is still Lazarus, FPC (Pure) and Oxygene (and even Smart Mobile Studio for JavaScript type games) that are all great for game development and getting better. :)

Darkhog
27-07-2013, 09:12 PM
Free isn't an option. They tried it and it wasn't sustainable. Judging from the conversations I've had with David over a year ago and Jim more recently, they pretty much told me that this is not something that they can do if they want to stay in business.

Somehow Borland has done this for years and stayed in business (the reason they had to sell delphi was because major f-up Turbo Delphi was).

JimMcKeeth
27-07-2013, 09:50 PM
While there are some free to cheap game development tools, many of them are quite expensive. While Unity 3D offers a free version, their full price edition is $4500 if you want to reach iOS & Android. Their offering a free edition is a loss leader to get people to upgrade to the full edition. The full PRO edition offers features to game developers over the free version. A free version of Delphi for game development doesn't have an upgrade path to the full version for game developers, so it doesn't make sense from a business point of view.

You can get a 30 day free trial, and the Starter edition is really reasonably priced at $199 (https://store.embarcadero.com/542/catalog/product.s3364/language.en/currency.USD/?id=Ovt7Ewh5xe). I used to be a big lobby for a free edition of Delphi until I realized they wouldn't be able to pay the fabulous developers who worked on it.

Delphi is a good general purpose tool that is heavily focused on line of business applications. It has always had good database access and other features that make it a good business application development tool. I've always liked it for utility application development too. A lot of people like it for game development. That is the beauty of a general purpose development tool. What I was wondering if there were some simple changes that could be made that would make it more suitable for the people who like it for game development. Reinventing Delphi to be just like FPC or Unity doesn't do anyone any good.

User137
27-07-2013, 11:08 PM
I used to be a big lobby for a free edition of Delphi until I realized they wouldn't be able to pay the fabulous developers who worked on it.
Just keep in mind how much Lazarus "devs" get paid for their work. Yeah... nothing. And yet they are doing better job for pascal gaming world, even though a little indirectly. Compiler and IDE are general purpose, they don't decide that it's made specifically for games.

Borland already lost me as potential buyer. For a few reasons that have propably been mentioned:

Open discussion with the people behind compiler and IDE development.
Bug tracking system, and frequent software updates.
Open source, free and unlimited.
Crossplatform.


As far as gaming related libraries go, many of them work equally on Lazarus and Delphi. It's just that all the work for them is done by the user-base, not compiler/IDE developers. If they want to get into game industry, they would need to create a real game engine in my opinion. Graphics, Input, Sounds, Networking wrapped up easier for developers. I'm not sure if it's wise path to take for them, and how many potantial buyers there would be. That could depend entirely on quality of the engine, and it is not easy to compete with the latest commercial engines.

phibermon
28-07-2013, 12:37 AM
I understand. Well trying to keep in line with cheap and easy :

Strip out all the components. the visual class designer, any documentation features, database features etc. Oh and firemonkey, we don't need that.

Just keep the 'standard' widgets, buttons and so forth. They're not going to be used, most won't even use forms, there's game ready frameworks that handle windows and we need fine grain control over that process anyway for multi-sampling and context creation. So Ideally get rid of forms and the VCL, but that's probably too much work.

Just the compiler, debugger, code window and the ability to target all supported platforms. Along with the headers for the respective platform APIs obviously.

No need to include third party stuff as people know what they're using anyway, don't need out of date stuff bundled in the install. (seriously guys update that OpenGL header, you don't seem to have a problem using third party stuff like FastMM and FPC)

--

So it doesn't have to be anything special, just an even more cut down version at some lower price that more people can afford. but multi-platform is essential, that shouldn't be cut from any version of Delphi. It's not a feature, it's a core essential part of what makes a programming language a viable tool. It should of been done long ago, I thought Kylix was the start of something special. I was wrong.

---

Please don't get me wrong, I love Delphi :) many happy memories of versions 2 thru 7. Avid Turbo Pascal user before that. Brilliant stuff.

SilverWarior
28-07-2013, 12:41 AM
Free isn't an option. They tried it and it wasn't sustainable. Judging from the conversations I've had with David over a year ago and Jim more recently, they pretty much told me that this is not something that they can do if they want to stay in business.

I understand that they can't make Delphi compleetly free as they have to pay their employee salaries somehow.
But they could atract a lot of new developers by offering free versions for students similar as microsoft is offering free editions of Windows to be used by students. More newbies atracted means bigger chances for some of them to actually buy Delphi in the first place. Having 30 day trial is just not enough.
They could always use custom license for this free editions which would not alow pepole from making any comercial software with it.
This way they make Delphi afordable for newbies. And when someone becomes confident enough that it can actually make a comercial project with Delphi it would also be prepared to pay some money for it.
That is how I finally decided to purchase Delphi XE2. I started on Delphi 6 Personal which was available as free then, moved to Delphi 7 which I also got for free and finaly when I become confident enough in my programing skils I bought Delphi XE2. If I would have to buy Delphi from the start I would have never started programming in it.



And frankly why not pay for something of high value like developer tools if it improves the quality. So buying a set of good developer tools, I don't have a big problem with. (Considering that a lot of free versions of dev tools, esp. those from big companies are crap.)

The problem is that Delphi just isn't that high value developer tool anymore due to many bugs and poor implementations it has.
Another problem is lack of third party components and packages for Delphi. There are more and more excelent third party components developed for FPC/Lazarus but most of them doesn't support Delphi. Why? Becouse if someone wants to make their components Delphi compatible they need to purchase latest version of Delphi as trial edition time is just to short to be usefull.

WILL
28-07-2013, 08:29 AM
A lot of people like it for game development. That is the beauty of a general purpose development tool. What I was wondering if there were some simple changes that could be made that would make it more suitable for the people who like it for game development. Reinventing Delphi to be just like FPC or Unity doesn't do anyone any good.

Hey Jim! Jumping into hostile waters I see! I appreciate you willing to step in and discuss the issues. That said, brace for impact. ;)

The status of Delphi in the game development community is dwindling fast. Sad to say that Embarcadero lost a few of it's biggest supporters in recent years. Die hard Delphi users are switching over to Lazarus like bees to honey simply because it didn't offer the cross-platform capability that most indie devs are expected to put out nowadays. We don't get to play 1-OS hero anymore.

Platform diversity aside, there is not a single offering that is at all that attractive to indie game developers. Delphi is a business tool for the most part. It's strengths lay there specifically. Delphi Starter at $199 sounds nice and all, but it lacks what we really want and champions what we don't need and could care less about. Toted as "what makes Delphi Delphi" by David I. about a year ago, isn't 100% what game devs want from Delphi. This is not how you make sales to a potential target market like us.

Here is my general impression of the views of an indie game dev...

What should have been in Starter:



Cross-platform cross compiling

We choose tools that will give us the platforms that we can make games on and where people will play them. This is not a choice for us, it's the gaming world now.


Properly updated headers

If the community is offering this to your company to bundle it and it's better than your own older implementation whats the reason not to include it?




What should NOT have been in Starter:



Licensing restrictions based on success of projects

Who else does this? Putting such restrictions is unenforceable and makes EMBT look petty and a little greedy.
If you want us to spend more money on products them make more for us! Like the next version of Starter for example.
This one caveat has scared away the most potential customers out of this community. Sales gone for the same effort it took type it.


FireMonkey

Useless for making games that would be played and indies don't care!
David I. swears that it can be used for games, but I've looked into it. Not on your life.


Form designer and/or any components other than the most common

Easily validates the cost of a Professional Edition. And indies don't need all the components. Games are not made this way!
The VCL isn't going to make my 3D games look better or accelerate my physics calculations or process audio smoother.




Personally I'd love to see just how well the Starter Edition has actually done. I doubt that EMBT would be willing to tell us, but my guess is that not very many game devs have bought it. When I talked about it with David before it sounded wonderful, but then it was released and I instantly got a bad taste in my mouth.

And I would love to see the reference to this statement:

The Starter edition license is an "indie" or independent developer style license. Think indie music, indie artist, indie films, etc. The indie style Starter license allows for freeware and limited "for profit" commercial use. The license is designed specifically as a low cost solution for hobbyists, students, and independent developers to be able to get started building and distributing apps, including commercially for profit, without a significant up-front investment. It is modeled after the self-publishing music and literature models and has become popular within the game and mobile development tools market.

I'd like to know who does this in the games and mobile tools market and if these libraries or tools are actually used.

That's my big chunk of wisdom for the Delphi tool it's self. As for the rest, well Embarcadero has shown that it loves it's licenses and restrictions. All the things that game developers and indie devs in general are all well to be wary of or avoid if possible. So culturally they have dug a hole for themselves with the indies. Borland didn't build a company around dev tools doing business this way. This may be all well and good for big business where everyone farts acronyms and sneezes contracts and reports, but it doesn't go well by future devs that all start as indies.


Just keep in mind how much Lazarus "devs" get paid for their work. Yeah... nothing. And yet they are doing better job for pascal gaming world, even though a little indirectly. Compiler and IDE are general purpose, they don't decide that it's made specifically for games.

Keep in mind that it also took about a decade to get to this point. I wouldn't knock a dedicated paid developer over a volunteer when he has the free time. Yes, Free Pascal and Lazarus has become quite the wonderful tool for game development (on the desktop primarily), but it didn't happen over night. It took a long time.

Why Delphi has sunk as a game dev tool has more to do with the mentality of the company that steered it's developers and their motivations than how "good" or "talented" they were as developers. It would seem that the new company has similar motivations, as new and hip as they want to sound. It's more about their core clients than reaching out to all markets evenly. And that has been and is right now big business that need a nifty new app that can connect to a database and give them data. Not compile a hardware level graphics driven interactive entertainment experience across multiple platforms from a single code-base.


I don't care about free as much as I do affordability. I'm willing to invest into tools so long as they give me what I want.

The best things that Embarcadero can do to get indies buying products is to make them something that they want to buy. Make us want to buy the next version. It's like the whole used games thing (http://ca.ign.com/articles/2013/06/18/nintendos-used-game-policy-make-games-people-wont-sell); if you don't want people to be buying the used version of your game instead of a new copy then make games that people want to keep playing. This is honest business and it's how developer tools should be made and sold.

WILL
28-07-2013, 08:53 AM
But they could atract a lot of new developers by offering free versions for students similar as microsoft is offering free editions of Windows to be used by students. More newbies atracted means bigger chances for some of them to actually buy Delphi in the first place. Having 30 day trial is just not enough.

Microsoft's dev tools are shit. I know, I use the damn thing every day much to my begrudgery. I miss the days I coded intently in the Lazarus IDE, but it doesn't do what I need it to, so life goes on.

Free is not a viable option and I don't want a free version. I like tools that I can make games to sell. And I like software that has dedicated developers not volunteers that slowly make their way to a new version on their free time. It's that nice guarantee that tells me that I'm getting something of quality that will pay me back later for my hard earned cash.

That said, if I threw some free candy at a crowd of people you always have someone running after it. Doesn't mean there is a lot of value in cheap dollar store candy.


Another problem is lack of third party components and packages for Delphi. There are more and more excelent third party components developed for FPC/Lazarus but most of them doesn't support Delphi. Why? Becouse if someone wants to make their components Delphi compatible they need to purchase latest version of Delphi as trial edition time is just to short to be usefull.

Game developers don't need components. This is a concept for old Windows GUI applications so that any shmoe can make one with little to no code. Game programmers need to know how to program.

AthenaOfDelphi
28-07-2013, 10:23 AM
This isn't necessarily just linked to game development, I have a number of thoughts about the product as it stands and particularly the pricing model currently employed by Embarcadero.

Firstly, my minor gripes:-



Auto-increment build number - This is a common complaint from what I can see... it disappeared in XE2 and quite frankly what's replaced it stinks. It is so common to have Major.Minor.Release.Build with an ever increasing build number and now that's not an option without using thirdparty tools. I can't speak for others, but this has the potential to cause me an administrative overhead... our ISO processes specify how these fields are used, now they've changed and I have to think about having processes changed to suit the new compiler. This will sound basic and super picky to a lot of people, but I've been using the version numbers as described above for years, and now they've gone. Why? Was it an important change? Was there a good reason for it?
Cross platform - Make it easy for people to make truly cross-platform apps (this is what Sascha was saying). The only true cross platform graphics library is OpenGL and yet FM uses DirectX on Windows. This actually makes it difficult for people like me who aren't as competent at OpenGL as say Sascha to do the basics... I'm still struggling to get an OpenGL rendering context working in a Firemonkey app which is the only way you can get to target Windows, MacOS and iOS. This was one of the reasons I bought XE2 in the first place, so I could start writing the next version of my game targetting iOS, MacOSX and Windows from one codebase with no hassles, but alas you have to have one for Windows and MacOSx and another for iOS... I can't say about XE4 but if this could be sorted out so there are no differences that I as the dev have to worry about (other than the obvious ones such as screen size etc.), just another build target it would be great.
Access to OpenGL - Again, this is in-line with what Sascha was saying about access to API's like OpenGL. Why not include something like Sascha's headers and provide a template app that creates a window, generates the rendering context etc. that is supported on Windows, MacOSX and iOS (Android too when the compiler is there). You could say this is an extension of the cross platform gripe.


Now my major gripes:-



Pricing - It's too dammed expensive. I currently have RAD Studio XE2 and I'm looking at upgrading to XE4. To avoid the continued cost, I'd like to buy maintenance but I object to paying for the compiler AND maintenance... I should get 12 months with the compiler, then at the end of those 12 months, allow me to buy maintenance. I'd probably buy Delphi XE4 Enterprise (so I can get the mobile development tools rather than have to pay extra) if I could buy it now and then renew my maintenance in 12 months time. I hate to use the word despicable, but this is a despicable practice. I have tons of software development tools and pretty much all of them don't require you to pay maintenance until your 12 months is up.
Environment Stability - My favourite environment was Delphi 5, it was supremely stable (unless you were doing silly things like implementing 5 or 6 levels of form inheritance). Delphi 7 was good, BDS 2006 not so much, RAD Studio 2009, the stability returned with a vengeance. I own XE2, but unfortunately I upgraded to version 4 and that screwed my compiler stability, I could downgrade to version 3 by reinstalling everything, but at the moment I do most of my work in 2009 so it's not worth the hassles. I manage a team of 4 devs at work, 3 of them are working with XE2 on a daily basis and they have all had to downgrade to version 3 but even then they complain on nearly a daily basis. Adding all the new cross platform stuff is great, but only if there are no detrimental affects... at the moment, there appear to be detrimental affects with overall stability of the platform. Has this improved with XE4?


Now my positives:-



Pricing - If you compare what you get out of the box with what you get in say Visual Studio... I bought VS2010 and was truly shocked at just how bare my tool bar was in terms of form components etc. Delphi is amazing value for money in that respect. There is already a comment in this thread about things like advanced database support only being available in Enterprise... so buy a library... in my experience the third party libraries for such tasks are better than the Delphi offering anyway (sorry guys, but I've done quite a bit of testing in this area and found there are some serious performance advantages to using third party elements).
Ease of use - Having tried to get Lazarus and FPC going, I'm not impressed, I've always found it a real bind. Speed wise I think it's one of the fastest IDEs, certainly it outstrips Visual Studio in almost every way in the performance department. It's layout is quite clean and well, to use the phrase I normally use when talking about Apple products, it just works.


And now some comments about earlier comments:-



Complaints about having to use Windows - Let's be clear about this one, having to compile on one platform whilst targetting another is an everyday occurrence. I can't be 100% sure, but I doubt very much you can compile your Android apps on an Android device. You can't build iOS apps on iOS, and for things like embedded devices and games consoles, building on another platform is a way of life. Windows may not be your ideal platform, but the variability in Linux platforms can make it very difficult to target complex tools like Delphi for them. Maybe when they get the cross platform compilers 100% they'll build a MacOSx version. As for Linux, I can only hope they have a better crack at it than Kylix (nice attempt, just a shame about the performanceof the IDE - and yes I did use it to build a piece of critical infrastructure software that is still running to this day). It should also be remembered that whilst many of us on here can appreciate alternative platforms, in the wider commercial world, Windows is still the number one operating system. We may not like that fact, but that's how it is, and so logically, you're going to target your biggest audience (I'm planning on targetting Windows and MacOSx - Why? Because they are the most popular OS's for gamers at the moment - based on a Steam survey in May), Embarcadero are only really doing the same. To do otherwise just doesn't make commercial sense.
Profiling - I use ProDelphi for this, it's a great product, doesn't cost the earth, is easy to use and it's been developed specifically for profiling. Don't waste time and money putting such features into the IDE. 99% of the time they aren't needed. I bought ProDelphi and have used it a handful of times (probably totalling 40 man hours in about 10 years) and that was 10 years ago when I was fine tuning my web server software.
IDE Programmer Stupidity Detectors - Don't waste time and money adding things that aim to prevent us making mistakes. I turn off all the automatic tools that are designed to make our lives as devs easier. I bought CodeRush back in the day because it claimed to enhance productivity... trash.. the only thing I used from it on a regular basis was bracket highlighting (IDE now has), it's advanced templates (IDE now has) and it's statistics. Including tools in the IDE that will detect, I think the example was misplaced { } for block commenting, why? How does the IDE know you didn't mean to do it? I'd rather the devs spent time on fixing things that are broken in their product, not things that are clearly my fault. We've all made that sort of silly mistake. The IDE already tries to help me out and much of it gets in the way.
IDE Enhancements - Other examples given are visualisation tools such as flowcharting etc. Buy ModelMaker it integrates with the IDE and it is designed for designing. There have already been attempts to include such functionality (and I think the more expensive versions include them to this day)... they were poor compared to third party tools, so again, don't waste time trying to make the IDE all things to all people. It does a great job already, having tried numerous design tools (Enterprise Architect, ModelMaker to name two) I still find myself drawn to the classic analogue Pencil and Paper.


Over the years sitting on these boards reading various posts about Delphi vs. Free Pascal etc. the overriding theme seems to have been cross platform support and price. The cross platform support is coming and this is nice to see. Price wise, yes it's expensive, but overall I think it's still reasonably good value if you're serious about development. I'm looking to go the XE4 route, possibly just Pro with maintenance at this time... target Windows and MacOSx only for the first release of my next game project and then see how the finances pan out... if I'm making money, buy the mobile stuff and port to iOS and Android. Jim has already mentioned Unity... I did consider this at one point and then coughed at the price. Visual Studio is expensive. xCode is free but the platform is expensive, but again, if you're serious about this stuff, serious tools cost serious money (i.e. amounts you have to think about).

But what about comparing this to something else... how many of you are serious musicians (by that I mean you take it seriously, not necessarily that you make money from it)? I suspect quite a few... how many of you have expensive guitars, keyboards, synths, software? They are just things that you use in your hobby (if you're not making money from it, it's a hobby), just like my software development is when I'm not at work... I'm not making any money from it so at the moment, it's a hobby. Do you complain about paying say £1000 for a Gibson guitar? Or say £500 for the latest DAW? What about £500 for say an XV-5080? I've spent more money on my musical interests and my personal study in the last 4 years than I've spent on Delphi in the last 10. And yet here I am quibbling about price... just to bring some perspective to the pricing issue. I know I'm contradicting myself to some extent about pricing, but my biggest gripe is maintenance and the up front cost of buying the product AND maintenance.

Overall, I'm fairly happy with the current product offering. I'm not happy about price, I'm not happy about the fact I have to buy maintenance up front and I'm not happy that as a Pro user, I now have to buy the mobile add on. That sucks, but I can appreciate the commercial drivers for making that choice. I have no intention of moving away from Delphi, it has for many years been my go to tool and I have no reason to think that will change any time soon (besides... AthenaOfC# or AthenaOfPHP just don't have the same ring to them :))

These are all my own personal views as a long time (since version 1) user.

SilverWarior
28-07-2013, 11:36 AM
I like tools that I can make games to sell. And I like software that has dedicated developers not volunteers that slowly make their way to a new version on their free time. It's that nice guarantee that tells me that I'm getting something of quality that will pay me back later for my hard earned cash.

I also like software that has dedicated developers instead of just volunteers that is why I have bought Delphi XE2 even thous many pepole advised me othervise. I'm also anually paying for "Support & Maintenance for Delphi" which gives me acces to all the latest updates for Delphi.

Now this is acceptable to me since I have a regular job and earn neough money for this.
But what about students for instance? They have no jobs to earn mone for this.

Embarcadero would say there is a Starter edition which is viable option for this. I have to strongly disagree with them on this. Why?
For the price of Starter edition they are offerin way to less:
- Only 32 bit Windows compiler
- FireMonkey components which have much worse perfomance than VCL. And since you don't have need to use FM on windows as you have on other platforms, probably only few pepole will even use them on Windows
- no code formater and and beutification for source code
- no class explorer
- no live code templates
- no symbol insight
- no code folding
- no class completion
- no resource DLL wizard
- no refactoring
- no UML modeling
- limited integrated debugging
- no database support
- and many other things stripped out
In short the starter edition even have some features stripped out even thou they were available in Borland Delphi 6 Personal edition which was in the end offered for free.



Game developers don't need components. This is a concept for old Windows GUI applications so that any shmoe can make one with little to no code. Game programmers need to know how to program.

True we don't need components we need libraries. These two concepts are quite similar.
So tell me how many Pascal based Graphical engines do we have available and how many of them have full support for the Delphi?
How many Pascal based Sound libraries do we have available and how many of them have full support for Delphi?
How many Pascal based Network libraries do we have and how many of them have full support for Delphi?
How many other Pascal based gaming libraries are available and how many of them have full support for Delphi?

So as you take a look closely you will see that most of them doesn't support Delphi or have verry limited support for Delphi. I know since I'm having dificulty finding suitable gaming libraries for Delphi since I'm using Delphi for game development.
Now why is that? Most of them are being developed by FPC/Lazarus and their developers just don't have enough money to go and buy Delphi for making them Delphi compatible.
Now you might say 200€ for starter edition isn't much but when you take into acount that Starter edition only supports 32 bit compiler you realize that you need athleast Proffesional edition if you wan't your library to have 64 bit support. But that means you will have to pay 1000€ for it. And nowadays you will definitly want 64 bit support if you want to do any serious game so you can make use of more than 3GB of ram.
This results in the fact that more and more pepole are literally abandoning Delphi support for their libraries.
And without Delphi compatible gaming libraries noone will use it for game development.


Another thing that bothers me greatly is how Embarcadero is "evolving" the Delphy syntax by implementing features present in other programming languages.
Now don't get me wrong I'm not against the implementation of theese features, but I'm mostly against the way they are implemented. I don't like when some feature gets implemented almost the same way it is implemented in some other programming language.
The reason why Objective Pascal or Delphi was so popular in the past and the reason why it is still poplar as it is is becouse it always have certain feature implemented differently than other programming languages (better implementation in many times). That is what has been atracting pepole to use of Objective Pascal.
But what Embarcadero is doing now is simply copy-cating features from other programming languages and therefore turning Delphi into crosbreed of other programming languages. ANd this by my opinion is not caled "maturing" of programming language.
What they need to do is learn how theese features work in other programming language and then implement them in new uniqe way, preferably better way.
But I'm afraid that guys at Embarcadero might not be capable of doing this. Why? As some computer scientist once sad:
"Most of the greatest discoveries are not discovered by scientists, but instead they are being discovered by stuedents, hobbyist. Why? Expirienced scientist already learned some path of how things are being discovered and they usually keeps folowing that path. But students, becouse they still didn't learned any particular path, still expiriment in serching of good path and have therefore better cahnce of finding compleetly different path which can lead to great discoveries. Same goes for software development. When you program long enough you develop some patern you folow when developing your application. And the more you stick to your pattern and less you expiriment, the less cahnce you have to discover something new and uniqe."

So that is why most of my suggestions are biased to atracting as many new pepole to Pascal development as posible becouse I hardly belive that only by new blod we have chance for something new to be discovered.
Take a look at big software companies like Microsoft, Google, Aple, etc. All of them are reagulary organizing varous "taletn sercing" events like "Imagine cup" where pepole are given some task and they must find best solution for it. Most often the winners are students and not some expirienced programmers.

So if Embarcadero truely wants to evolve the Delphi as programming language and prevent Delphi comunity to simply fade away they need to start atracting new pascal programmers fast. And yes making Delphi game development friendly is good choice since gaming development is far more popular than buisnies application development and gaming industry is making much more money. So it is no wonder that about 70% of all new programers wants do develop a game first.

Also Embarcadero mist not forget about keeping existing developers in using Delphi. Why? If they lose existing developers from the comunity, there will be noone to teach the very basics to newbies, there will be noone to encourage newbies to reach their boundaries.
And here the Embarcadero isn't doing verry good. Lately I have seen many Delphi developers switching to other programming languages. And main reason doesn't seem the lack of features of the Delphi programming language itsef but the lack of atention of Embarcadero to listen to complaints and suggestions of theese pepole.
Now the rumor for this is that on top of Embarcadero sits Marketing guys and not programmers so they don't view thigs the same.
If that is the truce could someone please remind theese marketing guys of this cruicail marketing saying: Customer is always right!
And yes we developers are your customers, so why are you refusing to listen to us?


I'm sorry if my post has turned into rant.
What I want is best for Delphi wich in turn would be best for me.

phibermon
28-07-2013, 01:38 PM
Complaints about having to use Windows - Let's be clear about this one, having to compile on one platform whilst targetting another is an everyday occurrence.

It certainly is and I'd like to do that from Linux.

Edit : that sounded a bit confrontational ;) wanting to avoid any comparisons between platforms best used for a development workstation, there's a myriad of reasons why you'd want the IDE to work across multiple platforms. Maybe you've got a mac and you don't want to buy a PC, maybe you work in a certain government department (certainly in our country Athena) and you can't even run Windows. Maybe you simply don't have the available hardware making dual-booting just to test your builds a hassle.

The top reason however is debugging (I retract this if Delphi supports remote debugging on every platform). Whilst it might be acceptable to say if it works on A then it works on B, that's under the provision that you're only using officially supported abstractions.

Even if remote debugging *is* supported, unless you can afford multiple machines in which to run concurrently with your windows development environment (Virtual machines not being acceptable as you require direct access to the GPU or at least some people do) you're again stuck.

Mobile phones, game consoles, arcade cabinet hardware - Remote debugging or 'virtually assured' operation is the only viable alternative because those devices are not suitable for use as workstations. Em. expect Mac owners to buy PCs to dev? virtual machines? Windows licences?

Yes their primary market are development studios that have tons of hardware but this is a thread regarding what game devs like us need from Delphi.

I happen to multi-boot various windows versions, Linux and OSX Lion on hardware I selected for that purpous, I purchased my copy of OSX etc and happily run FPC+Lazarus on all envrionments. It's a perfectly valid setup that many people choose.

I could not do that with Delphi in it's current state. It'd take me half a life-time with all the re-boots just to debug my Cocoa framework interface and Linux isn't even supported.

That really doesn't seem like a good thing to me, I'm not buying it am I? I don't see how that makes good business sense, I mean who's choosing not to buy something because it *does* support other platforms?

And if it's just a case of time + money and they can't afford to do it? well I'm not jumping on a sinking ship. And if it's for technical reasons that can't be overcome? well then Lazarus+FPC is superior (for my needs) and there's no reason to switch.

Now I don't really believe that those suggestions are the case, there's many factors at play I simply don't know anything about.

But the question what game devs need from Delphi?

The answer is simply : What we already get from FPC+Lazarus plus a ton more that will justify the cost.

hwnd
28-07-2013, 03:27 PM
Im too lazy atm too read whole topic fully, but i agree with some opinions here about free Delphi version.
Why they killed Turbo's? Im thinking about buying starter edition but many people say its a cr*p, what to do then?
I would use Lazarus, but there are too many components yet which do not work in Lazarus.
I use D7 Personal, but im lucky, since i dont mess with DB, so personal is fine for me.
I have the license for it.

But this is OT already.

AthenaOfDelphi
28-07-2013, 05:10 PM
It certainly is and I'd like to do that from Linux.

Edit : that sounded a bit confrontational ;)

Yes, it does sound a bit confrontational (I'm assuming you were commenting on my comment, on re-reading it, I'd agree)... apologies for that.

On the whole, I'd like to see a Linux version and a Mac version of Delphi (possibly in that order). I currently take two laptops with me everywhere I go... my MacBook Pro and my XP laptop. I have all my creative software (Cubase, Scrivener, Tinderbox for example on my Mac) and my business software and development tools on my XP laptop. I know I can run Parallels or Bootcamp etc. but for various reasons I choose not. Having Delphi on the Mac would be one step closer to me being able to ditch the XP laptop which would be great, so in essence I agree, but personally I think there are more pressing issues that Embarcadero have to deal with, hence my 'this is how it is, get used to it' stance.

I'd just like to add this thought to the melting pot as well while I'm posting... not all games rely on graphics APIs etc. My web based game relied heavily on databases and the VCL for it's tool chain. So, dropping the VCL and stuff like that that 'game's development hardly use' isn't necessarily the right thing to do. My next game is also likely to rely heavily on such things, again for it's backend server system and the administrative and design tools used to build and manage the game. Sure, the client will talk to a server and will be OpenGL based so it will have no need for databases and the VCL etc. but the backend will definitely need those things. Splitting them out would cause me a problem if I were faced with the decision of picking elements from a list of bits and pieces.

phibermon
28-07-2013, 05:39 PM
Oh sorry I mean I thought that my comment sounded confrontational :)

I agree with your point that mass multiplayer, web based and certain other server based scenarios would make greater use of the VCL.

Perhaps that's something that Em. could concider - a lot of Delphi strengths lend well to game server scenarios being that they can be similar in requirements to database/web applications.

They are well positioned to push that angle, a few comprehensive working samples, making good use of the VCL, geared towards such things wouldn't break the bank. It's right up their street and there's definitely a market.

azrael11
28-07-2013, 08:34 PM
I must say ... i totaly agree with sascha thoughts...

If emb want to catch Lazarus/FPC it must create a Delphi7 cross platform IDE with the latest OpenGL,Sound,NetPlay,Input Headers with no BullS@#$t licenses and have a minimux community forum with IDIE developers...

Then i think a lot of people come back and soon money from this stage fill the emb pockets...

Thank you...

laggyluk
29-07-2013, 10:44 AM
oh wait, they could also release free, stripped 'basic' edition and then 'pro' version with rebranded GLScene components for 2k euros ;)

Darkhog
29-07-2013, 09:42 PM
Free is not a viable option

Except it is. Borland did it for years. Then they've made shitty Turbo Delphi, crippling it from ability to add custom components, like it was up until Delphi 7 Personal (dunno if Delphi 8 had Personal edition), then they sunk and had to sell Delphi.

They should get back to releasing non-crippled (except in terms of out-of-the-box components and maybe database support) Personal editions like Borland did with Delphi 7. After all, 7 is the lucky number.

pstudio
30-07-2013, 12:53 PM
People have pretty much covered it but here is what I believe is essential in a Delphi for Game Developers Edition:

Crossplatform compiler (x86, x64, ARM...) (Windows, Mac, Linux, Android, IOS, Windows Phone...) - Must be easy to target any platform without any (major) changes in code.
Solid list of libraries - You know one of the big reason I like Oxygene for Java? I get the entire JDK library and can find pretty much anything on the internet. I don't expect Delphi to compete with Oracle on the size of the default library, but any data container, file reader/writer, stream system etc. must be included in a preferable memory efficient and high performance version.
Game/Media specific libraries - I don't expect Delphi to be included with all the game frameworks/engines out there, but as everyone else is saying: "At least get up to date headers for OGL, DirectX, OAL...".
IDE - a really good editor must be included. Visual editor would be nice for tools programming, but the code editor must be great. Anything that can be automated should be (with possibillity to turn off) to improve code production. A great debugger with memory inspection etc. is also needed.
Profiling tool - If you want to be serious about your games this is a requirement. You need to be able to inspect your memory usage and find bottlenecks, so you know where to optimize your code and where you can add a bit of extra wow to your game.
Cheap - and no stupid licensing requring you to pay additional fees if you actually make money.

I'll admit it's been a few years since I last actually followed and used Delphi. I went with FPC since it was just as good for my needs (if not better) and a lot cheaper. After receiving a free license for Oxygene for Java I've been using that and plan on continuing to use that paying for an upgrade when I need it.
However I have a hard time seeing Delphi regaining customers who have switched to FPC/Lazarus. Delphi's force is database applications and that kind of things. They do it well and their prices may be fair for that kind of usage. However it's mostly useless for indie game devs. Yes there will be times when databases are needed for games, but for most people this isn't a must.
If you strip away the things we don't need from Delphi it doesn't really compete well with FPC. Yes Delphi will be crossplatform eventually, but they will need to do it so much better than FPC or Oxygene and offer a lot more, if they want to sell me a copy of Delphi versus downloading FPC for free.

IMO Delphi is just not for game developers. Sure if you need Delphi for anything else then you can use it for Game development as well. If you just want to make games in Pascal; FPC is fine, and if you're not set on using Pascal there are plenty of other free solutions out there. I'll always have a soft spot for Delphi. It was the first programming tool/language I ever used but I feel like we've grown apart and a reunion is not likely.

WILL
31-07-2013, 10:21 AM
As much as people would like a free Delphi, it's not going to happen. They just won't do it anymore.

I won't even bother getting involved in any "make a free version" conversations, because I've talked to them directly and they said an emphatical no every time. I didn't even bring it up myself, one time! They tried it when they were in-between (when they were called CodeGear) and to my best guess Embarcadero squashed it shortly after.

I think that they could make a new Edition of the Delphi compiler that was more comfortable and behaved the same way that those who are used to THAT tool have grown accustomed to it and make their low-end market sales (involving the game developers) that way. Make one for each major platform IDE (code editor and core essentials only) and make them single platform sell them at a low affordable code of about $50 - $100. That way they could allow you to still develop cross-platform by buying one for each platform you want to develop on. A solution that they would probably agree to if they really are interested in selling something to game developers that we may buy.

Of course this is not taking into account where ever the compiler quality and stability state is right now.

pitfiend
31-07-2013, 10:01 PM
There's only one thing I disagree, we still need some kind of local database component/library. It's easier that way IMHO than using text files. Also want to point that average indie will welcome any cheap dev tools they can find. Access to majoy graphic libraries is a must not only OpenGL, also DirectX & SDL. Having popular game engines headers will not hurt anyone, but will high product price someway (they could be sell as optional packages).

WILL
01-08-2013, 06:22 AM
Well there should be DB libraries out there that don't need to be hooked into the whole "components" concept. In fact we don't need anything from that side of the house. Plus now you have the option of finding and using what you like, much like before, but not everyone has to pay the extra price for having them pre-packaged. That just seems way better for everyone than getting hung up on the edition not having it all under the hood.

Instead of text files, I'd highly recommend XML which actually works amazingly as a great cross-platform game data container. To be honest I didn't see the value in the concept until Stoney turned me onto trying it for one of my games. It fixed all my binary data endian problems and made switching between my Windows environment and my Mac environment so much easier. It became almost a thoughtless process even.

I agree that a version of Delphi bundled with all the latest and greatest libraries and translated API headers would be excellent, but I'm wondering if enough people would actually buy into that as a pre-packaged product? Would anyone buy into that if it were another set of tools like Oxygene? (I'd list Lazarus too, but since the tools are all free I doubt someone would pay for something that is all parts free.)

SilverWarior
01-08-2013, 07:55 AM
Well there should be DB libraries out there that don't need to be hooked into the whole "components" concept.

You can always make yourself "custom database" using Typed Files. http://delphi.about.com/od/fileio/a/fileof_delphi.htm
The article only shows having single record type per file (signle table per file). So if you want to have multiple record types stored in signle file you have to combine that with the use of mapped files. Article about this on my To-Do list. ;) Time of compleetiomn unknown :(

The main advantage of making your own "custom database" is that your records can contain fields of almost all Pascal based variable types while most existing databases limitsto their internal field types. The only limitation is that the field variable must have fixed size, no standard strings or dynamical arrays.
Main disadvantage is that such database might not be compatible with non pascal based programs and you have to use mapped file approach if you want to have multiple record types in same file.

WILL
01-08-2013, 08:16 AM
Just opened up a new Poll relating to the concept of a Lite Edition of Delphi: http://www.pascalgamedevelopment.com/showthread.php?23527-How-much-would-you-pay-for-this-concept-for-a-quot-Light-quot-Delphi-Edition (go vote!) :)


You can always make yourself "custom database" using Typed Files.

Yes that's always an option. Using binary files across platforms does become a pain though. That could be a weakness in cross-plat games. I would say that including something like a text or parsed format like XML for file storage could help solve that issue.

Overall a DB-based game would only make sense to me in the case where you are moving around or accessing a lot of data at any time. Say an MMO or maybe an always running server-side engine?

SilverWarior
01-08-2013, 11:04 AM
Using binary files across platforms does become a pain though.

Why?
I don't have much expirience on other platforms.

WILL
01-08-2013, 08:14 PM
Why?
I don't have much expirience on other platforms.

The main problem is the way that Windows and Mac OS X operating systems each handle their file systems. If you've ever looked into the hardware or lower level of how data is stored, there is one of 2 ways (well I believe there are more, but 2 basic approaches) big endian and little endian. Essentially the bit order goes one way on one platform and the other platform has the bit ordering going the other way. 0 bit is on the left versus 0 bit being on the right.

This is a royal pain to have to convert or even more annoying to have to rig your programs to read data the wrong way on the other platform.

The advantage of using a text file based format (like XML) is that text files are pretty much read and written to the exact same way no matter the bit order on your OS. Using something like an XML library has the added advantage of a node system so its even easier to read your attributes and values instead of having to parse everything. Plus the added flexibility of being able to script your data quazi-HTML style.

You could use something like JSON or even Lua, which people have also recommended for adding a higher level of functionality. I like how simple XML is however.

SilverWarior
01-08-2013, 08:37 PM
The main problem is the way that Windows and Mac OS X operating systems each handle their file systems.

Doesn't TStream-s have platform based implementation of memory or file handling so you don't have to worry about the Big-Endian and Litle-Endian by yourself.
I do realize that the way how Typed Files work is platform dependant (based on Delphi-s hint it generates whenever I use them).
Also since newest Delphi version do have support for Mac OS X I would suggest that this is being overcome in RTTI itself. So far I haven't tried doing any multiplatform stuff as I don't own Mac OS X based platform device myself.

WILL
01-08-2013, 09:23 PM
Doesn't TStream-s have platform based implementation of memory or file handling so you don't have to worry about the Big-Endian and Litle-Endian by yourself.
I do realize that the way how Typed Files work is platform dependant (based on Delphi-s hint it generates whenever I use them).
Also since newest Delphi version do have support for Mac OS X I would suggest that this is being overcome in RTTI itself. So far I haven't tried doing any multiplatform stuff as I don't own Mac OS X based platform device myself.

I really don't think so. I battled with this issue myself while working on Garland's Quest looking for solutions. Trying to force the compiler to think differently just causes problems too. This was the case I found while working with Lazarus with both Win and Mac. Text handling is a universal solution across platforms.

Mac are nice to run in place of a Windows machine these days. But that's a highly debated topic. (Cost considerations pending.) Development is still kind of getting there in my own personal opinion. Doing cross-platform really does require you have the hardware or software of the platform you are trying to support. How else can you tell that it's working as intended, right? :)

Murmandamus
01-08-2013, 10:30 PM
The main problem is the way that Windows and Mac OS X operating systems each handle their file systems. If you've ever looked into the hardware or lower level of how data is stored, there is one of 2 ways (well I believe there are more, but 2 basic approaches) big endian and little endian. Essentially the bit order goes one way on one platform and the other platform has the bit ordering going the other way. 0 bit is on the left versus 0 bit being on the right.

That's not -quite- accurate, but close.

The issue isn't with bit ordering, but with the order in which whole bytes of multi-byte data structures (like 32-bit integers, for example) are stored. With Little-Endian (Intel), the least significant byte (with bit position values 1 to 128 ) is stored first at the lower memory address, then the next, etc. With Big-Endian (SPARC, various RISC processors), the most significant byte (with bit position values 16777216-2147483648 ) is stored first, then the next, etc, down to the least significant byte last at the higher memory address.


This is a royal pain to have to convert or even more annoying to have to rig your programs to read data the wrong way on the other platform.

The advantage of using a text file based format (like XML) is that text files are pretty much read and written to the exact same way no matter the bit order on your OS. Using something like an XML library has the added advantage of a node system so its even easier to read your attributes and values instead of having to parse everything. Plus the added flexibility of being able to script your data quazi-HTML style.

You could use something like JSON or even Lua, which people have also recommended for adding a higher level of functionality. I like how simple XML is however.

Well, it really only matters if you use multi-byte data structures. If you treat the whole thing as an array of byte, then you won't run into problems. The issue becomes a problem because you won't be able to use anything but Char and SmallInt/Byte that way. As soon as you want to use a Word/Integer/LongInt/etc, you have to use the platform byte-swap functions on them before you can use them.

Now, you can argue that it is a pain, but is it really that much more a pain than using some kind of text parser? It is easy enough to encapsulate the details of a binary storage class which takes care of any endianness normalization (and plenty of libraries do).

That said, another big advantage to text-based data storage is the ability to go into it manually with an editor for verification/modification.

WILL
02-08-2013, 01:00 AM
Now, you can argue that it is a pain, but is it really that much more a pain than using some kind of text parser? It is easy enough to encapsulate the details of a binary storage class which takes care of any endianness normalization (and plenty of libraries do).

I find FPC's included XML libraries to be really quite spiffy.

Since I had to fight with Lazarus for months to keep using binary files to do something that just clicked and worked in a matter of hours with XML. Easy choice! ;)

Murmandamus
02-08-2013, 01:19 AM
I find FPC's included XML libraries to be really quite spiffy.

Since I had to fight with Lazarus for months to keep using binary files to do something that just clicked and worked in a matter of hours with XML. Easy choice! ;)

Were you doing the binary file stuff from scratch? O.o

I mean, I don't know your application specifics, but there are various binary serialization/storage libraries out there which are a snap to use, depending on your needs.

WILL
02-08-2013, 01:44 AM
Were you doing the binary file stuff from scratch? O.o

I mean, I don't know your application specifics, but there are various binary serialization/storage libraries out there which are a snap to use, depending on your needs.

Yes I was. I don't care for bloat and unnecessary build up of dependencies so XML was another win for me since it was already included with FPC.

The added benefit to using XML was that I now was able to open up any text editor and edit my levels without having to use specific or custom-made tools. Further adding features or storing new information you could potentially break your in-house design tools and corrupt your game forcing you to use something like a hex editor to conform it. Where text is much easier to open and read.


Bringing the thread back on topic though; You can see that databases are nowhere near as usful for storing game data as other methods. http://www.pascalgamedevelopment.com/images/pgdsmilies/wink.gif

Murmandamus
02-08-2013, 02:47 AM
Yeah, for most non-MMO-type games, a RDBMS is totally useless. Game content doesn't need it, but many games do use a library-style custom (often binary) format for game data. A few of them even use zip files and incorporate zlib to access them. <.<

Even still, it all depends on what you're storing and how you need to access it. Each format/methodology has its advantages and disadvantages for different needs. :)