News:

Building a 3D Ray Tracer  By stevmjon

Main Menu

Common Newcomer Questions

Started by kevin, August 19, 2006, 06:15:17 PM

Previous topic - Next topic

kevin




Common Newcomer Questions:

Document Revision: V0.19  (4th,Jun,2014)

This FAQ might be out of date, always check the home page versions for the most up to date editions



Q. Do I have to learn some programming in order to use PlayBASIC ?


     Answer:   Yes - While PlayBASIC was designed to incorporate as much game related functionality as possible (Graphics/Sound etc etc)  at it's core, PlayBASIC is a programming language.   So in order to write games or applications, you'll have to at least learn some programming.  There's no getting around this fact.  That doesn't mean you have to be programming guru however, but A little knowledge can get you a long way!




Q. How difficult is PlayBASIC programming ?


     Answer:   Easy->Intermediate - PlayBASIC is based upon the B.A.S.I.C family of languages.  BASIC languages use a more English styled approach to the programming instruction names (the code we use), making them much more legible and easier to learn for new comers.   So if you have some previous experience with another BASIC, this knowledge will no doubt be mostly transferable.  

      If not, then there's lots of examples and tutorials in the HELP Files  (See HELP ->  ABOUT SECTION) and of course here on the forums.    




Q. How do I write a Hello World Program in PlayBASIC ?


     Answer:





Q. How long does it take to program a game in PlayBASIC ?


      Answer:  This is a really common question and it's easy to see why people ask it.  But really, it's not something we can give a definite answer on.   How quickly you can program a game relies upon;  not just your programming skills, but your design, graphics, sound and organization skills also.  

     One common mistake a lot new programmers make though, is they design games that are beyond the scope of a single person (or small team) to create, regardless of their programming skill.  

     If you're just starting out, then my advice is to keep your game ideas as simple as possible.  As your skill set improves, so will your ability to build more complex programs efficiently.

     For example.  Lets say a new programmer (with no previous experience) decides to try and remake the classic 'Pong' (by Atari) Video Game from the 1970's.   While this might seem trivial for more experienced programmers, for a new user, it may take them a few weeks to grasp enough programming knowledge and programming concepts to build a working prototype of the game on their own.  Alternatively,  the more experienced programmers could probably build the same program in a few hours.  





Q. Can I learn Programming if I'm a time poor / a slow learner / easily distracted ?


     Answer: Yes -  Learning to program, is just like learning any other skill.   If you tell yourself you can't, then you won't.   Above everything else  learning requires a commitment.   So a big part of getting started, is simply making  time to focus on learning (reading tutorials / help files / examples, asking questions and most importantly tinkering about with your own ideas).    Initially, it's all going to seem too difficult,  as there's a lot of  tidbits we need to grasp all at once.  But, each time you learn a new thing, the mountain will slowly become a molehill.    
     




Q . Where can i find Example Source Codes for PlayBASIC ?


      Answer:  You'll mostly find source code examples in the resource forum (Get Source Code) or on the PlayBasic.com Resources.   But there's code examples spread throughout the entire PlayBASIC forum.




Q . Where can I find PlayBASIC tutorials ?


     Answer:  The first place you should look is in the ABOUT section of the PlayBASIC HELP files.    To help you get started  on your programming journey, we've included a number of comprehensive tutorials into the PlayBASIC manual.   These cover everything from Variables / Arrays / Types / Loops / Linked Lists / Maps etc  through to some more advanced topics.

      Initially though, We strongly recommend at least reading the Variables,  ArrayBasics, Comparisons, If / Thens  &  Loops  tutorials from the PlayBASIC Help section.   These will give you a good kick start into not only writing your own programs, but understanding how other peoples programs work.
     
      Beyond that, We also have a dedicated PlayBASIC Tutorial forum, located in the resources section of the forum.

      But be sure you check out the Game Design forum and of course the "How to Make Games In PlayBasic" FAQ.  

     PlayBASIC Tutorials Forum Index




Q . I'm reading the forums/tutorials but why does some information seem to contradict other information  ?


     Answer:  Yeah unfortunately this is a common issue when learning a new programming language.   It often occurs when a programmer asks for advice / help and get a broad spectrum of answers.  Where perhaps the approaches or tips given seem to clash.   What we have to remember, is that there's multiple solutions to any one programming problem.  When combined with changes and advancements that might have been make to the programming language over time and we've definite source of confusion.  

      For example, if you asked the question "How Do I Add One to a Variable In PlayBASIC ?" say five years ago.  Then you'd most likely get a couple of responses like ?

      Ie.  
              Variable=Variable+1

      or
              INC Variable

     Since they were the only available options back then but Today, we've also got the ++ and += operators.   So somebody today might now respond.  

           Variable ++

     or

           Variable += 1

     Wow, so there's four ways to performing a simple addition ?, but which one if right ?  Surprisingly,  None of them!  They'll all valid.   But you might read a tutorial or forum post on the subject, where various users prefer one approach over another.  So it may just be a personal preference, or perhaps the material is obsolete.   Now obviously, If simple programming problems can be the source of confusion answer,  you can imagine that more complex programming problems, have many potential solutions.

     Knowing that, the best advice we can give you when asking questions, is be prepared to outline your problem in detail.  The more information you give, often the more 'accurate' the response.   All too often people ask general questions and are surprised when they get a general answer.   Perhaps there's 20 solutions to a general problem, but no ones going to go throw every possible combination at you, without trying to narrow down down what approaches fits your goal best.    

    The forum moderators  do try and 'update / cross reference' obsolete material when made aware of it.  If you find some old post or example that you feel needs updating or cross referencing then Email Support (login required).  


   


Q. Advantages/Disadvantages of PlayBASIC ?


    Advantages: :
       
        Fast, many commands, native world / camera / map support  graphics commands, collision support (circle, rect, polygon
shape, pixel perfect and combination's), tons of demo programs with source code and over 1200 pages of help files.

        But, the number one advantage is it's still being developed. In fact we've keep updating and improving the product for almost ten years, which is virtually unheard of at this price point.


    Disadvantages

        VM based,  2D / 2.5D Focused, lots of new jargon for new programmers to wrap themselves around  and not as wide spread as other main stream languages such as Visual Basic.





Q. What is the difference between PlayBASIC V1.64 and the prototype editions like PlayBasicFX V1.7x and above ?


     Answer:   The main difference between the two editions is the interface/requirements they use for rendering.

               PlayBASIC V1.64 and bellow editions use the DirectX / DirectDraw interface behind the scenes.  Direct Draw is a very old interface today and was designed primarily for 2D hardware acceleration (blitter).  Using it, ensures broad compatibility across virtually all pc's on the market, but you loose 3D acceleration.   So PlayBASIC V1.64  revisions are last edition that uses this interface.  

               PlayBasicFX V1.7x (and above) are a complete rewrite and use the Direct 3D interface for rendering.   While moving to the Direct 3D architecture means PB can take advantage hardware 3D acceleration technology found in the majority of PC's available today.   The change of interfaces does mean some behavioral changes between the two editions.    Effectively the Direct3D powered editions of PlayBASIC are optimized for 3D hardware acceleration, over older fall back methods found in the older editions of PB.     So it's not uncommon to have to alter old programs to perform better (or even work) with the new Direct 3D powered editions.





Q. I've seen some 3D demos, so what makes a PlayBASIC a 2D language ?


      Answer:  PlayBASIC focuses on giving the user a set of built command sets that were designed to make 2D game creation easier.   Incorporating such things as sprites / maps / shapes and various other 2D elements.  These elements generally only exist on a 2D plane though.  

     The demo's you may have seen, most likely build 3D scenes / objects using some of PlayBASIC lower level polygon drawing commands.   These commands require a lower level of understanding from the user and no doubt use features like vertex rotation, translation / clipping,  user defined meshes and drawing of texture mapped triangles.    While these can be used to replicate 3D scenes in PlayBASIC 1.64 and bellow today, they should be considered experimental.   As the rendering is missing perspective correct texture mapping and surface to surface intersection. (Ie. There's No (per pixel) z buffer).    So these things are more for the hardcore / retro demo coders then new users.





Q. Can I use 3rd party 3D engine with PlayBASIC ?


      Answer:  Yes.  Currently there's wrappers for ColdSteel and Blitz SDK avail.  See the 3D development forum.

                  Also, PlayBasicFX V1.7x prototype editions include a basic 3D engine.





Q. Can I make applications with PlayBASIC or just games ?


      Answer: Yes you can.  While PlayBASIC was designed with a focus on graphics programming / gaming, you can also make regular applications with it.  For example, I routinely use it for lots of none game related tasks, such as file & web site building processing.  





Q. Can I sell my games made with PlayBASIC / PlayBasicFX ?


    Answer:  Yes.   if you've created a game using PlayBASIC Retail edition, you can happily sell it.   Royalty Free

 


Q. Can I create a game creator or programming languages with PlayBASIC / PlayBasicFX ?


    Answer: No, not without the appropriate licensing.     Email PlayBASIC Support to discuss terms.





Q. Is PlayBASIC currently Object Oriented  ?


    Answer:  No.  

 




Q. Are there plans to add Object Oriented support to PlayBASIC ?


      Answer: Not for PlayBASIC V1.xx revisions.   We had been planning to introducing some light weight OO into classic versions of PlayBASIC,  but that's now being held over to future editions (V2.xx level revisions at least) .  




Q. What is PlayBASIC Syntax similar to ?


    Answer:  PlayBASIC shares syntax similarities with various BASIC dialects.   The most obvious would be other basic gaming languages such as Amos (on the Amiga) and Dark Basic (PC).   But there's also a hint of Visual Basic and even some C ism's also.  





Q. Does the retail version build Machine Code  EXE's ?


  Answer: No.  Exe's use a Virtual Machine.    The Retail version (See Retail FAQ ) of  PlayBASIC  comes with two editions of the VM.   A Release and Debug version.  The Release  has all 'safe code' (array bounds, media validity etc ) removed and  therefore gives a higher code execute speed.   Which depending upon the program can be anywhere from 1% to 20%.    The Debug edition, will give the same performance as running your project through the IDE.  



Q. Will future version produce Machine Code Exe's ?


  Answer:  Maybe..  It was planned on the long term goals, but since the release of PlayBASIC2DLL, there's not much point.

             UPDATE:  In  (June 2014) we released a tool called PlayBASIC2DLL.  This tool converts PlayBASIC sources codes to machine code DLL's for use with PlayBASIC.  The DLL's can be linked and executed from memory, giving us the best of all worlds. 




Q. How do I compile a PlayBASIC program  ?


  Answer:  The PlayBASIC IDE / compiler package offers four compiler modes (in retail editions).   Generally you'll be using the F5 function to compile and run your program as you make it. This option perhaps a memory resident compile and execution of the result, without having to drop an EXE file every time.     If you want to build an EXE, the use the F4 option. This compiles the code and builds the EXE file.    

          F4 = Compile + Build EXE  (Retail Only)

          F5 = Compile + Run

          F6 = Compile + Run With Full Debug

          F7 = Compile + Run With Partial Debug (Recommended)








Q.  How / when to buy PlayBASIC ?


     Answer:  You can secure order either through the Home Page.  




Q. How good is support ?


     Answer: Supporting a programming language is difficult,  so we make a conscious effort to keep PlayBASIC users informed of all developments in the PlayBASIC world on the forums & home page.   Forum members can access the PlayBASIC blogs (we highly recommend you read it!) plus other things such as bug reporting and regular upgrade & enhancements through the maintenance boards.   Active Members can also contribute to PlayBASIC's development with feature requests and live beta testing.  




Q. What's the purpose of the PlayBASIC Forum ?


     Answer: While the PlayBASIC developers use these forums to convey information to the PlayBASIC user base (customers or otherwise), this is not an ask the developers site.    The intended purpose of the boards is for PlayBASIC users to interactive with other PlayBASIC users.   This interaction could be asking questions of each other, sharing game making tips / ideas / resources (graphics / music / sounds / code),  posting WIP screen shots, code snippets or even tutorials to help others out.

                 So in order for you to get the best of this resource, then you should really dive in and participate.  Sitting on your hands certainly won't help making your game ideas a reality.




Q. Where can I ask questions about PlayBASIC ?


     Answer:  Here on the forums.   If you're completely new to programing, then the beginners board was made for you.   Moreover, If your feeling a little more adventurous, then post a 'Hello World' thread in the introductions board.     Tell us a bit about yourself (background, programming / game making objectives, favourite retro games, favourite console/hand held etc etc.. whatever takes your fancy really).




Q. I've made a Game / Demo / Application with PlayBasic, Where can I show it off ?


     Answer:  If you've developed something in PlayBASIC (any version), then make sure you show others in the community what you've been working on (or have completed)  by posting a thread in the SHOW CASE board.    

        We routinely highlight user games posted in the showcase forum, both through the PlayBASIC IDE's new reader, and in the PlayBasic.com Gallery




Q. I think you've found a problem with PlayBASIC! - Where can I post bug my reports ?


     Answer:  If you've found a bug, then you should post a bug report on the PlayBASIC Bugs board.   To do so, simply read the submission guidelines and post it (..if it's not already listed..).   Can't find the Bugs forum ?  - This forum is only visible to forum members.  So sign up !





Q. Why should I buy PlayBASIC instead of (insert other basic or game engine of your choice)?


       Answer:  You should purchase the programming language / tools that are the best fit for the type(s) of programs / games you wish to create.   You can get some idea of how PlayBASIC stacks up in the links bellow.

                      PlayBASIC features





Q.  Can I expand PlayBASIC via using my own DLL's ?


      Answer: Yes,  although this currently limited to the Retail editions.  The learning edition doesn't inlcude DLL support.



             


Q.  Are there any commercial games done with PB?


      Answer: Not many, most people just make freeware games, but some (see homepage with Sudoku Board and Jeku's games)





Q.  What platforms are supported?


       Answer: ATM only Windows using DirectX, other platforms might become supported. (Mac/Linux & Mobile platforms)





Q . Is PlayBASIC ANSI BASIC compliant ?


      Answer:  No.  




Q.  I've been testing some of the examples but can't to figure out how to Stop / EXIT them ?


      Answer:  You can force most of the examples to stop by either pressing the ESC key or clicking the close icon [ X ]on the PlayBASIC window (if it's in windowed mode)





Q.  I'm a C/C++ programmer is there an SDK version of PlayBASIC Engine(S) available


      Answer:  Nope, and nor is an SDK version is planned.