Review: PPL - Pocket Programming Language from ArianeSoft


Pocket Programming Language

A few months ago, I was introduced to a new language for Windows Mobile devices by a fellow blogger Eric Pankoke. As soon as I check out www.arianesoft.ca I had to do a review of the software development product thinking I would be done in a few weeks. Now a few months have passed and I have finally completed this journey. The PPL language in its first release is very robust and reviewing this package was a daunting task. How do I review something as complex as PPL without turning the review into a tutorial or having the review becoming too diluted in my opinion?

After losing my original draft due to a hard reset of my Windows Mobile device, I feel I have written a review that covers most aspects of PPL that I feel are important to me as a developer and to others as potential converts to PPL. PPL is certainly a language suitable for serious application developers but also attractive for beginners.

For years, Windows Mobile developers used tools from Microsoft to develop commercial or professional quality applications. Over the years, development tools like NS Basic from www.nsbasic.com, Basic 4 PPC from www.basic4ppc.com and others specialized in forms and database manipulation like Visual CE from www.syware.com were readily available. Another software package called Game Editor from www.game-editor.com was released a couple years back that has the ability to create games for Windows Mobile. Other languages like NS Basic can be used for game creation, but they lack the tools necessary for optimized game creation. Other third party add-ons and creative programming techniques are required to create games of commercial quality. For those serious about commercial quality game development for Windows Mobile would have to learn to use Visual Studio from Microsoft. Not a simple programming language to learn for the beginner or even seasoned non Windows Mobile developers. The learning curve is high with Visual Studio especially if you decide to tackle the aspects of the .NET Compact Framework.

Even with Microsoft Visual Studio, this is a language geared towards all sorts of application with its main focus being in the corporate environment type application creation. For those like me that are more into entertainment type of application creation, the tools do exist in Visual Studio but lack the user friendliness that we deserve. The developers from PPL www.arianesoft.ca have created a powerful development language that has taken the ease of Basic, the power of C, the intuitive aspects of Pascal and created a language that is geared specifically towards graphically rich application development. If you are familiar with commands like MALLOC, FREE, PEEK and POKE, you will be right at home with PPL.

The PIDE does take a little of getting used too since there are numerous tools available to you like the file manager and the game level editor. Besides the Microsoft Visual Studio, PPL is the only language with this array of support tools. PPL is the only language I am aware of that comes specifically with graphics support with a level of user friendliness and power that allows beginners to ease into the world of game development.

With other development languages, you must have access to an actual Windows Mobile device or install what’s called the Windows Mobile Emulator to test your code. With PPL, its cross platform ability allows you to code once on the desktop and run on the desktop without the need for the actual Windows Mobile device or the emulator software installed. The screen format of the application is equal to the Windows Mobile version when run on the desktop.

Another key advantage with PPL is any code developed on the Windows Mobile device can be transferred to the desktop and modified as necessary. No conversion or restrictions to the code. Using the Professional version you can compile the final code into an actual EXE file.

One concern I have with many Windows Mobile development languages is the speed of execution or the lack there of when it comes to animation and games graphics. The developers at PPL have incorporated GAPI which is the mobile version of DirectX that provides high level graphics support on the desktop PC. GAPI allows maximizing the performance of animated graphics on the Windows Mobile device.

The PPL package comes with these tools:

PIDE – Pocket Language IDE for the desktop which is an object oriented and visual developer user interface for development. This language is considered a cross-platform language for Windows Mobile and Windows desktop development. With object oriented programming, PPL like other object oriented programming languages allows you to minimize your code writing. Just select the object like the TAB, BUTTON, TREEVIEW, IMAGE controls in the Visual Forms Builder and add the underlining functionality via code and property changes.

GameAPI – This fully supports 2D graphics. This API allows you to draw geometric shapes, fonts and interact with the sprites. At last count the Game API supports 40 commands.

These are some of the game API commands I found to be intriguing:

G_Setblend – Sets the alpha blending value which allows the combining of an image with a background to create the appearance of partial transparency. This is great for creating the appearance of any drawn object to be part of the actual background.
AVGFPS – Returns the average frames per second that the GameAPI can produce.
G_LoadVGAFont - Load a font for use with VGA text out functions.
SetAISpeed – allows the simulation of gravity on a given object.

SpriteEngine – What we all need when creating games and moving common images within the game. The engine supports an array of commands. At last count there were a total of 122 commands relating specifically to the Sprite Engine.

These are some of the sprite commands I found to be intriguing:

Clonesprite – Duplicate Sprites
SetSpriteSurface – Allows you to change the surface which a sprite is associated with
SetSpriteAngle – Allows you to rotate the sprite.
SpriteAnimSpeed – Allows you to set the delay between each frame of a sprite.
SetSpriteMass – Sets the mass as a percentage of other sprites.
SetSpriteLight – Set the light intensity of the sprite

Particle Engine – This is something I have not experienced in the past and has some interesting potentials. From what I understand, a sprite can be classified as particles and given certain physical motion characteristics to allow the sprite to traverse a predetermined path and end or repeat as necessary. Currently the Particle Engine consists of 7 commands.

SoundAPI – Allows the integration of sound within your application. Currently 17 commands are supported in the Sound API. Standard commands like PlaySound, Stop and others like PAN and LOOP.

Stack Support – This is something borrowed from machine or low level languages and allows the direct access to variables stored within memory. Accessing variables within stacks allow for quick execution while minimizing memory usage.

PPL Assembler – Compiles for maximum application speed. PPL is an interpreted language but in the end is compiled into machine language to add that extra boost in code execution speed.

Code Profiler – Used to optimize code and improve performance.

Memory Analyzer – Helps to minimize memory leaks which can lead to program crashes and unpredictable behavior.

Code Debugger – Allows you to set breakpoints and step through your application line by line or through complete functions and routines. Debugging ability is something that many third party developer languages lack.

On the PDA itself:

Code Editor – Input code on the PDA.

Visual Forms Builder – Create forms directly on the PDA.

The language comes with encryption, compression, and communications support (Wi-Fi and Bluetooth). Plus the ability to create an encrypted resources file for all the data your application may require externally.

As with any development language, sample codes are important. PPL comes with a selection of sample code in the C:\Program Files\PPL\Demos\ folder.

Demos including:

Arrays
Pointers
Reading and writing files
Serial access
Animation
SQL database
Registry access
Much more. . .

I did feel that the demos lacked variety and substance. There are 5 samples which were a slight variation on the previous sample to give you a glimpse of the graphic animation potential. I would have preferred to see a puzzle, tile, shooter and scrolling games as samples. Nothing fancy but at least the bare bones of each game would have been a great touch. I would have also liked to have seen the use of the extensive math functionality to convey the PPL languages potential in creating scientific and industrial applications.

The developer package starting @ $59.95 is really a good price point for something with this level of power and flexibility. The Pro version is only $99.95 and is recommended for seasoned developers. No other language comes close in providing the tools necessary to create quality games for under $100.00 USD. Other languages require add-on tools or SDK’s to complete your tool box to create quality games. In the end using other tools can easily set you back $200+ USD. Also since you require third party tools, there is always a small chance of issues or incompatibility with the add-on. Since PPL comes with the Sprite Engine, sound and animation tools built right in, there is nothing required from a coding point of view to write professional quality games and applications.

I would suggest you also invest in a good desktop drawing application and sound creation tool to compliment PPL.

Pros:

All in one development tool
Excellent Sprite Engine
Excellent Particle Engine
Debugging tools a real asset
Solid HELP built in plus separate HTML manual

Cons:

Demos lack a complete simple game.
Support for Windows Mobile 2000 and 2002 must be manually configured.

These are the versions currently available.

Standard - $59.95
Pro - $99.95

You can check out the specific differences HERE

In futures versions, I would like to see these added if at all possible:

- Dial and gauge controls
- Sample sprites and sound effects
- More complex demos like a drawing program, personal expense manager, data organizer, photo organizer.
- Support for MS Smartphones

Rating: 8 out of 10

Conclusion:

- Developers currently using Microsoft EVB or just starting to get to know Visual Studio should consider PPL as an alternative.
- Windows Mobile users considering taking a leap into development can certainly do so at a reasonable starting cost of $59.95. The learning curve is short compared to Visual Studio from Microsoft and has excellent support via the online forums. There are other development tools or application creation tools but none provide the richness of PPL in creating quality commercial applications.
- Developers not familiar with Windows Mobile can easily create desktop applications and compile them to run on a Windows Mobile device immediately.

I would highly recommend PPL for anyone interested in developing mobility applications of any type. Developing applications for clients using PPL is one way to ensure that a completed application is downward compatible to Windows Mobile 2000. You cannot say this with Microsoft Visual Studio or with some of the other languages.

For those specifically interested in game development can do so with just PPL and create some sophisticated applications. Since PPL has a low starting price point, it’s a great tool for beginners. Experts should consider the Pro version. You can go HERE to download a trial version of PPL. PPL supports Windows Mobile 2000, Windows Mobile 2002, Windows Mobile 2003, Windows Mobile 2003SE, and Windows Mobile 5.0 currently.

Version Reviewed - V1.12 Pro

I was wondering when one of us was going to get around to reviewing PPL! Great job Bob! PPL is fantastic!

I had been asked by Alain (the developer of PPL) to write a review, and I had planned on it. Right now, though, I'm not sure I could be impartial enough, as I've been close to the project for 2 1/2 years now. However, I would like to point out a couple of things in regards to Bob's review.

First of all, the version that Bob reviewed, 1.12, is outdated now. The current version is 1.25. That may not seem like much, but one thing ArianeSoft is great about is packing a lot of stuff into updates, even if they are minor version numbers.

Second, when considering this product make sure you pay special attention to the different feature levels. For instance, the GameAPI requires at least the standard level, and the Particle Engine is only available in Pro. However, it should be noted that for the purposes of testing the language, there is a Lite edition that is completely free. In fact, you could easily write full fledged programs with the free edition, you just won't be able to take advantage of some of the nice, more advanced features like .exe compilation and resource file packaging. Also, there is a special key available that will give you a 15 day trial of the Pro edition so you can play with the Game engine and other advanced features.

Bob mentions cross-compilation a couple of times, but I wanted to make sure it was clear that this wasn't just a means of testing PPC applications on the PC. You can actually write code that runs natively on both the PC and Pocket PC. This is especially handy for writing productivity applications where you might want to have a desktop as well as "to-go" interface, or a game that you want to reach multiple platforms with. To make this option more enticing, you can write code that renders the screen differently depending on target device, so that you don't have to use a desktop application in a 240x320 screen framework.

It should also be mentioned (if Bob didn't already - I can't remember) that the support community is active and very informative. There aren't too many questions that don't get answered relatively quickly, and the support Alain provides for bug fixes and enhancements is second to none.

If you're new to Pocket PC development or looking for a chance, there's nothing to loose by giving PPL a try. Pick up the lite version and start coding today!

Thanks Eric:

You nicely filled in the blanks where I was deficient.

I have to agree that PPL is fantastic! However, I wanted to add one thing. As far as games are concerned, I still think that Game Editor is far superior to PPL (even if PPL is far superior in game production abilities compared to other PPC development environments). Now, I now that "real" programmers want to program every aspect of their game (something PPL allows), but I have yet to see a PPL game that even comes close to rudimentary games written in Game Editor.

So, if you want to be the master of your game creation, go with PPL. If your primary concern is creating a good looking game, I still say stick with Game Editor.

Having said that, I still haven't been able to purchase the pro version of PPL (which you need to truly explore its game making potential) and so take that for whatever it's worth.....

Hi Ben:

Can you suggest a few links to sites that have good games written with Game Editor? When I say good, I mean in regards to game play and fun factor. Graphics quality is based on the actual drawing or imaging tool used and PPL does not have a built in drawing program. This is where Photoshop or another hi-res rendering software comes into play. As far as no good PPL games yet, give it time since PPL only came out last September. Great commercial games take 12+ months to create. :-)

Bob,

Check out this link:

http://game-editor.com/games.html

It contains games made with GE, some of which are pretty good. Also, not every game made with GE is on this page.

In particular, I recommend:

A Bloody Mess
Death Match (PPCMag Award Nominee)
Last Defender
Globall (which was one of the first games I reviewed on my PPCMag blog)

I agree with you that it's a little too early for PPL to have produced any great games. I wasn't trying to suggest that it couldn't (it can). All I was trying to do was remind people that GE is out there and is also capable of making great games.

Thanks Ben:

I will take a closer look at the ones you have mentioned.

YES Game Edtor does have built-in Physics and path control but not as flexible from my perspective.

I don't think it has isometric display either although I know that some people have manually created it in GE.

As far as GE's interface is concerned, I find it to be fantastic once you've acquainted yourself with it. For what it's worth, I think there is a major interface overhaul in the works (there are pictures somewhere on the GE forums).

And yes, GE is only for games. Personally, I would use GE for games and PPL for apps.

Hi Ben:

Let me ask you this about GE.

How much control and flexibility does GE have when creating the non gaming aspects of the game?

Like:
1: Creating the intro screens.
2: Creating the HELP screens
3: Implimenting your own demo mode and registration encryption?

The last time I looked at GE these were lacking for me.

Bob,

If I understand your question correctly, GE provides plenty of control over the non-gaming aspects of the game.

