gosu

package module
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

README

gosu

Classic rhythm games written in go with Ebitengine

How to play

Change the mode with F1

Change the Speed with PageUp / PageDown

Select the song with Enter

Press matching keys with notes!

You can change key settings by modifying keys.txt. Default Key settings are below:

4 Key: S, D, J, K
7 Key: S, D, F, Space, J, K, L
Drum:  S, D, J, K

Game play preview

Click thumbnails to watch at YouTube.

Taishi - bluefieldcreator [Etherealization]

The Flashbulb - The Bridgeport Run [Escapism]

cillia - Ringo Uri no Utakata Shoujo [Ringo Oni]

Feature

  • osu! files supported

    • .osu (osu! beatmap file)
      • Speed-change effects work (called SV).
    • .osr (osu! replay file)
      • Put replay files at replay/ with ReplayMode at select scene.
  • Skinnable in-game images

    • Put your favorite skin in skin/ (should match the file name though).
    • Image size in game are settable by user (WIP).
      • You can try it right now with changing value at settings.go and build.
  • Effective score and level system (originally designed)

    • The motivation of gosu dev.
    • Tried to make feel score and actual performance are related.
    • Level calculation is currently naive.
      • Will be exquisite in a short time.
  • Quick input supported (1ms)

    • Hook is used in Windows.
    • Others is currently depending on ebiten.IsKeyPressed .
  • Codebase with high readability

    • Super-fast in loading files and playing.
    • Fairly scalable for future work.

Build

  1. For MacOS and Linux users, install Ebitengine dependencies first by referring to the documentation(Ebitengine/Install).

  2. Go to root directory of the repository and build as below.

cd cmd/gosu
go build .
  1. Run gosu
./gosu

Flow of game logic

Game logic

Powerpoint and SlideShare (preview below)

gosu-present

Will also post details at wiki.

Community

Discord server Will be open after stable version has been release.

License

Codebase: Apache License 2.0

Most skin images and music tracks are from osu-resources, licensed under CC-BY-NC 4.0.

Documentation

Index

Constants

View Source
const (
	TPS         = scene.TPS
	ScreenSizeX = scene.ScreenSizeX
	ScreenSizeY = scene.ScreenSizeY
)

Variables

This section is empty.

Functions

func Load added in v0.3.1

func Load(fsys fs.FS)

Todo: tidy NewSettings() and *Settings.Load()?

func NewGame

func NewGame() *game

Types

type Settings added in v0.3.1

type Settings struct {
	General mode.Settings
	Piano   piano.Settings
	Drum    drum.Settings
	Scene   scene.Settings
}
var (
	UserSettings Settings
	S            = &UserSettings
)

Directories

Path Synopsis
cmd
format
osr
osu

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL