Skip to content
quardbreak edited this page Sep 17, 2022 · 5 revisions

A page of useful development tools, which will be useful to work with any SS13-related codebase.

Beginning

You can use applications to work with the BYOND Language outside Dream Maker. Some text editors support third-party extensions made by community (for example: a language syntax and build scripts).

Text editors

If you want to use non-dm editor, you can try popular code editors with extensions (or plugins) support.

Visual Studio Code is a freeware source-code editor made by Microsoft. Available on Windows, Linux and MacOS. Features include support for debugging, syntax highlighting, intelligent code completion, snippets, code refactoring, and embedded Git. You can change the theme, keyboard shortcuts, preferences, and install extensions that add additional functionality.

Sublime Text is a shareware cross-platform source code editor with a Python application programming interface (API). It natively supports many programming languages and markup languages, and functions can be added by users with plugins, typically community-built and maintained under free-software licenses.

Extensions and Plugins

Recommended useful extensions. Only available for the Visual Studio Code editor.

BYOND (ss13.byond)

A bundle with some of extensions below. If you don't want everything skip this.

BYOND DM Language Support (gbasood.byond-dm-language-support)

This extension include features like:
  • Syntax highlighting for .dm format files.

DreamMaker Language Client (platymuus.dm-langclient)

This extension include features like:
  • Language server features include:

    • Workspace symbol search (Ctrl+T).
    • Go to definition (Ctrl+Click).
    • Go to type definition.
    • As-you-type autocomplete.
    • Signature help in proc calls.
    • Find references to a symbol.
    • Current file outline view.
    • Hovering var and proc definitions to see their parents.
    • And more, with details at the language server documentation.
  • Additional extension features include:

    • Project object tree view.
    • Build task (Ctrl+Shift+B) support for invoking DreamMaker.
    • Status bar control to toggle a file's tickmark in the .dme.
      • Optionally automatically ticking created/unticking deleted files.
    • Built-in DM Reference browser.
      • Open index with "DreamMaker: Open DM Reference" in the command palette.
      • Look up items with workspace symbol search, go to definition, or object tree.

DMI Editor (AnturK.dmi-editor)

This extension include features like:
  • Editing state names/directions/delays/other metadata.
  • Pasting png files as new states/frames.
  • Resizing dmis.

GitLens — Git supercharged (eamodio.gitlens)

This extension include features like:
  • Visualize code authorship at a glance via Git blame annotations and code lens.
  • Seamlessly navigate and explore Git repositories.
  • Gain valuable insights via powerful comparison commands.

Mapping Tools

BYOND map editor is enough to perform map edits, but sometimes you need more to just edit. Some additional applications available specially for mapping.

StrongDMM is an alternative yet robust map editor for BYOND.

It was built with idea to create a more flexible, fast and extensible tool, than BYOND built-in map editor. The editor has same features DM has, but provides much more and improves general map editing experience.

Features:

  • TGM support with built in map merger (no need to use external scripts and pre-commit hooks).
  • Almost instant environment open.
  • Custom layers filter.
  • Built-in screenshot tool.
  • Smooth zoom-in/zoom-out.
  • Robust "Search&Replace".
  • Improved shortcuts.
  • Robust variables editor and variables preview.
  • Optional variables sanitizing.

A highly robust map editor for BYOND that runs in your web browser, based on the original FastDMM.

Features:

  • Multi-z support - draws lower z-levels below current z-level, allowing for easy alignment between z-levels
  • Ability to load maps directly off of GitHub
  • Specific display filters - show and hide specific objects
  • Ability to define behavior for map editor in code (see doc/fastdmm_prop.md)
  • Robust pipe placement - Place pipes easily (see doc/fastdmm_prop.md#pipe_group)
  • TGM support out-of-the-box

For further instructions, you can visit links above to get additional info about installation and usage of given products.