Skip to content
Git repo and bug tracker for SkyOfSteel
C# Other
  1. C# 99.3%
  2. Other 0.7%
Branch: master
Clone or download
Latest commit db1bdd9 Aug 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Add sponsorship button on Github Jun 19, 2019
ExternalAssets Model the SwiftSpark Aug 20, 2019
Features Update ProjectileCollision to play nice with new collision layer setup Jul 26, 2019
Game Official 0.1.5 release Aug 13, 2019
Items Render Scattershock thumbnail Aug 13, 2019
Net Rename a bunch of functions and variables for Structure->Tile rename Jul 1, 2019
Player Add (WIP) sliding Aug 20, 2019
Properties Jumping off point Oct 3, 2018
Scripting Add basic aim down sights (ads) Aug 7, 2019
UI Add ADS to help menu Aug 13, 2019
World Fix potential crash when loading save with different chunks Jul 28, 2019
.gitattributes Eliminate CRLF line endings and ignore *.import files Feb 4, 2019
.gitignore Add new docs output dir to gitignore May 18, 2019
.travis.yml Re-add branch restriction to master for Travis May 14, 2019
CONTRIBUTING.md Add CONTRIBUTING.md May 15, 2019
Doxyfile Document static classes, members, and methods May 19, 2019
LICENSE.md Update copyright date Apr 30, 2019
README.md Update README.md Jun 19, 2019
SkyOfSteel.csproj Add initial Scattershock implementation Aug 8, 2019
SkyOfSteel.sln Jumping off point Oct 3, 2018
UpdateDocs.sh Update documentation build script for new website repo Jun 5, 2019
default_bus_layout.tres Add player landing sound effect Apr 21, 2019
default_env.tres Move to 3.1.1 RC1 (fix button size issue from 3.1.1 RC1) Apr 23, 2019
export_presets.cfg Add Linux export Jan 25, 2019
icon.png Update icon to new slope thumbnail May 17, 2019
icon.png.import Update to Godot Mono 3.1 Beta 11 from Beta 5 Mar 8, 2019
packages.config Fix missing dependency causing export errors May 19, 2019
project.godot Clarify collision layers Jul 26, 2019

README.md

SkyOfSteel

Welcome to the GitHub repository of the game SkyOfSteel!

SkyOfSteel is a work in progress game built on the Godot game engine with C#, currently builds with Godot Mono 3.1.1 Stable The current stable release can be downloaded at Itch.io

Contributions are welcome!

Table of Contents

Download

SkyOfSteel can be downloaded from Itch.io

Newsletter

Read the weekly Sunday of Steel news letter here

Videos

0.1.2 Release Video

Building

Prerequisites

  • A functioning installation of Godot Mono 3.1.1 Stable
    • Decently recent versions of both MSBuild and Nuget must be installed (Windows users make sure to install this and this, Ubuntu users make sure to add this PPA, update, then install the mono packages as for Arch/Manjaro users make sure to install msbuild-stable from the AUR)

Performing the Build

  • Clone the git repo (or download as zip and extract)
  • Cd into the project root and run nuget restore SkyOfSteel.sln (This will pull in Newtonsoft.Json and Roslyn)
  • Open the Godot editor to the project and let it reimport all the assets then hit "Play" near the upper right corner (play icon)
    • The editor will proceed to build and launch the project

Gameplay

SkyOfSteel is a sandbox building game set in the sky. Envisioned to be a game where one can build intricate factories and sprawling supply chains while engaging in a PVP turf war with your fellow server inhabitants. Enjoy highly fluid movement while destroying others with highly powered weaponry. Fight for technological superiority as you race through a deep tech tree constantly edging out your opponents. When you tire from the vanilla game, the custom gamemode and modding support adds even more depth and content.

Currently we are remarkably far along in achieving this goal. However we are admittedly not there yet. At the moment we have a fully functional building system, chunk based world save and loading, highly stable multiplayer, Quake/Source engine style air strafing, automatic bunny hopping, wall kicking, and a rudimentary yet extremely flexible system for adding user created gamemodes.

Modding

SkyOfSteel has a gamemode modding system utilizing Roslyn to provide runtime C# compilation. The intention is to allow for fully custom gamemodes to be developed with full access to internal game APIs both server side and client side. In addition there is a full ingame REPL console.

The gamemode API has a concept of game events. Whenever something occurs ingame it is processed as an "event" which can be filtered and discarded by gamemode scripts programmatically. This allows for a great deal of flexibility before even touching the normal API.

Read more here: https://github.com/ForLoveOfCats/ModsOfSteel

Player Input Handling

All player input is routed through the binding system which depending on the input will call a console command passing in a float ranging between 0 and 1 (up to infinity in some cases such as mouse movement). Key input pass in a 1 for keydown and a 0 for keyup while analog inputs such as mouse motion pass in a 0 for no movement on the specified axis and a number greater than 0 for motion on that axis (the number is the amount of motion).

Note: This is not restricted to built in movement and player control console commands. Any function declared in the console REPL can be bound to any key or input.

Internal Structure

SkyOfSteel is built up of a number of singleton "libraries". Each one of these libraries deals with a portion of the game's actions and has a number of public static methods in order to be called from other libraries and classes.

Beyond these "libraries" the project directory is split up into pretty self explanatory folders which are almost like "modules" in that they (under most conditions) contain everything related to the folder name (ex: the UI folder has alls GUI scenes, script, and textures). Note that these folders are not self contained but instead all source files are pretty much entwined though the folder names are a good indication of where to look when trying to find the implementation of a specific feature.

Contributing

This is an ambitious project with much work left to do and you can help!

Feel free to contribute in the following ways:

  • Test and report bugs
    • Much work has already been done and there are doubtless many bugs which remain undiscovered
  • Fix reported bugs by getting down and dirty with the source code :)
    • Much work is left to be done and if you feel up to it you can help!
  • Contribute art and sound skills
    • The term Programmer Art describes the temporary art and sound assets created hastily by those untalented in those fields in order to continue the development of a game. If you are talented in with modeling, texturing, or sound design please do contribute!
  • Suggest new features
    • Are you an ideas man? You can still help!
  • Spread information about SkyOfSteel
    • All projects need good PR :)

Contact

For questions, comments, or to just discuss please join our Discord, check out our Youtube and support my work on Patreon. Also feel free to follow me on Twitter

License

SkyOfSteel is licensed under the MIT license and utilizes Roslyn and Newtonsoft.Json which are under the Apache-2.0 and the MIT licenses respectively.

You can’t perform that action at this time.