Page 1 of 4 123 ... LastLast
Results 1 to 10 of 40

Thread: Open discussion: What game devs need from Delphi

  1. #1
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Blog Entries

    Question Open discussion: What game devs need from Delphi

    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.

    1. Adding some PGD community members to Embarcadero's MVP Program
    2. 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!
    Jason McMillen
    Pascal Game Development

  2. #2
    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).

  3. #3
    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.

  4. #4
    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?

  5. #5
    Quote Originally Posted by Dan View Post
    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?

  6. #6
    WARNING! Long post ahead

    Quote Originally Posted by WILL View Post
    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.

    Quote Originally Posted by WILL View Post
    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.

    Quote Originally Posted by WILL View Post
    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.

    Quote Originally Posted by WILL View Post
    Do we need specific IDEs or other tools that aren't with the suite right now.
    Some features that needs to be fixed ASAP:
    1. Imrovments to code editor to quickly alow you to view in which scope of the code are you currently on.
    2. 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.
    3. Fixing code folding (besides the pre mentioned problem:
      When folding code inner parts should fold first automatically (nested methods, nested regions, etc.)
    4. Preventing block commenting (use of "{" and "}" characters) to span outside current code scope:
      Right now you can do this:
      procedure SomeProcedure1;
          I := I-2;
      procedure SomeProcedure2;
          I := I+1;
      procedure TForm2.Button1Click(Sender: TObject);
          I := 10;
          Form2.Caption := IntToStr(I);
      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.
    5. 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:
    1. 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.
    2. 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.
    3. 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.
    4. 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.

    Quote Originally Posted by WILL View Post
    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:
    1. Base IDE
    2. 32 and 64 bit Windows compiler, linker, debugger
    3. 32 and 64 bit MacOS compiler, linker, debugger
    4. 32 and 64 bit iOS compiler, linker, debugger
    5. 32 and 64 bit Android compiler, linker, debugger
    6. 32 and 64 bit Linux compiler, linker, debugger
    7. Basic VCL components
    8. Advanced VCL components
    9. Basic FireMonkey components
    10. Advanced FireMonkey components
    11. Basic database components (for local databases)
    12. Advanced database components (for networked components)
    13. Basic networking comunication components (TcpIP, UDP Sockets, etc)
    14. Advanced networking components (HTTP, HTTPS, etc.)
    15. WebService components
    16. Reporting components
    17. OpenGL components
    18. Sound components
    19. Multimedia components
    20. 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.
    Last edited by SilverWarior; 27-07-2013 at 02:46 PM. Reason: Added another cruical thing to be fixed to the list

  7. #7
    PGD Staff / News Reporter phibermon's Avatar
    Join Date
    Sep 2009
    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
    Last edited by phibermon; 27-07-2013 at 04:08 PM.
    When the moon hits your eye like a big pizza pie - that's an extinction level impact event.

  8. #8
    Yes, Lifepower I am talking about the ios, and the non existent linux/android compiler.

  9. #9
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Blog Entries
    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:

    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! ) 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.
    Jason McMillen
    Pascal Game Development

  10. #10
    Quote Originally Posted by WILL View Post
    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).

Page 1 of 4 123 ... LastLast


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts