Skip to content

About

Open source desktop studio for making PS5 homebrew games and apps with AnyDevKit, on macOS, Windows and Linux

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

AnyDevKit Studio

An open source desktop studio for making PS5 homebrew games and apps with AnyDevKit, on macOS, Windows and Linux.

AnyDevKit is a command line SDK. It compiles C++ and GLSL and packages the result for PS5. Studio puts a visual workspace on top of it, so people can open a project, build it and eventually create a whole game without living in a terminal.

The Village scene of a game called Greenhollow on the stage in Studio

Lay out a scene on the stage, snap blocks together for its rules, and build the project with one button for PS5, Windows or Linux.

Logic blocks Game page and export formats
The blocks of Greenhollow's Title scene, with the variables and sounds lists on the left The Game page with Greenhollow's icon and background, and Windows chosen as the export format

These pictures are Studio's own window with a larger project open, drawn offscreen with software rendering, so small details can differ from the window on your screen. They are not pictures of the game running.

Status: alpha. Download Studio for macOS, Windows or Linux from the latest release, or build it from source. The full flow has been tested on Apple Silicon macOS, and CI also builds Studio on Windows and Linux. A scene of shapes and text runs in the AnyPS5 compatibility layer on macOS. Nothing has been run on a real PS5 yet.

What it does

Stage Goal State
Project workspace Start a 2D game, an app or a code-only project, or open an adk init project Working
One button build Configure, compile and create a PS5 package with a live log Working
Windows and Linux builds The same game as a Windows .zip or a Linux .tar.gz, on AnyPS5's desktop libraries Builds from a Mac; not yet run on Windows or Linux by us
Your code editor Open code in VS Code, Visual Studio, Cursor, Xcode, CLion, Sublime Text, Zed or Qt Creator Working
Game page Set the name, icon and home screen background Working
Drag and drop scene Place shapes, text and images on a 16:9 stage, resize, reorder and duplicate in a layers list, hide while editing, undo, autosave Working
Logic blocks Snap together events and actions without writing code Working in Studio, builds for PS5
Particles Fireworks, fountains, sparks, snow and rain Working in Studio, builds for PS5
Sprites Sprite sheets with named animations, sharp pixel scaling and flip Working in Studio, builds for PS5, not yet seen running
Tilemaps Tile layers painted on the stage from a tileset palette, with a solid flag per tile Working in Studio, builds for PS5, not yet seen running
World and camera A world larger than the screen, pan and zoom on the stage, camera blocks and screen-fixed items Working in Studio, builds for PS5, not yet seen running
Platformer physics Static solids and moving bodies, platformer controls with coyote time, jump buffering and variable jump height, physics blocks Tested on the host under sanitizers, builds for PS5, not yet played on a console or emulator
Scenes Add, rename, duplicate and delete scenes, pick the starting scene, Go to scene and Restart blocks Working in Studio, builds for PS5, not yet seen running
Playing online Friends on the same network join one game, each on their own console with their own screen, camera, menus and place in the world. Three blocks: let friends join, join a friend, stop Two games played together by a scripted test over this computer's network, under sanitizers; builds for PS5, Windows and Linux; not yet run in AnyPS5 or on a console
Bigger games Formulas, up to four players, templates and copies with their own variables, wander and pack behaviors, sprite looks, pause Played through by a scripted test on the real runtime under sanitizers; not yet seen on a console
Game runtime Draws the scene on AGC, the PS5 graphics API, with controller movement Shapes and text run in AnyPS5, not yet on a console
Image drawing Textured images in the game Runs in AnyPS5 with a pending engine change (the StarHopper background), not yet on a console
Sound Import WAV (MP3 and OGG too when Studio is built with Qt Multimedia), then play effects and music from blocks Builds for PS5, not yet heard on a console
Saving Save and load variables on the console Builds for PS5, not yet run on a console
Guided setup Check your tools, then download AnyDevKit and the PS5 libraries from inside Studio Working, run against the published release on Apple Silicon macOS
Preview Run the project on the developer's computer without a console Planned

Build from source

You need CMake 3.22 or newer, a C++20 compiler and Qt 6.8 or newer with Qt Declarative.

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

On macOS with Homebrew: brew install cmake ninja qtbase qtdeclarative qtsvg. Add qtmultimedia to also import MP3 and OGG; Studio builds without it and imports WAV only.

Studio also needs what AnyDevKit needs to build a project: the AnyDevKit SDK, its dependencies from adk setup, Ninja, LLD and Clang 18+ or GCC 14+. Choose New game on the welcome screen, or create a project with adk init and open its folder in Studio.

Apple Silicon

AnyDevKit does not publish macOS builds yet. Building it on a Mac currently needs the fixes in AnyDevKit #2 and #3. Use Homebrew LLVM (brew install llvm lld) because Apple Clang is rejected by the C++ runtime's compiler check. Studio finds Homebrew's LLVM on its own.

How it is built

  • C++20 shares code with the engine runtime and fits the AnyDevKit toolchain.
  • Qt 6 and QML give one GPU drawn interface that uses Metal on macOS, Direct3D on Windows and Vulkan on Linux.
  • A UI-free core library holds projects and builds, and has its own tests.
  • adk stays a separate program. Studio launches it rather than linking it, which keeps the two projects and their licenses independent. A crash in a build cannot take the editor down with it.

Contributing

Fork it, build on it and send pull requests. See CONTRIBUTING.md. Ideas and bug reports are welcome in the issues.

Legal

The Studio application is licensed under the MIT License. The bundled Archivo Black and IBM Plex fonts are under the SIL Open Font License, included next to them in src/app/assets/fonts. The 5x7 pixel font in src/app/PixelFont.h is original to this project and under the MIT License.

runtime/SceneGame, the game code Studio adds to a project, is derived from AnyDevKit's adk init template and is licensed under the GNU General Public License v2.0 only. That also applies to games that include it. Its glyph table in src/Graphics/Font.cpp.in is a copy of Studio's MIT pixel font. Studio runs AnyDevKit as an external tool.

This is an independent project, not affiliated with or endorsed by Sony Interactive Entertainment. PlayStation and PS5 are trademarks of their respective owner. Packages made with AnyDevKit are homebrew and cannot be published on PlayStation Store.

Credits

AnyDevKit Studio exists because of AnyDevKit, created by boykopovar. Every PS5 package Studio builds is compiled and packaged by AnyDevKit, which also relies on boykopovar's AnyPS5 and llvm-cxx-ps. Studio is an independent interface on top of that work and is not an official boykopovar project.

About

Open source desktop studio for making PS5 homebrew games and apps with AnyDevKit, on macOS, Windows and Linux

Resources

Contributing

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages