View Full Version : Game Development Edition?

25-04-2005, 12:45 AM
Well I've made suggestions myself and have heard elsewhere of suggestions and such for Borland making a Game Development Edition of Delphi, but more realistically is this something that can happen for Lazarus?

I guess it could be as simple as a version that comes pre-built with components and libraries included that support various Sound, Graphics and game device APIs. (such as JEDI-SDL, DirectX Headers, OpenGL Headers, OpenAL Headers, etc and so on)

Maybe there may also be some other requirements, tools and other features that would aid in the development of games made in Lazarus?

25-04-2005, 12:57 AM
Maybe a possability of building an opensource Game dev IDE??
Could have built in functions for say creating an opengl window/context and rendering routines, etc..?? Built in tools, etc??

25-04-2005, 01:00 AM
Erm, i think this might be classed as an extension

But how about a texture/image editor/viewer? nothing fancy just simple.
Maybe also a 3d model viewer.

Actually, i'd be really intrested in helping out with this sort of project actually :D

you could arrange it like a PGD community project :D

25-04-2005, 04:39 PM
Interresting... perhaps just a "package" that will add this functionality to Lazarus. SDL, OpenGL and perhaps some sound library like SDL_Mixer or more advanced like OpenAL usable as "visual objects" as well as non-visual ones. The most difficult part is getting OGL and SDL gfx to work in the window context crossplatformly.(each is handled differently)

25-04-2005, 08:33 PM
Well an 'add-on package' might work, but it would probably be best if it's a simple 'install and go' type of package. The idea being that it's all there ready for you to do game development. No hastles or complicated setups... Thats the idea of a Game Development Edition or Package as you suggest aswell.

But as for whats contained. I recommend ALL the APIs Headers(including DirectX because of it's popularity of use) and toss in any other cross-platform libraries. ie. JEDI-SDL as one I know off the top of my head. Or simply have SDL Headers too.

GLScene for Lazarus could also be incorporated into this aswell...

26-04-2005, 06:40 PM
Well I don't agree with DirectX.
Anything cross-platform. But leave the one-platform-only out. Lazarus is about crossplatformity in the firstplace IMHO, building a specific package for it is useless.

SDL(including sublibs), OpenGL, OpenAL, perhaps things like GlScene and some pascalish projects which could fall into it.

26-04-2005, 06:50 PM
I think that it is important to include things like DirectX compatability with FreePascal as it shows that it can compete with the existing Microsoft tools. If the "only" benifit of FPC is cross platform, then its not actually such a good product. If it can;t use DirectX as well as MSVC why would any Microsoft favoring user switch.

A game dev edition should cover all aspects, from plat form specific to as much cross platform functionality as possible.

28-04-2005, 04:19 PM
I have to agree, Directx is required :)

Ok it is windows only and lazarus is cross-platform, but most games are created with Directx and most people look for directx features before opengl. Well this is my personal experiance anyway.

This and im not actually that big a fan of OpenGL in the first place :)

28-04-2005, 09:12 PM
You didn't get my point. Currently(and for atleast a year from now) Lazarus uses static packages.
That is: Packages are compiled "into" lazarus which is then ran again.
This means that anything platform specific in the game-edition package will make lazarus with it also platform specific(linking).

It could be done by dynamic linking but you'd need a dynamic pascal header for DirectX for that.(+ other hassle)

As for FPC/Lazarus's qualities well, to be honest(note: I do love FPC and Lazarus) it has not much others. It's slower than Delhpi(version dependant), has lesser components than Delphi, more bugs than Delphi etc.

If I was developing in windows I'd use delphi unless my budget or other circumstances(like my love of opensource) forced me otherwise.

I am, however developing cross-platformly ;)

I think a good definition of "game edition" is in order too.
Perhaps it might be best if the package was configurable in some way so you could choose backends. This way many renderers even platform specific ones could be included and will be available to choose on the given platform only.

Even in simpler form this is a helluva work. If you're not thinking one platform only the testing and polishing required(not to mention making the design good, getting GLScene and others working etc.) will be extreme :)

I'm looking forward to it :D :D

30-04-2005, 02:35 AM
Hm.. It's just a matter of learning DirectX/OpenGL and you're ready to go.
I don't see any problem, except for the fact that the Lazarus executables are not optimized. But that's a minor problem. Although I hate it~! But do not forget the power of Lazarus - cross platform. It's a huge undertaking!
And the speed Lazarus versus Delphi- my experience is that the free pascal compiler is way better than Delphi's... just imho :)
But real speed difference, in a final game product, shows itself in the quality of programming of course.

30-04-2005, 06:54 AM
I don't think the topic of DirectX is such a sticky issue. How does Delphi handle DirectX headers? Dynamically! Of course it does, the whole API from Direct3D to DirectPlay DirectSound is a series of Dynamic Link Libraries.

Go fishing for fish with a fishing rod and/or net and hunt bears, moose and deer with a riffle. Not the other way around. :)

Any truely powerful game can always be improved upon by a good few in-line assembly routeens and good solid coding practices. This eliminates many speed bumps you may have by being innovative. Besides, like Delphi and it's predicessor Free Pascal and Lazarus will get better at these things. If you make maximum use of your resources you'll not run into too many problems that it will destroy your project.

The idea I had with the Game Edition and the way I think it should be approached is like that of a fully installed copy of Delphi with all those neat little component suites, Graphics Headers and libraries pre-installed and sitting in a common installed directory so you can simply do things like;

:arrow: Click on File -> New Project... -> Select 'OpenGL + OpenAL Game' icon
:arrow: Click on File -> New Project... -> Select 'OpenGL + BASS Game' icon
:arrow: Click on File -> New Project... -> Select 'JEDI-SDL Game' icon
:arrow: Click on File -> New Project... -> Select 'DirectX Game' icon

And these options within the Game Edition Menu will create a defualt set of code that like in Delphi will have your included uses clause with it's default listed libraires (it'll change depending on your profile you selected when you made a new project.) The libaries will already be included in your Library Directory Search Paths from install AND the libraries and their sources will have their own set directories for those APIs or platforms supported.

The idea is to make game programming easier making a distrubution of sorts (if not new product depending on what platforms and APIs the studio will support) that is for game development.

Ideally you would want to use already established libraries or capable projects already in place. Such as taking a copy of Lazarus, adding the latest JEDI-SDL package, popular+functional DirectX Headers, DGL's OpenGL headers, noeska's OpenAL headers and using other such open-source and established projects than to go reinvent the wheel... This may even aid to the ability to maintain alot of modularity in the use of APIs and Libraries in your projects.

The rest is pretty much splitting hairs and what you like and don't like. This is fine, but when creating something of thise effect as a multi-platform/multi-API solution, you want more options than less or you'll have less users than more. Thus less support, feedback, interest, life-span of product.

Are there actual interested parties in doing something like this? This is one of those projects that PGD may consider becomeing involved in via some kind of mirroring or page hosting, etc...

30-04-2005, 08:15 AM
I think it would be best to 1st make a group of people. Each one or few will be then assigned jobs according to personal experience/prefference. I for example would like to help with the SDL parts and add my networking code to the project(OOP, crossplatform).

We need atleast one programmer for each library since most FPC header units are still static linked, they will need to be remade and then a set of visual and non-visual OOP components will have to be made.

I think it might be good to also have some sort of abstraction on top of it so we have a common interface.

So, hands up people :)

30-04-2005, 08:24 AM
Im Intrested in this, probably wont be much help but intrest is there for me :D

07-05-2005, 06:51 AM
[quote="Almindor"]We need atleast one programmer for each library since most FPC header units are still static ]

I think my point about using well established libraries was lost somewhere here...

Have a look at these sites:

JEDI-SDL -- http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME
Clootie's Translated DirectX Headers --http://clootie.narod.ru/
noeska's OpenAL AND OpenGL Headers -- http://www.noeska.com/en.aspx

I am quite sure that if you look well enough you'll be able to find other OpenGL headers of the same make-up(DGL Headers perhaps?). Why try to re-invent the wheel needlessly? Notice how these packages, libraries and suites already make use of the APIs dynamically and work under Free Pascal already?

Also take notice how they are updated by other already commited individuals who update their own work? We don't even have to do all the work, it's done and continued to be done for us! It just makes too much sense! :lol:

I'd like to help with hosting and the odd task here or there. But only if it turns out to be a Game Development Edition/distrubution or branch of Lazarus. Otherwise my time can be better spent elsewhere, sorry to say.

07-05-2005, 08:31 AM
I don't want to be spoilsport or anything, but I think it might be best to wait for lazarus to stabilize. It is still pretty problematic and alot of things are still "not working good enough" so adding a branch might be suicidal(they might change something fundamental in LCL design and such)

I understand the idea buy frankly don't see the need for a "game edition" lazarus as it. I'd be happy to have a "distribution" of FPC and Lazarus with most libraries so I don't have to set up lots of headers for C libs.

The only thing "integrated" into Lazarus worthy of effort IMHO is GLScene like things + perhaps a "media player" made with OpenAL or SDL or FMod backend.

10-06-2005, 12:45 PM
Lately it was discussed adding options to the win32 installer for DB support, maybe even compile at install, this could also be use to select Graphics stuff, the GL headers are there, we only need to put AL and SDL maybe even others and GLScene, this will give the impression of a much more mature and robust project and will bust the myth that Pascal isn't good For game development, as the new doc tool gets better we could even add some integrated help and tutorials on how to use the many technologies available i don't have nothing against DX headers being included but we should try to focus on CrossPlatform development, maybe even adding a kind of gaming interface and code samples but this are for the long term.

12-06-2006, 09:50 AM
This project are stopped?