main-features.rst 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. .. include:: ../_header.rst
  2. .. highlight:: javascript
  3. Main features
  4. -------------
  5. The current version of |PhaserEditor|_ is pretty new. We released it with a few basic features.
  6. Asset Pack Editor
  7. ~~~~~~~~~~~~~~~~~
  8. The |AssetPackEditor|_ allows you to import the asset files into an |AssetPackFile|_. This pack file is used by other components of the IDE, like the |SceneEditor|_ and is a built-in Phaser_ format. This means, that you can load it in any Phaser_ game, no matter if it was created by |PhaserEditor|_ or another tool.
  9. Often, Phaser_ game developers have to write by hand the code to load the asset files. With the |AssetPackEditor|_ this process is fully visual and assisted.
  10. `Learn more about the Asset Pack Editor <../asset-pack-editor/index.html>`_
  11. .. image:: ../ images/asset-pack-editor-overview-04072020.webp
  12. :alt: Asset Pack Editor.
  13. Scene Editor
  14. ~~~~~~~~~~~~
  15. The |SceneEditor|_ is a visual tool to create Phaser_ scenes or levels by positioning images and other types of objects.
  16. The images can be taken from different sources like single images, sprite-sheets, or texture maps. You can create a different type of objects like sprites, images, tile sprites, bitmap texts, texts, containers, and lists. Also, you can create your custom type of object using prefabs_ and create reusable |UserComponents|_.
  17. The |SceneEditor|_ uses a custom format, but the editor files are compiled into perfect readable Phaser_ code, compatible with any Phaser_ game, and using only Phaser_ built-in API.
  18. `Learn more about the Scene Editor <../scene-editor/index.html>`_
  19. .. image:: ../ images/scene-editor-04102020.webp
  20. :alt: Scene Editor.
  21. Animations Editor
  22. ~~~~~~~~~~~~~~~~~
  23. The |AnimationsEditor|_ helps to create sprite-based animations. It creates a JSON file that can be loaded into the game using the `Phaser Loader API <https://photonstorm.github.io/phaser3-docs/Phaser.Loader.LoaderPlugin#__animation>`_ or using the |AssetPackEditor|_.
  24. A handy tool provided by the |AnimationsEditor|_ is the `automatic creation of the animations <../animations-editor/auto-build-animations.html>`_.
  25. .. image:: ../images/features-animations-editor-09302020.webp
  26. :alt: Animations Editor
  27. Code Editor
  28. ~~~~~~~~~~~
  29. An advanced coding tool is out of the scope of this version of the IDE. There are free and commercial third-party coding editors that work pretty well, with special mention of |vscode|_.
  30. |PhaserEditor|_ can be integrated very well with |vscode|_. The `project templates <../workbench/projects.html#project-templates>`_ include the |vscode|_ the configuration and type files required to get a project ready for |vscode|_.
  31. However, many users may want to try the editor just as it is and quickly create prototypes of games. For those users, we included in the IDE a basic code tooling for JavaScript, TypeScript, HTML, CSS, and JSON files. These tools are based on the |MonacoEditor|_, the one that is used by |vscode|_.
  32. You can edit the code of your game and get nice features like auto-completion across multiple files, an outline of the code, documentation of the language elements, and others.
  33. `Learn more about the Code Editor <../code-editor/index.html>`_
  34. .. image:: ../ images/code-editor-03312020.jpg
  35. :alt: JavaScript Editor.
  36. Project templates
  37. ~~~~~~~~~~~~~~~~~
  38. Phaser_ is a framework and it does not require a particular layout for your projects. A Phaser_ game is just a web application, and there are a lot of options to organize and build your game files.
  39. |PhaserEditor|_ does not require any special project layout neither, however, it provides a couple of project templates that help you to do an initial setup of your game. For example, it adds configuration files ready to be used by |vscode|_ and other files commonly used by the IDE, like an |AssetPackFile|_ or a first |SceneEditor|_ file.
  40. Also, you can create projects based on demos, and learn Phaser_ and |PhaserEditor|_.
  41. `Learn more about project templates <../workbench/projects.html#project-templates>`_
  42. .. image:: ../ images/project-templates-03312020.jpg
  43. :alt: Project templates.
  44. Color themes
  45. ~~~~~~~~~~~~
  46. Since |PhaserEditor|_ is a web application, it is very easy to create color themes via CSS. The IDE includes a couple of themes and you can implement your own.
  47. `Learn more about color themes <../workbench/color-themes.html>`_
  48. .. image:: ../ images/color-themes-03312020.jpg
  49. :alt: Color themes
  50. Extensible
  51. ~~~~~~~~~~
  52. The IDE is built on top of Colibri_ (*hummingbird* in English), a small framework we did especially for |PhaserEditor|_. This framework is inspired by the Eclipse Rich Client Platform and allows to build desktop-like applications (based on editors, views, commands, remote storage, etc...) using modules and an extension mechanism, that is used to create new editors, commands, menus, color themes, game objects, etc...
  53. We should write a Plugin Development Guide to target these concepts.
  54. Lightweight and cross-platform
  55. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  56. The IDE is available in the main Operating Systems: Windows, macOS, and Linux.
  57. The big part (the client application) should run in any modern browser (tested on Google Chrome, Firefox, and Opera), and is served by a small native program, available for the mentioned platforms.
  58. The client application is accelerated by the browser and all the I/O operations are asynchronous. It feels lightweight in terms of operability, but it may push the browser to consume an extra 150MB/300MB of memory. It depends the amount of images present in the project.
  59. On the desktop, it loads pretty fast. In a network, the fetching of all the resources may delay, it depends on your network speed.
  60. Ready for the desktop and the cloud
  61. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  62. The editor is distributed as two different products, the |core|_ and the |allInOne|_.
  63. The |core|_ can be integrated into a modern web development stack and cloud-based development environments (like Gitpod_ and |GithubCodespaces|_).
  64. The |allInOne|_ is a desktop application that provides a traditional IDE-like experience.