tinyBigGAMES 54 Posted January 21, 2023 (edited) 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 January 21, 2023 by tinyBigGAMES Share this post Link to post
aehimself 396 Posted January 21, 2023 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? Share this post Link to post
tinyBigGAMES 54 Posted January 21, 2023 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. 1 Share this post Link to post
aehimself 396 Posted January 21, 2023 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
tinyBigGAMES 54 Posted January 21, 2023 (edited) 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 January 21, 2023 by tinyBigGAMES Share this post Link to post
tinyBigGAMES 54 Posted January 21, 2023 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). 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
tinyBigGAMES 54 Posted January 24, 2023 (edited) I'm working on this demo, which will be in the next update. Edited January 24, 2023 by tinyBigGAMES 1 Share this post Link to post
aehimself 396 Posted January 24, 2023 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
tinyBigGAMES 54 Posted January 25, 2023 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. 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. 1 Share this post Link to post