Skip to content

Releases: morgan3d/quadplay

Beta update 68

06 Jun 19:28
Compare
Choose a tag to compare
  • New game, Rescue Roguelike
  • Added touch.hover
  • Fixed native app version of quadplay failing if MSEdge browser was already running
  • Added error message at the command line when the quadplay internal network port is already in use
  • Made the “Quit quadplay” menu option more robust on different platforms
  • Added support for the Brave browser on MacOS and Windows
  • Changed the button to play from (p) to (a) for the launcher to prevent confusion about the ESC key
  • Touch and mouse support for the system pause menu
  • Pause menu now saves and restores mouse lock and cursor
  • Added cursor and lock properties to device_control("get_mouse_state")
  • Improved parser error line reporting
  • Fixed documentation to consistently refer to nan in all lower-case
  • Fixed new game not having the correct screenshot tag
  • Fixed reversed(string)
  • Incompatible change: draw_text() now returns the full rectangular bounds instead of just the dimensions of the drawn text

Beta update 67

10 Mar 05:27
Compare
Choose a tag to compare

Incompatible changes:

  • Running quadplay at the command line, or on Windows double-clicking quadplay.vbs will now run quadplay in the style of a native app. It requires Python and Edge or Chrome/Chromium to be installed.
  • The previous behavior of quadplay --browser is now provided by running tools/quadplay-server.

Other changes:
unparse() now supports five levels of pretty printing instead of the single terse value
Create map dialog now supports cloning the spritesheet used for tiles
rgb() and rgba() now accept hex strings
New Tic Tac Toe example demonstrating gamepad, mouse/hover, and touch input for a grid
Improved documentation of local functions
F6 PNG screenshot and F8 GIF recording labels on the menu bar are now active as buttons
Made unparse(x, 0) remove spaces from arrays for better compression
Added spaces after : in unparse(x, level) for level greater than zero for better readability
Fixed device_control("get_mouse_state") for translated coordinates
Fixed constants without a range clamping to -Infinity in the IDE
Fixed sprite info not visible on left edge
Fixed “execute earlier/later” on scripts menu item making script URLs local
Fixed error about "$url is not defined” when editing a map's spritesheet JSON directly
Fixed touch and mouse input not resetting for the new frame immediately after a set_mode(), push_mode(), or pop_mode()
Fixed start_mode override enable for debug layer
Fixed mode diagram cutting off the bottom-most arc sometimes
Fixed loading a new game closing the IDE in nativeapp mode

Beta update 66

26 Feb 04:16
Compare
Choose a tag to compare

New Spritestack 2.5D car demo in the style of Grand Theft Auto
Made the “pixel shader” style Clouds example 15% faster using sprites as colors
The Debug UI mode with the large game screen now always shows the project list on large displays. It still auto-hides the list to conserve space on smaller displays.
Added a quit menu item to the Tools menu when not in kiosk mode (not supported on Firefox)
The IDE now looks like a native app instead of a browser app when run on a platform with Chrome or Edge installed. Use --browser on the quadplay command line script to force loading in a regular browser tab
On Windows, the quadplay.cmd script can now be run directly by double clicking, and will close the server automatically
make_entity() now creates default vel and force as xyz() if entity.pos is an xyz()
Removed vestigial acc (acceleration) and twist (angular acceleration) properties on entity, since they are subsumed by force and torque
All drawing routines can now accept sprites as colors to enable image palettes
Added a title screen to the Warlock 3D example
Added map-based spawning to the Warlock 3D example
Changed the Warlock 3D example to use the map 2.5D coordinate system
Web server now includes the script line number on security warnings to distinguish the source of identical warnings
Kiosk mode on macOS with Chrome or Edge installed looks more like a native app and is harder to users to escape
Fixed web server printing exception trace on security warnings
Fixed physics allowSleeping ⟶ allow_sleeping
Fixed draw_map() 3D perspective
Fixed not being able to save .debug.json files on Windows when quadplay is installed on a different drive than the home directory

Beta update 65

15 Feb 17:32
Compare
Choose a tag to compare

New easy map asset creation in the IDE
New Zoom 2D and Zoom 3D camera examples
The Create Asset dialog now provides license templates
Incompatible change: wrap_x and wrap_y for maps are now loop_x and loop_y for API consistency
format_number() can now accept a degrees or percent suffix
Code polish on the Animation and Z-Car examples
Improved the constant editor GUI layout
Removed zero time categories from the on-screen performance HUD
Made noise() about 40% faster
All draw calls now allow a separate pos.z or equivalent value for transform skew and camera zoom that is separate from the z value used for occlusion order. By default pos.z = z and z = pos.z if only one is specified, so the new behavior is backwards compatible.
entity_simulate() now supports 3D velocity and force
map_resize() now has more default parameters
Clarified the difference between a, aa, and a_released for all buttons in the manual
set_camera()...get_camera() will now preserve the type of camera.pos as xy() or xyz()
Documented the Z-Axis under Coordinate Systems
Fixed missing syntax highlighting for map helper functions
Fixed map_resize() for an increasing number of layers
Fixed Animation example referencing incorrect font
Fixed draw_sprite() for scale between 0.99999999999999 and 1.00000000000001
Fixed game-specific sprite properties not appearing on rotated_90 and rotated_270 versions
Fixed games without a developer or title crashing the IDE on load
Fixed draw_text() with y_align: "bottom" culling text incorrectly
Fixed format_number() adding negative signs after space padding
Fixed make_entity default size initialization
Fixed asset import dialog empty when corrupt json files are in the game folder

Beta update 64

06 Feb 13:43
Compare
Choose a tag to compare

Incompatible change: Changed entity.sprite_override_color ⟶ entity.override_color and entity.sprite_override_blend ⟶ entity.override_blend properties to match the draw_sprite() arguments better.
Clicking on “Constants” in the IDE now shows a pane of all constants at once for easy editing
Added optional sliders, rounding, and formatting for numeric constants in the IDE
Made the ESC key act as in-game pause when not in the IDE (hold to leave fullscreen)
The mobile controls icon now includes a fullscreen indicator when not in the IDE
Constant documentation in the IDE now uses comment syntax highlighting
Made boolean constants in the IDE better match the formatting of other constants
Made mobile device detection more conservative
Made the screen layout buttons easier to touch on mobile
Documented JSON metadata for number constants
Fixed reference constants using the object icon in the project view
Fixed constant editor layout of colors with very long variable names
Fixed round(x, 0) to produce no rounding rather than rounding to an integer
Fixed ⓟ and ⓠ buttons overlapping in portrait mode on thin phones
Fixed crash on blizzard levels in Serpitron game due to API change
Fixed blurry map preview
Fixed the constant editor not scrolling
Fixed incorrect rotated and scaled sprites in map preview

Beta update 63

31 Jan 05:32
Compare
Choose a tag to compare

Optimized loading time of itch.io exported games
Added shapes examples to the starter example code/initial project
Added optional low overhead on-screen profiling HUD
Removed launcher and template files from exported games to reduce file count
Games in Maximal mode outside of the IDE automatically switch to Emulator mode now on mobile to present touch controls
New loading message/animation when games launch
Running quadplay or launching the IDE with no arguments now loads the animation example instead of the quadplay game OS launcher
export.py now takes the game path as a positional argument (no -g any more)
Updated itch.io upload instructions
Fixed IDE interface flashing when kiosk or exported games
Fixed table constants now are marked as dependencies when exporting
Fixed tooltips on toggle menu items only showing above the checkbox
Fixed being able to start games before loading completes

Beta update 62

26 Jan 02:13
Compare
Choose a tag to compare

New “Piano” synth demo of using the audio pitch feature
Audio pause/resume and timestamps are now more accurate
Errors now print call stacks to the Output debug pane. (Safari cannot print line numbers or URLs in call stacks; all other browsers contain full data)
Added now property to the return value of get_audio_status() to aid in synchronizing visuals with audio
Added sound property to the return value of get_audio_status()
Updated the itch.io exporter documentation to the latest itch.io user interface
Reverted the itch.io exporter to using Maximal mode instead of kiosk mode so that players on mobile don't get stuck without controls
Renamed the default branch for the github quadplay repository to main
Added a popup warning on Safari that pitch changes are not supported
Changed exported games to use Maximal layout, which exposes the control buttons on mobile
Updated scalepix tool to the latest version of MMPX
Fixed illegal |= and &= C++ operators to now produce clear error messages suggesting PyxlScript versions and are auto-corrected in the IDE
Fixed Safari debugger pane layout
Fixed controls dialog in exported games
Fixed set_pitch() for non-octave pitch changes
Fixed stop_audio() setting the state to ENDED
Fixed pow() on two numbers actually computing ceil()
Fixed play_sound() argument rate to playback_rate to match state queries
Fixed fonts for standalone HTML tools
Fixed: conditional (if) expressions inside of object declarations no longer require parentheses

Beta update 61

16 Jan 22:48
Compare
Choose a tag to compare

Beta update 61

Made Windows 10 quadplay script robust to the Windows python.exe shim using py.exe
Changed manual syntax highlight colors to match the IDE
Increased usage of the quadplay font in the IDE
Persisted autoload checkbox on Open Game dialog between sessions
Added “Rename Mode” context menu
Made the quadplay command line script not print terminal 404 errors for missing files that are optional, such as .debug.json files
Protected internal state of audio clips
Required parentheses for todo()
Slightly reduced CPU usage for audio when paused
Halved audio memory consumption and audio bandwidth for online play by reducing internal audio mixing to 22 kHz
Optimized audio processing
Fixed parsing of hexadecimal or binary constants separated by a single character
Fixed resume_audio()
Fixed todo() in todo-as-error mode
Fixed in-IDE script renaming to remove the old version
Fixed GIF recording on Firefox
Fixed syntax highlighting in the manual for functions with digits in the name
Fixed the use of global color constants in draw_text() markup

Beta update 60

New “A Dark Drive” horror game example
New “Word Game” example inspired by Babba Is You
Changed the profiler and debugger update every frame when in Slow or Single-Step debugging modes
Improved the error message for missing separator comma in object literals
Added support for fractional borders for map_generate_maze()
Added transform_ws_z_to_cs_z()
Added transform_cs_z_to_ws_z()
Fixed transform_cs_to_ws() transposing the camera
Fixed error on draw_text() with trailing newline
Fixed bloom appearing over the full-screen Editor IDE mode
Fixed colored rectangles overlaying Full Screen and Ghost IDE modes in certain circumstances

Beta update 59

01 Jan 17:02
Compare
Choose a tag to compare

New kenney-1bit-14x14.sprite.json spritesheet asset
Added bloom to set_post_effects()
Added browser name and frame overhead to the performance summary
Improved resolution of the browser icon
Improved profiler results for 3D rendering with draw_map_span()
Improved frame rate scaling on low-end devices for 3D rendering
Removed pause and step controls from the IDE while connected as an online guest
Made locally-hosted IDE crossOriginIsolated, which should improve profiling and frame scaling on Firefox
Reduced the performance overhead of the profiler itself
Substantially improved performance on Raspberry Pi in Kiosk mode

Beta update 58

26 Dec 22:00
Compare
Choose a tag to compare

Incompatible change: removed implicit multiplication for back-to-back parentheses to make first-class functions easier to use: (a)(b) no longer performs multiplication.
Enabled online play over https and in kiosk mode
Added scroll repeat on the New Host dialog
Added support for the spread operator ... on objects as well as arrays
Added map_resize()
Added map_generate_maze()
Added game.json screenshot_tag field and debug override
Added palette_swap option to sprite.json files
Added support for custom pivots on single named sprites
Added “autoplay” option on the open game dialog to streamline looking at examples
Moved the change log into its own file to reduce manual length slightly
Extended the 5-argument lerp() documentation to make clear that it can rescale a range.
Made angle_to_xy() snap to integer values when within one trillionth of them
Fixed button prompts for guest online players
Fixed random_within_circle() and random_within_sphere() incorrectly projecting the point onto the surface
Fixed debug_watch() to update when single stepping
Fixed loading a full-spritesheet sprite with a pivot and no sprite_size in the JSON file
Fixed Folder path in the IDE not properly hyperlinking on Windows