Skip to content

Releases: morgan3d/quadplay

Beta update 24

25 Jan 16:26
Compare
Choose a tag to compare
Beta update 24 Pre-release
Pre-release

Added physicsEntityHasContacts() for optimized contact tests
Fixed physicsRemoveAll() crash
Increased physics broken contact forgiveness queue length to four frames to better maintain ground contact for sliding objects
Fixed sustained physics contacts for fast moving objects not updating position properly
Fixed "Game start" argument being passed to the start mode's enter event section
Added tools/export.py tool
Made tools/quaddepend.py able to launch directly as a script on MacOS and Linux
Renamed internal BetterJSON library to WorkJSON
Centered ninja sprites
Added detection for 8BitDo SN30, SF30, and Zero 2 controllers
Redesigned the internals of the virtual sprite and font hardware memory system

Beta update 22

17 Jan 04:56
Compare
Choose a tag to compare
Beta update 22 Pre-release
Pre-release

2020 Jan 14: Beta update 22

  • Implemented game frame rate throttling to 60 Hz on high refresh rate monitors
  • Fixed keyboard event handling when the game is not making framerate
  • Restored forum link in the IDE
  • Added .nojekyll and _config.yml files for proper hosting of quadplay system
    filenames that begin with underscores on github.io
  • Improved button prompt glyphs and vertical spacing in the nano-4, nano-5, scoreboard-6, scoreboard-7$
  • Fixed controls menu for games with y = up

Beta update 23

18 Jan 23:38
Compare
Choose a tag to compare
Beta update 23 Pre-release
Pre-release

2020 Jan 18: Beta update 23

Redesigned profiler output in the “Stats” IDE tab to show game logic, physics, and graphics time separately
Rewrote framerate scaling to maintain the best possible motion appearance independent of framerate
Optimized memory management for physics attachments by reference counting and weak pointers
No longer count quadplay OS resources against the game's limit
Corrected the emulator screen position to remain centered during resizing
Added more information on physical controllers
Improved manual document layout on mobile phones in portrait mode
Added ninja-pink-32x32.sprite.json
Added ninja-idle-64x64.sprite.json
Adjusted ninja colors

Beta update 21

13 Jan 05:07
Compare
Choose a tag to compare
Beta update 21 Pre-release
Pre-release

2020 Jan 13: Beta update 21

Added support for Switch Pro, JoyCon, PlayStation 3, Xbox360, and Stadia controllers
Replaced with ◅ ▻ with ◀ ▶ in fonts
Added ▼ to fonts (all four cardinal solid arrows are now represented)
Added a system pause and configuration menu bound to the ⓟ/Start button
Added a startup message for standalone games notifying players of the system menu button
Added the ⊖ symbol to all fonts
Removed the ⓟ gamepad button from game access space
Added an event section for popMode, which can be overloaded for the mode being returned from
Added quaddepend.py script for printing dependencies of a game file
Changed quadplay script default to rejecting external connections and made the argument to enable mobile support --host, replacing the previous --secure mode
Showed sprite pivots in the sprite viewer
Added entity.collisionSensor property
Added 64×44 controller spritesheet
Separated emulator settings out of the Tools menu into a new Console menu
Added scalepix✜ tool for upscaling sprites and fonts
Changed the pad[].prompt to be a mapping for use with replace() instead of raw constants and updated example programs to use it
Documented the HOTAS pad[].type
Added more error checking for xy() to catch common typos
Added eight new blip UI sound effects
Fixed resetGame() running the game at double speed
Fixed gameFrames and modeFrames starting at 60
Redesigned boot and startup animations
Restored examples/text program that was broken by the previous update
Added getBackground()

Beta update 20

12 Jan 15:32
Compare
Choose a tag to compare
Beta update 20 Pre-release
Pre-release

2020 Jan 3: Beta update 20

