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
Posted: 16th Sep 2008 20:59 Edited at: 27th Jul 2011 10:16
PBFX V1.73c - Basic Control Changes VM2.

Working my way through the 'call' control change operation level opcodes. Making the odd change as the opportunities arise. Been able to improve the performance of the Repeat/Until While/Endwhile, Do/DecLoop structures under brute forces conditions as well as certain decision operations. These small improvements make today's edition run the standard test in 1.4 seconds.. And you know what that means. Which I find kind of funny, but I wouldn't get too excited about that.

So far, it's looking like VM2 can run pure Vm2 code around twice as fast as Vm1 (1.64 edition). I'm sure there will situations where it's much quicker and some cases where it's slower. But ya get that !


PBFX V1.73e - String Operations On VM2.

Today's little chore has been to move all the string opcodes from the Vm1 side to the Vm2. While I'm only about 1/2 way through it atm, the results have been pretty pleasing thus far with saving being made in terms of memory and runtime performance. The string engine is already one of the fastest around, and we've made it even quicker with the new runtime. With today's edition being able to chew through a 100,000 string compare about 2->4 milliseconds faster than yesterdays edition. These operations also take almost 1/2 the number of bytes to represent the instruction also. Packing the opcodes tighter means the compiled byte code is smaller, plus it helps in terms of efficiency. Namely in prefetech. Which X86 cpu suck at !..

While todays changes have been only been focuses upon the string instructions, today's edition runs the standard test faster again at 1.375 seconds. Although I think that's more of a cache artifact than real performance difference. But it's interesting none the less.



PBFX V1.73f - Pointers and Cleaning VM2.

The last few days i've been reworking/moving the pointer instruction set to make it more Vm2 friendly. They're not entirely running on vm2, in fact probably only 10% are today, but I've been picking through Vm1 instructions patching all the hand 'optimized' opcodes I can stomach, to make sure they're using the Vm2 data tables. This will make a lot of those previously misbehaving opcodes function again. It's important to make sure those things are working (the best I can during the translation) so everything isn't broken all at once. Finding problems in those situations is neigh on impossible. So you can think of the 1.73F as something of the mild stabilizer in the migration history.

The next question is where to from here ? - Well, that's a good question, currently there's still another 4 or 5 opcode levels (groups of instructions) to hook up/move. Some of which are co-dependant and some of which i'd planned upon changing completely. However, what I generally find, is that while it's easier to make most translations on the fly, this is generally only ok for a few operations at a time. Changing how the whole opcode model in one big hit, doesn't tend to go well. So I think the best idea is the keep the translation simple, use it to clean everything up first, then if need be look at changing particular levels of the instructions later.

One area that i've a few ideas for changes, relate to how the Vm stack and functions work mainly. What I've in mind would not only allow translation to native of code functions or at least parts of the calling process, but things like methods also (shock horror OO yawn). This gets tricky because the VM can run a bunch of different types of function calls transparently to user, doing so isn't that easy. Which is further complicated when moving down compiled to demand (machine code) road. While COD (compile on demand) is really a VM3 level operation, I'm torn about the best way to address this. Converting the VM2 opcodes to native machine is for the most part trivial. The problem is, that it's only really going to be beneficial for demanding functions.

Converting code like this, is useless.



If you're wondering why, well the load image function (which is already machine code) will take 99.99999 of the time of the loops processing time. Translating such control code loops to pure machine code, will not only make this code bigger in memory and take more pre-processing time at start up, there's no performance gain. So why bother ?

Ideally, a better approach would be to give user control over the translation of the key parts of the VM code. So code that needs to be fast, can be, and code that doesn't, won't eat up unnecessary memory and runtime compilation. This fits in better with the whole COD model actually. The same idea could be applied to the things like threading (multi core).



PBFX V1.73g - Stacks / Scope VM2.

The pass few coding sessions, I've been working on changing how PB applications use the runtime stack. There's a fair bit involved, so It's been slow progress. But it's finally starting to work again. The current alpha can happily change scopes and return. The implementation at this point is basically 1/2 way house between how VM1 works and how I need future VM's to work. But for now, it's working and it's more efficient than it was. With VM2 being about 50% faster when calling & returning from a function. (over 10000 calls).

Ie.


This doesn't effect calling PSUB btw. Why ? - Because they're not functions . Atm the execution of Psubs is currently slower than 1.64, as not all of the required instruction set has been ported from Vm1 to Vm2. So in order to call/return from a sub, the runtime has to change contexts. It should be faster again when running purely on VM2.




PBFX V1.73h - Assignments and complex data structures.

Ok, so after 10 or days of conversion and we're about 1/2 way there, but there's still a few big areas left to translate. The main one now is the array/data structure instruction set. A lot of this is built into the Vm1 instruction set, simply to make it as a fast as it can be. So it's a big mess. What i want to do is 'functionize' as much of the common parts are possible. However I don't really want to rewrite it all for the sake of cleaning it up. Speed vs cleanliness... hmm, we'll see I guess.

One change that i'll differently be making, is to how the assignment opcodes work. No matter what program you write, everything you make will contain data assignments and lots of them. The Vm1 instruction set uses a couple of high level opcodes to perform such moves all in one hit. While it works pretty well, it's awfully messy and not very expansion friendly. Since most of the code is 'hand opt'd'. So what I've in mind is to break the big operations down into smaller simpler opcodes. This should help clean up the code dramatically and make dropping new functionality in somewhat easier. Got to careful though, as using too many opcodes can make for too much VM overhead. Which can effect performance dramatically.

While on the subject of performance, I'm pretty happy with how things are progressing thus far. Most of the changes are giving PBFX some solid bang for the buck. I was some what concerned that VM2 might not be able crush Vm1 performance, as it once did. Since a lot of Vm2 design ideas have migrated back into Vm1 anyway. PB has been using Vm2 memory/string manager for a couple of years (from about PB V1.50 onwards). Which gives it a massive boost over the older editions.

Anyway, everything is looking firmly on target for getting our %50 or so performance boost across the board. Considering that such changes can make can Vm2 give comparable and even better performance than some compiled to machine code basic's, that's nothing to sneeze at. The mind boggles at what the native code version will do..



Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 23rd Sep 2008 00:23 Edited at: 27th Jul 2011 10:17
PBFX V1.73h - Basic Assignment are in Vm2.

Today I've been poking through the array / assignment instruction set in the VM and compiler. Which for the most part is now running on Vm2. I've taking this opportunity to tweak the opcodes and polish the code a bit too. Even though only a fraction of the array commands are currently functioning (only integer / float arrays) The results are very pleasing. With Vm2 being able to the run the full standard test (including array thrashing section) 2 seconds faster than Vm1 (PB1.64). While that's not entirely due to the array changes, VM2 does runs the array test section almost 3 times faster than Vm1. No Matter how you look at it, that's a very worth while improvement!

Attached is the full standard test results from PB1.64 & PBFX1.73h. The arrays test is this btw.




The area where there's no significant difference at this point is the trig functions. Which is currently running on VM1, so when the calling methods are updated and moved across for VM2, I suspect we'll see an even greater gain. If we can get a 25% gain on the calling , we should see results inside 2 seconds for the full test. In theory





PBFX V1.73i - Linked Function Calling On Vm2.

Tonights little task has been to move (and refine) all of the function calling methods from Vm1 into Vm2. These controls handle calling linked external functions. One major change from the Vm1 structure is that rather than embedding command sets into the VM, they'll now be defined externally and bound at runtime. This allows the command sets to be added/extracted and even swapped ... (AKA Modules..remember them). Now that's all well and good, but how does it effect the performance ? Not too bad, pretty well actually..

So far I've got the refined caller (to my own surprise) about 2.5->3 times faster, just had another idea that might make it even faster. Well, when calling the RGB() function anyways, different number of parameters/parameter types will vary. However real test comes when running the 1.73I on the standard test code. VM2 can now run basic standard test is just over 1.1 seconds (erm yes.. it's running it faster than some machine code tonka toys) . Also, It runs the full test inside 2 seconds. Much to my own personal amazement, as i didn't think that would be possible without COD/JIT.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Sep 2008 18:40 Edited at: 27th Jul 2011 10:18
Play Basic V1.64 BETA B (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64b is a update beta of PBV1.64 retail update. This version adds support for AFX surface in the pixel perfect collision methods (on mask colour) and replaces the INC & DEC parser with a newer one.

Download

http://www.underwaredesign.com/forums

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 26th Oct 2008 15:10 Edited at: 25th Mar 2011 05:34



PlayBasic V1.64c Retail Upgrade is Released (30th, Sep, 2008)



This release updates the existing PB1.63w2 retail release to the current retail release version of PBV1.63w. Therefore you'll need to install patch PB1.63w2 (at least) prior to this one ! (if you haven't already)

The PB1.64c package includes updates of PB Compiler, Release / Debug Runtimes & IDE V1.17. The upgrade includes a few minor bugs.

For more information about PlayBasic, please visit the Play Basic home page and download the free learning edition and dive in.

Url: www.PlayBasic.com





PBFX V1.73m - Mid Point

The migration is slowly moving forward, haven't had any programming time the past couple of week really. So it was nice to get ahead of my real life commitments to continue hacking the guts out of the VM. Got a fair bit done today, I've basically re-written all the arrays controls. Had no option really all the array functions are embedded opcodes in VM1. With this round of rewrites the end of the tunnel is in sight. The main remaining parts (with any real code) are the list control command sets, which unfortunately are hooked right through all of the embedded commands sets in the vm. Replacing them at the moment is bit like trying to remove the ground floor of a 50 story building. So more patching stuff around/together.

