Will somebody port raylib to PlayBASIC?

Started by piamoo, October 25, 2022, 09:31:09 PM

Previous topic - Next topic

piamoo

Raylib looks popular! It was ported to so many languages: https://github.com/raysan5/raylib/blob/master/BINDINGS.md

Games which were made with Raylib: https://itch.io/games/tag-raylib

This powerful tool is Raylib! https://raysan5.itch.io/raylib

If any expert of the forum ports Raylib to PlayBASIC, I believe that a new life will be given to PlayBASIC. 8) ;) Yeah!

Any expert will port?


kevin


  If it's a set of libraries then just compiling to DLL with exposing the functions would be all that's required. 

piamoo

Quote from: kevin on October 26, 2022, 05:55:18 AM

  If it's a set of libraries then just compiling to DLL with exposing the functions would be all that's required. 

Oh, I don't have this professional knowledge. Perhaps only you or a few experts in this forum are able to finish this. PlayBASIC really needs revitalization!

kevin

#3
 Piamoo,

     The original plan was for there to two versions of PlayBASIC,  the classic edition and an extended version.   The classic would be feature compatible with it's predecessors (otherwise what's the point ?), where the other wouldn't be.   Over the years there have been a number of public and private attempts to build suitable command sets for the extended version;  which are generally refereed to as FX.    These probably date back about 15 years..  

     Some example conversations might be.  

        --- G2D - 2D OpenGL library for PlayBASIC  (WIP / BLOG / SCRATCH PAD)   and extension that brings OpenGL to PB classic over 8 years ago..  

        --- PBFX 2D Core  

        --- PlayBasicFX (from version 1.65 + above) Screen Shot Updates - PlayBASIC FX Release Announcements - (Direct 3D based)

           these are only to name a few;  here's also some existing wrappers for 3rd party engines such as ColdSteel for example and various others..  


       Unfortunately they all shared the same community response..  The download rates speak for themselves,  virtually no one cared !   The weren't interested.  

      There's any number of reasons why; such as they step outside of the established rules of PlayBASIC / Different command names / documentation etc etc.   Which boils down to if a user can't just install or include the library and run their program using it; they'd have to port their code across to it..   Which is a pretty big disincentive for people who may or may not know how to achieve the same response from a pair of libraries.    


       What your talking about here would be produce a wrapper for this library for use with the existing PlayBASIC.  

       This has all the same problems as the predecessors; in that since the commands can't share PlayBASIC keywords; they'd have to be prefixed.  Meaning a user couldn't just include and run their code on the new library.   No local help files (i.e That PB programers can understand) /  examples / tutorials etc etc..   So in order to adopt,  the user basically needs to know how the libraries function at wrapper level.  

       The alternative is we produce a PlayBASIC emulation using the 3rd party library as the base. Making the transition familiar to the user but may or may not produce indented results.    Even so; today the user would have to 'port' their code to it. Due to command set collisions.    

       Ideally what I want to do is make the bulk of 'command sets' plug and play.   So we could have wrappers for almost any 3rd party libraries.  Then users could include a set and they're off to the races.   This requires big changes to PlayBASIC though that are none trivial and that i've been in the process of making for last hand full of years.  
       
     

stevmjon

something in the works. sounds exciting.

i've been thinking of having another look at playbasic fx. i wasn't sure how to get started when i looked at it years ago.
over the years my knowledge of 2D/3D have improved, as well as understanding what a pipeline is. so another look at it should prove fruitful (compared to my first attempt).

open GL worked on my older graphics card, when i ported my 3D engine to work with it about a year ago, but my new graphics card say's no... i can't even open 16bit fullscreen with the new graphics card.
it is an RTX 3070 card.

direct 3D seems to be the future.
It's easy to start a program, but harder to finish it...

I think that means i am getting old and get side tracked too easy.

piamoo

Quote from: kevin on October 29, 2022, 08:39:24 PM
         Ideally what I want to do is make the bulk of 'command sets' plug and play.   So we could have wrappers for almost any 3rd party libraries.  Then users could include a set and they're off to the races.   This requires big changes to PlayBASIC though that are none trivial and that i've been in the process of making for last hand full of years.         
     

Wow! You wrote a detailed post to explain the difficult situation of PlayBASIC to us. I fully understand now. Thank you very much. I am very glad because you are very passionate. Your target is our new hope! Sure! We are really looking forward to the success of this new target. Please tell us the progress of the development of the project regularly. Thanks again!

piamoo


kevin

 Steve,

    I'm always fooling around with something.. 

Quote
i've been thinking of having another look at playbasic fx. i wasn't sure how to get started when i looked at it years ago.
over the years my knowledge of 2D/3D have improved, as well as understanding what a pipeline is. so another look at it should prove fruitful (compared to my first attempt).

    Well, I'm just saying that such things existed and that such conversations have been had.  Not that you should use it today :)   as  PBFX builds are something like 15 years old today..

    I have thought about grabbing the command sets from those old builds and making them available from modern PB.    Which is probably possible, depending upon hot tightly they were written against the PBFX runtimes..   That stuff is based Direct 3D #7 though.    So it's old as


Quote

open GL worked on my older graphics card, when i ported my 3D engine to work with it about a year ago, but my new graphics card say's no... i can't even open 16bit fullscreen with the new graphics card.
it is an RTX 3070 card.
direct 3D seems to be the future.


   Vulcan is the future which is the GL successor.  Multiplatform, shaded are all optimized for what can only be termed the shader arrays found in modern gpu's.. 

   also it's pretty common for modern cards no longer support 8/16/24bit directly.  Even older  cards removed classic bit depths and resolutions.   Which is pretty annoying, but I guess they can't support legacy stuff forever.





stevmjon

#8
 I thought playbasic 1.6x was using dx7 direct draw(2D) command set, and that playbasicFX was dx7 direct 3D command set.
so comparing these 2 command sets, wouldn't playbasicFX be faster and work better on modern computers?




Mod Edit Note:  Sorry I think I must have hit the modify button thinking it was quote and replied over your original message .  :(
It's easy to start a program, but harder to finish it...

I think that means i am getting old and get side tracked too easy.

kevin


Quotethought playbasic 1.6x was using dx7 direct draw(2D) command set, and that playbasicFX was dx7 direct 3D command set.
so comparing these 2 command sets, wouldn't playbasicFX be faster and work better on modern computers?

 Yep standard PB uses Direct Draw,  were as FX builds use the combination of Direct Draw and Direct 3D.  

 So 2D stuff in PBFX actually defaults to direct draw in order to be remotely compatible with PlayBASIC.   To switch to 3D; you have to load the images as textures (onto the gpu) which is what the 3D options are in the image format in those editions.  Ie.  Video / FX / AFX and 3D.  Those images can then be rendered / transformed as triangle polygons.    The benefits are that you get transformations / filtering and some limited drawing effects such as Tinting / alpha blended & alpha addition with minimal impact..  

 But..  there's more than a few BUT's

 All the same limitations exist,  you can't draw between surfaces etc etc and the kicker is that GPU's of that era had tiny texture caches.    This places limitations on how much texture data and at what resolution your textures can be.   Cards had psychical limits on sizes due to only having a small amount of memory like  64 / 128 / 256 / 512 meg on the card.    My duron system has a 64meg card in it :)    

 I see no reason for PBFX stuff to not run ok on modern hardware;  but  it all comes down to how well they support those legacy drivers..



kevin

#10
QuoteWow! You wrote a detailed post to explain the difficult situation of PlayBASIC to us. I fully understand now. Thank you very much. I am very glad because you are very passionate. Your target is our new hope! Sure! We are really looking forward to the success of this new target. Please tell us the progress of the development of the project regularly. Thanks again!

 I've released regular blog updates constantly..   have done for years!

 Here's two from the last two weeks.

 PlayBASIC-BLOG- Topics - Website - Ray Tracing & Operation Watergate

 PlayBASIC - Web Dev Blog - 90 percent bots and sinking (2022-11-03) (login required)

 The view stat's show that people don't read / watch them !  


piamoo

Quote from: kevin on November 04, 2022, 08:54:37 PM

  I've released regular blog updates constantly..   have done for years!

 



I believe that PlayBASIC will succeed finally.


stevmjon

just wondering if playbasic FX will run faster than playbasic if i converted my 3D engine over?
can playbasic FX use hardware acceleration?
It's easy to start a program, but harder to finish it...

I think that means i am getting old and get side tracked too easy.

kevin


Quote
just wondering if playbasic FX will run faster than playbasic if i converted my 3D engine over?

Which one ? 

  For the software rendering /texture mapped engine then it's unlikely to run any faster in those PBFX builds out of the box.    The same goes for the Ray tracing stuff. 

  PBFX builds do have a 3D mode;  so 3D camera and you define a mesh for a sprite to be viewed from the camera.     But then probably 95% of your software render isn't even needed.  So it's really a different program.  But you could do that !  as for learned how it works today that's up to you.  I've no idea what state any of that is in.  :( 


Quote
can playbasic FX use hardware acceleration?

   Yep and so does normal PB..  if you built a version for PBFX the 3D would be rendering on the gpu side.

   

stevmjon

from my understanding, hardware acceleration is using the graphics card gpu to do calculations which it can do in parallel.
so the gpu can calculate multiple 'pixels' at the same time?

how does normal PB use hardware acceleration? is this when you have an image in video memory, and this is drawn directly to the screen as solid/transparent, as this uses the gpu?
or is hardware acceleration in normal PB using openGL (which i can't use with my new graphics card)?
It's easy to start a program, but harder to finish it...

I think that means i am getting old and get side tracked too easy.