167 lines
7.2 KiB
Markdown
167 lines
7.2 KiB
Markdown
---
|
|
title: "Frequently Asked Questions"
|
|
draft: false
|
|
toc: true
|
|
---
|
|
About Sketchy Maze.
|
|
|
|
# General
|
|
|
|
## What is _Sketchy Maze?_
|
|
|
|
It is a "drawing-based maze game" themed around hand-drawn maps on paper.
|
|
|
|
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
|
|
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.
|
|
|
|
## 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.
|
|
|
|
If you're feeling dangerous, you can also run it on GNU/Linux smartphone devices
|
|
like the Purism Librem 5 or Pine64 Pinephone. Mobile ports are _relatively_
|
|
down on the priority list, but it already _sorta_ functions.
|
|
|
|
See the [Download](/download) page.
|
|
|
|
## Do I need to learn how to program?
|
|
|
|
Nope! You can just draw some levels and use pre-made doodads in them. The "1.0"
|
|
version of the game is expected to include a proper set of single player levels
|
|
that can simply be _played_ so you don't even need to draw your own level if
|
|
you're not feeling creative.
|
|
|
|
## The user interface is ugly!
|
|
|
|
I find the "Windows 95" look charming.
|
|
|
|
The good thing about the user interface is that it's released as a
|
|
[free and open source](#is-this-game-open-source) module. Eventually I plan to
|
|
build theming support into the UI toolkit, and _Sketchy Maze_ will automatically
|
|
look awesome.
|
|
|
|
I developed my UI toolkit from scratch, and the "Windows 95" look is _very_ easy
|
|
to program. A button is just a handful of rectangles drawn on top of each other
|
|
with offsets to provide the "3D look" and I found it preferable to make the UI
|
|
toolkit _look how it acts_ until I was confident I did it right.
|
|
|
|
# Pricing and Distribution
|
|
|
|
## Is this game free?
|
|
|
|
Yes!
|
|
|
|
While the game is in beta, all releases are **100% free and fully functional.**
|
|
|
|
After the game reaches "1.0" it will use a hybrid freemium model. Free versions
|
|
of the game will include:
|
|
|
|
* One chapter of built-in single player levels.
|
|
* The level editor where you can create and share your own custom maps, using
|
|
the built-in [doodads](/guidebook/doodads.html) that the game shipped with.
|
|
You can also play levels created by other players as long as they use the
|
|
built-in doodads.
|
|
|
|
Paid versions of the game will include _additional_ features such as:
|
|
|
|
* Additional chapters of built-in single player levels.
|
|
* Support for **custom doodads** in your custom levels, including the ability to
|
|
play levels made by other users which make use of custom doodads.
|
|
* Ability to **bundle** your custom doodads _with_ your level file for easy
|
|
sharing with other players.
|
|
* Possibly some access to online account features (in-game UI to share and
|
|
download levels and doodads made by others, etc.)
|
|
|
|
It is expected that the full set of built-in doodads will be equally available
|
|
in free versions of the game. And these doodads should be varied and featureful
|
|
enough to create all sorts of custom and creative levels, which can be shared
|
|
with other players.
|
|
|
|
## Will the game feature any form of Digital Rights Management (DRM)?
|
|
|
|
I hate DRM, so I don't expect so.
|
|
|
|
## Will this game be available on Steam?
|
|
|
|
I haven't decided yet. I think I could try and distribute the game myself first.
|
|
It's gonna be in beta for some time and I can see if it attracts a cult following
|
|
along the way.
|
|
|
|
# Technicals
|
|
|
|
## 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.
|
|
|
|
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.
|
|
|
|
## Is this game open source?
|
|
|
|
Parts of it are!
|
|
|
|
_Sketchy Maze_ was built from the ground up using little more than
|
|
[SDL2](https://www.libsdl.org/) which lets you plot pixels on a screen. While
|
|
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.
|
|
|
|
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,
|
|
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.
|
|
|
|
Here are a list of open source projects created **as a part of** development of
|
|
_Sketchy Maze_ which should be generally useful to any Go developers for making
|
|
some simple graphical applications.
|
|
|
|
* [go/render](https://git.kirsle.net/go/render): Render engine supporting SDL2
|
|
(native apps) and HTML Canvas (WebAssembly) targets.
|
|
* [go/ui](https://git.kirsle.net/go/ui): Go UI toolkit for adding labels, buttons,
|
|
windows, menus, and more widgets and arranging them sanely in frames with an
|
|
API like Tcl/Tk. It uses go/render so can also target WebAssembly.
|
|
* [go/audio](https://git.kirsle.net/go/audio): Simple audio abstraction which can load and play music or sound effects, currently only SDL2 supported.
|
|
|
|
GitHub mirrors of the above:
|
|
|
|
* [go/render](https://github.com/kirsle/render)
|
|
* [go/ui](https://github.com/kirsle/ui)
|
|
|
|
Also this website, the user guidebook, and other things with the game are
|
|
readable as open source code, at https://code.sketchymaze.com/
|
|
|
|
## Wait, does _Sketchy Maze_ have a WebAssembly port?
|
|
|
|
Sure does! But performance isn't great yet, and I'm not sure whether WebAssembly
|
|
support in web browsers needs to get better or if I need to tighten up my code.
|
|
There _is_ a lot of room for optimization in my UI toolkit, to minimize the number
|
|
of draw calls per tick.
|
|
|
|
One day I might have a "demo this game right in your web browser" feature with a
|
|
(probably stripped-down) version of the game built for WebAssembly. So far, though,
|
|
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.
|
|
|
|
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!
|