RetroBASIC

Retrogamecoding(.org) => Other Languages => Topic started by: piradyne on January 30, 2014, 01:55:59 AM

Title: PiraBASIC - Make.Games
Post by: piradyne on January 30, 2014, 01:55:59 AM
(http://piradyne.com/images/pirabasic.png)

Download: Direct Link (http://piradyne.com/temp/pirabasic-v1.r1.alpha-20140129.zip)
Version: 1.1.alpha

OVERVIEW
PiraBASIC™ Game Development System is a modern, modular, object oriented game programming language based on a modern version of BASIC®, a light-weight IDE (integrated development environment)  and an advanced 2D game engine for Windows® PC. The engine 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. There is support for surfaces, textures, sprites, audio, streams, archives, configuration files, render targets, swap chains, databases and much more.

LANGUAGE FEATURES

IDE FEATURES

GAME ENGINE FEATURES

This is a little side project I've been working on as a way to take a break (but still stay creative) from other current projects. If there is enough interest I plan to complete help file (a good portion of it is done already) and add the IDE and maybe continue development.
Title: Re: PiraBASIC - Make.Games
Post by: Cybermonkey on January 30, 2014, 11:02:43 AM
This looks really great. I wish it was crossplatform, though. May I ask which BASIC component you are using? (I guess it's done in Delphi?)

Keep up the great work!
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on January 30, 2014, 01:57:00 PM
Thanks.

It uses the same backend code generator as my other language products. This one uses a basic language front end with a syntax similar vb.net. The output can be cross-platform actually. If there is enough interest I will take it that direction.
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on January 30, 2014, 03:14:31 PM
This is very interesting!
Good work man!
 8)
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on January 30, 2014, 04:38:22 PM
@GEEK
Thanks!
Title: Re: PiraBASIC - Make.Games
Post by: Cybermonkey on February 07, 2014, 10:55:35 AM
It uses the same backend code generator as my other language products. This one uses a basic language front end with a syntax similar vb.net. The output can be cross-platform actually. If there is enough interest I will take it that direction.
Is it coded by you or are you using an existing component e.g. paxCompiler or any other?
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 07, 2014, 02:05:25 PM
It is based on a highly modified version of paxCompiler.
Title: Re: PiraBASIC - Make.Games
Post by: Guilect on February 08, 2014, 12:56:46 AM
Hello again Jared.

I remember back in 2011 I was a beta tester for one of your creations: PyroBASIC.
then
PyroGine
Simvector Games
SvBasic
SvPascal
SimVector Technologies

It appears that you have been honing your craft and have produced your best work so far.

I am always interested in BASIC programming languages.
However, I seem to have very little free time nowadays.
I would like to take your latest creation, PiraBASIC, for a spin.
Having the IDE for PiraBASIC would make using it quicker and more likely for all of us who just want to jump in and play with it for a bit.

Is it possible to release the IDE in its current state?

What is the license for PiraBASIC?

Cheers,
Guilect
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 08, 2014, 04:24:57 PM
Hey man, good to hear from you. How have you been?

Thanks for your interest. I will get a IDE in working order. It will be basic at first and I will slowly add the advanced features if there is enough interest.

The license will be: full version, all features free for non-commercial use. There will be no sort of DRM or activation etc. Just a small discrete notice in the corner of rendering screen. Like what fraps (http://fraps.com/) does or how HelpNDoc (http://www.helpndoc.com/) allows you to use the full version for personal use and add a small notice at the foot of each page. The commercial version will be very, very... I say again, very indie friendly. The license will help pay for the server bills, dev tools and continued development.

There will be a stable version and and alpha/beta version that is updated frequently. Like what how the guys are doing with Contruct2 (https://www.scirra.com/construct2).
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 09, 2014, 01:11:24 AM
you have my vote ;D
i'm trying to make my own ide for a self made scripting-language but the problem is
I can't find an easy way for making syntax highlighting  :-\

maybe you can help me?
If you don't want to or have no time then I understand but a no you have and a yes you can get :P
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 09, 2014, 01:36:21 AM
Hi, cool thinks.

1. http://econtrol.ru/syntedit.html - for advanced features and what I used in my IDEs
2. http://tmssoftware.com/site/advmemo.asp - for a lighter weight editor component. It is easier to make a custom highlighter
3. The are both for Delphi and commercial.

EDIT: There is also TSynEdit which is free.

 
Title: Re: PiraBASIC - Make.Games
Post by: Aurel on February 09, 2014, 04:13:32 PM
Quote
I can't find an easy way for making syntax highlighting

hmm...and what about scintilla it is very easy and is open.
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 09, 2014, 04:49:07 PM
@piradyne
thanks, I don't know so much about Delphi but I can try :)
hope these are free...

@Aurel
I know scintilla but it's not that simple at all :-\

searching for some kind of easy to use dll or something..
I'm very familiar with the AutoIT language (because it's based on the basic language)

thanks for the help!
geek
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 09, 2014, 05:49:30 PM
Oh I see... I develop in Delphi so all of those components are for Delphi and only the last one is freeware. AdvMemo is not as advanced as the EditorSDK but it is very easy to create a new highlighter.

I fixed a few bugs in the compiler and I want to get a new build out first with OOP and language examples and make sure I have a solid base and then start building on top of this foundation. What I do not want to do is add the latest and greatest new features and not fix existing bugs... arrrg. Don't you just hate when developers do this? I am suffering with an issue like this right now in one of my components I purchased and it's very difficult to get my stuff done when you have to work around bugs. So I made the decision early on that I would take it slow, get the foundation working good and slowly add features. So the feedback is very important. I will surely reward those that take the time and send in feedback. I will give you a free license if you want. Just talk to me and we can work something out.
Title: Re: PiraBASIC - Make.Games
Post by: Aurel on February 09, 2014, 08:26:33 PM
Quote
I know scintilla but it's not that simple at all

you must be joking..right?
Did you ever look in every scintilla editor i have made?
scintilla is the easiest of any coloring controls....

something like this:
Code: [Select]
'Create Scintilla control ->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
INT hlibsci,hsci,i
hlibsci = LoadLibrary "SciLexer.dll"
'print str(hlibsci)
INT rx,ry,rw,rh,ext,sci_style
rx=160: ry=80 : rw=466 : rh=340 : ext=0x200
sci_style =  WS_CHILD|WS_VISIBLE|ES_SUNKEN
hsci = CreateWindowEx(ext,"Scintilla","",sci_style,rx,ry,rw,rh,win,sciID,0,0)
UpdateWindow hsci
'basic setings...
SENDMESSAGE(hsci, SCI_SETLEXER, SCLEX_OBASIC, 1)
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_DEFAULT,100)
'set sci backColor
'SENDMESSAGE(hsci, SCI_STYLESETBACK,32,RGB(252,248,220)) 'yellow
SENDMESSAGE(hsci, SCI_STYLESETBACK,32,0x00FFFFFF) 'white
SENDMESSAGE(hsci, SCI_STYLECLEARALL, 0, 1)
'set font
For i = 0 to 12
SENDMESSAGE (hsci, SCI_STYLESETFONT, i, "Courier New")
SENDMESSAGE (hsci, SCI_STYLESETSIZE, i, 10)
Next i
'set keyword colors
SENDMESSAGE(hsci, SCI_SETKEYWORDS, 3,scibrown) :'darkred
SENDMESSAGE(hsci, SCI_SETKEYWORDS, 1, sciblue ):'blue
 'Margins ////////////////////////////////////////////////////////
'set number margin (for numnbers)
SendMessage(hsci, SCI_SETMARGINTYPEN, 0, SC_MARGIN_NUMBER)
SendMessage(hsci, SCI_SETMARGINWIDTHN, 0, 46)
'caret line
SENDMESSAGE hsci,SCI_SETCARETLINEBACK,RGB(235,235,255),0
'SENDMESSAGE hsci,SCI_SETCARETFORE,RGB(115,115,255),0
SENDMESSAGE hsci,SCI_SETCARETLINEVISIBLE,1,0
SetFocus win

'--------------------------------------------------------------------
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_LINECOMMENT,rgb(0,120,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_BLOCKCOMMENT, rgb(0,120,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_NUMBER,RGB(0,0,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_KEYWORD,RGB(200,0,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_TYPE,RGB(0,0,200)) :'keywords
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_SETID,rgb(160,0,0)):'orange/to dark blue
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_PREPROCESSOR,rgb(220,0,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_STRING, 0x880088 )
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_OPERATOR,rgb(0,0,180))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_IDENTIFIER, 0x000000 )
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_LABEL,rgb(0,0,0))
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_ASM, 0x555555 )
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 09, 2014, 09:27:46 PM
@piradyne,

