Skip to content

An exploration, factorying, strategy and arpg made with Bevy Engine.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

afonsolage/bevysfactory

Repository files navigation

Bevysfactory

An exploration, factorying, strategy and arpg made with Bevy Engine.

Overview

The main focus is to have a resource extraction/factory builder game, but which actually gives meaning to the resources extracted. The main problem which I see with many factory games, at least for me, is that you don't have any meaningful use for what you have built, aside from the satisfaction, lore or some mission.

So I want to have a game loop which involves exploring to find resources, building to extract resources, craft new weapons/gear/army units to defend, explore new areas, repeat.

Player will have a main character to explore and build in first/third person: There won't be any bird's eye view or building camera by design, so the building placements and terrain overview matters.

Also Player will have to manage resources for his unit/army/itself, since exploring new areas will start to become increasingly difficult. The whole point of the game is to build a factory to feed and supply the army, in order to face more difficult areas, which gives more and better resources.

Art style

The game will have a low-poly 3D art style, a bit like Albion but more vibrant colors and a bit of toon-shader

Exploration

The world will be divided in instanced maps, for performance reasons and also to make it easy for players to reason about where to go next, since each map will have it's own tier, resources and difficult level.

The resources on each map will be determined by the biome, enemies level and some randomness: Not every map will have the same amount and type of resources, so finding the best balance between enemies and resources will be one of the selling points of exploration.

Resources

Players will look for tree kind of resources:

  • Non-living organic: Plants, trees, mushrooms, bushes and anything that is a non-living organic being;
  • Living organic: Mammals, Insects, Reptiles, Fishes...dragons?...maybe;
  • Inorganic: rock, iron, sand, mud, water, oil and anything that does't try to run or fight back;

More Resources will be added in the future to increase game play variety.

Resource quality

Each resource will have a quality indicator, which determines how good that resource is for processing. Resource quality will be calculated differently for each resource type:

  • Non-living organic: Based on map tier + a random factor which will be calculated at extraction, so on the same map, two threes can yield slightly different quality.
  • Living organic: Will be based on entity level, which is determined using other formula, based on Battle mechanic
  • Inorganic: Based on map tier + a random factor for each resource node, so on the same map, two iron nodes may have slightly different quality, but each node will always yield the same quality for each resource extracted.

POI

When discovering a new map, it may contain different POIs, which offers additional features to the map. Here are some examples:

  • Bandit camp: Usually protecting some resource node or blocking some road.
  • Den/Nest: Contains some living organic boss which yields high quality resource once killed.
  • Ruins: May have some unique/high quality loot or just a trap.
  • Settlements/Cities: Some NPC controlled city/settlement which allows player to trade with.

More POIs will be added in the future to increase game play variety.

Maps

Each map will have a fixed size, with procedurally generated content, and will be connected to other maps. Not every map corner will have a connection to a neighbor map, giving players a maze-like challenging if they wanna reach other maps, but the algorithm must ensure every map is reachable somehow.

There won't be any form of terraforming, to simply things.

The first initial map will be at minimum tier and the further player moves from the center, more likely it is to a high tier map is generated.

Factorying

Since I'm not native english speaker, as you can tell, I feel no shame in creating new terminology. Factorying refers to the factory building mechanic

Building a factory needs to be one of the strong points of this game, so some elements needs to exists in order to make building a factory fun and enjoyable:

  • No refound cost: Destroying a player-owned building must refound 100% of it's resources, so players won't have any kind of fear while trying new things;
  • OCD friendly placement: Most factory players have some degree of OCD and like things placed at right corner, well aligned and with a clicking sound when everything fits together, so having tools to help to align things is a must. Those tools must be optional, since also there are the chaotic-organization players;
  • Clipping is ok: The game should allow players to do clipping (non-blocking collisions), but alert about the clipping when placing objects;
  • Visible items flow: Players must be able to see their items flowing from one place to another, since this gives a great sense of proudness and also helps to mitigate factory problems. This may impose some performance problems, but nothing that Bevy + Rust shouldn't handle.
  • 3D Factory: The game should allow player to build their factories in all 3 dimensions, allowing them to interact with mountains, cliffs, hills and many more obstacles.
  • Optional floor, walls and roofs: This may seems obvious, but there should be optional floors, walls and roofs. The game should give no bonus or penalities in using them, this should be visually appealing only.
  • Instant Building: There won't be any major cooldown or waiting time to create Factory Buildings, since the major limiting point will be the extractors, transporters and belts.

Quality

Another important aspect of the Factory is how it's tied to resource quality, since each factory building will have also a quality indicator, which will determine how fast it works or the storage capacity, for instance.

