Coffeehouse Thread

5 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

I published an XNA style game toolkit

Back to Forum: Coffeehouse
  • User profile image
    sysrpl

    To the regulars,

    I've been working on project which recreates an XNA style game toolkit, except for every (soon!) platform.  I thought maybe this long holiday weekend some people somewhere might look at it and give me feedback (watch the video):

    http://www.baregame.org/

    The class library written around SDL 2.0 and optionally includes a compiler+IDE as well as recent binaries of SDL 2.0 for 32/64 bit Windows an Linux.

    And when I say modern I mean the library features a lot of C# ness to it (even though it's not C#) ...

    e.g.

    TEventHandler<T> = procedure(Sender: TObject; var Args: T) of object;
    IBitmap = interface(IClonable<IBitmap>)
    TPointF = record public class operator Implicit(const Value: TPointI): TPointF;
    TMatrix4x4 = record public class operator Multiply(const A: TMatrix4x4; const B: TVec3): TVec3; overload;

    namespace Bare.System:

    https://github.com/sysrpl/Bare.Game/blob/master/source/bare.game.pas

    If you look at the site, please bear in mind i haven't had time to write up everything yet. Let me know what you think.

  • User profile image
    Ion Todirel

    @sysrpl:is it targeting only one language, Delphi?

  • User profile image
    sysrpl

    @Ion Todirel:

    It targets free pascal only.

    But don't let that stop you, as fp has added a lot of new language features like:

    • implcit/explict conversions
    • Value types can have methods, operators, and everything a class can have (except virtual methods, interface implementation)
    • extension methods (again applies to value types as well as classes)
    • c++ style operators (++,--,+=.*=, ect)
    • operator overloading
    • inlining code
    • generics with constraints
    • much improved reflection (they call it rtti)
    • managed types (dynamic arrays, interfaces, dynamics)
    • and a lot more

    It also is native code which is great for interfacing with the open source software it is build on (sdl2, opengl, openssl, libxml). Direct memory pixel (use for sprite collision) or vertex buffer (vertex data is a pointer to a user defined data in memory) access is very easy.

    Also it includes the Lazarus IDE which I briefly overview in this video, includes stepping into dlls C code where you can see what the other open source frameworks are doing:

    http://www.baregame.org/#topic_using_lazarus

  • User profile image
    Ion Todirel

    ugh, how does the Pascal optimizer compares to C++ (Utc/LLVM) nowadays?

  • User profile image
    fanbaby

    @sysrpl: Just wow  Big Smile

    Good luck, but don't forget that we live in the 'age of the api'. These not long ago were more precious then gold, docs and all, but nowdays... api overload

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.