Code Monkey home page Code Monkey logo

valkyrien-skies-2's Introduction

Valkyrien Skies 2

Website - CurseForge - Modrinth - Wiki - Discord

The physics mod to end all other physics mods. Better compatibility, performance, collisions, interactions and physics than anything prior!

2022-11-01_21 58 07

Installation

You can download official releases of Valkyrien Skies from our website

Development

IntelliJ

  1. Clone the repo: git clone --recurse-submodules https://github.com/ValkyrienSkies/Valkyrien-Skies-2
  2. Open the project in IntelliJ, using Java 17
  3. Import the gradle project, sync gradle

Troubleshooting

Running Forge in dev environment

Occasionally forge will break in strange ways. When this occurs, delete all the build folders, delete the .gradle folder of the forge project, and then refresh gradle.

Change JVM arguments for small computers

Error occurred during initialization of VM Could not reserve enough space for 4194304KB object heap For patch the problem go to gradle.properties and change org.gradle.jvmargs=-Xmx4096M to org.gradle.jvmargs=-Xmx1024 or org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G to org.gradle.jvmargs=-Xmx1G -XX:MaxMetaspaceSize=1G

Attributions

Valkyrien Skies 2 was originally created by Triode and Rubydesic. You can check other contributors by viewing the git history.

The Create compatibility code was originally and largely written by FluffyJenkins, but the git history was clobbered when we transferred the code from Clockwork

valkyrien-skies-2's People

Contributors

alex-s168 avatar alphamode avatar blixtdraken avatar copperwarrior avatar crifurch avatar ewoudje avatar fluffyjenkins avatar godgun968 avatar illucc avatar merhaf avatar millenniumambiguity avatar mrsterner avatar rbasamoyai avatar rubydesic avatar sakyce avatar some-du6e avatar stewstrong avatar techtastic avatar theplasticpotato avatar thibault0712 avatar tri0de avatar walksanatora avatar weromano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

valkyrien-skies-2's Issues

How to join your development?

I've been following this project, but it looks like it's progressing slowly. It's really amazing in 1.12, so I want to participate in this project too. Do you have any public discord server? I'll have plenty of time after May.

pistons do not push ships

an extending piston doesn't push ships, only the head clipping into it once extended fully does, with great force

cannot use any blocks that require a player nearby

blocks like ender chests, computers, disk drives (cc restitched), furnaces (all types), anvils immediately close if on a ship, since player is very far away
maybe they all have some common class that can be hooked instead of editing each block individually?

Convert to Mojang official mappings

This is pain because there is no automated migration for kotlin. what to do

looks like yarn etc. is being phased out in favor of mojmap+parchment and we currently use yarn. should probably switch before updating versions.

ServerChunk#getChunk gets stuck

While developing eureka it seems that under certain conditions it gets perma stuck on that call; we have a mixin there so thats where we need to check

Move ShipData.missingLoadedChunks to ShipObjectServer

In hindsight, this logic really does belong in ShipObjectServer, because it doesn't really matter whether the chunk was already loaded or not, all that matters is that the rigid body in Krunch received the update.

Which, if the ShipObjectServer is not loaded, then it will not receive the update in Krunch, so we should send it.

This can become a problem if someone is hanging out in the Ship Yard, loading ship chunks without actually loading the ship.

Anyways, just fix this when you get the chance.

Remove all SNAPSHOT dependencies

SNAPSHOT dependencies can be updated by the maven repository at any time, breaking all our builds. We want our builds to be reproducible, hence we should remove all SNAPSHOT dependencies.

Fix lag spikes caused by entity collision

This problem is exacerbated by the fact that ships do not have an AABB (see #28), but adding one will not fix the problem entirely. When an entity collides with an unloaded chunk, the chunk is forced to load, causing a large lag spike.

Entities should be frozen in place and until the chunk they are in can be loaded rather than forcing the chunk to be loaded in the same tick.

TBD: should entities also load queue the chunk they're in to be loaded or should they just remain suspended until a player gets close enough to load the chunk?

One ship world per save

We need to have one ship world per save, rather than per dimension, so we don't need to move ships around when they go through a portal.

If Mounting an entity trough a block thats on a ship, breaks mounting

As the title says (in eureka) when trying to mount a entity via a blockinteraction, it will break.
The reason being that we wrap the block interactions with the player transform but we send a packet out with this transformed data.
to be exact the Teleport method does this, so checking if we tp inside ship and transform coords would fix this

little gravity and drag

it seems that it takes blocks a very long time to fall down even a meter (several seconds) and likewise it takes them a very long time to decelerate when flying through the air.

Add physics broadphase to VS2

Add broadphase to both the Krunch physics, and to VS2. This should dramatically improve performance once more than ~50 ships have been created. (Currently lags the game to death)

Fix render transform bug related to rendering ray traced result

This can easily be seen when placing a sign on a ship, note that the text renders incorrectly unless the player is selecting a block on a ship. This implies that the issue with render transforms is related to how we render the block outline of selected blocks.

Completely redo the networking code

The networking code we have now is totally sub-optimal, and only sends updates 20 times a second (60 times would be ideal). It lags the game once more than like 50 ships have been spawned.

We also want to use UDP if possible instead of TCP, since we don't really care if we lose a position update packet, since we can just get the information from the next packet.

Debug Commands

It would be handy to delete, move or find ships, or reset velocity of ships. So it would be handy to have a command like in VS1 to maniplate the ships with

Sodium compatibility

The mod is currently incompatible with Sodium. Should hopefully be not too hard to fix. Probably have to replace MixinLevelRenderer, MixinClientChunkCache, MixinViewArea, and some others.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.