This is a prototype open source Unity game. You can find the latest build on itch.io.
Everything in this repo is MIT or CC0 licensed, however, in order to compile the game you will need a number of assets from the store, see the full list below.
Checkout this repo and open it in Unity. The first time you try to load it it will report errors. Ignore them for now.
Purchase and install the following assets from the Unity asset store (links below are affiliate links, would appreciate you clicking on them it costs you nothing and buys me coffee):
- 250 Sci-fi Flat Icons - Kat Grabowska https://assetstore.unity.com/packages/slug/223031?aid=1101l866w
- Customizable SciFi Holo Interface - Excelsior Assets https://assetstore.unity.com/packages/slug/69794?aid=1101l866w
- Feel - More Mountains https://assetstore.unity.com/packages/slug/183370?aid=1101l866w
- ForceField Effects - SineVFX https://assetstore.unity.com/packages/slug/123431?aid=1101l866w
- Magic Arsenal - Archanor VFX https://assetstore.unity.com/packages/slug/20869?aid=1101l866w
- Magic Effects Pack 1 - kripto289 https://assetstore.unity.com/packages/slug/99856?aid=1101l866w
- Mercenary: Low Poly Assassin - Distant Lands https://assetstore.unity.com/packages/slug/171277?aid=1101l866w
- Mystic Arsenal - Kenneth "Archanor" Foldal Moe https://assetstore.unity.com/packages/slug/100969?aid=1101l866w
- NeoFPS: FPS Controller, Template & Toolkit - Yondernauts Games https://assetstore.unity.com/packages/slug/150179?aid=1101l866w
- Power-up FX - Archanor VFX https://assetstore.unity.com/packages/slug/152740?aid=1101l866w
- Project Asset Manager - Doubling Technologies https://assetstore.unity.com/packages/slug/126313?aid=1101l866w
- Project Search & Replace - Enemy Hideout LLC https://assetstore.unity.com/packages/slug/55680?aid=1101l866w
- ProTips - Tooltip System - ModelShark Studio https://assetstore.unity.com/packages/slug/44361?aid=1101l866w
- Realistic Effects Pack 3 - kripto289 https://assetstore.unity.com/packages/slug/27523?aid=1101l866w
- Realistic Effects Pack 4 - kripto289 https://assetstore.unity.com/packages/slug/85675?aid=1101l866w
- Sprite Shaders Ultimate - Ekincan Tas https://assetstore.unity.com/packages/slug/158988?aid=1101l866w
- Tunnel FX 2 - Kronnect https://assetstore.unity.com/packages/slug/86544?aid=1101l866w
- Variety FX 2.0 - Archanor VFX https://assetstore.unity.com/packages/slug/235241?aid=1101l866w
- Volumetric Fog & Mist 2 - Kronnect https://assetstore.unity.com/packages/slug/162694?aid=1101l866w
Note that by default some of these assets will overwrite a few files that are provided by this repo. After importing you need revert any changes made by the import. The easiest way to do this is to import Neo FPS and then run the command git restore .
in the root of the project directory.
There are a few things you need to do to make this compile as we use Assembly Definitions and not all assets provide them. So first thing you need to do is grow through all the above and if they do not provide an assembly definition you need to add one.
We've also needed to make some changes to code here and there. Below are some notes on how to automatically copy over some of these changes, but others cannot be packaged in this way for licensing reasons. You are on your own here. Most of the changes should be self explanatory (e.g. changing scope of methods). If you get stuck then reach out on Discord.
A small number of files from NeoFPS are included in this repo. These files are auto generated by NeoFPS or they contain no significant proprietary logic and are included with the kind permission of the author. However, there are a few small changes that need to be made to code that cannot be included for licensing reasons. These are documented below.
Add the following lines to NeoSceneManager
:
public float minLoadScreenTime
{
get { return m_MinLoadScreenTime; }
set { m_MinLoadScreenTime = value; }
}
In BasicHealthManager
add a null check (?
) to the following event invocation in OnHealthCHanged
:
protected virtual void OnHealthChanged(float from, float to, bool critical, IDamageSource source)
{
// Fire event
if (onHealthChanged != null)
onHealthChanged(from, to, critical, source);
m_OnHealthChanged?.Invoke(to);
}
Some features require additional open source libraries to be installed. The application will compile without these, but if you install the libraries as described below additional features will be enabled.
Set the DISCORD_ENABLED
script define symbol to enable Discord features.
The repository includes a Command Terminal to assist in testing and debugging. To get started hit the `
key. This will open the terminal (SHIFT+`
will open a larger terminal). Type help
to see a list of available commands.
In "RogueWave", the player is immersed in a unique first-person perspective, enhancing the intensity and immediacy of the combat. The roguelike element of the game introduces a high level of replayability, as the procedurally generated environment ensures that no two playthroughs are the same. This dynamic environment not only changes the physical layout of the game but also the placement and type of enemies and power-ups, adding an additional layer of strategy and unpredictability.
The wave shooter aspect of the game introduces a continuous challenge, as the player must survive wave after wave of enemies. Each wave is more difficult than the last, with more enemies and potentially new types of enemies. This escalating difficulty keeps the game challenging and engaging, as the player must constantly adapt their strategies and tactics to survive.
The game's greybox art style is a distinctive feature that sets it apart from other games in the genre. This minimalist, abstract aesthetic gives the game a unique visual identity, and also allows for a focus on gameplay mechanics and strategy rather than detailed graphics. The greybox art also enhances the game's mysterious and enigmatic atmosphere, as the player navigates through a world of abstract shapes and forms.
The player's goal in "RogueWave" is not just to survive, but to survive as long as possible. This introduces a competitive element, as players can strive to beat their own best times or compete with others on leaderboards. The game's permadeath feature means that every decision counts, adding a high level of tension and excitement to the gameplay.
In "RogueWave", the player is cast as the last surviving member of a human exploration team on a peculiar alien world. This world is inhabited by silicon-based lifeforms that manifest as geometric shapes. The player, equipped with advanced nanotechnology, must navigate this hostile environment in a desperate bid to return home.
The player's nanobots serve multiple functions. They can heal injuries, ensuring the player's survival in this dangerous world. Given sufficient resources, they can also craft ammunition, weapons, armor, and other essential items. This nanotechnology is a crucial tool for survival, providing the player with the means to defend themselves and adapt to the challenges of the alien world.
However, this nanotechnology is also the source of the player's predicament. The native inhabitants perceive the nanobots as a virus, a threat to their silicon-based life. This has led to their hostile reaction towards the human explorers, resulting in the death of the player's colleagues and the ongoing attacks on the player.
As the player progresses through the game, they encounter sympathetic natives who offer assistance. These allies provide valuable aid in combat and share crucial information about the world and the intergalactic portal that represents the player's only hope of returning home.
In a twist of fate, when the player's colleagues met their untimely end, their nanobots transferred to the player, imbuing them with extraordinary abilities. One such ability is a form of invincibility. When the player is on the brink of death, the nanobots spring into action, disassembling the player's organic matter into individual cells. They then transport these cells to a safe location and reassemble the player.
This process, while saving the player's life, leaves behind any non-organic matter, including weapons and equipment. Furthermore, the player wakes up in an unfamiliar location, disoriented and without any knowledge of their whereabouts. Fortunately the nanobots will have been able to scavenge some resources and create a small inventory that will give the player a start on another attempt at escape.
This adds an element of unpredictability to the gameplay, as the player must quickly adapt to their new surroundings and find additional resources to survive. This unique mechanic also adds a layer of strategy to the game, as the player must balance the use of their "superpowers" with the risk of losing their equipment and being transported to an unknown location.
The story of "RogueWave" is a tale of survival and adaptation in a strange and hostile world. It adds depth and emotional weight to the gameplay, driving the player to overcome the game's challenges and find a way back home.
"RogueWave" is designed with a specific player in mind - one who enjoys the thrill of roguelike and shooter games. These players are typically those who appreciate the unpredictability and replayability of roguelike games, where each playthrough offers a new experience. They enjoy the challenge of having to adapt to new environments and enemy configurations, and the satisfaction of improving their skills and strategies over time.
The shooter element of the game appeals to players who enjoy fast-paced, action-packed gameplay. These players value quick reflexes and precision, and the satisfaction of overcoming increasingly difficult waves of enemies. They enjoy the tension and excitement of combat, and the strategic thinking required to effectively use their weapons and power-ups.
The game's challenging nature is a key appeal for players who enjoy games that test their skills and push their limits. These players are not deterred by the game's permadeath feature, but rather see it as an exciting challenge that adds stakes and tension to the gameplay.
The minimalist, greybox art style of "RogueWave" may also appeal to players who appreciate abstract and unconventional game aesthetics. These players value games that offer a unique visual experience, and see the game's art style as a refreshing departure from more traditional, detailed graphics. They appreciate the way the minimalist art allows for a focus on gameplay mechanics and strategy, and enhances the game's mysterious and enigmatic atmosphere.
In "RogueWave", players are thrust into a fast-paced, action-packed world where survival is the primary goal. The game's core mechanics revolve around navigating through a procedurally generated environment and combating waves of enemies. Each playthrough presents a unique layout, offering a fresh set of challenges and experiences.
The combat is intense, with the player having to fend off multiple enemies simultaneously. The enemies, generated in waves, increase in difficulty as the game progresses. Quick reflexes, strategic thinking, and effective use of weapons and power-ups are key to survival.
As the game progresses, players will encounter other survivors in the cityscape. These characters will join the player, fighting alongside them and bringing unique skills to the table. This adds a layer of depth and strategy to the gameplay, as each character's skills can significantly affect the outcome of battles.
However, these characters are not invincible. They can, and sometimes will, fall in combat. When a character dies, their unique skills are lost until the player encounters another survivor. This adds a layer of tension and stakes to the gameplay, as the player must not only protect themselves, but also their allies. The loss of a character can significantly change the dynamics of the game, forcing the player to adapt their strategy and making each playthrough truly unique.
In "RogueWave", the player's nanotechnology not only serves as a tool for survival but also bestows them with superhuman abilities that significantly enhance the gameplay experience. These abilities, fueled by the nanobots, allow the player to perform feats beyond the capabilities of an ordinary human.
One such ability is flight. The player can activate their nanobots to lift them off the ground and soar through the alien landscape. This ability can be used to evade enemies, reach high platforms, or simply traverse the environment more quickly. However, flight consumes energy, which must be managed carefully to avoid running out at a critical moment.
Another superhuman ability granted by the nanobots is wall running. This ability allows the player to defy gravity and run along walls for a short period. Wall running can be used to navigate complex terrain, bypass obstacles, or gain a tactical advantage in combat.
These superhuman abilities add a layer of depth and strategy to the gameplay. They provide the player with a range of options for navigating the environment and combating enemies, encouraging creative problem-solving and tactical thinking. However, these abilities also consume energy, which must be managed carefully to ensure the player's survival. Balancing the use of these abilities with the need to conserve energy adds an element of challenge and tension to the game, making each decision and action carry weight.
The art style of "RogueWave" is a defining feature of the game. Utilizing greybox art, the game presents a minimalist, abstract aesthetic that sets it apart from many other games in the genre. This style is not just visually distinctive, but also serves a functional purpose. The simplicity of the greybox art allows players to focus on the gameplay mechanics and strategy, without being distracted by detailed graphics.
The environment in "RogueWave" is procedurally generated, which means it changes with each playthrough. This dynamic environment is a key part of the game's roguelike nature, and the greybox art style lends itself well to this. The environment is made up of simple geometric shapes, which can be arranged in countless different configurations to create a wide variety of unique levels.
The enemies in the game are also represented by simple geometric shapes, each with their own distinct behaviors and attack patterns. The simplicity of the enemy designs allows for a focus on their behaviors and patterns, rather than their visual details. This makes it easier for players to quickly identify different types of enemies and react accordingly. The greybox art style also gives the enemies a mysterious and enigmatic quality, adding to the game's overall atmosphere.
In "RogueWave", the levels are dynamically constructed from a pool of pre-made buildings, some of which have navigable interiors. These buildings are procedurally arranged within a city environment, creating a unique layout for each playthrough. This urban setting provides a variety of strategic opportunities and challenges, from the high vantage points of rooftops to the confined spaces of building interiors.
The placement of wave spawners is a critical aspect of the level design. These spawners, which generate the waves of enemies, are scattered throughout the level. In the early stages, they may be located in open areas, but in later levels, they are typically found within buildings. This encourages exploration and adds a layer of strategy, as the player must seek out and destroy these spawners to complete the level. Until the spawners are destroyed, they will continue to generate enemies, adding a sense of urgency to the gameplay.
The level design plays a significant role in the combat. The layout of the city, the placement of buildings, and the location of wave spawners all affect the difficulty and strategy of each wave. For instance, a level with many tall buildings may provide opportunities for sniping from high ground, while a level with many small buildings may lead to more close-quarters combat. The player must adapt their strategy to the layout of each level, adding a depth of strategy to the gameplay.
In "RogueWave", the player character navigates through a post-apocalyptic world as a determined survivor. This character's resilience and resourcefulness are reflected in the gameplay mechanics, as they traverse the cityscape and combat waves of enemies.
As the game progresses, the player encounters other survivors. These characters, while not deeply interactive, serve a crucial role in the gameplay. Each survivor possesses unique skills and knowledge that can aid the player in their journey. Their presence in the game adds a layer of depth and variety to the narrative, reinforcing the player's goal of finding other survivors.
The enemies in the game, represented by simple geometric shapes, each exhibit distinct behaviors and attack patterns. Despite their minimalist design, these enemies present a diverse range of challenges. Some may aggressively charge at the player, while others might adopt a more defensive stance. This variety in enemy behavior requires the player to continually adapt their strategy, adding to the game's dynamic and fast-paced nature.
The user interface (UI) in "RogueWave" is designed to be minimalist and unobtrusive, complementing the game's greybox art style. It provides the player with essential information without cluttering the screen or distracting from the gameplay.
One of the key elements displayed on the UI is the player's health. This is represented by a simple bar or number at the corner of the screen, allowing the player to easily monitor their health status during combat. The UI also shows the player's current weapon, which can be useful when switching between weapons or deciding on a combat strategy.
Another important element on the UI is the number of enemies remaining in the current wave. This information can help the player gauge their progress and plan their strategy. For example, if there are only a few enemies left, the player might decide to be more aggressive, while a large number of enemies might call for a more defensive strategy.
The UI also includes indicators for the location and status of other survivors in later levels. These indicators can help the player keep track of their allies and coordinate their actions. For example, if an ally's health is low, the player might need to provide assistance or adjust their strategy.
Overall, the UI in "RogueWave" is designed to enhance the gameplay by providing essential information in a clear and concise manner. It is a key part of the player's experience, helping them navigate the game's challenges and make strategic decisions.
In "RogueWave", the game assets are a blend of pre-built and custom elements, designed to create a unique and engaging gameplay experience. The user interface, player, and weapon prefabs are provided by the NeoFPS asset. This asset offers a robust and flexible framework for first-person shooter games, and its use in "RogueWave" ensures a smooth and responsive gameplay experience.
The characters in the game, including the enemies, are represented by simple geometric shapes. This design choice aligns with the game's minimalist aesthetic and also minimizes the need for complex animations. Despite their simplicity, these geometric shapes are used in a variety of ways to represent different types of enemies, each with their own distinct behaviors and attack patterns.
The use of the NeoFPS asset for the player and weapon prefabs allows for a wide range of movement and combat options, enhancing the game's dynamic and fast-paced nature. The geometric shapes used for the enemies, on the other hand, add a layer of strategy and unpredictability to the gameplay, as the player must quickly identify and react to different enemy types.
Overall, the assets in "RogueWave" are designed to support and enhance the game's core mechanics, providing a seamless and engaging gameplay experience.