ok, thanks for the help!
and that free licence sounds interesting ;)

@aurel,

you want me to understand all this? :

INT hlibsci,hsci,i
hlibsci = LoadLibrary "SciLexer.dll"
'print str(hlibsci)
INT rx,ry,rw,rh,ext,sci_style
rx=160: ry=80 : rw=466 : rh=340 : ext=0x200
sci_style =  WS_CHILD|WS_VISIBLE|ES_SUNKEN
hsci = CreateWindowEx(ext,"Scintilla","",sci_style,rx,ry,rw,rh,win,sciID,0,0)
UpdateWindow hsci
SENDMESSAGE(hsci, SCI_SETLEXER, SCLEX_OBASIC, 1)
SENDMESSAGE(hsci, SCI_STYLESETFORE, SCE_OB_DEFAULT,100)
'set sci backColor
'SENDMESSAGE(hsci, SCI_STYLESETBACK,32,RGB(252,248,220)) 'yellow
SENDMESSAGE(hsci, SCI_STYLESETBACK,32,0x00FFFFFF) 'white
SENDMESSAGE(hsci, SCI_STYLECLEARALL, 0, 1)
For i = 0 to 12
   SENDMESSAGE (hsci, SCI_STYLESETFONT, i, "Courier New")
   SENDMESSAGE (hsci, SCI_STYLESETSIZE, i, 10)
