-
Notifications
You must be signed in to change notification settings - Fork 153
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
401 changed files
with
16,502 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
This Font Software is licensed under the SIL Open Font License, | ||
Version 1.1. | ||
|
||
This license is copied below, and is also available with a FAQ at: | ||
http://scripts.sil.org/OFL | ||
|
||
----------------------------------------------------------- | ||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 | ||
----------------------------------------------------------- | ||
|
||
PREAMBLE | ||
The goals of the Open Font License (OFL) are to stimulate worldwide | ||
development of collaborative font projects, to support the font | ||
creation efforts of academic and linguistic communities, and to | ||
provide a free and open framework in which fonts may be shared and | ||
improved in partnership with others. | ||
|
||
The OFL allows the licensed fonts to be used, studied, modified and | ||
redistributed freely as long as they are not sold by themselves. The | ||
fonts, including any derivative works, can be bundled, embedded, | ||
redistributed and/or sold with any software provided that any reserved | ||
names are not used by derivative works. The fonts and derivatives, | ||
however, cannot be released under any other type of license. The | ||
requirement for fonts to remain under this license does not apply to | ||
any document created using the fonts or their derivatives. | ||
|
||
DEFINITIONS | ||
"Font Software" refers to the set of files released by the Copyright | ||
Holder(s) under this license and clearly marked as such. This may | ||
include source files, build scripts and documentation. | ||
|
||
"Reserved Font Name" refers to any names specified as such after the | ||
copyright statement(s). | ||
|
||
"Original Version" refers to the collection of Font Software | ||
components as distributed by the Copyright Holder(s). | ||
|
||
"Modified Version" refers to any derivative made by adding to, | ||
deleting, or substituting -- in part or in whole -- any of the | ||
components of the Original Version, by changing formats or by porting | ||
the Font Software to a new environment. | ||
|
||
"Author" refers to any designer, engineer, programmer, technical | ||
writer or other person who contributed to the Font Software. | ||
|
||
PERMISSION & CONDITIONS | ||
Permission is hereby granted, free of charge, to any person obtaining | ||
a copy of the Font Software, to use, study, copy, merge, embed, | ||
modify, redistribute, and sell modified and unmodified copies of the | ||
Font Software, subject to the following conditions: | ||
|
||
1) Neither the Font Software nor any of its individual components, in | ||
Original or Modified Versions, may be sold by itself. | ||
|
||
2) Original or Modified Versions of the Font Software may be bundled, | ||
redistributed and/or sold with any software, provided that each copy | ||
contains the above copyright notice and this license. These can be | ||
included either as stand-alone text files, human-readable headers or | ||
in the appropriate machine-readable metadata fields within text or | ||
binary files as long as those fields can be easily viewed by the user. | ||
|
||
3) No Modified Version of the Font Software may use the Reserved Font | ||
Name(s) unless explicit written permission is granted by the | ||
corresponding Copyright Holder. This restriction only applies to the | ||
primary font name as presented to the users. | ||
|
||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font | ||
Software shall not be used to promote, endorse or advertise any | ||
Modified Version, except to acknowledge the contribution(s) of the | ||
Copyright Holder(s) and the Author(s) or with their explicit written | ||
permission. | ||
|
||
5) The Font Software, modified or unmodified, in part or in whole, | ||
must be distributed entirely under this license, and must not be | ||
distributed under any other license. The requirement for fonts to | ||
remain under this license does not apply to any document created using | ||
the Font Software. | ||
|
||
TERMINATION | ||
This license becomes null and void if any of the above conditions are | ||
not met. | ||
|
||
DISCLAIMER | ||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF | ||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT | ||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE | ||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | ||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL | ||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | ||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM | ||
OTHER DEALINGS IN THE FONT SOFTWARE. |
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
This package is part of the noto project. Visit | ||
google.com/get/noto for more information. | ||
|
||
Built on 2017-10-24 from the following noto repository: | ||
----- | ||
Repo: noto-fonts | ||
Tag: v2017-10-24-phase3-second-cleanup | ||
Date: 2017-10-24 12:10:34 GMT | ||
Commit: 8ef14e6c606a7a0ef3943b9ca01fd49445620d79 | ||
|
||
Remove some files that aren't for release. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# Contributing | ||
|
||
You'd like to help make this plugin even more awesome? Seems like today's our lucky day! In order to maintain stability of the tool and its code base, please adhere to the following steps, and we'll be pleased to include your additions in our next release. | ||
|
||
Note that this plugin is distributed under the [MIT License](https://github.com/npruehs/ue4-rts/blob/develop/LICENSE). So will be your code. | ||
|
||
## How to contribute | ||
|
||
### Step 1: Choose what to do | ||
|
||
If you've got no idea how to help, head over to our [issue tracker](https://github.com/npruehs/ue4-rts/issues) and see what you'd like to do most. You can basically pick anything you want to, as long as it's not already assigned to anyone. | ||
|
||
If you know exactly what you're missing, [open a new issue](https://github.com/npruehs/ue4-rts/issues/new) to begin a short discussion about your idea and how it fits the project. If we all agree, you're good to go! | ||
|
||
### Step 2: Fork the project and check out the code | ||
|
||
Real-Time Strategy Plugin for Unreal Engine 4 is developed using the [GitFlow branching model](http://nvie.com/posts/a-successful-git-branching-model/). In order to contribute, you should check out the latest `develop` branch, and create a new feature or hotfix branch to be merged back. | ||
|
||
### Step 3: Implement your feature or bugfix | ||
|
||
Clearly, everybody's got their own approach here. However, we'd still like you to keep a few things in mind, to ensure the stability and consistency of the plugin for everyone: | ||
|
||
* We're using the official [Coding Standard](https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/index.html) provided by Epic Games. | ||
* When you're adding support for a newer engine version, make sure that you don't break support for previously supported engine versions. We must not force our users to upgrade their engine just because of updating the plugin. | ||
|
||
### Step 4: Open a pull request | ||
|
||
Finally, [open a pull request](https://help.github.com/articles/creating-a-pull-request/) so we can review your changes together, and finally integrate it into the next release. | ||
|
||
|
||
## Release Checklist | ||
|
||
Internally, we're using the following checklist when preparing for a new release: | ||
|
||
* Check pending pull requests | ||
* Create release branch | ||
* Add examples for new features where appropriate | ||
* Run all automated tests | ||
* Update documentation (README, images, spelling, table of contents) | ||
* Increase version number (and engine version, if necessary) | ||
* Create plugin package | ||
* Check plugin package in another project | ||
* Merge release branch with tag | ||
* Add a new GitHub release with release notes | ||
* Update GitHub issues and milestones | ||
* Notify community (e.g. forums) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
## AI Players | ||
|
||
The plugin provides basic support for AI players as well. Currently, this doesn't go beyond fulfilling basic build orders, so you'll probably want to extend that, e.g. by determining when to attack other players, and where. At least, this should get you started: | ||
|
||
1. Create an AI controller deriving from `RTSPlayerAIController`. | ||
1. Set the _Player Behavior Tree Asset_ of your new player AI controller to `BT_RTSPlayerBehaviorTree` (or create your own one). | ||
1. Set the _Player Blackboard Asset_ of your new player AI controller to `BB_RTSPlayerBlackboard` (or create your own one). | ||
1. Set up the _Build Order_ of your new player AI controller. The AI will produce the specified actors in order, automatically skipping actors that are already available and replacing those that have been destroyed. | ||
1. Set up the _Primary Resource Type_ of your new player AI controller. The AI will try and prevent blocking paths between its main building and resource sources of that type. | ||
1. Add your resource types to the `PlayerResourcesComponent` of your player AI controller. | ||
1. Use your player AI controller in your game mode. | ||
1. At your game mode, set _Num AI Players_ to the number of AI players you want to spawn. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
## Creating Buildings | ||
|
||
From the perspective of the plugin, buildings are just units with a few additional components. There's no special class for buildings; their setup has just been moved to this manual section because that many people would explicitly look for that. In fact, you can mix and match the setup outlined in this section with all of the other sections. This allows you to create truly deep gameplay, such as units that serve as resource sources, or produce other units. | ||
|
||
|
||
### Construction | ||
|
||
1. See [Creating Units](Units.md) (Appearance, Health & Damage, Projectiles). | ||
1. Add an `RTSConstructionSiteComponent` and set the _Construction Time_. | ||
1. Set the _Construction Costs_ to any resources required for construction. | ||
1. Set the _Construction Cost Type_ to to _Pay Immediately_ if all costs should be paid in full when starting construction, or to _Pay Over Time_ for continuously paying costs (similar to Command & Conquer). | ||
1. Set the _Refund Factor_ to the factor to multiply refunded resources with after cancelation. | ||
1. Set the _Consumes Builders_ flag if builders working at the construction site should be destroyed when finished (similar to Zerg in StarCraft). | ||
1. Set _Max Assigned Builders_ if you want to require a builder to work at the construction site to make progress, and/or to allow multi-building (similar to Age of Empires). | ||
1. Set the _Progress Made Automatically_ and _Progress Made Per Builder_ factors. | ||
1. Set the _Start Immediately_ flag unless you want to trigger construction start from script. | ||
1. Add an `RTSContainerComponent` if you want builders to enter the building site while building. Its capacity value will be automatically set at runtime to reflect _Max Assigned Builders_ of the construction site. | ||
1. Add your `RTSConstructionProgressBarWidgetComponent` (see [User Interface](UserInterface.md)). | ||
|
||
### Production | ||
|
||
1. Add an `RTSProductionComponent` to any actors you want to be able to produce units or research technology. | ||
1. Add everything you want to produce or research to the _Available Products_ for these factories. | ||
1. Set the _Queue Count_, specifying how many products can be produced in parallel. | ||
1. Set the _Capacity Per Queue_, specifying how many products can be produced one after another. | ||
1. Add your `RTSProductionProgressBarWidgetComponent` (see [User Interface](UserInterface.md)). | ||
|
||
_Note that, technically, producing units does not differ from researching technology. You can create actor blueprints without physical representation for each technology to research, and add them as products. Then, you can check whether any player owns an actor of that technology for checking a tech tree._ | ||
|
||
### Resource Drain | ||
|
||
1. Add an `RTSResourceDrainComponent` for each type of building gatherers may return resources to. | ||
1. Set the resource types to all resources accepted by the drain. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
## Cheats | ||
|
||
The plugin comes with a small set of built-in cheats you can use. Feel free to create your own cheat manager and add additional cheats. | ||
|
||
|
||
1. Create a cheat manager deriving from `RTSCheatManager`. | ||
1. Set the _Resource Types_ of your cheat manager. | ||
1. At your `RTSPlayerController`, set the _Cheat Manager_ to your cheat manager. | ||
1. At _Edit > Project Settings > Engine > Input_, set and remember your _Console Keys_. | ||
|
||
This will unlock the following built-in cheats to use in your console: | ||
|
||
| Cheat | Description | | ||
| --- | --- | | ||
| Boost | Increases construction and production speed. | | ||
| God | Invulnerability cheat. | | ||
| Money | Adds resources. | | ||
| Victory | Defeat all other players. | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## Game Modes | ||
|
||
Clearly, even for real-time strategy games, you may want to define multiple game modes (such as classic Skirmish or story-based campaigns). Thus, we won't restrict you too much here, but just want to provide a few basic things that you might find useful. | ||
|
||
|
||
### Initialization | ||
|
||
1. Set the _Initial Actors_ and their locations for your game mode. This will spawn initial units for each player at their player start as soon as the game starts. | ||
|
||
|
||
### Teams | ||
|
||
1. Set _Num Teams_ to the number of teams your game mode supports. | ||
|
||
|
||
### Game Over | ||
|
||
1. Optionally, set the _Defeat Condition Actor Classes_ for your `RTSGameMode`. This will check whether any actors of the specified types exist for a player whenever he or she loses a unit. If no actor of the specified type remains, the player is defeated. | ||
|
||
_In that case, the game mode will raise the OnPlayerDefeated event to be overridden in subclasses (either blueprint or C++). Note that it is up to you to define how defeated players should be handled, and if/when the game is over, e.g. whether you've making a 1v1, FFA or team game._ |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+134 KB
Documents/Manual/Images/FloatingCombatTextComponentOnResourcesReturned.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Manual | ||
|
||
## Contents | ||
|
||
1. [Setup](Setup.md) | ||
1. [Game Modes](GameModes.md) | ||
1. [Maps](Maps.md) | ||
1. [Units](Units.md) | ||
1. [Buildings](Buildings.md) | ||
1. [Resources](Resources.md) | ||
1. [User Interface](UserInterface.md) | ||
1. [AI Players](AIPlayers.md) | ||
1. [Scripting](Scripting.md) | ||
1. [Cheats](Cheats.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
## Creating Maps | ||
|
||
For the plugin, you'll design and create your maps the same way you're used to when using Unreal Engine, for the most part. This section serves as a short checklist for you, and highlights some setup that is supposed to make it easier for you to get started. Some steps are mandatory for some features of the plugin to work, however, such as vision. | ||
|
||
|
||
### Game Mode & Geometry | ||
|
||
1. Use your game mode in the world settings. | ||
1. Create your level geometry and lighting as usual. | ||
|
||
### Camera | ||
|
||
1. Add an `RTSCameraBoundsVolume` to the map. | ||
1. Use the _Brush Settings_ to adjust the camera bounds as desired. | ||
|
||
### Navigation | ||
|
||
1. Add a `NavMeshBoundsVolume` to the map. | ||
1. Use the _Brush Settings_ to adjust have the nav mesh bounds encompass your whole level. | ||
1. Build navigation. You may press P to review your results in the viewport. | ||
|
||
### Player Starts | ||
|
||
1. Add `RTSPlayerStart`s to the map. | ||
1. Set the _Team Index_ for each player start. | ||
|
||
### Minimap | ||
|
||
1. Add an `RTSMinimapVolume` to the very center of your map. | ||
1. Set its brush size to match the extents of your playable map. | ||
1. Set the _Minimap Image_ to a nice top-down screenshot of your map. | ||
|
||
### Fog Of War | ||
|
||
1. Add an `RTSVisionVolume` to the very center of your map, encompassing the whole valid visible map area. | ||
1. Set the _Size In Tiles_ of the vision volume to match your minimap background images (e.g. 256). | ||
1. Add a `PostProcessVolume` to your map, and check _Infinite Extent (Unbound)_. | ||
1. Add an `RTSFogOfWarActor` to your map. | ||
1. Set the _Fog Of War Volume_ reference to the post process volume created before. | ||
1. Set the _Fog Of War Material_ of the actor (e.g. to the `M_RTSFogOfWar` material shipped with the plugin). | ||
|
||
### Pre-Placed Units | ||
|
||
1. Add any actors that should initially on the battlefield. | ||
1. For each of these actors, at the `RTSOwnerComponent`, set the _Initial Owner Player Index_ to specify which player should own them. | ||
1. When pre-placing buildings, at the `RTSConstructionSiteComponent`, set their _State_ to _Finished_ if they should be ready from the beginning. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
## Creating Resource Sources | ||
|
||
In case you missed that step earlier, make your to set up your resource types as explained in [Setup](Setup.md). Then, create resource sources as follows: | ||
|
||
1. See [Creating Units](Units.md) (Appearance only; can be a standard actor). | ||
1. Add an `RTSResourceSourceComponent`. | ||
1. Set the resource type and maximum and current resources of the source. | ||
1. Set the gathering factor for increasing the yield of any gatherers (e.g. golden minerals in StarCraft). | ||
1. If you want gatherers to enter the resource source (e.g. Refinery in StarCraft), check _Gatherer Must Enter_, set the _Gatherer Capacity_, and add an `RTSContainerComponent`. |
Oops, something went wrong.