quadplay

The quadplay✜ fantasy console

OTHER License

Stars
883
Committers
3

Bot releases are hidden (Show)

quadplay - Beta update 56

Published by morgan3d almost 4 years ago

New “gridmove” sample of PAC-MAN style movement and maps
Eliminated most lag in online multiplayer by working around various browser bugs
Added xy_to_angle() and angle_to_xy()
Added rgb(array), rgba(array), hsv(array), and hsva(array)
Improved error messages for xy() constructor
Added clipping region support for Warlock3D raycast.pyxl routines
15% speedup for Warlock3D demo through clipping, reduced floor quality, and micro-optimizations
Added map.size_pixels
Added variable quality option for draw_map_span()
Darkened and saturated the player 3 yellow and player 4 lime colors to better match the brightness P1 and P2
Fixed map.z_offset being ignored by get_map_sprite_by_ws_coord()
Fixed diagonal flipped sprites in TMX maps
Fixed new doc create not working
Fixed crash in physics example from contact.point1 being {} instead of nil

quadplay - Beta update 55

Published by morgan3d almost 4 years ago

Tuned Friendly Fishing to spawn only small fish at the start of the game to ease players in, and then guarantee larger fish later
Added credits and links sections to the game.json files
Added remote play infrastructure in the Online tab of the launcher and bundled PeerJS for connecting
Changed the quadplay script --host argument to --serve to disambiguate from remote play hosting
Added quadplay --offline to disable new online multiplayer features
When running outside of the IDE (with or without kiosk mode), quadplay will now sleep after two minutes of no activity to conserve power
Launcher now shows diagnostic system data
Added Kiosk Mode to the IDE Console menu to avoid requiring URL editing
Kiosk mode now allows access to the “my_quadplay” folder
quadplay --kiosk at the command line now launches in fullscreen mode directly on macOS and Windows when using Edge or Chromium. On other platforms it requires a click to enter fullscreen.
Disabled caching of quadplay internal OS code to ensure that platform upgrades do not require a hard reload from users
Added PeerJS to the distribution
Fixed slice() on strings to implement end index as specified
Fixed draw_text() markup with both {br} (or double newline) and format specifiers dropping content after the line break
Fixed Auto-Pause state not being stored between sessions
Fixed CSV loading for constants (was broken by debug.json layer in the previous release)

quadplay - Beta update 54

Published by morgan3d almost 4 years ago

New Friendly Fishing built-in game
add_frame_hook(), delay(), sequence(), and remove_frame_hook() are now safe to execute from within another hook
Controller order remapping now available from the in-game pause menu
.sound.json files can now specify a base pitch, pan, rate, and volume adjustment
Added lightning to shapes-32x32.sprite.json
Added local_time().absolute_milliseconds
Added trim_spaces()
unparse() now takes an optional terse argument to eliminate spaces after separators
save_local() now uses terse unparsing
Changed save_local() limitation to 4096 characters for 64 keys
Any player can now select the built-in game in the launcher
Fixed stopwatch/oldstopwatch negative time formatting in format_number()

quadplay - Beta update 53

Published by morgan3d almost 4 years ago

Added gamepad_array[i].color
Added splash-01.sound.json, splash-02.sound.json, splash-03.sound.json, splash-04.sound.json, splash-05.sound.json, splash-06.sound.json, splash-07.sound.json, splash-08.sound.json, splash-09.sound.json
Added attack-00.sound.json
Added loop-departure.sound.json
Added loop-winch.sound.json and loop-spin.sound.json
Added music-royal.sound.json and music-sonata.sound.json
play_sound() now takes optional rate and stopped arguments
set_pan() can now take an xy() for the pan position
Import Existing Asset dialog now supports keyword filtering
Improved sound preview in IDE with full pause, volume, and scrub controls

quadplay - Beta 52

Published by morgan3d about 4 years ago

New cursor-9x9.sprite.json spritesheet
New weaver-7.font.json font
Reference constants may now point to named sprites
Added IDE GUI editor for reference constants
Added device_control("set_mouse_cursor", name)
Added “Import existing script” dialog
Added “Import existing mode” dialog
Added “Import existing doc” dialog
Fixed false boolean constants not appearing in the GUI for the debug layer
Fixed mouse and touch movement deltas to work correctly on high framerate displays

quadplay - Beta 51

Published by morgan3d about 4 years ago

New Input example program
New Weaver-10 font
Added Russian Cyrillic character "в" to fonts
Improved credits scrolling speed and fonts
Improved pixel sharpness on Chrome Windows and macOS at certain pixel ratios. All browser and OS combinations are now pixel-perfect at all scales.

quadplay - Beta 50

Published by morgan3d about 4 years ago

Added sprite.base pointer
Added sorted() functional sort
Added a .gitignore to new projects by default
Fully implemented debug.json files and IDE support for Debug Override
Fixed z_dir not being properly set or read by the argument object versions of set_transform() and get_transform()
Fixed system pause menu at 64×64 not restoring clip and transform

quadplay - Beta 49

Published by morgan3d about 4 years ago

New Kart example of a perspective ground plane
New Warlock 3D example of a first person viewpoint
New Blasphemer tile set
New Freedoom tile set
New Minecraft Pixel Perfection tile set
New footsteps sound loops
Added ray_intersect_map() collision detection routine
Added curved_arrow and corner_arrow to shapes-32x32.sprite.json
Added subpixel precision support for mouse.dxy on device_control("get_mouse_state")
Added device_control("set_mouse_lock")
Added .data.json files for large assets in arbitrary formats
Added set_playback_rate() for audio
Added draw_map_span()
Added IDE context menu option to remove a mode from the game
Added IDE context menu option to remove a document from the game
Allowed leading underscores on variable and member names
Improved frame rate scaling for low end processors
Tuned built-in Controls pixel layout for every resolution
Fixed mouse.dy on device_control("get_mouse_state") returning incorrect values
Fixed swapped sprite.rotated_90 and sprite.rotated_270
Fixed missing transparency for sprite.rotated_90 and sprite.rotated_270
Fixed missing edge on outlined polygons, triangles, and rotated rectangles
Fixed physical controller overriding keyboard D-pad if activated
Fixed polygons, triangles, and rectangles rotating the wrong way under camera transforms when the Y-axis is up
Fixed get_map_pixel_color() on tiling maps
Incompatible change: ray.origin ⟶ ray.pos, ray.direction ⟶ ray.dir

quadplay - Beta update 48

Published by morgan3d about 4 years ago

New game, Doubles de Pon
Added sprite.rotated_90, sprite.rotated_180, and sprite.rotated_270
Added robot to shapes-32x32x.sprite.json
Added correct sprite size to beast-soldier-32x32.sprite.json
Added invert_sprite_y optional argument to get_map_pixel_color()
TMX maps now support rotation as well as flips
Disk, circle, text, and rectangle centering are now all aligned for subpixel offsets
IDE now shows the current filename at the top of the code editor
Context menu now keeps IDE rollout project view visible in debug layout
Optimized the performance of rgba() colors for draw_point() about 20%
Fixed draw_text() not returning a value in skipped frames
Fixed noise() for the 3D case
Fixed HSV color preview
get_map_pixel_color() now accepts an output value to avoid memory allocation
Fixed wrapping draw_map() under simultaneous transform scale and camera rotation transformations

Incompatible changes:

  • get_map_pixel_color() now accepts a range of layers and composites all values read across them

Known bugs:

  • HSV color preview not 100% accurate
  • get_map_pixel_color() uses wrong coordinates outside of primary bounds for wrapping maps
  • draw_map() not visible outside of central 3×3 repetitions for wrapping maps
quadplay - Beta update 47

Published by morgan3d about 4 years ago

