All Projects → evanbowman → skyland

evanbowman / skyland

Licence: MIT license
Realtime strategy game for Gameboy Advance

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
common lisp
692 projects
CMake
9771 projects
NewLisp
63 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to skyland

aurora
A small entity-component-system game engine for real-time-strategy games.
Stars: ✭ 28 (+3.7%)
Mutual labels:  rts
magia
magia is a toy GBA emulator written in golang.
Stars: ✭ 432 (+1500%)
Mutual labels:  gameboy-advance
UnkrawerterGBA
A tool to rip music from Gameboy Advance games that use the Krawall sound engine.
Stars: ✭ 26 (-3.7%)
Mutual labels:  gameboy-advance
WarKingdoms
Unity RTS Prototype (Warcraft 3 Style)
Stars: ✭ 108 (+300%)
Mutual labels:  rts
OpenHV
An Open Source Pixelart Science-Fiction Real-Time-Strategy game
Stars: ✭ 301 (+1014.81%)
Mutual labels:  rts
war1
A remake of Warcraft: Orcs & Humans written in C
Stars: ✭ 107 (+296.3%)
Mutual labels:  rts
Mgba
mGBA Game Boy Advance Emulator
Stars: ✭ 3,355 (+12325.93%)
Mutual labels:  gameboy-advance
finam-export
Python client library to download historical data from finam.ru
Stars: ✭ 84 (+211.11%)
Mutual labels:  rts
tilemap-studio
A tilemap editor for Game Boy, Color, Advance, DS, and SNES projects. Written in C++ with FLTK.
Stars: ✭ 247 (+814.81%)
Mutual labels:  gameboy-advance
Mage
Mage is a 3D Game Engine, built on top of THREE.js. It features Unity-like scripting, AMMO.js powered physics workers, an Infernojs powered UI and a clean API. Under (very) active development.
Stars: ✭ 76 (+181.48%)
Mutual labels:  indiegame
diver-down
A little platformer-stealth game made for the Godot Wild Jam #2.
Stars: ✭ 18 (-33.33%)
Mutual labels:  indiegame
UnityTutorials-RTS
The code for my series of tutorials on how to make a real-time stategy (RTS) game in the well-know Unity game engine (with C# scripting)!
Stars: ✭ 256 (+848.15%)
Mutual labels:  rts
rise-of-legions
Rise of Legions is a hybrid of MOBA, tower defense and deckbuilding - with fast-paced, easy-to-pickup tug-of-war strategy. Play solo or bring a friend for co-op or 2v2, collect cards, build your deck and crush your enemies.
Stars: ✭ 105 (+288.89%)
Mutual labels:  rts
recanalyst
Analyzes Age of Empires 2 recorded game files.
Stars: ✭ 74 (+174.07%)
Mutual labels:  rts
GBASnake
Snake Game for Gameboy Advance
Stars: ✭ 58 (+114.81%)
Mutual labels:  gameboy-advance
Team-Capture
Team-Capture - A multiplayer FPS game, inspired by games like Quake and TF2. Done in Unity
Stars: ✭ 81 (+200%)
Mutual labels:  indiegame
GreatSpace
👾 Space Invaders Game Style
Stars: ✭ 20 (-25.93%)
Mutual labels:  indiegame
Phobos
Ares-compatible C&C Red Alert 2: Yuri's Revenge engine extension
Stars: ✭ 123 (+355.56%)
Mutual labels:  rts
gba-sprite-engine
An object-oriented Game Boy Advance sprite engine concept
Stars: ✭ 68 (+151.85%)
Mutual labels:  gameboy-advance
react-gbajs
🕹 GBA emulator on your React project - easy and powerful to use!
Stars: ✭ 35 (+29.63%)
Mutual labels:  gameboy-advance

Skyland

Overview

A Gameboy Advance game created, frantically, for a game jam, in about twenty days. A simple realtime strategy game where you build flying castles and fight AI players. Also includes a multiplayer vs mode.

NOTE: This page sort of just includes a conceptual demo of SKYLAND. I'm working on the full version in a private repository, and will release it sometime in the future.

I forked a top-down action game called Blind Jump to leverage some existing gba framework code that I'd written in the past for interfacing with the hardware, but most of the code is entirely new. For game-specific code, see the source/skyland directory, and the scripts directory, where you'll find all the various level scenarios as LISP code.

Controls, Mechanics, and other Info

Skyland has nuanced controls and mechanics, which I will describe below. Additionally, If you scroll all the way to the right on the title screen, one of the plugin modules on the Extras screen provides a series of video tutorials.

Islands

All of the action in the game takes place on flying castles. At most two islands comprise each level, where the player controls one island, and an AI controls the other island. Hostile fortresses will attack the player, while neutral or peaceful islands may give the player coins, items, or blocks.

Rooms

Each Island consists of a layer of terrain, atop of which the player can build structures. The game generalizes all structures as rooms, although not all rooms can be occupied (players cannot move characters into solid rooms, like cannons or walls, for instance).

To build new rooms, open up the construction menu by pressing the right bumper. You may then press A to select a construction site, and then scroll through a list of structures to build with the d-pad. Press A again to construct the selected room. The game may reject your request to build structures, if you have not collected enough coins, or have not constructed enough power cores to sustain the new addition.

You may also salvage and recover some value from existing rooms, by selecting the room with the cursor, and pressing B.

You may pause the game to make adjustments at any time, by pressing the left bumper. Pausing frequently does affect your highscore a bit though.

Press the select button to toggle the interior view of your castle.

See below for a complete annotation of all structures that you may build:


Hull

The simplest block in the game. A purely defensive structure. The only structure in the game that does not supply or deplete energy.


Cannon

For attacking other islands. Mainly used for attacking horizontally. Select a cannon and press A to choose a target. By default, the selector will move between targets sequentially (left to right, top to bottom), but you can tap the R bumper while choosing a target to detach and move the selector without constraint.


Missile Silo

For attacking other islands. Missiles will launch vertically, and fall down vertically on the other island. For attacking the top face of an island.


Stairwell

A tall room, with no function other than to allow your fortress' residents to move between blocks stacked on top of one another.


Infirmary

Heals each idle occupant controlled by the owner of the infirmary. Your characters will not heal while fighting an enemy. The health provided by the infrirmary will be distributed evenly across all occupants, so a player will heal more quickly if other characters are not attempting to heal at the same time.


Bulkhead

Select a bulkhead and press A to open/close. Four second recharge when the bulkhead changes state. Characters cannot walk through closed bulkhead doors. Use to limit invading enemy movement within your castle.


Workshop

A square room. Slightly lowers the cost of building all rooms, and allows you to build the more complex structures listed below.


Power Core

Your island will include one power core at the beginning of the game. If all of a castle's power cores are destroyed, it will sink into the clouds, and all of the island's residents will perish. You must have a workshop in your castle to build aadditional Power Cores. Each room on your island consumes an amount of power (with the sole exception of hull blocks, which consume no power). If the total power consumption of your island exceeds the combined power output of your power cores, all systems will shut down, until you salvage rooms to free up power, or until you build more power cores.


Forcefield

Almost identical to a Hull block, but consumes power, and your own weapons may shoot through forcefield blocks without damaging them. Mainly intended for protecting weapons (otherwise, you could just build Hull blocks). You must have a workshop to build a Forcefield.


Transporter

Allows you to transport one of your characters to another island. Move one of your characters into the transporter, select the transporter, and press the A button. Your character will be transported to a random room in the opponent's island. Transporters have a cool-down period, so you may need to build multiple transporters if you want to effectively raid enemy islands. By selecting an empty transporter, you may also retrieve characters on other islands. A light on the transporter tile image will change from red to blue when the transporter finishes recharging.


Radar

Allows you to see the interior of your opponent's structures. Fragile, and consumes a relatively large amount of power. You must have a workshop to build a Radar.


Ion Cannon

An energy weapon. Fires projectiles that pass through hull and rooms, and cause bulkhead doors to open. Deals significant damage to forcefields.


Flak Gun

Fires projectiles that deal small amounts of damage to large areas of a castle. Deals twenty damage at the point of impact, twelve damage to grid locations adjacent to the point of impact, and ten damage to grid locations one-tile-removed from the impact site.

         10
      10 12 10
   10 12 20 12 10
      10 12 10
         10

Rooms larger than one 16x16 tile will receive damage from each tile that overlaps with the blast radius.


Replicator

Produces replicants. Move one of your human characters into the replicator, select the replicator, and press A; the game will be give you the option to create a replicant. Replicants cannot heal in an infirmary, and have 75% of the health of the template character from which they were created.


Characters

Characters, such as your castle's residents, or enemy goblins, can damage or repair rooms. When successfully destroying another castle's room, a character will plunder a fraction of the room's construction cost, increasing your coin count.

Downloads

See here: https://github.com/evanbowman/skyland/releases

Building

  1. Install all of the standard devkitpro libgba stuff.
  2. Install cmake
  3. cd build && ./set-gameboy-advance-toolchain.sh (a shortcut for running cmake with the correct toolchain file)
  4. run make
  5. run ./bundle.sh. The bundle script creates Skyland.gba by appending the game's scripts and resources to the compiled engine ROM.

Skyland LISP

The Skyland symbolic expression evaluator generally uses the same syntax as described here. A Scheme inspired functional programming language, with CommonLisp-styled macros, and some general gba-related weirdness thrown in.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].