Browse Source

Add LICENSE and README

Thomas Dy 3 years ago
parent
commit
6b14100bf9
2 changed files with 119 additions and 0 deletions
  1. 18 0
      LICENSE
  2. 101 0
      README.md

+ 18 - 0
LICENSE

@@ -0,0 +1,18 @@
+Copyright 2021 Thomas Dy
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 101 - 0
README.md

@@ -0,0 +1,101 @@
+# Typingfreaks
+
+This is a clone of an old flash game called TypingMania. It's a speed typing
+game where you type lyrics (typically in Japanese) in time with the song.
+
+There are many differences from the original and full compatibility is not a
+goal.
+
+ * scoring is different (still in flux)
+ * you're allowed to skip a single character, this is to make finishing the
+   songs more feasible but counts as a miss
+ * the displayed text is in Hepburn romanization but still supports other
+   romanizations for input
+ * YouTube support for songs (still experimental)
+
+You might also be interested in [innocenat's clone][1].
+
+## Gameplay Instructions
+
+The initial screen shows available songs. You can navigate left/right through
+folders and up/down through songs. Space or enter will select a song. Escape or
+backspace can be used to go back out.
+
+## Install
+
+Get the [latest release][2] and unzip it. Edit the `levels.json` with your own
+songs. Then simply serve it as a static site.
+
+### Config
+
+The [config](dist/levels.json) is a simple JSON file with the following
+properties:
+
+The following accept any CSS color
+
+ * `background` - the default background
+ * `baseColor` - base color of all text and UI elements
+ * `highlightColor` - accent color mainly for selections
+
+The following let you customize the sound effects by specifying files relative
+to the `index.html`. Defaults are provided so there's no need to modify them
+unless you want to.
+
+ * `selectSound` - sound effect when navigating
+ * `decideSound` - sound effect when entering a song
+
+The `levelSets` property describes the "folder" structure. It expects an array
+of the following:
+
+ * `name` - name of the folder
+ * `levels` - an array of level data
+
+Level data has the following properties (a lot of the weird naming is inherited
+from TypingMania).
+
+ * `name` - name of the song
+ * `creator` - artist of the song
+ * `genre` - "genre" of the song, but can be used for anything
+ * `difficulty` - a number to show beside the song
+ * `audio` - path to the audio file or a youtube video
+ * `background` - path to an image to serve as the background, if not specified,
+                  it shows the video otherwise just uses the default background
+ * `songLink` - a link back to the source of the song
+ * `lines` - array containing lyrics and timing data
+
+Lines contain the following properties:
+
+ * `kanji` - display lyrics of the song, has no effect on the game
+ * `kana` - the kana for the lyrics, this is what's used for the game
+ * `start` - start time of the segment in seconds
+ * `end` - end time of the segment in seconds
+
+If `audio` is not specified, `lines` does not need to specify timing
+information. It will just act like a normal untimed typing game.
+
+### TypingMania
+
+If the `levels.json` property in `index.html` is changed to a folder instead, we
+try to load the folder assuming it contains TypingMania data (`settings.xml`,
+`folderlist.xml`, etc.). I haven't tested this extensively so there could be
+incompatibilities.
+
+## Editor
+
+There is a provided editor that's quite rough. It's main purpose is to help with
+creating the `lines` property of the levels. You can load a youtube or an audio
+file and place marks to split the sections. Lyrics can be input in the text
+areas. You can then export it to a JSON string which you can just paste into
+`levels.json`. You can also import from an existing JSON string to edit a level.
+
+## Build Instructions
+
+The project is a vanilla typescript project. Simply run:
+
+```
+npm install
+npm run build
+```
+
+[1]: https://github.com/innocenat/typingmania
+[2]: https://github.com/thatsmydoing/typingfreaks/releases/latest