C# Voxel Engine

@csharp-voxel-engine

Public team

Community (0)
No community contribution yet

Joined on Dec 8, 2023

  • I'm bunching these all under one document, since they're all loosely related. Renegeration We should have a Terraria-style regeneration system. That is, health naturally regenerates over time, and there can be items that either give a burst of health, or increase regen for a period of time. Maybe we could have blocks like the Terraria campfire, that give a passive regen effect. Stanima Stanima would be used for non-trivial movement, that is, anything that's not walking, crouching, crawling, or sprinting. Performang an action would take a certain amount of stanima over a period of time, and you won't be able to do actions once the stanima runs out. Stanima would regenerate over time, so between actions you need to take a break.
     Like  Bookmark
  • Follow C# conventions for stuff not otherwise mentioned Use PascalCase for the following (Things that can't change)Readonly/const fields Readonly properties Enum members Methods Types Use camelCase for the following (Things that can change) Fields
     Like  Bookmark
  • This is just a document to outline what I want from the project, so it won't drastically change every month or so Data driven content I want data driven content, ideally people will be able to share their worlds with other people and modded content will just Be There™, henceforth referred to as Content Packs This, though, will come with a couple restrictions, for safety reasons: Content Packs cannot modify engine code, but can modify other Content Packs. Content Packs cannot access the file system. Content Packs cannot use unsafe, unmanaged memory, reflection, or native code
     Like  Bookmark
  • Component A component is a script that controls how a certain type of content acts. It's the code behind blocks, entities, and more. We currently plan to use Squirrel for component scripts. This is subject to change Components for different things (blocks, items, etc) would be mutually incompatible with one another. Root Layout root.json5 This file sits at the root of the pack, and provides metadata for the pack, such as the name and description An example:
     Like  Bookmark
  • Augmentations are a system in which you can effectively upgrade your items. Their goals are to make sure that a player's experience can differ from another player's experience with the same item. Which is important in a game where you only have one tier of tool. Core Design of Augmentations Augmentations should not intentionally turn the item into a completely different item. For example, ranged weapons should not turn into block breaking tools. If I say something bastardises an item, this is what I mean. Augmentations should not introduce outright new mechanics, however, it is okay to build off of existing ideas. If something similar exists, use that but have a slightly different functionality on the item.
     Like  Bookmark
  • Gameplay A single interaction should cause a single actionGiving multiple actions to the same interaction will cause confusion Destruction is caused by the player Entities can't break or place blocks A player sets off an explosion, a player presses a button, etc Each biome should have something unique setting it apart from others
     Like  Bookmark
  • Weaponry should be easy to understand from a mechanical perspective. Attacks from the weapon have a cooldown, during this time, you may not attack during this time. You can click a little bit early to attack for less damage, primarily . Can hold down attack to consistently attack, but timing is required for the strongest attacks. No crits lol. Melee Weapons Dagger Daggers are meant to be your DPS option. Also nice if you can't be bothered with timing. Fast attack speed.
     Like  Bookmark