Click the arrow to download the file PS3.2.zip (216 KB).
Extract the archive to any convenient place on a local drive. You'll end up with a directory named PS3.2 containing all the files you need.
Keep a backup of the PS3.2 directory. You'll need a fresh copy for every new Perlenspiel project.
Email suspected bugs, ideas and comments to bmoriarty [at] wpi [dot] edu.
- Version 3.2.18 (2017.09.06)
- A new event handler, PS.shutdown(), is called when the browser window running Perlenspiel is about to close. The devkit’s game.js file has been updated to incorporate it.
- All event handlers in the devkit’s game.js file are now commented out by default.
- The arguments to PS.gridSize() are now optional. Calling this function without any arguments returns the current dimensions of the grid without affecting the grid.
- Issues with Unicode handling in PS.glyph() have been fixed.
- The PS.swipe() event has been deprecated. Its functionality is still in place, but it will be removed in Perlenspiel 4.0.
- Version 3.2.17 (2017.04.21)
- A new function, PS.minimum(), lets you specify the minimum pixel size of a bead. This value was formerly fixed at 8 pixels.
- A few updates and improvements.
- Version 3.2.11 (2017.02.01)
- Version 3.2.10 (2017.01.25)
- The options argument of PS.init() now includes a .host.mobile property that is true if the engine is running on a mobile device.
- The PS.swipe() event has been restored to the documentation and devkit by popular demand. It will probably be removed in Perlenspiel 3.3.
- Still more updates and improvements.
- Version 3.2.9 (2017.01.24)
- Even more improvements.
- Version 3.2.8 (2017.01.22)
- Bug fixes, bulletproofing and other improvements.
- Version 3.2.7 (2017.01.12)
- You’re no longer required to include handlers for every standard engine event in your game code. Handlers your project doesn’t need can be commented out or simply removed. Nonetheless, a handler for PS.init() is strongly recommended.
- The PS.swipe() function has been deprecated, and is no longer included (or required) in your .js files. It will still work for the handful of older games that use it. It will be removed in Perlenspiel 3.3.
- The PS.date() function has been significantly revised and expanded. Several properties of the object it returns have been renamed. Some of the property names used in former versions have been deprecated, but remain available for backward compatibility. They will be removed in Perlenspiel 3.3.
- The "use strict" directive has been moved to the top of the game.js file in the devkit.
- Errors in the devkit comments have been fixed. Thanks to Nick Chaput for reporting these.
- Other bug fixes and improvements.
- Version 3.2.6 (2017.04.29)
- Version 3.2.5 (2017.02.02)
- Other bug fixes and improvements.
- Version 3.2.4 (2017.01.14)
- A new gestural event, PS.swipe(), is fired when the player presses the mouse button (or touches the screen), moves the cursor/finger across the grid and releases the mouse button/finger. Complete mouse/finger tracking data is provided, with detailed timing. All of the standard mouse/touch events continue to fire normally.
- PS.random() now employs a seeded pseudo-random number generator, which produces a repeatable sequence of values. The seed can be specified with a new utility function, PS.seed().
- The options parameter of all event calls now supplies an object containing a .time property that reports the moment the event occurred, expressed in ticks elapsed since engine startup.
- The cover.html file can now be modified to specify the background and status line colors.
- Copies of object properties are now hardcoded for better performance. Thanks to Mark Diehr for discovering this bottleneck.
- Version 3.2.3 (2017.12.09)
- A new utility function, PS.date(), returns an object indicating the current date and time.
- Another new function, PS.elasped(), returns the number of milliseconds elapsed since the engine was initialized.
- The system parameter of PS.init() now includes a .date property indicating the date and time that the Perlenspiel engine was initialized.
- A problem with the vertical positioning of the message line has been fixed.
- Version 3.2.2 (2017.12.08)
- All browsers and platforms should now be using the same font (Droid Sans) to render the status line and glyphs. Hopefully this will eliminate Unicode inconsistencies.
- The Devkit files cover.html and game.html, and all example files, have been updated to work better with Android browsers.
- The engine now uses Eric Meyer's Reset CSS v2.0 for faster loading.
- A mysterious bug in the Glyph Inspector example has been addressed.
- AQ Version 1.0.7 (2017.12.04)
- Audio appears to be working again in OSX Safari. Thanks to Mark Diehr for the clue.
- Version 3.2.1 (2017.12.02)
- Perlenspiel now works, more or less, with Internet Explorer 11. Earlier versions of IE may not be so fortunate.
- Version 3.2.0 (2017.12.02)
- The cover image and grid should now automatically scale down if necessary to fit smaller screens. NOTE: The scaling is calculated only once, at system startup. Resizing the browser window, or changing the orientation of a mobile device, does not (yet) rescale the grid dynamically.
- Android devices should now display a Perlenspiel icon.
- There will be issues! Report curious behaviors to Professor Moriarty for immediate investigation.
- Special thanks to my IMGD-2900 students and Mark Diehr for ideas, code and bug fixes.
The Fine Print
Perlenspiel is a scheme by Professor Moriarty (bmoriarty -at- wpi -dot- edu).
This web site and the Perlenspiel software are Copyright © 2009-17 Worcester Polytechnic Institute.
The Perlenspiel software is provided to you “as is,” and we make no express or implied warranties whatsoever with respect to its functionality, operability, or use, including, without limitation, any implied warranties of merchantability, fitness for a particular purpose, or infringement. We expressly disclaim any liability whatsoever for any direct, indirect, consequential, incidental or special damages, including, without limitation, lost revenues, lost profits, losses resulting from business interruption or loss of data, regardless of the form of action or legal theory under which the liability may be asserted, even if advised of the possibility or likelihood of such damages.
By downloading the software from this page, you agree to the specified terms.