Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Road to PlayBasicFX

Author
Message
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 22nd Apr 2010 21:42 Edited at: 27th Jul 2011 09:16

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Apr 2010 00:10 Edited at: 27th Jul 2011 09:22

PlayBasic V1.64L _Learning Edition Released


This release marks something of a huge leap forward for those using the FREE Learning Edition of PlayBASIC ! Why ? - Well, the existing Learning Edition was built from Version 1.63, revision V. You could easily be forgiven for thinking that the old V1.63 learning edition is only slightly behind the the new V1.64L release, since the version numbers appear to be so close. When, It's actually over two years older then today's V1.64L release. So there's lots of new features just waiting to be explored!

What's are these new version ? - Well, V1.64 features a whole new graphics engine. This new engine includes universal support for things like more Alpha Blending mores, Sprite Alpha Channel, Bi-linear Filtering, Tinting, New Font engine, new image loader, Alpha map support and much more.

The compiler has also been through a healthy face lift, with the addition various math short cut operators (++, --, +=, -=, *= , /=), Dynamic function calling, The ability to pass and return Arrays and individual types in and out of the functions and Psubs, Optional Parameter Support in not only built in functions but users defined functions, and many more cleanups of the syntax and compilation performance. The compiler can routinely build over 10,000 lines per second!

The Help files are important, we know that. While the quality of the documentation is always slowly improving (with each upgrade), the biggest concern we've had from users, was being overwhelmed when scanning through the various main sections. Originally, this wasn't an issue, since PB only had a fraction of the features it does today. So, we've (finally) introduced sub-category support to the help. These allow the various command sets to be broken down better. Which should help !

These are only some the changes we've made to V1.64L learning edition, you'll also find updated examples, new support libraries, as well as the latest IDE included in the package. So there's plenty of nice new shiny functionality sitting right under your finger tips. The only thing the Learning Edition can't do, is build EXE files.


Quote: "Gallery"








See -> PlayBasic V1.64L Work In Progress for more information on the V1.64L upgrade (and previous) !




Quote: "Download"



Download PlayBasic V1.64L Learning Edition


Attachments

Login to view attachments
Hassan
13
Years of Service
User Offline
Joined: 4th May 2009
Location: <script> alert(1); </script>
Posted: 25th Apr 2010 15:22
you, probably, know that tiny pictures that require a microscope to be seen does not attract readers

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st May 2010 18:01 Edited at: 1st May 2010 18:02
ignore, just uploading some pic's for my profile




Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st May 2010 18:08 Edited at: 27th Jul 2011 09:27
yes more profile uploads.



Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 2nd May 2010 20:18 Edited at: 2nd May 2010 20:19
New Blog Articles,

Play Packager V0.01 - Single File Distribution

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 5th May 2010 01:33 Edited at: 27th Jul 2011 08:40

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 10th May 2010 16:41 Edited at: 27th Jul 2011 08:43

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 16th May 2010 16:16 Edited at: 27th Jul 2011 16:15

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 21st May 2010 10:50 Edited at: 27th Jul 2011 16:20

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th May 2010 10:58 Edited at: 27th Jul 2011 16:24

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 5th Jun 2010 22:25 Edited at: 27th Jul 2011 16:26
PlayBasic V1.64M Beta 6 - Compile Time Improvements

The updated font library is done now, but before tackling the next big thing, i've been picking through the command set looking for an those obvious small omissions & tweaks. This in turn, has set off a chain of events that has found me spending most of the day updating the compilers re-solver abilities. Over time, this part of the compiler has become far less functional then it originally was. Some of this seems to be caused from the push towards changing the underlying runtimes, and how it now handles math +string functions. After really looking at the pre-solver, the only logical option was to dive in kick it into shape. Which has meant a lot of testing basically.

One good thing that's come of the the re-write (apart from the better pre-solve support) , has been taking a much closer look see at some of the compilers string & token functions. Many of which haven't been touched for years, so with a little bit tinkering i've been able to dramatically improve the speed of that library. Many of the core functions in the compilers string library are now over 20 times faster. Granted this is not something you're really likely to really notice at compile time, but as your code gets larger, the more important these types of changes are to compilation speed.


The following test snippet, is demo'ing the resolve ability. In case you're not sure what this actually is ? - Well, it just means that when the compiler see's certain built in functions being passed constants, it can solve these functions during compile time, rather than exporting the code. So the runtime doesn't have to perform the calculation, as the compile just stores the answer.

A good example of a solvable function would be something like,



The Cos(45) function in this code can solved during compliation so the only code this expression generates is Print 0.707107


Some ugly test code ,






PlayBasic V1.64M Beta 6b - optional Params support in pre-solver


This working away at the pre-solver, which is pretty boring stuff but it can't all be fun and puppy dogs. The following example is using the compile time features to format a date. Not that most useful or complete examples but it'll do as an example.





This outputs "1st,Aug,2010". The interesting thing about this chunk of code is that it's almost entirely resolved at compile time. So the actual output code the runtime is executing is basically this (depending upon the input date) would be something like this...

Print "1st,Aug,2010"
sync
waitkey


If you're wondering why this type of stuff is useful to the end programmer, well it allows us to switch sections of the code IN/OUT at compile time. So we can use flags in our code to tell the compiler how built certain bits our program, or even exclude or modifity it.

One common usage would be when you're building game is that you can add some compile time logic to change the loading process, or include /exclude title screens , debug code , based upon the type of the compile you requested.


PB has a built in constant called PBCompileMode. This constant is set to different values depending upon what build mode you selected. If you're testing your code from the IDE (pressed F5), then you can embedd logic in your code that's only visible when you're testing it. If you build an stand alone exe (f4), the compiler could set to ignore a section of code.





SInce the #IF #ELSE #ENDIF logic is executed during compilation, then compiler outputs two differs bits of code depending upon the compile mode constant.

If you select F5 (Running your game from the IDE) it'd output..

print "Running from the editor"
print "put my debug code into the game"


if you selected to build an exe (f4) it'd output

print "Code in the final game"


So when we build our EXE, the compile completely ignores the DEBUG code.. The beauty here is that is done for us at compile time. We don't have to switch it on to build our final game...




PlayBasic V1.64M Beta 7 - Download

PlayBASIC V1.64M

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 13th Jun 2010 08:50 Edited at: 27th Jul 2011 17:15

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 15th Jun 2010 10:39 Edited at: 27th Jul 2011 17:18

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 26th Jun 2010 16:36 Edited at: 27th Jul 2011 08:17

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 15th Jul 2010 21:41 Edited at: 27th Jul 2011 08:19

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
tiresius
20
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 17th Jul 2010 06:41
Hey Kevin-
Can you invoke your own custom events so your software can talk to itself? I think BlueGUI has a way to do this via the Windows message pump, and other languages with Event systems (like BlitzMax) have it as well.


A 3D marble platformer using Newton physics.
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Jul 2010 06:32 Edited at: 27th Jul 2011 08:21

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Jul 2010 06:34 Edited at: 30th Jul 2010 09:14
Quote: "Hey Kevin-
Can you invoke your own custom events so your software can talk to itself? I think BlueGUI has a way to do this via the Windows message pump, and other languages with Event systems (like BlitzMax) have it as well."


You can push your own 'event' onto the stack.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 27th Jul 2010 10:08 Edited at: 27th Jul 2011 08:22
Invaders From Space V0.04 - Destructible Everything

Updated the mini game again, this time adding destructible objects.



Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 28th Jul 2010 05:54 Edited at: 27th Jul 2011 08:25
Aliens From Space Video






Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 18th Aug 2010 02:06
Built a new back end and simpler skin for http://www.underwaredesign.com/ - Still got a ways to go.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st Sep 2010 18:56 Edited at: 27th Jul 2011 08:27

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 3rd Sep 2010 06:44 Edited at: 27th Jul 2011 08:29

Attachments

Login to view attachments
Daniel wright 2311
User Banned
Posted: 3rd Sep 2010 07:24
ive never seen anyone spam there own thead like this, wow., well good work any way.

C0wbox
16
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 3rd Sep 2010 07:51 Edited at: 3rd Sep 2010 07:56
Does anyone actually use PlayBasic? - It just seems like it does everything we can already all do with DB/DBP/FPSC :S (And all the posts on the first page were removed so I can't see a formal introduction to its features. )

- Perhaps it's time to take this out the WIP board and call it a PA so it can get a proper page outlining all the features and gimmicks it has that other programs don't. (Then just add things as patches/updates to the PA - as opposed to an ever lasting WIP )

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 4th Sep 2010 20:27
PlayBASIC V1.64M Beta #18 - Beta

This version includes newly built Compiler and Runtimes for BETA TESTING... I HIGHLY RECOMMEND trying your project in this edition, not just from the ide / runtime but from a built EXE.

Download

Get PlayBasic V1.64M Beta 18

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 10th Sep 2010 00:11
Wave File Splitter V0.11 - Import, Splitting and CD burning Running


Only had a few limited sessions for code lately, but the functionality of this tool is coming along nicely. Today it's at a point where you can import the wave files / mark out the split points (from any side) then have it build the CD for you. The burning is not done by PB, this task is passed out to a disc builder called CdBurnerXP. But the ripper handles all the setup work. So you just press burn CD and insert a new disc, the builder takes care of recreating the track order and track info.

The app works around the concept of albums, which is how all the recordings are stored. So each album is stored in it's own folder, the folder contains the wav files of raw audio data (both sides), the track listing file and in some cases cover art. The program doesn't build any of that, it's just how it was arranged when they were recorded. As such, i'm not too sure this will be of much use to anybody else in it's present state. While it's working, it's not pretty... but ya get that...

Lost in Thought
18
Years of Service
User Offline
Joined: 4th Feb 2004
Location: U.S.A. : Douglas, Georgia
Posted: 15th Sep 2010 19:10
"Does anyone actually use PlayBasic?" I do It's great for applications that need low system specs and to be very compatible with most systems.

"It just seems like it does everything we can already all do with DB/DBP/FPSC :S" It's 2d features are way faster and seem to be more stable than any of those. If it gets to be 3d; It'll be a force to be reckoned with.

Sadly I'm not really much into the beta testing on this. I just use the latest stable version. Actually a few versions back even. Haven't needed to upgrade yet, but I did download them.

Keep up the great work Kevin!

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 22nd Sep 2010 03:51 Edited at: 22nd Sep 2010 05:13
entomophobiac
20
Years of Service
User Offline
Joined: 1st Nov 2002
Location: United States
Posted: 22nd Sep 2010 12:00
Quote: "Does anyone actually use PlayBasic? - It just seems like it does everything we can already all do with DB/DBP/FPSC :S"


I do. It's superior to DBP in 2D and it's also superbly documented and supported by the maker in a way that no TGC product has ever been.

If you want to make 2D games, I'd say it's a natural alternative.
LBFN
15
Years of Service
User Offline
Joined: 7th Apr 2007
Location: USA
Posted: 22nd Sep 2010 18:05
I use PlayBasic too and the 2D capabilities far surpass DBP's, especially with regard to parallax scrolling. The commands are well thought out and the developers work hard at improving it continually.

Quote: "Sadly I'm not really much into the beta testing on this. I just use the latest stable version."

That actually is a very good idea, although it does not give the developers the feedback they need. I have been on the BETA trail and have experienced problems because of it. I think if the developers made it easier to reload the basic files you need, they would get more BETA testers.

All in all, PB is very good software for 2D games in my view, and it's not like it costs a ton of money.

Computers do exactly what you tell them.........don't you hate that sometimes?
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 29th Sep 2010 16:10 Edited at: 27th Jul 2011 08:33
Beta Round Up:



PlayBASIC V1.64M Beta #21 - Ray Hit Map Pixels (again)

Back working on the V1.64M upgrade again, this afternoons focus has been on mapping, most notably implementing support for the ray to map functions to support both Video and FX maps. Was trying for a generic solution originally, but things don't always work the way i'd like, namely it's not really fast enough for the type of abuse such a function is bound to receive. So after a bit of tinkering and another reshuffle of the algorithm, I think i've hit upon a solution I can live with in terms of code length and it's performance should be pretty good once implemented. Currently i'm just testing the theory in PB first. The main change is that routine now has modes for scanning the various internal map zones, which should be a faster in the real world.



PlayBASIC V1.64M Beta #21 - Ray Hit Map Pixels (continued)

Yesterday I was testing out another ray to map pixels method, today that theory has been implemented into PB. The change is about twice as fast as the fastest version of older implementation. Given the circumstances of the demo (It's virtually an array of unique and entirely transparent blocks) that's about limit of where we can go with this, given it's a brute force test after all. Normally we've use Ray intersection for this stuff. Which by the way, is why we have worlds Smiley

In the demo the map is made up (in code) of 4096 unique 100*100 (32bit) blocks. In the whole level there's only 1 tile that's known to be fully transparent. In a real map though there's going to be load of them. The updated scanner is opt'd with this situation in mind. It's doesn't support animated maps though.


PlayBASIC V1.64M Beta #22 - Ray Hit Map Pixels Video Maps

Finally got this working on maps with graphic blocks in Video memory. On the surface it's one of those simple little additions that's easily glossed over, then you run into the reality of doing it. The goal with the updated implementation has been to avoid fetching video memory, which you should know (by now) is slow, so the routine tries to avoid this as much of possible. But you know at the end of the day it has to do this. So running lots of ray intersections on video blocks is going to eat up lots of time, but you should be able to get away doing a little bit of it.

Another change that's come as a by product of recent mapping additions, is that map engine now keeps better track of each graphic blocks tranparency status. Previously you could query if block was Solid (0) or Transparent (1) (GetMapBlockTransparent), but now another state has been added, this state lets us know that this graphic block is completely transparent (-1). This new state allows the ray scanner and map drawing routines some more early rejection options.



PlayBASIC V1.64M Beta #24 - Testing Holly

The screen shot bellow is from Steve's platform game Holly, I'm using this as real world test of the map block reduction routines, which seem to be working fairly well. If you look at the shot the the Green Grid is the Maps Debug mode, the overlaid read bounding boxes show the smallest possible rect that this block covers. Performance wise it's hard to tell really (as i've no bench mark for Holly really), but we've certainly saving a per % off the top of the rendering time. Every little bit helps




PlayBasic V1.64 Beta #24 Released

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 30th Sep 2010 06:51 Edited at: 27th Jul 2011 17:29
Community Project: Post (A LINK to) Your Favorite PlayBASIC Screen Shots

We need your help in finding all the best PlayBASIC screen shots on the forum..

Poll ended.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 5th Oct 2010 17:34 Edited at: 27th Jul 2011 08:44
Round Up

PlayBASIC V1.64M Beta #25 - Rect Hit Map (Collision)

Now that the Ray & Pixel Methods are implemented, focus has turned to the adding some more methods, starting with RectHitMap function. This function does exactly what the name suggests, it detects if a rectangle (none rotated) hits on a solid region of the map. This is not Pixel level impact it's a region impact. The pixel version will follow. Had a few drama's getting this work, which turned out to be some misaligned reads from the level..

In the shot bellow we see the running example (code bellow) which creates a map out of some circles and then runs collision upon them. The collision not at pixel level but region level, so the impacts occur when the rectangle overlaps a solid tile or a transparent tiles smallest rect.







PlayBASIC V1.64M Beta #25 - Circle /Ellipse Hit Map (Testing)

Just testing some new improved methods for detecting if a circle hits a map. The first pic shows the map grid, the circle and the zones within the circle and type of collision the zones need. The second picture is the ellipse version, this time it's showing the zones it passes through. Inner zones are solid and outer zones are possible transparent zones.





PlayBASIC V1.64M Beta #25 - Polygon (Quad) Hit Map (Testing)

Today i've been working towards a set of generic polygon to map collision functions. Ideally these functions will detect impacts between a map an a polygon of 3, 4 or user defined sides. Atm the i'm testing a 4 sided polygon. The routines (as per the rect and circle and ellipse routines) break down the shape into a grid so the area can be checked against the map. This allows for early rejection when performing tests against the map and a few other tidbits..






PlayBasic V1.64M Work In Progress Gallery

Attachments

Login to view attachments
C0wbox
16
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 5th Oct 2010 18:54 Edited at: 5th Oct 2010 18:55
So yeah...

Are you just going to keep spamming progress whilst ignoring 4 or 5 people's feedback?

You aren't even registering the positive feedback. xD

tiresius
20
Years of Service
User Offline
Joined: 13th Nov 2002
Location: MA USA
Posted: 6th Oct 2010 16:33
Kevin uses this thread to keep DB/DBPro users at TGC updated to the progress of the PB language and other events at underwaredesign. He's not using it to get feedback or have a discussion on the merits of PB. If anybody wants to discuss the language it would probably be better to go over to his forums and do so.

Besides, someone updating their WIP frequently with real entries is not "spamming", but "actively developing".


A 3D marble platformer using Newton physics.
C0wbox
16
Years of Service
User Offline
Joined: 6th Jun 2006
Location: 0,50,-150
Posted: 6th Oct 2010 18:02
I suppose you're right, but it just seemed a little odd that he ignores everyone.

Would a blog not be more appropriate? - Especially considering this is a full product, not a Work In Progress anymore - I.E. it doesn't require crit so it doesn't need in the WIP board.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 7th Oct 2010 07:19
C0wbox,

Quote: "Are you just going to keep spamming progress whilst ignoring 4 or 5 people's feedback?"


You asked a question clearly aimed at the 'users' of the PlayBasic, (who responded). Being the Author, it's not my place to respond.


Quote: "Would a blog not be more appropriate? - Especially considering this is a full product, not a Work In Progress anymore - I.E. it doesn't require crit so it doesn't need in the WIP board.
"


False, This thread (Road To PlayBasicFX) represents a tiny insight into the migration from PB Version 1.00 to Version 2.00 (Also Known as PBFX).

Login to post a reply

Server time is: 2023-01-29 19:28:20
Your offset time is: 2023-01-29 19:28:20