Next i
............
Title: Re: PiraBASIC - Make.Games
Post by: Aurel on February 09, 2014, 09:54:08 PM
Yes..
You say that you want editor for your own scripting language..right?
So if you know how to write scripting language you will probably understand how this work?
Anyway you can always visit my site or OxygenBasic site and download & compile
what you whish ..all is open source.
So you can modify ,change ,remove and simple tweak editor source to your needs...
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 10, 2014, 10:47:55 PM
I don't want to overtake this topic with my problems so I will answer in pm...
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 14, 2014, 06:36:35 AM
A small Asteroids Demo (http://piradyne.com/temp/pbabdemo.zip) made with PiraBASIC, fully implemented in OOP style showing some advanced features of PiraBASIC and the integrated game engine:


 
(http://piradyne.com/temp/pbabdemo.png)
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 14, 2014, 11:24:20 PM
COOL :)
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 15, 2014, 12:57:07 AM
Thanks!

Here is a peek at the IDE I'm working on. I was able to make good progress and it should be in the next release.

(http://piradyne.com/temp/pbds-1.2.alpha.png)
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 15, 2014, 06:51:16 PM
Personal i don't know if i would use the rules but it's Looking good :)
Can you maybe upload the part of the help file you already have?
Because I don't know how to start.. :P
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 15, 2014, 07:54:18 PM
Hi, check your PM.
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 22, 2014, 03:22:57 AM
---------------------------
Unexpected Memory Leak
---------------------------
An unexpected memory leak has occurred. The unexpected small block leaks are:



1 - 12 bytes: TMoveArrayManager<System.Classes.TComponent> x 1, TMoveArrayManager<System.Classes.TCollectionItem> x 2, TIdStackWindows x 1, Unknown x 1

13 - 20 bytes: TLinks x 1, TNetBufs x 1, TIdHTTPProtocol x 1, UnicodeString x 9, Unknown x 1

21 - 28 bytes: TIconImage x 1, TMemoryStream x 1, TIdSMTPEnhancedCode x 2, TObjectList x 2, UnicodeString x 10

29 - 36 bytes: EAccessViolation x 1, TList<System.Classes.TComponent> x 1, TIdSASLEntries x 1, TIdReplySMTP x 2, TIdProxyConnectionInfo x 1, TList<System.Classes.TCollectionItem> x 2, TIdEntityRanges x 1, TIdReplyRFC x 2

45 - 52 bytes: TIdURI x 1

53 - 60 bytes: TPGUtils x 1, TIcon x 1

61 - 68 bytes: TPGDLL x 1, TPGLogFile x 1

69 - 76 bytes: TPGDisplayDevice x 1, TPGObjectList x 1

85 - 92 bytes: TTimer x 2, TStringList x 10, TPGAudioPlayer x 1, UnicodeString x 1

93 - 100 bytes: TPGNet x 1

101 - 108 bytes: TIdHeaderList x 8

117 - 124 bytes: Unknown x 1

125 - 132 bytes: TPGTimer x 1

133 - 140 bytes: TIdMetaHTTPEquiv x 1, UnicodeString x 1, Unknown x 1

141 - 148 bytes: TPGApplication x 1, UnicodeString x 1

173 - 188 bytes: UnicodeString x 1

189 - 204 bytes: TIdHTTPResponse x 1

221 - 236 bytes: TIdHTTPRequest x 1

349 - 380 bytes: TIdSMTP x 1

381 - 412 bytes: TIdHTTP x 1

877 - 956 bytes: TPGInput x 1

1053 - 1148 bytes: TNetCom x 1



The sizes of unexpected leaked medium and large blocks are: 41004, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 4140, 14380, 6444, 3116, 327660


---------------------------
OK   
---------------------------
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 22, 2014, 03:23:44 AM
---------------------------
Application Error
---------------------------
Exception EAccessViolation in module atiumdva.dll at 00001445.

Access violation at address 6B201445 in module 'atiumdva.dll'. Read of address 00000004.


---------------------------
OK   
---------------------------
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 22, 2014, 03:45:34 AM
Hi,

1. I have leak detection enabled during development so you will see these types of displays
2. All of that is because an exception occurred at some point so the test of the code that relates to those classes and components where not released.
3. So now the questions becomes where did the error occur. Can you tell me what you was trying to do that generated this error?
Title: Re: PiraBASIC - Make.Games
Post by: GEEK on February 22, 2014, 04:21:43 PM
made a new project, typed some code and then closed the window..
when I closed it, the errors appeared.
Title: Re: PiraBASIC - Make.Games
Post by: piradyne on February 22, 2014, 05:11:40 PM
Hi,

Well, for me to determine just what is going on I would need to know what code is trying to execute. For example, if you instantiate a class and did not free it, of if you try to free a the global application object which is disposed automatically, you can get these types of errors. So without seeing the code, I can not ascertain what is going wrong. You can PM me if you like.

Thanks

OR... if you create an console app (which is the default app type) and you force the console window close (by clicking the x button of the console window, not the main application window) rather than letting the app close down, you can get that spew of unreleased objects.
Title: Re: PiraBASIC - Make.Games
Post by: Aurel on January 19, 2016, 02:27:55 PM
Where is "GEEK" with GREEN BRAIN  ;D ;D ;D