New built-in game “Beyond Control”
New example “Planet Generator” for 2.5D procedural content
New example “Clouds” of per-pixel graphics
New example “Entity” of different entity features
New scoreboard-5 font
New splash-00 sound
New sparks-00 through sparks-04 sounds
New explode-10 sound
New powerup-11 sound
New shoot-11 sound
New shoot-12 sound
New loop-prometheus sound
New loop-forest sound
New loop-escalator sound
New loop-beat sound
New loop-wind sound
New beast-soldier-32x32 spritesheet
New shapes-32x32 spritesheet
New dots, stripes, wood, and carbon console vinyl wraps
Added gamepad.prompt["##"] for a replacement string for the player number
Added .debug.game layer (see the Debug JSON section)
debug_watch() now allows multiple identical expressions at different locations
debug_watch() and debug_print() output are now hyperlinks to the source location that produced them
Added 320×180 support for targeting Switch, PiBoy, 720p, 1080p, and 1440p
Added support for TileKit
Added optional stick index argument to device_control("get_analog_axes", ...)
Added font.spacing and font.glyph_size
Packed suchet-12 font characters more tightly to conserve memory
Optimized rendering of successive rectangles using the same z value
Optimized the 2D noise() function variant (now runs in 3/4 the time)
Incompatible changes:
Made the order of arguments for draw_tri() consistent with other drawing functions
local_time().daySecond ⟶ local_time().day_second
xz_to_xyz() now swizzles z → y
Games must now opt in with a game.json dual_dpad setting for the P1 right stick to override the P2 D-pad for dual digital stick input in single-player games
The entity.pivot now affects rendering as well as collision detection, overriding the sprite's pivot (it defaults to the sprite's pivot)
The start mode is now specified with start_mode in the game JSON file instead of an asterisk
sequence() now accepts bare numbers indicating frames to skip
sequence() now supports an end_callback
Made the default radius for random_truncated_gaussian() 2.5 standard deviations
Changed the region of a sprite JSON file to take "corner" instead of "pos" (the old version is accepted as a synonym for backwards compatibility at the moment)
The sprite viewer in the IDE now autoscales for tall sprites
stop_audio() now allows the argument to be nil
Added SOURCE_LOCATION zero-argument operator
set_random_seed() now defaults to a random seed based on the time
random_value(), shuffle(), and shuffled() now take an optional random number generator argument
IDE can now create new sound assets
IDE can now change the order of execution of scripts
IDE can now remove scripts (removed scripts are not deleted on disk)
IDE can now rename scripts
IDE project window now rolls out on hover in debug mode
gamepad_array[] elements now print as their name instead of properties
Increased the contrast of the text in ghost mode
Reordered quick links on the top of the manual
Rewrote the Project File section of the manual to clarify the asset vs. constant distinction
Increased the contrast on the sprite editor info data
The Import Asset dialog will now automatically default to a useful variable name
The Import Asset dialog can now import raw PNG, TMX, and MP3 files
Sprite JSON files now default to assuming a single sprite that is the size of the spritesheet if none is specified
Fonts now only count as 1/2 pixels towards the sprite pixel limit because they are compressed
Internally renamed variables and files for easier refactoring and future PyxlScript features
The fullscreen layout button now returns to full screen if tapped when already selected
IDE code editor now highlights compile-time error lines in red
Editor divider pane layout now persists over reload
Added Dualshock4 controller to the officially tested list
Added support for the 8bitdo M30 SEGA Genesis style controller
Added support for the Raphnet adapter and SEGA Genesis and Mega Drive retro bit controllers
Added device_control() "load" and "save" commands for JSON files
Added touch.screen_x, touch.screen_y, touch.screen_xy, touch.screen_dx, touch.screen_dy, and touch.screen_dxy accessors for screen-space (instead of camera-space) positions
Added rgba(rgb, a), rgba(hsv, a), xyz(xy, z), xyz(xz, y), hsva(hsv, a), hsva(rgb, a)
Added transform_ws_to_ss() and transform_ss_to_ws()
Added {br} line break markup
Added ABS() intrinsic
Added sprite.animation property
Added Sega Genesis and Mega Drive controller support
Added ⑤ ⑥ ⓩ characters to font mapping and all fonts
Added design document template for New Doc menu
Added named argument version of draw_corner_rect()
Added table constants that use external CSV files
Added "multiply" blend mode for draw_sprite(), useful for colored lighting
Added support for transposed spritesheets in the IDE sprite viewer
Added support for regions in the IDE sprite viewer
Added a global volume control on the Console menu
Added buttons to copy stats summaries from the Stats pane
Added X_Arcade controller icon and mapping for the X-Arcade USB controller
Added PiBoy controller icon and mapping for the PiBoy DMG
Added device_control("console.dir", ...) for web browser console access
Fixed new game filename shortener to keep the beginning instead of the end of names
Fixed iterator container-mutation check when changing modes
Fixed draw_sprite() API links in the manual
Fixed touch.xy coordinates under translation transformations
Fixed recursive push_mode() and pop_mode() not preserving draw_previous_mode() state
Fixed export.py script to set read file permissions on the contents of the zipfile
Fixed constant editor vector vertical nudge value to default sign based on y_up setting
Fixed analog axis snapping when near 8-direction points
Fixed sprite editor not updating after JSON edits
Fixed gutters on sprites
Fixed initial entity.size to be based on scale for rectangular shaped entities that have initial sprites
Fixed broken images in Markdeep design documents after edits
Fixed incorrect image scaling when embedded in itch.io at 1080p
Fixed a bug that prevented debug_watch() on values containing string literals
Fixed IDE edits to asset JSON files not persisting after load
Fixed incorrect line numbers when using default expressions
Fixed 3-space indenting in .game.json files
Fixed internal assertion failure for make_spline() with negative time values
clone() and deep_clone() on constants now clones the value and makes it mutable, while on assets (other than maps) and built-in objects returns the original object.

