GithubHelp home page GithubHelp logo

quasilyte / roboden-game Goto Github PK

View Code? Open in Web Editor NEW
399.0 4.0 27.0 35.66 MB

An indirect control real-time strategy game about robot colonies

Home Page: https://store.steampowered.com/app/2416030/Roboden/

License: MIT License

Go 98.00% Makefile 0.21% HTML 0.10% JavaScript 1.68%
ebiten ebitengine game gamedev go golang roboden

roboden-game's Introduction

logo

Roboden is available on Steam!

Roboden is available on Google Play!

You can also play this game in your browser on itch.io.

Game Overview

Two robotic life forms collided, and only one will remain. Can you lead the drone-producing colony to victory or will you face defeat?

This game allows you to build units and bases, harvest resources, and explore the hostile world without the direct control you're used to having in most RTS games. Instead of giving a direct unit order, you manipulate the colony's priorities and let it decide what needs to be done (and how it should be done).

Features:

  • Split-screen local PvP and co-op multiplayer (requires at least 1 controller)
  • Asymmetrical RTS gameplay
  • Unique base and units control system
  • Neat pixel art graphics
  • Units combining system for higher tier units
  • About 30 different drones divided into 3 tiers
  • 4 game modes: classic, arena, infinite arena, and reverse
  • Online, cross-platform leaderboard
  • Procedural level generation with extensive customization

If you're playing a browser version of the game, please use Chrome or some other browser that has good wasm support (you may have performance issues in Firefox). If possible, prefer a native build instead; you'll get a smooth 60fps experience this way.

screenshot

How to Run

git clone --depth 1 --recurse-submodules --shallow-submodules https://github.com/quasilyte/roboden-game.git
cd roboden-game/src
go run ./cmd/game --data ../roboden_data

You will need a go 1.18+ toolchain in order to build this game.

You may need to install Ebitengine dependencies:

# For Debian/Ubuntu
$ sudo apt install libc6-dev libglu1-mesa-dev libgl1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev libxxf86vm-dev libasound2-dev pkg-config

If you want to build a game for a different platform, use Go cross-compilation:

GOOS=windows go build -o ../bin/roboden.exe ./cmd/game --data ../roboden_data

The Makefile contains several helpers to build release binaries. It uses the ./cmd/builder script to do that.

# ./cmd/builder can be executed directly
go run ./cmd/builder -goos windows -goarch amd64 -o roboden.exe

# Specify -steam to build a Steam release
go run ./cmd/builder -goos windows -goarch amd64 -steam -o roboden.exe

Build Roboden for web (wasm):

cd src/
make wasm

After that you can open _web/index.html in browser (you'll need to serve the wasm file).

This game is tested on these targets:

  • android (from tablets to smartphones)
  • windows/amd64
  • linux/amd64
  • darwin/arm64 and darwin/amd64
  • js/wasm

It's also tested on Steam Deck.

roboden-game's People

Contributors

kalexmills avatar peakle avatar quasilyte avatar xamgore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

roboden-game's Issues

SteamDeck controller support in menus

I can't play on SteamDeck.

The Start button works so can access the menu, I can move the cursor over the menu, but I haven't figured out how to select "Play". The "A" button or the "R click" does nothing.

"B" works to exit the menu. But I can't cleanly exit the game from the menu. I have to kill it.

Make modding possible

This ticket is about adding modding support to the game.

Some features that may be useful:

  • Sprites modification
  • Sound/music replacement
  • Unit stats/behavior modifications

TODO: collect an entire list of things that are nice to have.

Add a color-blind accessibility mode

This game is hard to play if you're color-blind.
There should be an option that changes the important gameplay colors into something else (numbers? icons?)

Is macOS x64 supported?

Hi! I've tried to run the game on darwin x64 with no success:

# github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver/opengl/gl
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/graphicsdriver/opengl/gl/procaddr_darwin.go:29:11: assignment mismatch: 1 variable but purego.Dlopen returns 2 values
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/graphicsdriver/opengl/gl/procaddr_darwin.go:34:11: assignment mismatch: 1 variable but purego.Dlopen returns 2 values
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/graphicsdriver/opengl/gl/procaddr_darwin.go:45:9: too many return values
	have (uintptr, error)
	want (uintptr)
# github.com/hajimehoshi/ebiten/v2/internal/graphicsdriver/metal/mtl
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/graphicsdriver/metal/mtl/mtl_darwin.go:359:34: multiple-value purego.Dlopen("Metal.framework/Metal", purego.RTLD_LAZY | purego.RTLD_GLOBAL) (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/graphicsdriver/metal/mtl/mtl_darwin.go:360:34: multiple-value purego.Dlsym(metal, "MTLCreateSystemDefaultDevice") (value of type (uintptr, error)) in single-value context
# github.com/hajimehoshi/ebiten/v2/internal/gamepad
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_cf_darwin.go:55:19: multiple-value purego.Dlopen("CoreFoundation.framework/CoreFoundation", purego.RTLD_LAZY | purego.RTLD_GLOBAL) (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_cf_darwin.go:57:36: multiple-value purego.Dlsym(corefoundation, "kCFTypeDictionaryKeyCallBacks") (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_cf_darwin.go:58:36: multiple-value purego.Dlsym(corefoundation, "kCFTypeDictionaryValueCallBacks") (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_cf_darwin.go:59:36: multiple-value purego.Dlsym(corefoundation, "kCFTypeArrayCallBacks") (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_cf_darwin.go:60:36: multiple-value purego.Dlsym(corefoundation, "kCFRunLoopDefaultMode") (value of type (uintptr, error)) in single-value context
../../../go/pkg/mod/github.com/hajimehoshi/ebiten/[email protected]/internal/gamepad/api_hid_darwin.go:90:11: assignment mismatch: 1 variable but purego.Dlopen returns 2 values

Is there anything I'm doing wrong? The engine's installation guide works though.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.