As far as your first and second question go, these can be created virtually the same way as everything else in the game. And as far as your third question goes I know that you can set up a registration code if that's what you're asking (I don't know the particulars on how to do this though).

For a good example that will address most if not all of your concerns, take a look at "Last Defender" or a "Bloody Mess" (both available at the site I listed in a previous comment). Both of these titles require registration via a user-specific registration code, and both of them have intro screens.

Let me know if this isn't clear and I"ll try to explain better.

Hi Jon:

PPL is created using .NET
Direct Access to Windows API's are available and external DLL's can be accessed as long as the functions can be imported. You can also create your own DLL's through PPL.

In regards to the database, Eric Pankoke suggests SQLite which he describes here. http://www.arianesoft.ca/page.php?48

As far as S309 picture box or timer are concerned, PPL does not require them since more powerful functions are included. Same with NS Basic. A more powerful version comes standard now which are based on the original S309 versions.

I do not consider PPL to be easier than NS Basic to learn initially but has more built right in thus avoids the time consuming search for third party DLL's that may or may not work with NS Basic. Over time, PPL will become a comfortable language to use and has the power in the core which minimizes your coding efforts.

Hope this helps you.

Hi Jon:

It is important that I answer your questions in reverse order.

1: Technical support is very good via the online forums.

2: As far as the manual goes, only you can determine this in the end cause it depends on your level of comprehension as far as basic computer and programming terminologies goes. I feel it is sufficient to get anyone started
Newbie could mean:
- new to PPL style of programming
- new to programming in general
- new to computers and programming in general

3: PPL has been around for a good number of years already but the future holds no guarantees for anyone. To insure that they will be around for a long time means people like yourself on the fence must commit to PPL now and buy anyone of their offerings. This language is great for developing software titles for current Windows Mobile devices.

No one can predict the future but we can do our part to guide things along. . . :-)

Certainly, GPS and trapezoidal image manipulation is a breeze in PPL. The built in graphics support will minimize your coding and maximize your applications functionality.

Take a look at some example code here.
http://www.arianesoft.ca/page.php?27

In either program type you mention, the objects or sprites you create can be easily manipulated on top of the GPS map or background. Image manipulation is not solely for games and can apply to uniguely shaped or animated input controls too.

At the bottom of this page, you will see all the categories PPL is designed to work with.

http://www.arianesoft.ca/page.php?1

As far as compatibility goes, since the compatability is based on the final code created and not the actual JAVA code or runtime file, PPL is far more compatible. I cannot say 100% how compatible since I have never tried PPL on all devices in all the categories. PPL compiles the same code for the specific devices. JAVA is not 100% identical as far as code structure goes among all platforms since there are various versions of JAVA supported thus some JAVA may not translate over perfectly. This means the developer needs to take these differences into account while creating the application. As far as PPL goes, it's more of the physical issues you need to be aware of and not the code itself since there is only one PPL language that is used used and compiled for all the different platforms. Like a Pocket PC uses a touch screen and a Smartphone uses virtual buttons instead. So you cannot create a Pocket PC and a Smartphone version with the code being 100% identical. Screen sizes vary also. In the end, you can create titles for both.

Hope this answers your question.

I am not aware of any successful games written with PPL yet. I am working on resolving this though. :-)

PPL is slow to take off like a good Scotch or vintage wines. Takes a mature individual to recognize the languages potentials and put it to good use. From what I have learned thus far, it does take some time to learn cause it is not like any other langauge. PPL has loads of capabilities that are normally add-ons or not available in other languages. The developers are constantly working hard in ensuring that the compilers truly are transparent between platforms thus if it works on a Windows Mobile device then it will work on a desktop. There will always be issues with the different Windows Mobile devices with any language including PPL if you create a program which uses something in the hardware that is not standardized on all Windows Mobile devices like bluetooth devices. Not all Windows Mobile devices with BT support the same BT profiles.

As far as games goes, this can apply to the hardware buttons too. Not all Windows Mobile devices have hardware buttons that behave the same. At least if your game is all touch screen oriented, I cannot see anything going wrong with the game on one device if it works fine on another device in general though. Since some devices have accelerated graphics and some have faster processors, there will always be some performance differences between devices. If you write taking into account the slowest Windows Mobile device running a given Windows CE version then you should be OK.

In the end though, the only way to know for sure is to write one yourself. PPL does have a trial version you can download and try.

Hi Game Developer:

I would love to review and critique anything you create with PPL.

Keep in touch.

Syndicate content