The quality indicator should have a higher threshold, so Players won't have to rebuild their factories whenever a new resource now, which a slight better quality is discovered. Quality indicator should require significant better resources but offer also significant better bonuses.

Extractors

Extractors will generate resource when placed on a resource spot. This resource spot can be anything, depending on extracted resource and map.

  • Mining: Will be able to extract iron, rocks, sulphur and most solid inorganic resources;
  • Water: Will pump water from lakes and rivers;;
  • Farm Plot: Will act like a farm plot, but automatically harvest crops and yield it's resources;
  • Farm Livestock: Will act like a farm of livestock, which will yield it's resource automatically;

Transporters

Mainly moves resources from one node to another. Transporters can work on different land types:

  • Horizontal Belts: Will move resource horizontally, having at most 45º degree angle, using a conveyor belt;
  • Vertical Belts: Will move resource horizontally, having at minimum 45º degree angle, using a conveyor belt;
  • Pipe Tube: Will move liquid resources in any direction. May require Pumper to enable liquid flow to higher altitudes;

Other types of transporters may be added in the future.

Controllers

Controls item flow between nodes (storages, transporters, processors and so on). The main idea is to give Players some controllers to have a better automation and more intelligent automation. Most controllers are optional, but enables more advanced control over the built factory.

  • Splitter: Split incoming resources into many outputs;
  • Merger: Merge many incoming resources into a single output;
  • Overflow Gate: Redirect output to another output whenever there is overflow of resources;
  • Limiter: Limits the amount of resources in a output, redirecting to another output when the limit is reached;

Other types of controllers will be added in the future.

Processors

Accepts one or more resources as input and produces an output with optional by product. Processors are the main point of the factory building, since they enable using the gathered resources and creating resources for others processors or some item, food, equipment or anything to be used by player.

Processors have mainly four types, in order of complexity:

  • Single Input Single Output: SISO, the most basic one and create basic products, like iron ingots or gravel;
  • Multiple Input Single Output: MISO, combine multiple inputs to create a single one, like steel ingots or cement;
  • Single Input Multiple Output: SIMO, breakdown the input into multiple outputs, like rock yielding both sand and gravel;
  • Multiple Input Multiple Output: MIMO, create most advanced products, like weapons, rare resources and so on.

Storages

Containers which will storage raw or processed resources. Every storage must have one input and one output, at least, which will allow Players to create buffers around the factory.

Misc

Additional components like floors, walls, roofs and lights.

PvEing

The combat will be required in order to explore new maps and advance into the game, acquiring better resources and building better quality factories, which in turn, will yield better combat items and gear.

Game combat won't be advanced like a Souls Game, but more a mid paced game like Valheim.

Melee combat

Melee combat will be based on taking damage and hitting back, dodge or parry timing won't be required.

Ranged combat

Ranged combat won't have auto aim or projectile path line, but will have a fixed cross aim and the drop will be low, mostly based on weapon range, after the range is reached, the projectile drop will increase greatly.

Support

There will be some form of support skills and items, like healing potions/bandages, food buffs and so on, so this will enable players to prepare for boss nor harder battles.

AI

The enemy and ally AI will be almost the same, having no variation on difficulty, the enemy/ally will have better gear, stats and so on.

The AI shouldn't be nothing advanced and have some basic behaviors, like passive, defensive, aggressive, but also flee from combat if it is heavily injured (but not always tho, to avoid Players running across the map to give the final hit)

Looting

Enemies (and allies) when dead, will yield some loot. Some resources will be yielded only by looting, to give players a reason to go out and explore, aside from finding better resources spots.

But there won't be any major game mechanic that will be only achievable through looting, only minor/mid things.

Companions

Players will be able to summon/train companions, which will be AI-powered NPCs that have some basic commands to obey: S

  • Follow: Follows the player and will engage battle whenever player also engages.
  • Stay: Will stay in position and defend itself, won't engage in battle unless attacked.
  • Patrol: Guard an area path and will attack any hostile target that it founds.
  • Attack: Attack a target and engage in battle. Will stop only if dead or no more hostile target nearby.

v0.1.0 - Basic extractors

  • Create random resources spots on a flat map #2;
  • Enable extractor placement on resources spots #3;
  • Extract resources from resources spots using extractors #4;
  • Show UI with extracted resources #5;
  • Place a storage #6;
  • Place a transporter belt between extractor and storage #7;
  • Move resources from extractor to storage #8;
  • Show items moving while on transporters #9;

About

An exploration, factorying, strategy and arpg made with Bevy Engine.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages