Adrodoc / ApertureCraftVanilla

ApertureCraft Vanilla is a command block system that implements almost all elements of the game Portal 2 in vanilla Minecraft
Other
20 stars 3 forks source link

Keepin it goin #25

Closed Ijdtm7 closed 3 years ago

Ijdtm7 commented 3 years ago

Howdy Adrodoc, I know you are no longer interested in working on ACV, so i have been spending the past few weeks getting it all working in 1.17 and it is working very well. I am also adding new features to it as well. I started from the 1.12.2 version and it is currently in physical form but i also wanted to put it into datapack form as well, But i need to check with you if it would be ok to release it publicly (giving you credit of course). Have an awesome day

Adrodoc commented 3 years ago

Hey, that sounds very cool! Of course you can publish your version! ACV is licensed under the Creative Commons License (http://creativecommons.org/licenses/by/4.0/legalcode) so just credit me and link to this project and everything is fine. In case you are interested: I did start converting ACV to a data pack for Minecraft 1.15 on the minecraft-1.15 branch which includes an implementation of DDA raycasting and some other improvements, but it is unfinished and I don't remember the exact state I left the code in. It is actually not unlikely that I will pick up that branch again next year, but for now I am writing my master thesis and working on mcfunction-debugger which is close to it's first prerelese :) If you send me a link and I like your project I will link to it from ACVs readme.

Ijdtm7 commented 3 years ago

Awesome! Yea i was thinking about looking into that raycast stuff, ill see whaty ou got. mcfunction debugger sounds cool! Right now its actually in use in my big redstone project/server where were gonna make portal minigames to add to our vanilla minigames series. Ill let you know again when we're actually releasing it beyond the server games

Adrodoc commented 3 years ago

Also I just remembered the branch also contains an implementation for #5

Ijdtm7 commented 3 years ago

Ill have to see if thats more optimized than my version, I was originally using the old thing on the velocity branch but then i made my own basically takes y velocity of a player, then summons an armor stand and distributes to that.

Ijdtm7 commented 3 years ago

Question about your velocity function, Are you accounting for decimals? since Motion is stored in doubles there is visible difference between smth like 2 and 2.25 so would yours just skip from 2 to 3 directly cause thats a big jump!

Adrodoc commented 3 years ago

I use a different technique for motion, because teleporting a player to an armorstand used to reset player motion which made it hard for players to rotate and impossible to move while flying (I actually use this fact to cancel the downwards player motion when teleporting).

My code currently tracks player motion using one decimal place, but that could easily be increased if required. The motion is then applied to the player as a force, which is then applied to the player (as a speed of up to 1 block per tick, again using one decimal place) until it hits a wall or the ground. The max force of 1 block per tick was definately enough, because that is really really fast (72 km/h).

From my testing back then this worked very well, though for level design it would be very good to support portal surfaces at an angle (possibly using stairs) which would allow players to fly much further, but that doesn't work with item frames.

Ijdtm7 commented 3 years ago

Ooo that sounds good I’ll take a further look, how’s the lag with it as I’ve made the smooth teleport module bring the whole server tps down lol. Currently under the weather so my brain isn’t really functioning but I’ve got a few more things I was gonna ask you. First of all back in the day in the 1.8 version, the aerial faith plates worked with summoning an armor stand with rotation and motion you chose, I could easily improve on the rotation side of things to add free look like I did with my velocity, but how do you get the motion? I found some equations on Reddit I could use but I don’t know if there’s anything easier? Thanks. Oh yea and one of my big problems with adding ACV in main project worlds was that orange carpet and blue carpet and speed and jump boost effects where all off limits (as it would constantly give you the effect for 0 seconds every time you weren’t on a carpet) and all carpet have you the effects. I don’t know if there was an easier way but what I did was use a secret air block void_air which only generates in unloaded chunks and outside of the 0<y<255 range. If void air is above the block then it makes it a gel block. Only thing now is to put BridgeCross and BridgeBelow compat with void air so bridges work with gels and they don’t just stop randomly in the air

Adrodoc commented 3 years ago

I don't remember how exactly I calculated the motion for aerial faith plates. I think I mostly made those using trial and error. I think there is only one in my map. Your solution for the gels sounds quite good. I had similar issues with the gels, because they conflict with the long fall boots, which require a high jump boost to negate fall damage. I was never quite happy with how my gels worked. I am not sure how to solve the problem of combining gels and bridges. I think I would suggest to only apply the gel effects within a certain radius of a marker entity (maybe within a 100 blocks or so) and put such a marker entity next to your portal levels. That way you don't need the void air and have no problem with bridges and carpet that is further away. Can you send me a link to the server when you got ACV working there? I would love to try some of your levels 😃

Ijdtm7 commented 3 years ago

ah yes, trial and error was what i was going to do first but i think this equation does work, if you want it here it is: dev-storage-motion Ohh the long fall boots, I forgot about those, I cant currently test them with my main account because my server has decided to lock me with 50 absorption hearts lmao so i gotta use an alt 😂. If the void air using ACV_BridgeCross doesnt work out ill def try that solution. Ive got ACV working in the server right now but am currently just using the demo area to build some prototypes and squash all the bugs that testers show me. So that has caused 2 things. First thing is the nice demo area is now all ugly and filled with tons of commandblocks (Build Team didnt want to move it to underneath spawnchunks with the mess of commands so ive got chunkloaders at the testing area itself, which btw since its globalised around the world(about 7k by 7k blocks) i wanted to get portals to be chunkloaded when were sending commands to them in an optimized way, i wanted to do the 3 commadnblock method using ACV_ChunkLoader but i might just have to use forceload to load and unload chunks, oh well) second thing is that the portal takes up over a quarter of the current testing warp area lol. If you have discord you can add me at Tiredrade Ij#8416 for more info about the server (also easier for me to talk and send images) If not i can send the IP for the server when ive got levels started up (makes me happy that a lot of ppl are interested in building levels) Attached is the mess the demo area has become lol image

Adrodoc commented 3 years ago

Ah that doesn't look that bad. Looks just like the world where I was developing ACV :D Just send me a link when there is something playable. I don't have a lot of time currently, but it would be awesome if I could try it out once it is ready!