Update FAQ

master
Noah 2022-05-08 14:51:01 -07:00
parent 19c4e0fb51
commit d637d23e08
5 changed files with 70 additions and 36 deletions

View File

@ -12,31 +12,34 @@ About Sketchy Maze.
It is a "drawing-based maze game" themed around hand-drawn maps on paper.
It's one part 'yet another 2D platformer game', one part 'Mario Maker but you can
make whatever you want', and part educational game in that it might help teach
someone to code so they can program their own custom doodads.
someone to code so they can program their own custom doodads to use with their
levels.
With Sketchy Maze, you can draw your own levels and then play them as a
side-scrolling platformer game. You can draw maps freehand or with some basic
With _Sketchy Maze_, you may draw your own levels and then play them as a
side-scrolling platformer game. You may draw maps freehand or with some basic
drawing tools (like rectangles and ellipses), specify which color lines are
"solid" and which behave like "fire" or "water," and then drag and drop various
"doodads" such as buttons and doors onto your map to add some interactive elements.
If you're not much of a level designer, fear not! The game will also feature some
built-in levels that you can play and get some inspiration from. You will
also be able to play custom maps created by others, possibly with custom
doodads included in them depending on your version of the game.
also be able to play custom maps created by others, which may come with their
own custom doodads attached ([details](/register)).
## What devices can I play it on?
_Sketchy Maze_ is first and foremost a videogame for **desktop operating systems.**
It should run on any GNU/Linux, Microsoft Windows or Apple macOS computer.
It should run on any GNU/Linux, Microsoft Windows or Apple macOS computer. It also
happens to run on Linux smartphones and is mostly playable at screen resolutions as
narrow as 375x750.
I currently package releases of the game for:
* **Windows** (64-bit and 32-bit)
* **Mac OS** (Intel 64-bit only for now!)
* **GNU/Linux**
* x86_64, i386, and aarch64 release on Fedora-likes (.rpm) and Debian-likes (.deb) and .tar.gz
* x86_64 and aarch64 Flatpak packages.
* Flatpak (x86_64 and aarch64) should work across all modern Linux distributions.
* Native packages (x86_64, i386, and aarch64) for Fedora-likes (.rpm) and Debian-likes (.deb) and .tar.gz
* Works on Linux smartphones like the Pinephone and Librem 5!
Some places I could see it going in the future:
@ -45,19 +48,26 @@ Some places I could see it going in the future:
how to run a Go SDL2 program like mine on Android but its documentation seems outdated and I haven't
figured it out yet. I'm using my Pinephone to plan a mobile/touch friendly UI but Android is a
likely target at some point.
* The **[Steam Deck](https://store.steampowered.com/steamdeck/):** for _Sketchy Maze_ I just need joypad
controls so you can navigate the UI and play the game without a mouse or keyboard, and this
Nintendo Switch-like device would be an amazing host to my game!
* The **[Steam Deck](https://store.steampowered.com/steamdeck/):** _Sketchy Maze_ has some joystick
control support and with a little more love this Nintendo Switch-like device could be an amazing
host to my game! I don't own a Deck but try and see if my game can run on it,
[let me know](https://www.kirsle.net/contact) how it goes!
## What are "doodads?"
![Bird](https://www.sketchymaze.com/guidebook/images/doodads/bird.gif)
![Snake](https://www.sketchymaze.com/guidebook/images/doodads/snake.gif)
![Button](https://www.sketchymaze.com/guidebook/images/doodads/button-a.gif)
  ![Electric Door](https://www.sketchymaze.com/guidebook/images/doodads/electric-door.gif)
Doodads are the dynamic objects you drag and drop into your level to make
it "do" things. They are the Buttons, Switches, Trapdoors, and other traps
and hazards to create puzzles and perilous platforming sections of your
level.
The game ships with a handful of [built-in doodads](/guidebook/doodads.html)
and players may also create their own, and program their behavior using
and players may also [create their own](/guidebook/custom-doodads/index.html),
and [program their behavior](/guidebook/custom-doodads/scripts.html) using
JavaScript.
## Do I need to learn how to program?
@ -72,11 +82,23 @@ You can also create some useful custom doodads in-game by selecting from a
doodad and choose the "Generic Fire" script and it will act as a hazard to
the player in-game: "Watch out for spikes!"
You can use these generic scripts as a base and program your own logic and
behavior in JavaScript. There are some
[full example doodads](https://code.sketchymaze.com/declassified/doodads)
that you can learn from as well for creating your own custom Warp Doors
or playable characters.
## How do I program a custom doodad?
There are some [full example doodads](https://code.sketchymaze.com/declassified/doodads)
that you can learn from for creating your own custom Warp Doors or
playable characters similar to the ones the game ships with.
You may also peek at [the game's built-in doodad sources](https://code.sketchymaze.com/game/assets)
to see how they're programmed if you want to make something similar.
You may also pick from a built-in generic script for your doodad, and then
download the script out of your doodad to use as a starting place to
customize it.
See the [Doodad Scripts](/guidebook/custom-doodads/scripts.html) documentation
that came in the game's Guidebook and the
[full JavaScript reference](/guidebook/custom-doodads/api-reference.html)
for more information.
## The user interface is ugly!
@ -94,6 +116,17 @@ graphical application. One day, the UI toolkit will support fancy theming
of widgets, and _Sketchy Maze_ will very easily look better (or have
user-configurable themes available to choose from).
## Why does my launcher icon have an orange logo?
<img src="/images/pinephone-apps-crop.png"
style="cursor: pointer"
onClick="this.src = this.src.indexOf('crop') > -1 ? '/images/pinephone-apps.png' : '/images/pinephone-apps-crop.png'">
Since version 0.13.0, Flatpak builds for Linux are now using an orange
version of the launcher icon. This is mostly because I install both the
Flatpak and the native (rpm/deb) package simultaneously and it was hard to
tell which version is which!
---
# Known Issues
@ -236,9 +269,13 @@ and maintain backwards compatibility for maps made today.
## What is this game built with?
_Sketchy Maze_ runs on a custom game engine, built from the ground up, in the
[Go](https://golang.org) programming language using [SDL2](https://www.libsdl.org/) for graphics via [veandco/go-sdl2](https://github.com/veandco/go-sdl2) bindings for Go.
[Go](https://golang.org) programming language and using [SDL2](https://www.libsdl.org/)
for graphics, sound, gamepad and other basic features via the
[veandco/go-sdl2](https://github.com/veandco/go-sdl2) bindings for Go.
While the game itself is not open source, some of its critical components are released as free and open source projects that other developers can use in their projects.
While the game itself is not open source (yet), some of its critical components are
released as free and open source projects that other developers can use in
their projects.
## Is this game open source?
@ -249,16 +286,16 @@ _Sketchy Maze_ was built from the ground up using little more than
I was designing the game, I thought it'd be a good idea to write an abstraction
layer between low-level SDL2 functions and give me a clean, Go-like API to work
with that keeps my code from either _depending_ too much on SDL or for my Go
code to be written too C-like to work with it.
code to be written too much like C to work with its raw API.
So I built my own [render](https://git.kirsle.net/go/render) library that
abstracts around SDL2 for desktops and HTML5 Canvas elements for WebAssembly,
abstracts around SDL2 for desktops (and HTML Canvas elements for WebAssembly),
and my game needed UI buttons so I wrote a [UI toolkit](https://git.kirsle.net/go/ui)
which provides Labels, Buttons, Menus, Windows, and all sorts of useful widgets
to draw my user interface with. The render engine can be extended to target
other APIs, such as OpenGL or Vulkan, in the future as needs arise.
other APIs in the future, such as OpenGL or Vulkan, as needs arise.
Here are a list of open source projects created **as a part of** development of
Here are a list of open source projects released as a part of development of
_Sketchy Maze_ which should be generally useful to any Go developers for making
some simple graphical applications.
@ -271,8 +308,8 @@ some simple graphical applications.
GitHub mirrors of the above:
* [go/render](https://github.com/kirsle/render)
* [go/ui](https://github.com/kirsle/ui)
* [SketchyMaze/render](https://github.com/SketchyMaze/render)
* [SketchyMaze/ui](https://github.com/SketchyMaze/ui)
Also this website, the user guidebook, and other things with the game are
readable as open source code, at https://code.sketchymaze.com/
@ -290,15 +327,12 @@ it just freezes web browsers frequently and I'm not letting you see it yet.
## Is it coming to Android or iOS?
These are relatively low on the priority list; maybe after the 1.0 release is
feature-complete I'll work on making the game work on mobile phones.
An Android app is the most likely one of these, but it may be a while out (after the
"1.0" release). The game is primarily meant for desktop-sized displays, but it
also runs as-is on GNU/Linux smartphones like the Pinephone, so I am testing
the game on that to make sure it _mostly_ works on that size of screen, if only a
bit awkwardly.
Already the game _sort of_ functions on GNU/Linux smartphones such as the
Pinephone. This phone has a 720x1280 pixel display and _most_ of the UI buttons
are usable in the level editor, doodads can be dragged onto levels, etc.; its
current biggest issue is with the on-screen keyboard app not being able to press
two keys simultaneously (like to move and jump at the same time).
An Android port would likely be the first one _after_ testing on the Pinephone
to get a touch-friendly user interface going. This game mainly just uses SDL2
which is good for portability!
I have some resources on how I might compile my game as an Android app, but I
haven't found any info on how one compiles a Go SDL2 app for iOS; and I don't
own any of the hardware needed to develop for iOS anyway.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

BIN
static/images/orange-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB