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
|
||||
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
|
||||
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)
|
||||
|
||||
## 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
|
||||
whatever you want, with JavaScript!
|
||||
|
||||
## See Also
|
||||
# See Also
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
# 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?
|
||||
|
||||
|
@ -56,3 +78,89 @@ Paid versions of the game will include _additional_ features such as:
|
|||
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!
|
||||
|
|
|
@ -9,4 +9,115 @@ before the game leaves "alpha" status.
|
|||
|
||||
![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