If I look beyond the array/list control libraries, then the remaining 'core' opcodes are pretty trivial. The main one's that will require work are the type access controls, and beyond that there's a stack of simple pointer operations. When this point is reached , VM2 can basically stand alone (it almost can now if you don't use types). The only thing holding the two sides together will be embedded command sets bound to VM1.

The original plan was to move the command set layers into PB code, and bind them like any other external library. This has lots & lots of nice benefits, but without IDE2 and a way to control the module building externally, it also presents us with more hurdles in the short term. So the solution is inevitably going to be wrapping up some engine interfaces into the command libraries. In other words, setting up a function wrapper so the commands/set appears to work the same as they did. When in reality they're worlds apart.


Registered users can get PlayBasicFX V1.73m Beta from PlayBasic Maintenance board @ www.UnderwareDesign.com




PBFX / VM2

This week has been fairly fragmented and I expect more of the same until the end of the month really. Which means coding in small bursts, in between all of the other chores. VM wise I've finally broken the back of array/list replacement library, which is now virtually complete. There's a few outstanding functions/commands ATM, but those relate to commands that may well be obsolete in the near future.

The remaining core opcodes on VM1 revolve around low level Type and Pointer operations, where the vast majority of these are very simple opcodes. At least they should be now all the back end support code libraries are on VM2. Some of those might also become obsolete (some can be merged). I can think of the one section that's missing from Vm2 and that's the DATA commands. These shouldn't represent too much of a problem, but they'll still take up more time. Looking through the original Vm2 spec and there's a few expansions i'd been wanting to making in regards to data. But they might have to wait.

The goal here remains the same, get VM2 to standalone point, then we can finally move on.

zenassem
19
Years of Service
User Offline
Joined: 10th Mar 2003
Location: Long Island, NY
Posted: 26th Oct 2008 16:12 Edited at: 26th Oct 2008 16:17
@Kevin Picone,
Any chance that the free trial will see an update as I think it's version is 1.62 . I would really like to try PlayBasic out and I think I will be purchasing it based on everything I see here.

BTW, PlayBasic has an entry in the rollover at the top of the homepage "Game Development", but it is missing from the 'more visible' "Development Products" rollover.

"When I look at that square... I wish FPSC noobs would stay on their side of the forums and stop polluting these boards." - Benjamin
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 26th Oct 2008 16:35 Edited at: 27th Jul 2011 10:19
PlayBasic V1.63v6 Learning Edition - The version posted on the PlayBASIC home page is about 18 months (or more) fresher than the version on TGC home page.

However, it's about 3->4 months older than current retail edition of the PlayBasic, which is 1.64c.


Quote: "
BTW, PlayBasic has an entry in the rollover at the top of the homepage "Game Development", but it is missing from the 'more visible' "Development Products" rollover."


I know, they know.. yet still it remains.

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 4th Nov 2008 17:16 Edited at: 27th Jul 2011 18:20



PlayBasic User Round Up



Free Physics For PlayBasic - Box2D Wrapper

Slayer has started working on building a wrapper for the BOX 2D physics library for PlayBasic. While the wrapper is still a work on progress it seems to be progressing nicely. And it's FREE so you can't complain too much about that

Read More



Photo Viewer

Here's some screenshots of Binarycrush's first PlayBasic app. It is a photo viewer made in two weekends with PB.




Read More



Frogger WIP

Here's Micks second ever game, a nice remake of the classic coin-op game Frogger.




Read More



Falling Blocks - Tetris Clone

MudBug is tackling his first game, which is a nice looking Tetris clone.





Read More



Boat Racing

Above we have Micks second game, here's his first.. a nice looking horizontal Boat Race.




Read More


Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 6th Nov 2008 04:27 Edited at: 25th Mar 2011 05:37




Clean Your Underware ? - GFX Artist Required

Here at Underware Design.com, we are in need of a talented, enthusiast and self motivated artist for various Web Site (Logos, Banners, etc) and related tasks.

The first task will be to aid in the revitalization of our home page. This task will not involve replacing the whole home page (that will come later), rather just cleaning up the existing graphics and logo designs.

If you're interested or just have a some design ideas, free feel to contact me (Email Kevin).



Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 7th Nov 2008 16:52 Edited at: 25th Mar 2011 05:44
www.UnderwareDesign.com News Letter #27 (Sep/Oct 2008) Online

Issue #27 is of the www.UnderwareDesign.com news letter is online. Email version has been issued.


Articles In Issue #27

* Heroes Quest Competition Results
* Get Physical With BOX 2D
* PlayBasic Round Up
* DTAB V1.01b Released
* From The Forums
* Postmortem for 'Who stole Waldo?'


Link

Read Issue #27

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 15th Nov 2008 17:07 Edited at: 15th Nov 2008 17:44
PlayBasicFX V1.74 Release Candidate BETA #2 (Avail for Registered Users ONLY)

PBFX V1.74 release candidate editions are a stabilization of the package at this moment in time. Given that 1.74, will be next official PBFX upgrade (Dec,1st, 2008), then for the sake of stability users, will need to test this edition vigorously before that time.

This version adds a new feature with auto casting of numeric parameters (explicit) with internally and externally bound found calls, as well as restores the auto allocation of write to null types, so you can write to none existent type and PB will alloc it for you. It also corrects a few minor bugs in the Vm2 allocation tables.



Download

http://www.underwaredesign.com/forums



About PlayBasic FX & VM2
PlayBasicFX VM2 translation WIP/BLOG

PlayBasicFX's Screen Shot BLOG Updates

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 20th Nov 2008 06:27 Edited at: 20th Nov 2008 06:28
PlayBasicFX V1.74 Release Candidate BETA #3 (Avail for Registered Users ONLY)

PBFX V1.74 release candidate editions are a stabilization of the package at this moment in time. Given that 1.74, will be next official PBFX upgrade (Dec,1st, 2008), then for the sake of stability users, will need to test this edition vigorously before that time.

This version adds 'resolve to address' support for New Handles in Vm2. Thus correcting a lot of demos.



Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 24th Nov 2008 16:36 Edited at: 25th Nov 2008 19:20
PlayBasicFX V1.74 Release Candidate BETA #4 (Avail for Registered Users ONLY)

PBFX V1.74 release candidate editions are a stabilization of the package at this moment in time. Given that 1.74, will be next official PBFX upgrade (1st, Dec, 2008), then for the sake of stability, all users will need to test this edition vigorously before that time.

This version addresses a few issues with the compilers optimizer + the CMP opcodes in VM2


Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Nov 2008 19:21
PlayBasicFX V1.74 Release Candidate BETA #5 (Avail for Registered Users ONLY)

PBFX V1.74 release candidate editions are a stabilization of the package at this moment in time. Given that 1.74, will be next official PBFX upgrade (1st, Dec, 2008), then for the sake of stability, all users will need to test this edition vigorously before that time.

This version corrects a few more pivotal bugs, namely with array passing. Plus it moves the last remaining fragments of the VM1 array function library across to Vm2. Further improving the stability of VM2's code execution.


Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 26th Nov 2008 21:35
PlayBasicFX V1.74 Release Candidate BETA #6 (Avail for Registered Users ONLY)

This version corrects the max cycle limitation in Vm2 and includes more helper functions in the Declarations.pba (slib)




PlayBasicFX V1.74 Release Candidate BETA #7b (Avail for Registered Users ONLY)

This version corrects a number of integration issues between internally bound Vm1 command sets such the disc file/string/input and the VM2 runtime. Moreover it restores pre-solving ability of the parser for the a number of string operations.



Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 29th Nov 2008 13:56 Edited at: 27th Jul 2011 10:27
PlayBasicFX V1.74 Release Candidate BETA #8 (Avail for Registered Users ONLY)


This version adds more helper functions to the base declaration files as well as corrects some issues with type lists, file screening and some scoping issues with the Vm builder.


Download
Get V1.74 From Maintenance Forum

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 30th Nov 2008 00:11 Edited at: 27th Jul 2011 18:23
Since TGC seems unable to publish news letter stuff

Quote: "
PlayBasic - November Round Up

Well, as the year rapidly winds down to it's inevitable close, it'd be easy to just kick back and just chill out for while. If only there wasn't a mountain of work to get through, one line at a time. This month, we're proud to bring you the spoils of the past season, namely in the form of the latest PlayBasicFX release. The new version introduces our latest runtime technology (VM2) into PB users hot little hands. Not content with that just climbing one mountain, we're also been secretly working upon new IDE for PlayBasic. While it's early days so far, I'm very optimistic about the potential it will have on PlayBasic future. Outside of the office, a bunch of dedicated users have been powering away on with their own games and even new extensions for PlayBasic. One of the most impressive, is a wrapper for the popular Box2D physic engine. Giving PlayBasic & PlayBasicFX programmers a whole new world to tap into. Physics are here.


PlayBasicFX V1.74 released

Finally the coding marathon that was VM2 is drawing to a close and we can bring you the next transitional release of the PlayBasicFX package. Not familiar with PlayBasicFX ?, well in short it's the next generation edition of the PlayBasic, that we've been developing in parallel with the existing editions. The main obvious changes in the product would be, the move from the DirectDraw engine (found in PlayBasic V1.64 and bellow editions) to the Direct3D engine. Moreover, previous releases of PBFX package, we're running upon virtually the same runtime (VM1) as standard PlayBasic. So they had much the same calculation performance and the same linguistic limitations. With release V1.74, this is no longer the case. PBFX editions are now exclusively using the new VM2 runtime technology. Confused ? - Well to make a DarkBasic related analogy, PBFX is to PB, what DBpro is to DBclassic.

So what can PBFX's VM2 do for me ? - Well VM2 brings a world a new possibilities to your PlayBasicFX applications, from the users perspective it's primarily all about speed at this point. Even though , the edition in V1.74 isn't the final, conservatively speaking VM2 is anywhere from 2 to 5 times the real time performance of the Vm1 runtime. To put this perspective, this means VM2 yields very similar & better (in some cases) performance than even some natively compiled basics. Which means you can write more complex involving programs and know that PlayBasicFX will keep up with you!

Other differences found in PlayBasicFX V1.74, come in the form of Direct 3D support. What does mean ? - Well, it means that PlayBasicFX can now take advantage of the 3D hardware acceleration found in your computers video card. Which can be used for not only 2D effects, but creating 3D scenes as well. The new graphics engine includes things like a sprite meshes (2d/3d) rotation, particle engine, perspective projection (view scenes as 2D or 3D), new map engine, more collision methods etc etc. It should noted though, that while FX can do 3D, it isn't the focus of FX. But it's there for you get your hands dirty. Here's a few screen shots to show what it's capable of.








Registered PlayBasic owners can download the latest PlayBasixFX upgrade from the maintenance area of the UnderwareDesign.com PlayBasic Forum.



Box 2D - Adding Physics to Your PlayBasic Creations

by Christian Ang

This month really flew by, I have been working with PlayBasic and Box2D(http://box2d.org/) this past month bringing the two together. I was really hoping I could show more of what it can do with some more demos and such, but alas I added more commands than explaining them properly. I'll be taking the time to do it next month though, so don't worry!

But hey, if you're up to the challenge of testing it without any documentation and some little demos then great, it would sure make my job a little easier. Although, it hasn't been out for to long it does have a good number of features to make a basic simulation for whatever your needs are. With about 50 commands in the library so far I don't think it is to bad for a months work, doing it in my spare time. You can create multiple worlds, bodies, shapes, and easily link them to your sprites in PlayBasic so you don't have to control it. There are also commands to set properties of shapes and bodies such as Density, Friction, Restitution, Linear and Angular Damping, Mass, Bullets, and Sleeping. There are also a few commands to set velocity, force, torque, and impulses. Unfortunately some things aren't in total working order yet until I add a few more things and fix some commands, but it's a work in progress, right?

Although I sure all you want to see is some demos of it in action so go ahead and download the demos attached (with exe), not much but I promise next time I'll make some better demos. Everything will also be fixed in due time along with some new things to be added and before you know it, or I know it, the entire command set of Box2D will be wrapped up in a nice and easy to use library for PlayBasic.




Box 2D Wrapper



PlayBasic IDE In The Works

There seems to be curse around IDE authors, as apart from the few updates five or so months ago, I haven't heard a whisper regarding the current IDE/IDE2 future for better part of a year. In fact nobody's heard from the author at all really ? Which i'm sure sounds very familiar to those Dbpro users out there. Not having a clear path forward with the IDE, creates a huge problem for us in our quest to expand PlayBasic. Expanding one side without the other, makes our progress awfully unbalanced.

Fearing this might occur, the contingency plan was to build a simple stop gap editor in house. Now, I understand that some people out there will be yelling at their screen asking why not use IDE XYZ with PlayBasic ? - While it's certainly possible to adopt some another 3rd party IDE for use with PlayBasic, however with the push towards PlayBasicFX, this option becomes less suitable. Since FX editions are based upon a more modular (aka custom) approach. So we'd have to bend the 3rd party tool substantially to work correctly. Only to potentially get left holding the bag yet again, if the author gets bored. No thanks.

My goal with the replacement IDE, is to produce a simple, safe editing environment, that incorporates all of the key functionality of the existing IDE, just without the fluff. Growing up as a kid programming back in the 80's, I'm an old school "meat and two veg" sort guy when it comes to my editing tools. Back in those days, a basic text editing tool was all you used. Today though, programming environments have turned into a mess, as if there's some competition for who can get the most icons on screen at once. Bombarding the user with ever known option all at once, seems counter productive to me.

While the current Alpha version has only been in development for a few days, the prototypes just focus upon the basic syntax highlighting and editing controls working. Making it sort of like NotePad but with with syntax highlighting for the moment. While you can edit code and launch it with the PlayBasic, it's a long way from being a workable replacement. Even though my goal is to Keep It Simple, I don't want to sacrifice functionality here, I want to expand it. So one objective will be bring new code helper tools to the editing environment. Ultimately this will be primarily done by making the editor more aware of what you're editing. So that it can understand keywords better like variables/arrays/ functions etc etc. Ideally this will allow it to give you hints as you develop, further accelerating your development. While an objective, that's a ways off for now though.



Over And Out

To all those who've supported PlayBasic & UnderwareDesign.com in 2008 my sincerest thanks, I wish you all a happy and safe holiday season. One thing is for sure though, we'll be back 2009 cluttering up internet airwaves with more techo babble than you can shake a stick it.. until then... feast !

"


Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st Dec 2008 03:48
PlayBasicFX V1.74 Release Candidate BETA #9 (Avail for Registered Users ONLY)

This version various misc issues, but the main fix is that corrects more Vm1->Vm2 bindings in the Sprite Command set, Namely with the sprite collision commands.



PlayBasicFX V1.74 Release Candidate BETA #10 (Avail for Registered Users ONLY)

This version addresses a big issue with code size when initializing Vm2, plus patches a few DLL opcodes from Vm1 tables to Vm2. I've been through the Vm1 runtime now completely and those should be the last legacy opcodes in Vm1 that aren't patched to Vm2.


Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 1st Dec 2008 16:59
PlayBasicFX V1.74 Release Candidate BETA #11 (Avail for Registered Users ONLY)

Added more functionality to the SpriteHit methods.



Download
Get V1.74 From Maintenance Forum

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 2nd Dec 2008 12:51 Edited at: 27th Jul 2011 10:32
PlayBasicFX - Basic 3D Demo

This demo is the old Dragon demo running in PlayBasicFX V1.74 rc12..

While PlayBasicFX is primarily a 2D language (with 3d hardware acceleration), you can use the entity sprites and the perspective sprite rendering to creative custom 3D scenes.


Controls:

Mouse = View
Arrow Keys = move
ESC = Exit demo



Download

PlayBasicFX Basic 3D Demo (1.2 meg)


Cheesy Screenie


Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 2nd Dec 2008 15:43 Edited at: 27th Jul 2011 10:34



PlayBasicFX V1.74 _Retail Upgrade_ is Now Available


This release upgrades (transforms) the existing PB1.63m to PB1.64c retail releases or the PBFX1.7x releases (the ones above) into the current WIP version of PlayBasicFX V1.74 Therefore prior to install this, you'll need at some version previously installed ! (if you haven't already upgraded previously)

The PBFX 1.74 package includes updates of the PB Compiler, Release & Debug Runtimes, IDE and SIBS.


The main focus of this release, is the introduction of the VM2 runtime behind the scenes. PlayBasicFX V1.74 is a transitional release of sorts. As It still uses the VM1 launcher and some of the old VM1 opcodes though, but they're only hanging by a thread in that regard. The majority of your programs will be running 80->100% in the new VM2 execution unit. So you'll get a good helping of free processing power.

Not familiar with PlayBasicFX ?, well in short it's the next generation edition of the PlayBasic, that we've been developing this in parallel with the existing editions. The main obvious changes in the product are the move from the DirectDraw engine (found in PlayBasic V1.64 and bellow editions) to the Direct3D engine. Moreover, previous releases of PBFX package, we're running upon virtually the same runtime (VM1) as standard PlayBasic. So they had much the same calculation performance and the same linguistic limitations. With release V1.74, this is no longer the case. PBFX editions are now exclusively using the new VM2 runtime technology. Confused ? - PlayBasicFX is the big brother of PlayBasic.

So what can PBFX's VM2 do for me ? - Well VM2 brings a world a new possibilities to your PlayBasicFX applications, from the users perspective it's primarily all about speed at this point. Even though, the edition in V1.74 isn't the final, conservatively speaking VM2 is anywhere from 2 to 5 times the real time performance of the Vm1 runtime. To put this perspective, this means VM2 yields very similar & better (in some cases) performance than even some natively compiled basics. Which means you can write more complex involving programs and know that PlayBasicFX will keep up with you!

Other differences found in PlayBasicFX V1.74 come in the form of Direct 3D support. What does mean ? - Well, it means that PlayBasicFX can now take advantage of the 3D hardware acceleration found in your computers video card. Which can be used for not only 2D effects, but creating 3D scenes as well. The new graphics engine includes things like a sprite meshes (2d/3d) rotation, particle engine, perspective projection (view scenes as 2D or 3D), new map engine, more collision methods etc etc. It should noted though, that while FX can do 3D, it isn't the focus of FX. But it's there for you get your hands dirty. Here's a few screen shots to show what it's capable of.









Have fun !


For more information about PlayBasic, please visit the PlayBASIC home page and download the FREE time unlimited learning edition and dive in.

Url: www.PlayBasic.com



Download

See Full Announcement




How Do I Upgrade ?

Registered PLAYBASIC owner ? - Want to upgrade to PlayBasicFX for FREE? All PlayBasicFX upgrades are only available through the PlayBasic maintenance forum. To access these, and all manner of the other PlayBasic related goodies, you'll need to sign up and log into the UnderwareDesign Forums.

How To Register

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 10th Dec 2008 01:38 Edited at: 10th Dec 2008 01:43



Play Basic V1.64d BETA (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64d is a update beta of PBV1.64 retail update. This version corrects a few bugs with parser, the BK packer and a couple of nasty memory leaks in the array commands.


Download

Get PB 1.64 Beta from the PlayBasic maintenance forum.



Gallery

PlayBasic V1.63/1.64 Gallery


Get PlayBasic Cheap !
Get %35 OFF PlayBasic until 1st, Jan, 2009



Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 13th Dec 2008 02:56
PlayBasic V1.64e - New LoadMapGFX

This morning sees the results of the previous few days work finally coming together, with the replacement of the LoadMapGFX command. As usual, I've been testing the loading process with the Xenon 2000 map gfx, why ? - because it's biggest map I have. The map blocks are around 4 meg gfx data, therefore making the speed improvement much more noticeable. Speed wise the new version of the command can load the and prepare the xenon block data in about 175->185 milliseconds. Which is about 4->5 times faster than the older method. And without the very picky format issues.

While it seems stable (ie. works on the examples I've tested), i'm sure it isn't, there's always some combination these things will spit up on in real life. Therefore, i'll post a beta later on this morning so you guys can test it a bit prior to the new release build. Anyway, back to it.



PlayBasic V1.64e Beta

http://www.underwaredesign.com/forums/

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 24th Dec 2008 15:25 Edited at: 27th Jul 2011 10:37

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 2nd Jan 2009 05:10 Edited at: 2nd Jan 2009 05:11
PlayBasic BETA V1.64e - V1.64h3 Round up


PB V1.64f - This version expands upon the new image loader via adding TGA support to the native loader. Also, it handles loading FX formated surfaces much better.

The new loader currently supports

Windows BMP

1 bit
4 bit (raw & RLE)
8 bit (raw & RLE)
16bit
24bit
32bt


TGA formats

8 bit (raw & RLE)
16bit (raw & RLE)
24bit (raw & RLE)
32bt (raw & RLE)




PB V1.64g This version add a NEW cut down PNG loader to our replacement Image Loader library.

The new loader currently supports

Windows BMP

1 bit
4 bit (raw & RLE)
8 bit (raw & RLE)
16bit
24bit
32bt


TGA formats

8 bit (raw & RLE)
16bit (raw & RLE)
24bit (raw & RLE)
32bt (raw & RLE)

PNG
8bit
24bit
32bit.

While it works fine with PNG's saved with PAINT.NET - It can have drama's with variations saved from other paint packages, namely with the alpha channel. Not sure why, but I assume they use different hunks. If it does, it'll fail through to the old loader for the time being (in the future this won't be there!). So it's better than nothing, and it's much faster than the old library, even if i do say so myself


PB V1.64h This versions adds an alert on boot if the DX interface isn't present. If it fails, the runtime should pop the dialog and then close. At least in theory Smiley


PB V1.64h2 - This update corrects a blurring issue in the MMX version of variable Alpha blender.


PB V1.64h3 - This update corrects a few more bugs and adds the SizeOF() operator (compile time). SizeOF() lets you query the size of UserDefinedType structures. The value it returns is the size of the structure in BYTES.




Lastest PlayBasic V1.64h3

http://www.underwaredesign.com/forums/

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 4th Jan 2009 14:21 Edited at: 6th Jan 2009 12:23
Play Basic V1.64 BETA H4 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64h4 is the latest beta of PBV1.64 retail update. This update corrects another core set of bugs. Namely, Fixed drama with opt'ed Texel compression routine failing to run the correct maskColour compression routine when the mask colour wasn't zero. Plus a bug to where shapes lost scaling when captured to a world buffer.


Latest PlayBasic V1.64h4

http://www.underwaredesign.com/forums/

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 6th Jan 2009 12:23 Edited at: 6th Jan 2009 12:25
Play Basic V1.64 BETA H5 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64h5 is the latest beta of PBV1.64 retail update. This update corrects a few more well hidden render errors and adds the new LoadAFXimage and LoadNewAFXimage commands. Use these commands to load surfaces and preserve the alpha channel.

The PNG loader is a bit picky, so I recommend using Paint.NET to save your Alpha Channel image. (32 bit PNG)


Latest PlayBasic V1.64h5

http://www.underwaredesign.com/forums/

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 12th Jan 2009 14:15 Edited at: 25th Mar 2011 05:54



PlayBasic V1.64h _Retail Upgrade_ is Now Available (12th, Jan, 2009)


This release updates the existing PB1.63w2 retail release to the current retail release version of PlayBasic V1.64h. Therefore you'll need to install patch PB1.63w2 (at least) prior to this one ! (if you haven't already)

The PB1.64h package includes updates of PB Compiler, Release / Debug Runtimes, IDE V1.17 & DOCS. The main changes to this release (apart from bug fixes as always) would be the new image loading library. This library allows you to Load BMP,TGA,PNG (with alpha channels) directly into PB. Moreover this library is also used behind LoadMapGFX command, making it a lot less picky on the image format. Other changes are to the internal rendering routines. Which should now universally support rendering of the AFX images in any pixel format. AFX images are of course FX images with Alpha Channel.

For example, you can load a PNG/TGA or even BMP (32bit) and have PB handle everything for you using the new LoadAFXimage and loadNewAFXimage commands. These commands ensure the surface is kept 32bit, regardless of the users display depth. So it'll just work. Previously you could use the PrepareAFXimage command to convert a loaded (or created) surface. But this process would fail if the users system was running the program in a 16 or 24bit display mode, due to their video hardware hardware. Why ? - Those formats have no Alpha bits. So creating a AFX surface from them is useless.

One short coming that comes to mind, is that if you use GETIMAGE to cut frames from a larger AFX image, this might not work correctly when the users display depth is not equal to 32bit. So for the time being, it might be better to previously split those animations into a series of files. Not ideal, but at least you don't have to use external libraries anymore. Although you can if you need to.


For more information about PlayBasic, please visit the Play Basic home page and download the FREE learning edition and dive in.

Url: www.PlayBasic.com



Download Upgrade

Download PlayBASIC V1.64h Retail Upgrade

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 16th Jan 2009 15:42 Edited at: 16th Jan 2009 15:49
Play Basic V1.64 I BETA #2 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64i2 is the latest beta of PBV1.64 retail update. This update just cleans up some missing functionality. For example in this version GetImage can grab AFX images from AFX surfaces, plus there's some debugger opt's for when you look inside huge arrays, as well as a new command to load a custom window icon to the PB screen. Which also work in full screen exclusive modes.


Download
http://www.underwaredesign.com/forums

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 23rd Jan 2009 17:14 Edited at: 27th Jul 2011 10:40
Font Compression (Alpha Bitmap 32bit)

This example includes 32bit bitmap compression and rendering test. The compression method is currently the same the one used in 8bit fonts. However, due to possible alignment issues, it might be better to limit the packing to only match spans on even boundaries. This could help gain even more speed (as MMX works better on even boundaries), but it's never going to be express.

The demo starts by loading, then compressing the included bitmap font (ice.png). I've used a modified version of the Alpha Bitmap Font library (posted in the source code forum) to take care of this process. All it does, is it loads the bitmap image, then grabs the individual letters as AFX images. After this, it trims the letters (of any black space) to reduce the size as much possible. Small letters ='s faster rendering. Although annoyingly it turns out that lots of the bitmap fonts (the ones with alpha) have poorly aligned chr's in them. Which you can see here during the compression. But they'll do for now.

once the font is compressed the demo draws a screen full of strings (all the same). There's two modes, the first mode is the new compressed filler. This filler supports anti aliasing (via alpha channel) and tinting via INK. So the you can colour and 'alpha blend' the text into the background dynamically. In mode two, it shows the Alpha Bitmap Font rendering the text as AFX bitmaps. You could TINT the AFX render also BTW, to do this, we'd render the characters as sprites, rather than Images. Then apply the Ink colour as the SpriteTint. You'd get the same result visually, but it'll be slower (in theory) since that's a generic solution. This is custom.

Even though the compressed mode is tinted, it's actually slightly faster than the AFX mode. So the compression is effectively giving us a new effect for free. If we disable tinting, then the compressed filler is about 2 milliseconds faster than the AFX render.


Download

For all the latest TechDemos see
http://www.underwaredesign.com/forums


Playbasic V1.63 -> PlayBasic V1.64 Gallery



Old Sample Picture.



Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 27th Jan 2009 18:15
Play Basic V1.64 I BETA #3 & 4 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

This update fixed a few image & sprite draw mode issues found in the 1.64 texture mapper.


Play Basic V1.64 I BETA #5 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY)

PB V1.64i5 is the latest beta of PBV1.64 retail update. As per the previous beta, this update addresses a few more rendering bugs. Internally it includes a new system for globally exposing internal parts of the VM. Not useful to users, but it should make updating the various libs easier.



Download
http://www.underwaredesign.com/forums

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 4th Feb 2009 17:12 Edited at: 27th Jul 2011 10:43
PlayBasic V1.64i6 - Font BackDrop Colour

The new font engine allows alpha blending text between with the destination buffer or a selected backdrop colour. Here it's blending with a bright purple just to make it nice and obvious.




PlayBasic V1.64 WIP Gallery

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 9th Feb 2009 19:32
Play Basic V1.64 I BETA #6

PB V1.64i6 is the latest beta of PBV1.64 retail update. This beta adds the first intergration of the new compressed raster font engine into the PB font command set. Since such a lot of new code has been added, it goes without saying that the newest font modes are certainly not 100% at the moment. While they work, some font commands simply haven't been completely hooked up as yet. One command that comes to mind is DeleteFont, which will leek memory every time you delete a CRF (compressed raster font) in this version.

The package also includes a little usage example and some of the Alpha Bitmaps fonts saved in CRF format. It's pity the damn characters are out of alignment. Anyway, the fonts have alpha channel enabled also, so drawing them directly to video memory is not a good idea (requires lots of fetching from the video memory, which is SLOW!) .

What I will need is somebody willing to knock up a little font import/convert tool. Otherwise that's another job that needs to be done prior to a release.


Play Basic V1.64 I BETA #7

PB V1.64i7 is the latest beta of PBV1.64 retail update. This beta irons out the PlayFont integration. Effectively it should operate as per normal now. I should point out though, that the CRF file format has changed since the previous beta, so this version won't load the fonts from the previous beta. Which means that you'll have to create your own CRF's.. I'll be posted a thread with how to do this later. While it's requires using the engine directly, it's pretty simple.

What I will need is somebody willing to knock up a little font import/convert tool. Otherwise that's another job that needs to be done prior to a release.



Play Basic V1.64 I BETA #8

PB V1.64i8 is the latest beta of PBV1.64 retail update. This beta uses a replacement scene capturing library of sorts. Ideally the goal of these changes are to make capturing and render the scene buffer as quick as possible, as well as being a lot smaller than old method. Sadly, I can't replace all of the old code, without really investing a lot more time in it. The replacement code is really the basis of the PBFX scene/world library, so i'm trying to keep this as generic as possible, so I can drop most of it over. Although, I have tied some of the render functionality in directly. Which just means that the scene render (for most graphic items) can now use the engines span interface directly, rather than calling wrappers. Speed wise, it comes down to how much stuff you capture/reader as to what effect this has on the speed. I've notice that some demos get a free 5->10 fps from the changes. Which is certainly a handy boost.


Download

Get Latest Beta From UnderwareDesign.com forums

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 14th Feb 2009 12:19 Edited at: 27th Jul 2011 10:47
PlayBasic V1.64i - Platform game revisited

If you've downloaded PLayBasic 1.63 learning edition, then you've probably seen the Platform Game demos that are included in the example pack. Those demos are as old as the hills now, and don't really reflect PlayBasic 1.63, let alone 1.64 edition. Which has a new graphics engine, among other things.

At the moment, i've no real graphics to add to the demo so i'm just using a clouds from the Shadow of the beast and backdrop picture from the web as place holders. In the backdrop the clouds are cross fading with the backdrop and the piccy is spinning. Other changes are the sprites now use the tinting feature to colour them in real time (randomly) and it's running in bigger screen.




PlayBasic V1.64 WIP Gallery

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 18th Feb 2009 14:29 Edited at: 27th Jul 2011 10:50
PlayBasic Beta Round Up.

PlayBASIC V1.64 I BETA #10/11

PlayBASIC V1.64i10 is the latest beta of PBV1.64 retail update. This beta rounds off the 32bit CRF rendering routines. You can now render 32bit CRF's to 15/16/24 & 32bit surfaces. The other changes as mentioned above revolve around the Camera capturing and methods. So there's lot of new code, that needs real world testing.


Play Basic V1.64 I BETA #12

PB V1.64i12 is the latest beta of PBV1.64 retail update. This beta completes the CRF rendering engine for both 8Bit and 32bit compressed fonts. The engine supports 3 render methods and all major buffer formats are supported. Some formats also have MMX editions, but these can be slower due to fetch alignment. Bad alignment makes the normal scaler versions faster than the MMX versions. So they might be retired for the time being.



Download

http://www.underwaredesign.com/forums



[b]PlayBasic V1.64 Gallery[/url]


WIP Gallery

Attachments

Login to view attachments
Azunaki
13
Years of Service
User Offline
Joined: 11th Feb 2009
Location:
Posted: 20th Feb 2009 05:40
this looks pretty cool.
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 25th Feb 2009 17:37 Edited at: 27th Jul 2011 10:53
Round up of the last couple of beta's

Play Basic V1.64 I BETA #13

PB V1.64i13 is the latest beta of PBV1.64 retail update. This beta includes MMX accelerated CRF rendering (in 32bit modes), as well as the ability to handle certification externally from the PB local folder. This should help with restrictive OS installations.

The CRF MMX rendering has really put the icing on the cake in terms of CRF. On my system, there's about 2 Milliseconds speed boost while rendering a full page of 32bit text. AA text is now as quick as what 'solid' text was previously. The Solid render can draw the full screen of text in 2->3 milliseconds. Which means the demo clocks 200-250fps (depending upon the Windowed/Full Screen) on my test machine. It's might seem funny to invest so much effort in text rendering, but it all adds up. Those creative minds out there should no doubt see the CRF's have other usages also. Mapping & image animations for example.



Play Basic V1.64 I BETA #14


PB V1.64i14 is the latest beta of PBV1.64 retail update. This beta exands the mapping support with the inclusion of the AFX import ability via the MakeMapGFX command. What this means is that if you pass the make map gfx an AFX formated image (say via loadAFXImage), then the Mapping engine will use a AFX surface for it's internal block buffer. So when you render the map it'll use the AFX surfaces alpha channel for the transparency. I should point out that this really requires you to render the map to an FX surface, before transferring the result to the display.


Download

http://www.underwaredesign.com/forums/



Recent Pics



Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 3rd Mar 2009 07:22
The Free PlayBasic Initiative

What's the Free PlayBasic Initiative all about ? - Well, It's simply a way for us reward those who are willing to participate and share their PlayBasic knowledge / skills with the community, to enrich the community in some way. As a programmer for the better part of 27 years, I've been active contributor on various platforms and languages throughout that time. What I've found is that such contributions don't go unnoticed and have led to various incentives from software & hardware freebies through job offers. In the case of PlayBasic, we'll be giving out free copies of the retail version to people who show they're committed to PlayBasic community and PlayBasic development.


So primarily the initiative is to encourage users of the PlayBasic Learning Edition to make a bigger contribution to the PlayBasic community. This contribution could be a write a Game, submit Source Codes / Tutorial Set / Media Packs or other. To see how you can help out, make sure you check out the FAQ

See FAQ

BMacZero
17
Years of Service
User Offline
Joined: 30th Dec 2005
Location: E:/ NA / USA
Posted: 3rd Mar 2009 23:19
Gee, you do a lot of work on this .

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 4th Mar 2009 18:01 Edited at: 27th Jul 2011 10:56



------------------------------------------------------------------------
PlayBasic V1.64i _Retail Upgrade_ is Now Available (5th, Mar, 2009)
------------------------------------------------------------------------


This release updates the existing PB1.63w2 retail release to the current retail release version of PlayBasic V1.64i. Therefore you'll need to install patch PB1.63w2 (at least) prior to this one ! (if you haven't already)

The PB1.64i package includes updates of PB Compiler, Release / Debug Runtimes, SLIBS, DOCS & IDE V1.17. The main new additions in this editions would the introduction of PlayBasic's new Compressed Raster Font engine (CRF for short), which includes not only faster rendering, but Alpha Channel and Tint support, but Compressed Raster font's can be drawn to any PB surface. Speaking of Alpha Channel support, you can now use AFX images with Maps also. Beyond that, speed wise 1.64I has a number of MMX machine code optimizations in the rendering engine and almost completely new revision of the scene buffer capturing code.

Note: Compressed Raster Fonts can't currently be created within a PB program (at least not easily), so in order to convert a Windows TrueType or a custom bitmap font, you'll have to do this manually. At least for the time being. See-> How to Create Compressed Raster Fonts for how


For more information about PlayBasic, please visit the Play Basic home page and download the FREE learning edition and dive in.

Url: www.PlayBasic.com


Gallery




Download Upgrade

Download PB1.64i Retail Upgrade (requires log in)

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 5th Mar 2009 16:25
MultiSync Wrapper Updated To V1.4.1 - MultiPlayer library For PlayBasic

Multisync is a multiplayer plugin originally designed for use with DBpro/C++, utilizing the TCP protocol and the client/server networking model. Multisync is developed by Benjamin Wharton.

This package includes a wrapper for using MultiSync with PlayBasic. The wrapper was developed by Kevin Picone.



Download

Download MultiSync For PlayBasic (Requires login)

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 8th Mar 2009 16:26 Edited at: 27th Jul 2011 09:43
Play Shape V0.07 (WIP)

Been wanting to give some of the old tools a bit of revision for a time now and PLayShape had happened to be first in line. The main changes so far have been moving from the WinGUI to FlexiGUI. It's a bit tricky, as the GUI logic only ever considered the two possible input layers, those being the Menu/Scroll bars being over the screen. In this version, there's 3 possible mouse positions. So the logic needed some tweaking, and still does to be honest. Just to make sure that when you click the mouse, the correct thing reacts and only that . Not a lot of code, just tweaking the logic.






PlayShape WIP THREAD

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 24th Mar 2009 17:20 Edited at: 27th Jul 2011 09:46
PlayBasic V1.64i - Neon / Blur-o-Vision

These shots sort of replicate a visual effect you see in a lot of those so called vector shooters.




PlayBasic V1.63 -> 1.64 Gallery

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 28th Mar 2009 16:37 Edited at: 27th Jul 2011 09:50
Rugby Source

This example was original written at the start of 2006. It was originally developed using PlayBasic V1.20 (or so) and apart from a few parameters changes. The code is virtually the same.

The demo was originally written as a proof of concept of sorts. While there's no game to speak of, the demo does show some methods that you can use to render perspective textured mapped scenes. Even in good old PlayBasic.




Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 6th Apr 2009 09:33 Edited at: 27th Jul 2011 09:55
PlayBasic V1.64j - MMX opt'd gouraud

This is really the same scene as above, except V1.64J revision includes a couple of new changes. Namely, there's a new BlitFX mode that handles the post pixel scaling and a few new opt's to some the gouraud fillers routines. Combined these improvements allow it to handle higher resolutions at the same rate.





PlayBasic V1.63 -> 1.64 Gallery

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th Apr 2009 21:50
PlayBasic On Twitter

Slapped up a PlayBasic page on twitter recently.. http://twitter.com/playbasic

Now if only I can remember to keep it updated.



2009 Game Programming Competition Survey
2009 PlayBasic (game programming) Competition Survey

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 19th Apr 2009 20:55 Edited at: 27th Jul 2011 17:54
PlayBasic V1.64j Optimization Round Up


PlayBasic V1.64j - MMX filtering (no texel compression) with Alpha50

The engine now supports disabling mask colour compression, which gets rid of the mask detection problems. As Filtering and MaskColour don't mix. So in this case you'd use Alpha Channel to govern the pixels visibility.

In the piccy the frame buffer is gouraud shaded, and the filtered image is alpha blended over the result.






PlayBasic V1.64j - Multi Pass Full Screen Filtering

This example is 3 layer effect. Layer #1 is Gouraud backdrop, layer #2 is a bunch of filtered/tinted/Alpha50 spites and layer 3 is huge filtered/alpha50 sprite covering it all. Gives an interesting effect when moving.

Get Source Code






PlayBasic V1.64j - Mask Colour Filtered , Anti Aliased Sprites With Tint

This is actually not a new effect, this combination is available in previous versions of PlayBasic 1.64 for example, but the new texel fetching routines make it lot more useful. It's not going to be express mind you, as filtering is heavy on (random) memory access, none the less, the 1.64J render engine is about 30% faster than previous editions. If you disable mask colour compression, then filtering is about %50 faster. Which means you can actually do full screen filtered effects.




See PB1.64 Gallery




PlayBasic V1.64j - Filtered Terrain

Just like the post above, the following picture is not a new effect, it's just that the recent filtering method changes, filtered terrain is now possible. This means those messing around with software 3d solutions can achieve a much closer visual approximation (to hardware), just without the polygon through put.

The demo is the Terrain demo from the V1.63 example pack. The only code changes, is that terrain object has it's drawmode set to filtered and the demo is capped to 50fps.






Graphics Wanted

We're looking for some Lode Runner (inspired) 2D graphics, can you help ?

If so,reply Here

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 21st Apr 2009 20:26 Edited at: 11th May 2009 09:44
Play Basic V1.64 J BETA #6

PlayBasic V1.64j6 is the latest beta of PBV1.64 retail update. This series of updates is virtually completely focused upon optimization of the 1.64 graphics engine, as such, there's not really any new commands compared to the previous releases, just a lot of improved functionality. Namely improved filtering and improved MMX/scaler support in the texture depacking routines.


Download @ UnderwareDesign.com

Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 30th Apr 2009 15:12 Edited at: 27th Jul 2011 17:53
TGC news letter update.. nothing new

Missing April (TGC) News letter item

Quote: "

PlayBasic - April Round Up

This month has been all about optimization of the PlayBASIC V1.64 graphics engine. Which no doubt sounds about as interesting and counting rain drops, but I actually enjoy this type of programming most. Why ? - Well it means reverting back to my favorite language, Assembly... Writing assembly rendering routines, just taps back into that 6502 programming kid back in the early 80's. Was reminiscing the other night about just how enjoyable that time was. You'd sit there, with either a monitor or assembler if you were lucky and poke opcodes / graphics data into memory and strangely enjoy it. If it didn't work, you kept trying. You had no option really, you couldn't just search google in those days, it didn't exist

Those who remember 8bit programming, in particular on systems like the C64, would have gotten well accustomed to their copy of the C64 hardware reference manual. You had no choice, the only way to do anything interesting was in machine code (assembly) and hitting the hardware. Raster interrupt programming on the C64 should have been an Olympic sport. 20 years on and the obsession to write the perfect sprite multiplexer still consumes people to this day. And we're not talking about this hardware accelerated none sense we have today, but good old fashioned real hardware sprites. But those days are long gone now.

All nostalgia aside, the objective of this optimization pass is to stream line all the generic functionality as much as possible and look for ways to short cut some 'common' render modes. Namely real time bilinear filtering effects and various combination modes, such as filtering combined Anti aliasing and tinting effects. There'll probably be a few new commands, but nothing too major.

While the work has been painful at times, it's certainly starting to bare fruit. Sprite/texture filtering modes now supports all pixel formats (15, 16, 24 & 32 bit) both with and without texel compression. The fastest versions are the 32bit modes, but the gains have been pretty consistent across the board. With virtually all fillers seeing a 25% (or more up 50% in some cases) improvement. For example, you can now bilinear filter a 15bit image, with pixel format conversion at over 60fps. Lets not get too excited though, filtering is still and always will be computationally expensive. So moderation is still the best way to get a good result. Think -> then act !

Beyond the sprite engine (which is what the previous is all about), there's a few other little jobs that need tweaking also. Like the new BlitImage mode for doing the Blur-O-Vision effects and perhaps a cross fade mode also. So those will most likely be the next port of call. The new revision should be released by the time you read this, until then enjoy a few screen shots from the current work in progress.

(old pics removed)


PlayBasic on Twitter

For those twitter addicts feel free to follow PlayBasic and get all the latest chit chat.. Now with 20% more techno jargon

PlayBASIC Twitter/Facebook




Load Runner AI Challenge

In keeping with our recent retro game influenced challenges, this time around we'll up the anti and tackle the AI mechanics of a classic retro platform game called Lode Runner. The focus here is not to built a remake of the game (there's dozens of those already), but derive an approach for making the opponent characters (we'll call them Bad Guys) chase after the Player ?

http://www.underwaredesign.com/forums/index.php?topic=2999.0


"


Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 6th May 2009 19:30 Edited at: 27th Jul 2011 09:53
PlayBasic V1.64j Beta 8 - Lerp Vertex Support

This demo is testing a new vertex list command to handle LERPing between vertex sets. The demo is just drawing a set of vertex as shaded circles. Sorta looks like a chunk of ice or something. The lerping is used to transform the vertex list between the two states (a random cube of verts and a sphere).




Some Example Sources

Attachments

Login to view attachments
Kevin Picone
20
Years of Service
User Offline
Joined: 27th Aug 2002
Location: Australia
Posted: 11th May 2009 09:49 Edited at: 11th May 2009 09:51
PlayBasic V1.64j9 - Better Bindings in VM1

Even though today was mothers days here in Australia, I did manage to try out that different function binding approach in Vm1. The results are pretty pleasing, with the new method showing around a 60% improvement across 3 parameter functions. I had a feeling it'd be quicker, but wasn't expecting that sort of gain. At the moment it only support integer / float return types. Returning strings is little more painful, even so, that should also work out quicker.

To give you idea of what this means in terms of performance, if you compare the internal (VM1 native) RGB() function with calling a external version from a dll. Vm1 can call the internal operation about 4.7 million times per second. If you run this on the 1.64j8 (and bellow) then those edition would struggle to call the external function around 1.7 million times per second. However, under 1.64j9, it'll executed the call 4.3 million times per second. While slightly slower than the Vm1 native equivalent, that's vast improvement compared to older VM1 editions.

This is good news for the VM1 platform I guess, but VM2 is about another 3.8->4 times quicker again then the Vm1 runtime used PLayBasic 1.64j9....


Download Beta's @ UnderwareDesign.com

Login to post a reply

Server time is: 2023-01-29 18:56:09
Your offset time is: 2023-01-29 18:56:09