quadplay - Beta update 46

Published by morgan3d over 4 years ago

New font: hauer-12
New font: robot-18
IDE code editor now highlights error lines in red
Color constant editor preview now shows the exact 16-bit color
Color constant editor preview now visualizes alpha channel
Made local: and preserving_transform: lines free versus total source statement limit
Added gamepad_array[] reordering dialog to support arcade configurations. Access this from the Controls tab of the debugger.
Added a breakdown of code size by file in the Stats window of the debugger.
Added a breakdown of sprite pixels by file in the Stats window of the debugger.
Fixed macOS quadplay script when quadplay and the home directory are on different volumes.
Fixed the bottom line not appearing on the editor on some browsers
Fixed binding on the animation example ninja duck key
Fixed text_width() being too small by one space between letters
Fixed a physics system crash on rare contact breaking situation
Fixed an API upgrade bug on object removal in Serpitron during showdowns
Fixed the mode graph clipping on the bottom
Made the mode graph scrollable

quadplay - Beta update 45

Published by morgan3d over 4 years ago

Made function definition lines, todo(), and assert() free versus the total source statement limit
Optimized debug_print() to make it practical to print large amounts of data
The confirm argument to set_pause_menu() can now be a string that specifies additional message text
Made assets print in debug_print() and debug_watch() as their variable name
Assets with the same source URL are now guaranteed to produce live objects that are == to each other, except for maps, which are guaranteed to be != because they are mutable
Made clone() and deep_clone() work properly on assets and constants
The pan argument to play_sound() can now be an xy() value for positional sound
Updated X-Arcade instructions to reflect the latest 9.14 firmware
Changed physical modern console controller mapping so that triggers are aliases for shoulders (previously P1's triggers were P2's A and B buttons)
Added map.spritesheet convenience helper
Added support for arbitrary properties on sprites in the sprite.json
Added kenney-cartography-64x64.sprite.json
Added sprite.orientation_id to distinguish unique orientations
Added any_button_release()
Added explode-12.sound.json
Added spawn_particles_from_map_ws_coord() to scripts/particle.pyxl
Optimized in-IDE game start time
The export.py script now ignores temporary and backup files
The export.py script now makes all output files world readable
Fixed a slight blue bias in alpha blending
Fixed alpha blending on sprites that are transposed at load
Fixed map coordinate documentation to match the practice, which is that map coordinates are at tile corners if there is no offset on the map.
Fixed too-aggressive caching of map loading from IDE
Fixed draw_map() case using named arguments for replacement_array
Fixed transform_map_space_to_ws() and transform_ws_to_map_space() to map integer map coordinates to the centers of map tiles, as specified in the manual
Fixed constant references to assets
Fixed RPG demo crash
Fixed vehicle demo button prompts

quadplay - Beta update 44

Published by morgan3d over 4 years ago

Incompatible change: draw_text() multiline y_align = "center" and y_align = "bottom" now adjust to the entire text block and not the first line
Incompatible change: Renamed ##-Coin.sound.json to coin-##.sound.json, ##-Shoot.sound.json to shoot-##.sound.json, ##-Jump.sound.json to jump-##.sound.json, ##-Explode.sound.json to explode-##.sound.json, ##-Powerup.sound.json to powerup-##.sound.json, ##-Hit.sound.json to hit-##.sound.json, ##-Wild.sound.json to wild-##.sound.json
New font: suchet-12
Support for custom properties on TMX maps
Auto-generated TODO lists in the IDE from todo() statements in code
Errors will now open the appropriate file and line in the IDE
Changed document editor layout to show 50% preview and 50% source editor
Load a new script faster after creation
Active debugger tab persists over reloading
System pause menu now pauses game sound effects
Syntax highlighting in the IDE for parse() and random_within_cube()
Added Shift+F6 hotkey for label generation
Added a context menu for modes in the project view of the IDE
Added sequence.BREAK and sequence.NEXT options
Added five-argument version of lerp()
Added LERP() intrinsic
Added starts_with() and ends_with() functions for strings
Added “go to line” command (Ctrl-G/⌘-G) for the IDE
Added engine-00.sound.json and engine-01.sound.json
Fixed Windows paths in URLs
Fixed Add Existing Asset... on Windows
Fixed rectangle alpha blending
Fixed random_within_sphere() crashing
Fixed asset json editor changes being overwritten by caches
Fixed alpha channel of screenshots
Fixed emulator alignment on Safari
Fixed constant parsing for pi in game.json files
Fixed map preview rendering (was broken by the previous update)
Fixed scalepix tool (was broken by the previous update)
Fixed new game-level constants reverting to zero on Chrome
Fixed project asset/constant scrolling to allow full variable names to be seen
Fixed automath sometimes leaving the cursor off by one character

quadplay - Beta update 43

Published by morgan3d over 4 years ago

Incompatible change: it is now illegal to mutate the container being iterated over by a for...in loop. Use for x in clone(container): as a workaround if you need mutation, which is still relatively fast.
Incompatible change: + - / * += -= /= = operators are now illegal to use on arrays (they are still overloaded for objects)
Incompatible change: for loops now evaluate the upper bound only once, before the loop body begins
Incompatible change: renamed Blip
.sound.json to blip*.sound.json
Temporary Network Multiplayer workaround solution (to be replaced with a more straightforward method at release)
Changed screenshot filename format to international date format to sort correctly
Added IDE option to restart a paused game automatically when focus switching back to the browser from an external editor or other tab
Optimized nonrotated opaque sprite drawing by up to 2x and halved memory usage by reducing GPU implementation to true 16 bit
Optimized Safari sprite drawing using forced integer coordinates for up to 4x performance increases in specific cases
Optimized rotated and scaled opaque sprite drawing by 10% by handling this case separate from tinting, alpha test, and opacity
Optimized thick line rendering by reducing virtual CPU Logic overhead
Optimized default for and for...in loops under the new semantics
Scripts loaded from quad://scripts/ no longer count against the total program size
The game.json file is now directly editable in the IDE
Errors now report the filename with the URL truncated if it matches the game URL
The game.json structure for docs stores only raw URLs now, not metadata
Made the project pane wider to make it easier to see long variable names
Disabled browser navigation hotkeys to prevent accidentally leaving the IDE
Disabled Chrome browser two-finger back gesture to prevent accidentally leaving games or the IDE
Added syntax highlighting to inline code in the manual
Added IDE_USER constant
Added iterate() function
Added lerp_angle()
Added perceptual_lerp_color()
Added examples/perceptual_color
Added explode-11.sound.json
Added xy, dx, dy, and dxy values to device_control("get_mouse_state")
Added syntax highlighting for touch in the IDE
Added syntax highlighting for the type-testing functions is_array(), is_object(), etc. in the IDE
for loops now test for illegal containers
Added mouse support to the fluid simulation demo
Added more error checking to entity functions
Added todo() debugging statement
Added "reference" constant type
Added scripts/particle.pyxl reusable script
Added sounds/shoot-10.sound.json
Tooltips in the project listing of the IDE now show the full names of variables and scripts as well as URLs and descriptions
Improved error checking for find_path()
Made the Debug mode use a 1.5x scale emulator on displays of 1600 pixels wide or less (factoring in pixel doubling for retina displays) and 2.0x scaling at higher resolutions
Linked the game folder display in the IDE to opening the folder on disk
Fixed missing clamping of RGB colors outside the 0-1 range during rendering
Fixed HSV to and from RGB conversion
Fixed line number errors for programs with long lines
Fixed the bottom rows of the code editor being cropped
Fixed automath operating on non-pyxl files
Renamed get_map_sprite_by_draw_coord() ⟶ get_map_sprite_by_ws_coord()
Renamed get_map_pixel_color_by_draw_coord() ⟶ get_map_pixel_color_by_ws_coord()

quadplay - Beta update 42

Published by morgan3d over 4 years ago

Incompatible change: Removed subscripts as array indices. They are still valid characters for strings.
Incompatible change: renamed “sound” ⟶ “audio” and “audio clip” ⟶ “sound” in the API
Made Delta autocorrect to Δ without requiring a following space in the IDE
Made rename and add asset/constant update faster
Search and Replace in the editor now triggers autosave
IDE open dialog now includes game descriptions and icons
P1's right stick and triggers no longer provide input to P2 unless P2 does not have a physical controller
New sound loop-chilltech.sound.json
New sound music-vice.sound.json
RPS game now times out after about 15 seconds when a player hasn't chosen
Serpitron game now has shorter showdown levels in 2-player games
Moved the code editor below the map/sprite/font view in the IDE
Added Vaporwave 3D example program
Added “New Asset...” dialog in the IDE for creating new sprites
Added source_url field for sprites to support export processesqu
Added autocorrect support for additional capital Greek letters ΓΔΘΛΞΠΣΦΨΩ
Added transform_es_to_es()
Added right-click menu for music assets
Added new Twin Analog stick example for dual stick shooters
Added Arcade (quadplay native), Arcade_X (Xbox labels), and Arcade_PS (PlayStation labels) controller options
Added X-Arcade controller information to the manual
Added buttons (as well as D-pad) choices for RPS game to better conceal player movements on an arcade controller
Renamed map transformation functions to transform_ws_to_map_space(), transform_map_space_to_ws(), transform_ws_z_to_map_layer(), and transform_map_layer_to_ws_z()
Changed default tab/indentation size to four spaces to reduce conflicts with Python editors
The quantize tool now allows toggling the “dither” option after dropping the image
Made quantize tool display using nearest neighbor interpolation
Improved Safari performance by warming the sprite blitter JIT during the quadplay logo screen
Improved Safari performance for Beat the Gobblins by eliminating large alpha-masked sprites
Improved Safari performance by removing explicit nearest-neighbor upscaling and using CSS zoom
Improved Safari load time on dual-core processors by spreading out asynchronous requests in time
Improved lerp() and clamp() performance
Fixed compilation of fractional degrees and percentages
Fixed map occlusion culling (was showing empty tiles)
Fixed loading quad:// games from the command line
Fixed blurring on Safari by using CSS zoom instead of CSS scale on that platform and adjusting layout to compensate
Fixed Safari mouse and touch event scaling
Fixed Debug UI layout not allowing full horizontal scrolling of the editor
Fixed button prompt alignment in Broderick-7 font

quadplay - Beta update 41

Published by morgan3d over 4 years ago

Added named argument versions of all drawing routines
The new game's title now appears in the game and JSON when creating a new game in the IDE
IDE now automatically reloads externally changed files from disk when it regains focus
Faster saves on constant changes in the IDE
Added “Show in Finder/Explorer” for assets in the IDE
Added “Open with...” support for Photoshop, Krita, Aseprite, GIMP, Audacity, and Tiled in the IDE
Avoided IDE touching unchanged source files on disk to improve external editor interop
Added top runner sprites to complete the Action Spy set
Added support in the quadplay script for Windows systems with multiple drives
Added 'y' and 'z' superscript characters to fonts and the compiler (there are no subscripts for these because they do not appear in Unicode)
Documented backdoor mouse support via device_control()
Changed the mouse cursor to a crosshair over the emulator screen
Fixed relative paths when creating a new game from the IDE
Fixed animation.frames, which was completely broken in the previous release
Supported hierarchical directory structure under ~/my_games/
Implemented “automath” autocorrect-style typing of Unicode symbols in the text editor
Assets now appear in consistent alphabetical order in the project view of the IDE
New “Z-Car” wireframe 3D example

quadplay - Beta update 40

Published by morgan3d over 4 years ago

