Skip to content

Instantly share code, notes, and snippets.

@HyperSoop
Last active June 15, 2023 22:55
Show Gist options
  • Save HyperSoop/475b00d083e2cce50235f84d2eed1320 to your computer and use it in GitHub Desktop.
Save HyperSoop/475b00d083e2cce50235f84d2eed1320 to your computer and use it in GitHub Desktop.
Hypersoop's Stellarica design gist

Economy & markets

All major cities on the map have an entry point to their local market (no global market as cargoing as a natural thing would be nice) At every market you can buy unique items and items in bulk. Think auction house and baazar at the same time.

On the market there are multiple categories, for example:

  • Equipment
  • Upgrades
  • Building blocks
  • Materials
  • Other

Items display on a grid, where you can hover a listing for its metadata and click for more info and to buy it.

There are sorting options below to sort by cheapest, most expensive, most in stock; a keywords search filter; etc.

If there are multiple people selling the same item, you're brought onto a sub-page with listings of only that item where you can go to the page of any individual listing (where you can also do the following) or use a special button to buy x cheapest avaivable of the item (with a confirmation dialog stating how much you'd need to pay) or x money worth of the item (with a confirmation dialog stating how many you'd be buying)

Thing to think about:

  • do we need any taxes with only local markets?

PVP and combat equipment

Weapons

Ranged weaponry mostly requires energy to use. Melee combat doesn't. That's not nessesarily a rule, just a guideline.

That is, we have 3 types of weapons: melee, light ranged and heavy ranged. Heavy ranged weapons are drawn like bows to get charge, light ranged weaponry can be spammed.

We're probably going to have a few unique weapons to obtain or craft from various sources. Then, as an upgrade system, we're going to have a modifier system, simular to hypixel reforging (sorry for this reference!) but instead of one you can have any and each subsequent one needs more resources to apply. The way you apply them is via "reforge stones" (well it just gets the point across!) - upgrade templates, which in turn can be found around the map or crafted. Those can be applied in workstations (no money requirement, but more resources needed) or at some NPCs; then they have an assigned amount of certain resources required to apply. You can apply the same one multiple times to a weapon, there's just going to be a prefix like -super -mega -ultra -hyper in the name. Every subsequent modifier on a weapon takes 3 times the resources of the previous - the first one is pretty cheap, then you add more as you progress in the game, and I'm a fan of the possibility of infinite grind for diminishing returns always being there. Upgrade templates are consumed on use.

Modifiers can modify projectile speed, fire rate, energy efficency, damage, knockback and have more special effects such as adding bounce to the projectile or adjanced fired projectiles; maybe something like exploding killed enemies or piercing through them.

Armor

A good idea has been brought up of having armor focus on modifiers and not on bare protections, and I'm supportive of it. Armor should have protective stats of at most vanilla iron armor for the heaviest ones, and then we have stats & effects which come with armor itself or are provided by upgrades as described above.

Being able to survive in space should be very accessible and not require a modifier or very specific armor really. Just have any helmet do the job.

Modifier effects might include projectiles having a chance to bounce back at your enemy, having the first hit from a single enemy completely negated, increasing speed in space, or some more generic ones like speed, explosion (not too overkill!) and thermal protections, true defence (no higher than 1 per upgrade), etc.

The basis: Armor is the main protection, it covers up blocks nearby and prevents said blocks from breaking at the cost of its own durability, when it runs out, the armor block breaks. Shields are optional, they take a priority above armor in reducing damage and mainly serve as a way to reduce strain on said armor and attempt to avoid permanent damage from minor encounters.


Armor

Protects a square radius of 2 blocks around itself from explosion damage: whenever a block is supposed to break, it doesn't and deducts 1 from the armor's durability instead. Whenever the armor block's durability runs out, it breaks. There'd be a few tiers of armor, with varying durability but the same radius they'd protect.

This same armor would work the same way off ships (on buildings), no issues with that. Given armor would usually be inside the ship and hard to replace or repair manually, it should regenerate on its own on a very very slow pace, with full durability being restored after 4-6 hours from 0.

Armor crafting:

  x  
x u x  = 1
  x

where u is a block of primary material and x is an ingot of secondary material.

u = steel, x = iron, 60 durability
u = titanium, x = ?, 100 durability
u = palladium, x = ??, 125 durability

Those stats are subject to change as we'll inevitably just have to see what turns out fun.

Shields

Shields protect blocks around themselves in a much bigger radius than armor.
Shields have multiple multiblock tiers, each one of which increases the shield's radius. Unlike armor, the shield simply stops working when its energy reaches 0%, but energy is deducted the same way - one for every block prevented from being broken.

Shields have an efficency metric, which determines how much explosion damage they deflect from blocks in their coverage. Shields essentially multiply the surrounding blocks' blast resistance by 100/(100-efficency) (while armor makes it infinite). This value is dynamic and increases when the shield's energy is near its maximum (90-95% and up), being able to go all the way to 100% at 100% charge, and hovering around 30% otherwise.

Shield damage reduction applies before armor, so if both apply, the blocks that the shield has prevented from breaking do not deduct the armor's durability, essentially making it last longer.

There's no problem in using the same shields on bases, off-ship, they'd function the same. Shields on ships would not cover any blocks beyond the ship's hitbox.

Dome shields

They would serve as the main source of protection for bases.

Creates a glass dome/bubble in a large radius around itself, by replacing air blocks in a sphere. The bubble can't be breached until the shield's energy reserves run out. The shield's energy is deducted whenever there's something/someone exploding or breaking the bubble (and it should have a visual effect).

Players going near the bubble's outer surface get thrown back; you cannot place blocks on the bubble. Those shields do nothing on ships.

The keychain system

Everyone has a "keychain" tied to them, which is basically a writeable book where each line is a new password. It can be accessed and changed anytime via a command or best via the game menu whenever we have one.

A dome shield can have a password stored in it, and it lets through the bubble any player that has the same password on their keychain. The "letting though" would happen by making said player not get thrown back and having the bubble's blocks disappear before them on the client side so they can walk right through.


Issues that need solving: protecting unpiloted ships from player hand-damage

Ships & Piloting

Put the ship block on your ship, click it to detect and pilot the ship, and from there do whatever. Right clicking (re-)detects and pilots the ship, shift right click opens advanced options.

The ship will not detect if the volume of the ship's cube hitbox is at least 8 times larger than the ship's volume, so to prevent noodle ships from being made. Also, to fly around the ship needs at least thrusters (see other materials) and power and or fuel to supply to them.

A 1-block layer of air will also be detected outside the ship so as to make it not get stuck to the ground. Ships would be able to go though blocks like grass and cobwebs (breaking them) in addition to air, and if movement in a direction is blocked by other blocks it's only applied in directions in which there are no blocks blocking movement.

Piloting

The player can be:

  • riding: nearby the ship and moving with it

Getting near the ship means you're riding, getting far from it is unriding. No commands here!

  • piloting: needs to be riding; takes direct control of the ship, gets put to sit in place and has their hotbar replaced with ship controls. For that time, revoke the player's mayBuild ability to prevent glass smashing and stuff.

When you unpilot, the ship is still active and keeps all of its acceleration (so it continues cruising) and you're just riding on the ship until you leave it or pilot again.

Normal piloting

do something with the hotbar idk you really need to try to fail this one

The current controls are fine for this, so just refer to those. Every button should have a description in its lore.

Direct control

Options:
Right click: Starts cruising/changes cruising direction to where the player is looking. If the're no thrusters to give thrust in that direction, rotates the ship so it can go in this direction. Sneak: stops all cruising (almost) immediately.
Sneak right click: moves the ship 1 block in your look direction (precision movement); doesn't care about fuel or thruster positions

Rotate the ship with keys Q and F.
Shoot with left click.

Press 1 to switch to firing any weapons. Press 2 to switch to firing light weapons. Press 3 to switch to firing heavy weapons.

Press 8 to switch to normal. Press 9 to unpilot.

@Astralchroma
Copy link

Hello there :)

@HyperSoop
Copy link
Author

hi

hmmmmmm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment