Skip to content

flushwhy/fe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A gopher riding a rocket

Flush Exporter (fe)

A command-line tool to make the odd parts of game development easier.

CircleCI GitHub release Go version License GitHub stars GitHub issues


🚀 Overview

fe is a CLI tool that streamlines tedious parts of game development—like asset processing and deployment—so you can focus on what matters: making your game.


🔧 Installation

Prerequisites

You must have these tools installed and available in your system's PATH:

  • FFmpeg: For audio/video transcoding.
  • Butler: For publishing builds to itch.io.

To verify installation:

ffmpeg -version
butler -V

Installing Dependencies

Windows
# Install FFmpeg and Butler using winget
winget install ffmpeg

# Download and install Butler manually from itch.io
Linux (Debian/Ubuntu)
# Install FFmpeg using apt
sudo apt update && sudo apt install ffmpeg

# Download and install Butler manually from itch.io
macOS
# Install FFmpeg using Homebrew
brew install ffmpeg 

# Download and install Butler manually from itch.io

Installing fe

Download the latest binary from the Releases Page and place the executable in a directory that's in your system's PATH.


⚙️ Configuration

Create a .fe.yaml file in your project root for simplified usage.

Example .fe.yaml

itchio:
  username: "your-itch-username"
  game: "your-itch-game-name"

pack:
  input: "./assets/raw_sprites"
  output: "./assets/spritesheet.png"

transcode:
  codec: "libvorbis"
  bitrate: "128k"

🎮 Usage

Transcode Audio/Video

# Transcode a single file
fe transcode --inputFile sound.wav --outputFile sound.ogg --codec libvorbis

# Use config preset
fe transcode --inputFile assets/sounds/jump.wav --outputFile assets/sounds/jump.ogg

Pack Sprites

# Pack PNGs into a spritesheet
fe pack --input ./assets/player_frames/ --output ./assets/player_sheet.png

Push to Itch.io

# Push builds using config
fe bmp

Init Game Project

fe init MyNewGame

This build a file sturcture like:

MyNewGame/
├── .fe.yaml          # Default configuration for fe
├── assets/
│   ├── audio/        # For raw audio files (.wav, .mp3)
│   ├── fonts/        # For font files (.ttf, .otf)
│   └── sprites/      # For individual sprite images (.png)
├── builds/           # For your final, compiled game executables
└── src/              # For your game's source code


🗺️ Roadmap

  • Add audio/video transcoding
  • Add bulk pusher for itch.io’s Butler
  • Add texture packer (sprite sheet generator)
  • Add vector (SVG) to TTF font converter
  • Add project scaffolding (fe init)
  • Add frameworks for things like Mesonbuild and raylib and so on to init.
  • Add file watcher for auto asset processing (fe watch)
  • More awesome stuff!

About

fe is a tool to make gamedev easier

Topics

Resources

License

Stars

Watchers

Forks

Languages