我々はゲームのために開発パッケージ


我々はいくつかのゲームをリリースしたClock of Atonement and Bluebird of Happiness . 残念ながら、いくつかのビジネス上の理由でまだオープンソースにしていません.しかし、我々は現在、ゲーム開発者がそれらを利用することができるようにゲームのためのいくつかのパブリックパッケージにコードを分割しているし、GOの開発は、より人気が得られるだろう.この記事では、我々が開発し、ゲームのために使用公共のGOパッケージをリストしたいと思います!

ギタブ.エムエムゲン


デッドシンプルな2 Dゲームライブラリ.基本的にはOpenGLラッパーです.これは、複数のプラットフォームではなく、デスクトップだけでなく、携帯電話、さらにはWebブラウザで動作しますGopherJS ! 実際、我々はデスクトップとブラウザーでゲームを開発することができて、動員のためにリリースされました.
蝦夷海老天) 私の好きな日本食の一つであるエビの天ぷらを意味します−)

ギタブ.関連キーワード:com


純粋な試みのMP 3デコーダ.これは港ですPDMP3 , パブリックドメインライセンスのMP 3デコーダ.私がこの仕様を理解しないで自動的に移植したので、まだ私のlibで何が起こっているのか理解しています.
私がOggのような他のデコーダの代わりにMP 3デコーダを開発した動機は、我々がブラウザーでゲームを製作したかったということです.現在MP3 is supported by most modern browsers しかし、他はよくサポートされていません.Ogg ). MP 3デコーダの代わりにブラウザのネイティブデコーダをパフォーマンスのために使うことができました.MP 3には特許問題があったが、特許は2017年に期限が切れた.

ギタブ.関連キーワード:com


低レベルのオーディオlib.この偉大なことは移植性です:これはWindows、MacOS、Linux、Android、IOSとWebブラウザで動作します.これはちょうどio.Writer そして、あなたは作家にバイトを書くことによって、どんな音でも遊ぶことができます.With go-mp3 , あなたはMP 3ファイルを再生することができます io.Copy ( Example )!
func run() error {
    f, err := os.Open("classic.mp3")
    if err != nil {
        return err
    }
    defer f.Close()

    // Decode MP3 stream and the result is an `io.Reader`
    d, err := mp3.NewDecoder(f)
    if err != nil {
        return err
    }
    defer d.Close()

    // Create an oto's player, which is an `io.Writer`
    p, err := oto.NewPlayer(d.SampleRate(), 2, 2, 8192)
    if err != nil {
        return err
    }
    defer p.Close()

    // With `io.Copy`, you can play the decoded MP3 on your machine!
    if _, err := io.Copy(p, d); err != nil {
        return err
    }
    return nil
}
大戸音) 日本語で「音」を意味する.

ギタブ.関連キーワード:com


もう一つのツールは、ファイルを移動するには、バイナリを埋め込むgo-bindata . file2bytesslice 他の同様のパッケージに比べて簡単です.これはただ一つのバイナリを1バイトのスライスリテラルに変換します.それだ!私が開発した動機は、あるincident : Go Bindataのオリジナルの著者はGitHubアカウントを削除し、別の人は再び同じGitHubアカウントを使用していました.そこで、自分で開発しようとしました.
Usage of file2byteslice:
  -compress
        use gzip compression
  -input string
        input filename
  -output string
        output filename
  -package string
        package name (default "main")
  -var string
        variable name (default "_")

ギタブ.関連キーワード:com


提供するパッケージ font.Face 対象M+ Bitmap font 日本語のテキストは8/16です.font.Face はフォントフェースを表現する半標準インターフェースであり、a TrueType parser イントゥメイクfont.Face インスタンス.あなたはテキストを描くことができますEbiten's text package 非常に簡単に!もちろん、これは(半)標準レンダリングパッケージで使用できますExample ).
const text = `Hello, World!

こんにちは世界!`

func run() error {
    const (
        ox = 16
        oy = 16
    )

    dst := image.NewRGBA(image.Rect(0, 0, 320, 240))

    // Initialize the destination image dst by filling with white.
    draw.Draw(dst, dst.Bounds(), image.NewUniform(color.White), image.ZP, draw.Src)

    f := mplusbitmap.Gothic12r

    // golang.org/x/image/font's Drawer draws a text on a specified image.
    d := font.Drawer{
        Dst:  dst,
        Src:  image.NewUniform(color.Black),
        Face: f,
        Dot:  fixed.P(ox, oy),
    }

    for _, l := range strings.Split(text, "\n") {
        d.DrawString(l)
        d.Dot.X = fixed.I(ox)
        d.Dot.Y += f.Metrics().Height
    }

    // Now the text is drawn to the image dst.

    return nil
}

ギタブ.日本語版


これはNoto CJK fonts . このパッケージのフォントは、いくつかの点でオリジナルのNOTO CJKフォントとは異なります.
  • フォントはTrueTypeで、OpenTypeではありません.これまでのところ、OpenTypeフォントを解析するために実際に使用可能なgoパッケージが存在しないためです. golang.org/x/image/font/sfnt is under development ).
  • 多くのグリフがオリジナルから削除されchinesegamefonts フォントは、ファイルサイズを減らす唯一の一般的なCJKグリフを含みます.元のファイルのサイズは46.1 MB(両方の簡体字と繁体字)、および縮小されたものは4.4 MB(簡体字)と7.6 MB(伝統的)です!
  • 我々のゲームはこれまで中国のサポートを持っていません、しかし、我々は現在このフォントパッケージでそれを実装しています.
    Packges上では、ユーザーインターフェイスなどのパッケージを開発中です.ステイ!