Jump to content

Recommended Posts

logo.thumb.png.9b86269d21ecf7f83e4eee493dd03b22.png

 

GamePascal™ is a professional indie game toolkit that allows you to do 2D game development using the Object Pascal language. Officially supporting Embarcadero Delphi® and FreePascal compilers on desktop PC's running Microsoft Windows® and uses Direct3D® for hardware accelerated rendering.

It's robust, designed for easy use and suitable for making all types of 2D games and other graphic simulations. You access the features from a simple and intuitive API, to allow you to develop your projects rapidly and efficiently. There is support for textures, audio samples, streaming music, video playback, loading resources directly from a compressed and encrypted archive, a thin object-oriented actor/scene system, collision detection and much more. GamePascal, make 2D games in Pascal. Easy, fast & fun!

 

 

 

https://gamepascal.org

 

Edited by tinyBigGAMES

Share this post


Link to post
1 hour ago, aehimself said:

It would be nice to see an actual demo of what the engine can do.

Things are a little bit confusing, what happened to GameVision toolkit, and what it Delphi GameKit?

GVExamples in the distro (unzip and run). This is just v0.1.0, more examples and features coming in subsequent releases.

 

GV was folded into DGK when I switched to SDL2 and it optimized for more recent versions of Delphi.

GPT uses SDL3, it is designed to work on more compiler/windows versions and will have more/advanced features that will eventually be included. Will not be hampered by limitation of a compiler version not having feature X which prevents you from using it. As long as your compiler version can target win64 and have Unicode, then it should be able to work.

  • Like 1

Share this post


Link to post

You might want to include the differences, pros and cons in the GitHub readme not to leave the impression of a library that gets outdated as soon as you get used to it.

Let's leave that feature to some JavaScript frameworks 🙂

 

Share this post


Link to post
1 hour ago, aehimself said:

You might want to include the differences, pros and cons in the GitHub readme not to leave the impression of a library that gets outdated as soon as you get used to it.

Let's leave that feature to some JavaScript frameworks 🙂

 

Point taken. 
 

Edited by tinyBigGAMES

Share this post


Link to post

Also, you can always spin up a TCompiler instance (see GPCC if you want to play around with it now) and compile your source standalone via the built-in CaaS (compiler as a service). :classic_cool: There will be more information/examples about CaaS in future releases.  The allows for the move toward a standalone game engine/ide environment in the future.

Share this post


Link to post

I'm working on this demo, which will be in the next update.

 

 

Edited by tinyBigGAMES
  • Like 1

Share this post


Link to post

I know I'm being picky, so feel free to completely ignore my "suggestions".

 

But, in the era of OOP you might want to consider plucking all logic into a class, like TGamePascalGame. So instead of

  GameRun(nil, GameEvents);

you simply could derive from TGamePascalGame, and say...

mygame := TMyGameDerivedFromGamePascalGame.Create;
Try
  mygame.Run;
Finally
  mygame.Free;
End;

With this you immediately can get rid of the mandatory, huge Case statement in the method and simply provide a protected virtual procedure like DoStartup, DoShutdown, DoUpdate, DoRender and DoRenderHUD what your consumers can simply override.

If you are thinking on the long run this will also make your life easier as adding new controllable features can simply be published by properties:

mygame := TMyGameDerivedFromGamePascalGame.Create;
Try
  mygame.EnableHardwareAcceleration := True;
  mygame.DataFolder := IncludeTrailigPathDelimiter(ExtractFilePath(ParamStr(0))) + 'mods';
  mygame.HResolution := 1024;
  mygame.VResolution := 768;
  mygame.VSync := False;
  mygame.FullScreen := True;

  // etc, etc..

  mygame.Run;
Finally
  mygame.Free;
End;

 

The demo looks really good. I was thinking on trying myself out in game development so an easy-to-use library could keep my initial struggles at a minimum. So keep up the good work, I'll keep an eye on the repo for sure!

Share this post


Link to post
1 hour ago, aehimself said:

I know I'm being picky, so feel free to completely ignore my "suggestions".

 

The demo looks really good. I was thinking on trying myself out in game development so an easy-to-use library could keep my initial struggles at a minimum. So keep up the good work, I'll keep an eye on the repo for sure!

Hi, thanks. Oh no worries, I welcome all feedback. 

 

I just committed a huge update to the repo today with all of that and more. :classic_cool:

 

There is a new unit GamePascal.Framework, there is a new class TGame that you can derive your games from with all of what you suggested built in. TGame, TActor, TActorList, TActorScene together allow you to have a dynamic and responsive OOP system to manage your game. All the examples have been updated to take advantage of this.  
 

  • Like 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×