Added set_camera() and get_camera() and global camera support to all drawing functions for camera rotation, translation, and zoom
Added occlusion culling optimizations to draw_map() for eliminating completely covered tiles
New sportscar sprites
New attack helicopter (“chopper”) sprites
New tank sprites
New road tile sprites
New suchet-9 font
Removed browser context menu from most UI surfaces (it is still present on links and text boxes)
Constants can now be deleted from a project
Assets can now be renamed in a project
Added pos, angle, and scale arguments to draw_map()
Implemented z clipping for draw_map()
Added examples/vehicles sample
Renamed “draw” space to “world” space and introduced “camera” space
Removed screen-space touch events
Changed all device_control() arguments to snake case
map.json z_scale is now permitted to be 0
Increased the built-in epsilon value by 10x and decreased the sprite draw call order-preserving offset by 1000x to ensure that epsilons can override sprite draw call order
Made Ctrl/Cmd-S do nothing, to avoid accidentally saving the browser page when using the IDE (since the game autosaves)
Fixed map preview rendering of flipped sprites
Fixed set_clip() with pos = nil
Added autocorrect for math symbols option to the Tools menu

quadplay - Beta 39

Published by morgan3d over 4 years ago

Added ⓔ and ⓕ buttons, which are mapped to shoulder buttons on physical controllers
Added a new playable game, “Across the Lake”
New games can now be created from the browser based IDE using “New Game...”
Games can now be loaded from the browser based IDE using “Open Game...”
Changed lifetime and duration arguments to various APIs to frames in for consistency with the sprite and other settings, and the name “frame hook”
Fixed Ctrl/Command+C not copying in the IDE
Added an Animation section for sprites
Added animation.frame() for accessing animations by game frames instead of sprite index
Added button prompts to all fonts
Incompatible change: Renamed "flip_y" to "y_up" in .map.json and .game.json files
Fixed editor making relative URLs inside .sprite.json and other asset files absolute
The IDE now uses $HOME/my_quadplay as the root for new games
any_button_press() now responds to any touch as well
Increased the QR code size in the host tab to make it easier to scan
Changed the way that the width of the white space character is computed for fonts. It now uses the largest width of the "il¹;[" characters
2x performance optimization for alpha blending large sprites with no rotation or scale
Added get_sound_status() function
The IDE now puts badges on constants that are uneditable because the .game.json file is on a remote server or built-in
quadplay script no longer prints all internal messages
Changed default startup mode to Emulator for non-IDE mobile, Maximal for non-IDE desktop, and IDE for IDE present

quadplay - Beta 38

Published by morgan3d over 4 years ago

Kiosk mode now completely fills the screen, removing all quadplay UI
Pressing play or reload now saves all documents immediately
Prevented frame rate changes during the first 1000 ms of a new mode to allow the JIT to catch up
Ghost mode for livestreaming the development environment
Pressing Play now restores keyboard focus to the game
Added touch example program
Added arrows for nudging vector constants in the IDE
Added sliders for color constants in the IDE
Fixed syntax highlighting for with, entity_add_child, and entity_remove_child
Improved frame rate scaling to avoid dropping to 30 Hz during transient browser hitches
Changed the player 1 keyboard mapping to B,H,V,G for the main buttons to make room for new virtual “shoulder” buttons
Changed mapping of game reload to Ctrl+R on Safari to prevent browser reload of the page, and clarified all hotkeys with improved tooltips.
Added PS5 controller mappings and graphics
Optimized sequential rendering of multiple sprites with the same z value and clipping region
Argument object version of draw_map()
draw_map() now accepts optional pos, scale, and angle arguments
Recorded GIFs now download in the same way as recorded PNGs
Added generalized transform_to() and transform_from() routines for points
Added support for Xbox Series X controller
Added a second row of 4x wide glyphs to the font format
Redrew all fonts with new glyphs for ⓔ, ⦸, ⓝ, ⓗ, alt, left shift, right shift, and tab

quadplay - Beta 37

Published by morgan3d over 4 years ago

New wide-screen “Debug” UI layout option with 2x scale emulator
Undo and redo hot keys and buttons in the code editor
Changed case color names
Added new orange and white case color options
Tuned gold case color
Improved case layout for small sizes
Can now edit string, number, xy(), xz(), xyz(), hsv(), hsva(), rgb(), rgba(), and boolean constant values in the IDE while the game is running
Added unique icons for different constant types in the IDE
Dialog for creating new constant values
Made replace(string, object) operate on all values simultaneously
Fixed IDE syntax higlighting for boolean operators
draw_line() now accepts a width argument
New wright-8 font
New deja-7 font
New deja-6 font
New deja-5 font
New deja-4 font
New deja-3 font
“Sproing” and “Camera Zoom” examples
Constants now have an description documentation field that appears in the IDE and as tooltips
Updated markdown and Markdeep processing to version 1.10