Renamed addEntityChild() to entityAddChild()
Renamed removeEntityChild() to entityRemoveChild()
Renamed updateEntityChildren() to entityUpdateChildren()
Renamed physicsStepEntity() to entitySimulate()
Renamed drawRect() to drawCornerRect()
Renamed drawSpriteRect() to drawSpriteCornerRect()
Made entitySimulate() use entity.drag and invoke entityUpdateChildren()
Added hardware physics support. See the Physics section for the API
Added physics debugging to the IDE
Added physics example
Added oscillate(x, lo, hi) and deprecated oscillate(x, m)
Added entityRemoveAll()
Allowed more flexible JSON syntax for data files
Added BetterJSON.js to credits
Added optional pos, scale, and angle arguments to drawTri()
Added drawRect() that is centered and takes an optional angle argument
Added drawPoly() for drawing convex polygons
Documented that drawTri() ignores winding order
Updated tools/pyxlscript-mode.el emacs syntax highlighting for new APIs
Fixed tools/pyxlscript-mode.el emacs syntax highlighting of color literals, negative numbers, and size properties
Optimized overlaps(region, point) test
Changed default entity name from "Anonymous" to "entity" + unique ID
fontpack✜ now allows dropping the source PNG anywhere on screen
2019 Dec 30: Beta update 19

Added the Inspiration section
Added support for per-name (i.e., per-animation) pivots on spritesheets
Added "setDebugFlag" and "getDebugFlag" commands for controlling the IDE via deviceControl()
Added preview images in the Built-In Games section of the manual
Added poly-decomp.js to dependencies
Made require, requires, default, otherwise, and swap into reserved words
Restored the instruction manual tab title to “manual✜" to make it easier to see in the same browser hosting the IDE
Fixed audio on Safari desktop browser
Removed entity.acc and entity.twist properties
New properties for physics: entity.friction, entity.stictionFactor, entity.restitution, entity.drag, entity.collisionCategoryMask, entity.collisionGroup, and entity.collisionHitMask
Added entityApplyForce() and entityApplyImpulse()
Added magnitudeSquared() function
2019 Dec 25: Beta update 18

Added Deploying Games section
Added Serpitron sample game
Removed extendPostEffects() and reverted definition of setPostEffects() to match beta 16
Added composeTransform()
Renamed addFrameSequence() to sequence()
Added entity.pivot and spritesheet pivots
Fixed Chrome and Safari blank region on the bottom of the IDE
Made deja-9 font glyph widths more consistent
Raised mid-glyph bar for capitals 1px on deja-8 font
2019 Dec 14: Beta update 17

Fixed getClip() off-by-one error
Changed intersectClip() to follow the argument conventions of setClip()
Fixed drawText() using the incorrect vertical clipping region
Added lastValue() and lastKey() for arrays and strings
Made floor() and ceil() variants that take a rounding precision
Added fastRemoveValue()
Fixed misalignment of - character and enlarged the + character in the broderick-7 font
Added delay() and addFrameSequence()
Added options for open-ended line segments in drawLine() to support drawing polylines and curves with transparency
Fixed setPostEffects() background color crashing the emulator
Made Modes slightly wider in the visualization graph to accomodate longer mode names
Fixed a bug in the parsing of because statements that contained parentheses
Added support for type "object" in game JSON constants
Added broderick-14 font
Made loop() work on vectors
Made noise() work on vectors
Added extendPostEffects() and getPostEffects()
Fixed setPostEffects() not resetting to defaults first
Added optional reverse argument to sort()
Increased analog stick dead zone to 40% to avoid accidental cross-axis input
2019 Dec 1: Beta update 16

Added support for "array" constant types in .game.json files
Added --secure option to the quadplay script to prevent other machines from connecting to the local webserver
drawText() markup is now implemented
textWidth() now supports markup
Added duration and period to spritesheet animation arrays
Upgraded the quadplay script to use a multithreaded server when Python 3.7 or later is available
Fixed a 1-pixel overdraw in drawSpriteRect()
Made pushFront() and push() return a pushed value
Overloaded atan(xy)
Added insert()
Fixed a parser error on for loops that have extra parentheses surrounding the test
Made documents appear at 80% scale when viewed in the IDE
Upgraded to Markdeep 1.07 for markdown processing
Changed the default markdown style sheet to have less vertical spacing and use a sans serif font
Fixed a bug in pushMode() when arguments are provided
Fixed handling newlines in JSON multiline strings across various OS conventions
2019 Nov 24: Beta update 15

JSON files may now contain multiline strings using backquote: ...
sprite.json files now support per-sprite animation frame timing
Updated the ninja sprites with animation durations and the examples/animation code demonstrating how to use it at runtime
Made the quadplay command line script shut down more gracefully on key press
Added per-sprite info viewer in the IDE
Added slow play button for debugging animations and interaction
Added the specification for markup on drawText() (but not the implementation)
Improved the shape and line spacing for the roman-8 font
Added replace() for strings
Added optional last, pair, and empty separators for join()
Added Text example
2019 Nov 17: Beta update 14

Added fool-9.font.json
Added makeRnd()
Added rndInt(lo, hi) and deprecated rndInt(n)
Added rnd(lo, hi) overload
Added optional rnd() function argument to rndBall(), rndSquare(), etc.
Renamed rndBall() ⟶ rndWithinSphere(), rndSquare() ⟶ rndWithinSquare(), rndDisk() ⟶ rndWithinCircle(), rndSphere() ⟶ rndOnSphere()
Added rndGaussian(), rndGaussian2D(), rndGaussian3D(), rndTruncatedGaussian(), rndTruncatedGaussian2D(), rndTruncatedGaussian3D(), rndOnCube(), rndWithinCube(), rndInt(lo, hi, rnd), rndSign(), rndOnSquare()`
2019 Oct 4: Beta update 13

Fixed RPG demo broken sprite paths
Fixed Boids demo broken sprite paths

Beta update 12

14 Sep 17:14
Compare
Choose a tag to compare
Beta update 12 Pre-release
Pre-release

Added optional region to Sprite JSON files
Increased video RAM by 1 MB, for a total of 10.5 MB
Increased error checking for Sprite JSON files to detect typos
Increased robustness to load-time errors
Added SIGN() intrinsic
Made sign() work on vectors
Caught CORS errors on sprite loading and reported to GUI
Internal objects now debugPrint() and unparse() as «type objname» instead of just objname
Fixed forceReload=1 breaking map loading
Implemented pivots for sprites and entities (currently not exposed in the API)

Beta update 11

30 Aug 18:44
Compare
Choose a tag to compare
Beta update 11 Pre-release
Pre-release
  • Added ordinal and ordinalabbrev to formatNumber()
  • Fixed implementation errors with Runtime naming clash on Firefox
  • Faster reload (no longer force reloading of quad:// assets when locally hosting)
  • Documented quadplay.html arguments
  • Restored getTransform() to the API
  • Fixed "oscillate" extrapolate mode crash for arrayValue()

Beta update 10

26 Aug 02:11
Compare
Choose a tag to compare
Beta update 10 Pre-release
Pre-release

Added support for docs in the game.json file using Markdeep, Markdown, HTML, and text format. Good for game design docs, TODO lists, and game manuals
Added support for Ctrl+G as an alternative GIF recording keystroke
Renamed signNonZero() to signNotZero() to match the manual
Added MIN() and MAX() intrinsics
Fixed opacity == 0 on drawSprite() to draw nothing instead of full opacity
Added rndBall() and rndSphere()
Changed sprite.json name for a single xy() to be a sprite instead of an animation

Beta update 9

18 Aug 01:54
Compare
Choose a tag to compare
Beta update 9 Pre-release
Pre-release

Added nanob-3.font.json (like nano-3, but with thinner L and I characters)
Patch for emulator view resizing for new dimensions on slower browsers
Added deviceControl() "getAnalogAxes" command - Renamed index.html to quadplay.html` for improved itch.io compatibility

Beta update 8

16 Aug 14:17
Compare
Choose a tag to compare
Beta update 8 Pre-release
Pre-release

Allowed for and with variable lists to be split across multiple lines
Added nano-3.font.json
Added space-planet.sprite.json, space-atmosphere.sprite.json, space-moon.sprite.json, and space-ring.sprite.json
Made the JSON parser report line numbers instead of character positions for errors
Added getClip() for returning the current clipping region
Added deviceControl() support for setting the prompt characters for controllers