Update the website
This commit is contained in:
parent
31b6258225
commit
12fcd01080
|
@ -22,7 +22,23 @@ make a custom doodad, and there (will be) some example doodads you can build
|
||||||
This game is still in **alpha release mode** and it has a few major features
|
This game is still in **alpha release mode** and it has a few major features
|
||||||
still to add.
|
still to add.
|
||||||
|
|
||||||
## Inspiration
|
# _Sketchy Maze_ is a "Forever Project"
|
||||||
|
|
||||||
|
I have a list of features I _really_ want for the "1.0" launch of the game, but
|
||||||
|
I'll plan on continuing development for as long as I find it interesting and will
|
||||||
|
release free updates to everybody who buys the game just once.
|
||||||
|
|
||||||
|
I've always wanted to make a videogame, and always liked to learn about game
|
||||||
|
design and everything, but never actually made anything worthwhile until
|
||||||
|
_Sketchy Maze._ Over time, I realized that I don't actually want to build
|
||||||
|
"a video game," what I wanted was a game _project_. Something I could just work
|
||||||
|
on and add features to, more of a game "platform," something long-term like
|
||||||
|
Minecraft.
|
||||||
|
|
||||||
|
This page describes the initial set of features planned for the 1.0 and some
|
||||||
|
ideas I have kicking around further down the road if all goes well.
|
||||||
|
|
||||||
|
# Inspiration
|
||||||
|
|
||||||
I'm a 90's kid, and when I was growing up in the era of Sega Genesys and Super
|
I'm a 90's kid, and when I was growing up in the era of Sega Genesys and Super
|
||||||
Nintendo games, I used to like to draw my own maps on paper of a 2D platformer
|
Nintendo games, I used to like to draw my own maps on paper of a 2D platformer
|
||||||
|
@ -41,13 +57,13 @@ do the job and you can draw whatever shape you want for your level hazards.
|
||||||
|
|
||||||
![Palette editor](/images/palette.png)
|
![Palette editor](/images/palette.png)
|
||||||
|
|
||||||
## Mod Friendly
|
# Mod Friendly
|
||||||
|
|
||||||
While the game ships with a [handful of built-in doodads](doodads.md) to
|
While the game ships with a [handful of built-in doodads](/guidebook/doodads.html) to
|
||||||
spice up your level, you can also create your own and program them to do
|
spice up your level, you can also create your own and program them to do
|
||||||
whatever you want, with JavaScript!
|
whatever you want, with JavaScript!
|
||||||
|
|
||||||
## See Also
|
# See Also
|
||||||
|
|
||||||
For more information about _Sketchy Maze_, please see the following links:
|
For more information about _Sketchy Maze_, please see the following links:
|
||||||
|
|
||||||
|
|
112
content/faq.md
112
content/faq.md
|
@ -26,11 +26,33 @@ _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.
|
||||||
|
|
||||||
If you're feeling dangerous, you can also run it on GNU/Linux smartphone devices
|
If you're feeling dangerous, you can also run it on GNU/Linux smartphone devices
|
||||||
like the Purism Librem 5 or Pine64 Pinephone.
|
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.
|
See the [Download](/download) page.
|
||||||
|
|
||||||
# Pricing
|
## 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?
|
## Is this game free?
|
||||||
|
|
||||||
|
@ -56,3 +78,89 @@ Paid versions of the game will include _additional_ features such as:
|
||||||
sharing with other players.
|
sharing with other players.
|
||||||
* Possibly some access to online account features (in-game UI to share and
|
* Possibly some access to online account features (in-game UI to share and
|
||||||
download levels and doodads made by others, etc.)
|
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!
|
||||||
|
|
|
@ -9,4 +9,115 @@ before the game leaves "alpha" status.
|
||||||
|
|
||||||
![Screenshot of the level editor](/images/floor-is-lava.png)
|
![Screenshot of the level editor](/images/floor-is-lava.png)
|
||||||
|
|
||||||
TBD.
|
# _Sketchy Maze_ is a "Forever Project"
|
||||||
|
|
||||||
|
I have a list of features I _really_ want for the "1.0" launch of the game, but
|
||||||
|
I'll plan on continuing development for as long as I find it interesting and will
|
||||||
|
release free updates to everybody who buys the game just once.
|
||||||
|
|
||||||
|
I've always wanted to make a videogame, and always liked to learn about game
|
||||||
|
design and everything, but never actually made anything worthwhile until
|
||||||
|
_Sketchy Maze._ Over time, I realized that I don't actually want to build
|
||||||
|
"a video game," what I wanted was a game _project_. Something I could just work
|
||||||
|
on and add features to, more of a game "platform," something long-term like
|
||||||
|
Minecraft.
|
||||||
|
|
||||||
|
This page describes the initial set of features planned for the 1.0 and some
|
||||||
|
ideas I have kicking around further down the road if all goes well.
|
||||||
|
|
||||||
|
# 1.0 Features
|
||||||
|
|
||||||
|
The expected feature list for the "1.0" version of the game, and how
|
||||||
|
far along I am.
|
||||||
|
|
||||||
|
## Level & Doodad Editor
|
||||||
|
|
||||||
|
The level editor should include basic drawing tools:
|
||||||
|
|
||||||
|
* **Features:**
|
||||||
|
* [x] Easily switch between Play Mode and Edit Mode to test your level.
|
||||||
|
* [x] Draw your own pixels anywhere you want.
|
||||||
|
* _Should_ be pixel-perfect collision detection, though Boy has a hitbox
|
||||||
|
that could use some trimming.
|
||||||
|
* [x] Editable Palette to add and modify colors.
|
||||||
|
* **Drawing tools:**
|
||||||
|
* [x] Freehand
|
||||||
|
* [x] Line
|
||||||
|
* [x] Rectangle
|
||||||
|
* [x] Ellipse
|
||||||
|
* [x] Eraser
|
||||||
|
* [x] Undo/Redo
|
||||||
|
* [ ] Zoom In/Out ([--experimental](/guidebook/experimental.html))
|
||||||
|
* **Level Sizes:**
|
||||||
|
* [x] Bounded levels (0,0 to 2550,3300)
|
||||||
|
* [ ] Custom width/height for Bounded (just needs UI work)
|
||||||
|
* [x] No Negative Space: infinitely big levels which still have a
|
||||||
|
top-left corner bounded at (0,0)
|
||||||
|
* [x] Unbounded: infinitely large levels with no corners.
|
||||||
|
* [ ] Bordered: a bounded level where the top and left decorations
|
||||||
|
wrap around on the bottom and right sides too.
|
||||||
|
* **Wallpaper Themes:**
|
||||||
|
* [x] Notebook: standard blue ruled notebook paper.
|
||||||
|
* [x] Blueprint: dark blueprint paper.
|
||||||
|
* [x] Legal pad: yellow legal pad with blue and red lines.
|
||||||
|
* [ ] Blank sheet: a texture of a blank white sheet of paper.
|
||||||
|
* [ ] Grid paper: a white page with grid pattern.
|
||||||
|
* [x] Pure white: just a solid white background with no texture.
|
||||||
|
* [ ] Placemat: a wavy pattern meant to decorate all four sides of a
|
||||||
|
Bordered map.
|
||||||
|
* [ ] Custom Wallpaper: users will be able to bundle a custom
|
||||||
|
wallpaper texture inside their level file.
|
||||||
|
* **Doodad Editor:**
|
||||||
|
|
||||||
|
## Doodads Editor
|
||||||
|
|
||||||
|
## Single Player Campaign
|
||||||
|
|
||||||
|
The game is expected to come with a series of proper levels built-in which
|
||||||
|
are played in sequence and has some kind of interconnected story or
|
||||||
|
something. Currently you get some tutorial levels.
|
||||||
|
|
||||||
|
* **Single Player Campaign:**
|
||||||
|
* [ ]
|
||||||
|
* **Polish:**
|
||||||
|
* The platforming physics will be better. Currently the character gets
|
||||||
|
stick walking up sloped surfaces, _especially_ moving Left (but not as
|
||||||
|
much moving Right).
|
||||||
|
|
||||||
|
* [ ] Checkbox?
|
||||||
|
|
||||||
|
# Current Doodads
|
||||||
|
|
||||||
|
The current list of doodads built-in with the game can be found in the
|
||||||
|
[guidebook](/guidebook/doodads.html). For the exhaustive list so far, we have:
|
||||||
|
|
||||||
|
* **Bird:** a red bird that flies back and forth and can be ridden on.
|
||||||
|
* **Button:** sends a power on/off signal to a linked doodad.
|
||||||
|
* **Colored Doors & Keys:** four pairs of locks and matching keys.
|
||||||
|
* **Crumbly Floor:** a break-away floor.
|
||||||
|
* **Electric Door:** a closed door that only opens when it's powered.
|
||||||
|
* **Red Azulian:** test mob.
|
||||||
|
* **Small Key Doors:** locked doors and keys that are consumed each time
|
||||||
|
a door is unlocked.
|
||||||
|
* **Start & End Flags:** set the player spawn point and level goal.
|
||||||
|
* **State Blocks:** blue and orange blocks that toggle from solid to
|
||||||
|
passable.
|
||||||
|
* **State Button:** on/off switch that globally toggles state blocks.
|
||||||
|
* **Switches:** toggle electric doors open or closed or provide power
|
||||||
|
on/off to other doodads.
|
||||||
|
* **Trapdoors:** one-way passages (all four directions).
|
||||||
|
* **Warp Doors:** for fast travel around the map between any two linked
|
||||||
|
Warp Doors.
|
||||||
|
* **Warp Doors (Blue & Orange):** boolean state versions of Warp Doors,
|
||||||
|
which may only be entered while the door is active.
|
||||||
|
|
||||||
|
Some hidden doodads that you can activate with cheat codes, but which
|
||||||
|
don't **do** very much because they were for the player character:
|
||||||
|
|
||||||
|
* **Boy:** the player character in a blue hoodie.
|
||||||
|
* **Blue Azulian:** the original placeholder character, a blue version of
|
||||||
|
the Red Azulian.
|
||||||
|
|
||||||
|
(For that cheat code, try entering "boolProp showAllDoodads true" into
|
||||||
|
the developer console **before** opening the Level Editor, and they will
|
||||||
|
be available in the Doodads palette with the others).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user