The server now takes the rotation value of the player and removes the flower.
The server draws a line from the rotation of the player for a given distance of range until it hits another player or a wall. If it contacts the location of another player the other player could (perhaps if the server isn't laggy) see red blocks around him/her that quickly disappear symbolizing damage. Or just take damage and be alerted of their current health by the chat box.
The glass blocks are only visible to the player they surround and not other players. (This is important for movement reasons, players could move through each other this way).
Now, as for aiming up and down, this can be achieved 2 ways. First by taking a triangle-like area of the placement of a flower and then using a random-chance of the bullet hitting a target within the cone radius. With decreasing degree of chance as it reaches the outer edge. This is sort of a doom like way but with random-chance.
Alternatively, surround the player in a ball of glass and take the position of the flower in a shot and predict a direction with a cone-like method following the same principals of the triangle method. This allows for 90º shooting but comes with the flaw of players hitting the glass ball whilst falling, so it needs to played with low-ping time and a large (perhaps near maximum range) glass ball.
Now, again, to combat lag and client limitations. The range featured in the example is unrealistic. You'd need near zero lag updating that glass-ball. So it needs to be about 1 less than the maximum build range. 1 less because shooting whilst moving backwards needs to be accounted for (and one block should just about cover it).
Glass should also not be spawned when it intersects with the ground so players can't peak through walls.
Like I said a huge ass custom server mod. But it IS plausible. Feedback welcome.
Oh, and best played with a custom client skin, making glass invisible and yellow flowers look like shots or something.
Me, code this! I think not good sir. I'm far too inexperienced. If anything I'd need someone who is willing to to code this, it's a HUGE project though.
An interesting effect of this would be eliminating speedhacks, as one would hit the glass before it updates. This depends on the update speed of the glass, but assuming that the player is surrounded from above and below that is 54 tiles to deal with. One could reduce this by making it like DooM and only be allowed to fire on the horizontal plane and thus reducing the glass blocks needed to update to 12, but these will have to be updated constantly when the player moves.
An interesting effect of this would be eliminating speedhacks, as one would hit the glass before it updates. This depends on the update speed of the glass, but assuming that the player is surrounded from above and below that is 54 tiles to deal with. One could reduce this by making it like DooM and only be allowed to fire on the horizontal plane and thus reducing the glass blocks needed to update to 12, but these will have to be updated constantly when the player moves.
You are right, updating that many glass blocks will cause lag(in fact it is already reviled during my test).
That's cause I'm a genius for figuring out this method.
I'm running tests with Aeomin. Although it is a bit laggy. Normal movement on a horizontal plane works well for awhile. Vertical is not so good.
Trying a new method, but it'll take Aeomin some time working with geometry. Trying to reduce block updates to 9/18 or 4/8 depending on how accurate we can get it.
AAARGH I TRIED DOING PRECISELY THIS BEFORE.
Only instead of blocks you typed in a command like "/shoot", and it didn't work.
It works because the clients send the player view angles every frame, so yeah.
Trigonometry failed me, the angles are 360/256ths of degrees and not correctly aligned to the Cartesian coords, but everybody could shoot in a single direction! :biggrin.gif:
I think I'll try fixing it in some weeks for a quick prototype, and maybe consider this option (blocks).
Rollback Post to RevisionRollBack
<Quatroking> Minecraft is a dozen of puppies and kittens smashed into cubes, then mixed up with a few ounces of pure liquid rainbow and after that it spends two hours in the oven. Ready to be played by another drooling ten-year old
AAARGH I TRIED DOING PRECISELY THIS BEFORE.
Only instead of blocks you typed in a command like "/shoot", and it didn't work.
It works because the clients send the player view angles every frame, so yeah.
Trigonometry failed me, the angles are 360/256ths of degrees and not correctly aligned to the Cartesian coords, but everybody could shoot in a single direction! :biggrin.gif:
I think I'll try fixing it in some weeks for a quick prototype, and maybe consider this option (blocks).
Well, convert 256 to 360 loses some precision, but it still works!
Building different blocks could be like shooting different weapons.
Well you're limited to yellow and red flowers and mushrooms. Because of latency. those are the only ones you can build in the same space as yourself.
Maybe it would be better to use a command and have a separate macro-like program that hooks single clicks and sends the command. Shouldn't be hard to make.
Building different blocks could be like shooting different weapons.
Well you're limited to yellow and red flowers and mushrooms. Because of latency. those are the only ones you can build in the same space as yourself.
Maybe it would be better to use a command and have a separate macro-like program that hooks single clicks and sends the command. Shouldn't be hard to make.
Maybe, but that's a bad to require players use anything besides official client and command is annoying.
What we might want to do is upgradeable weapon, that way flowers and mushrooms would be enough.
Actually we can also use shrub and that makes up 5 types of weapon.
-By deleting the glass block, it should shoot a bullet. The glass would respawn immediately after the server recognizes that you shot it. Switching weapons would require a text command, like /laser, /gun /rocket, etc. This would allow for many more gun types.
-Because of the very small amount of angles possible, a fair amount of auto aim would be implemented.
-When player health reaches 0, the player could be teleported to a death area, and wait for the next round, or become a ghost who watches the gameplay.
-Flowers could represent bullet shots by changing the texture.
-For the rocket, tnt or bomb, an explosion should be generated in blocks by the server. Anyone caught in the radius of the explosion would have damage done to them.
-Health would be shown either by text, cons being local chat flooding, or by 10 far off blocks, white and red, moved by the server to be at the bottom of your screen.
-An enemies health would be shown on their name above their head by changing the color of the name tag, white at beginning, progressing to red. (not sure if this is possible in real time)
Those are my ideas, smooshed in this post. Sorry if they confuse you.
= Air
:cool: = Player
[iron] = Glass
[gold] = Yellow flower (this is important you'll see why later)
Lets start out with saying this implementation is not perfect and VERY VERY hackish. Anyway...
From above we see this scene:
:obsidian::obsidian::obsidian::obsidian::obsidian::obsidian::obsidian:
:obsidian::obsidian:[iron][iron][iron]:obsidian::obsidian:
[iron]:obsidian::obsidian::obsidian:[iron]
[iron]:obsidian::cool::obsidian:[iron]
[iron]:obsidian::obsidian::obsidian:[iron]
:obsidian::obsidian:[iron][iron][iron]:obsidian::obsidian:
:obsidian::obsidian::obsidian::obsidian::obsidian::obsidian::obsidian:
The glass is all player-head level. So they can see it (for this part of the example). They can build on it etc.
Lets say the player builds a flower...
:obsidian::obsidian::obsidian::obsidian::obsidian::obsidian::obsidian:
:obsidian::obsidian:[iron][iron][iron]:obsidian::obsidian:
[iron]:obsidian::obsidian::obsidian:[iron]
[iron]:obsidian::cool:[gold][iron]
[iron]:obsidian::obsidian::obsidian:[iron]
:obsidian::obsidian:[iron][iron][iron]:obsidian::obsidian:
:obsidian::obsidian::obsidian::obsidian::obsidian::obsidian::obsidian:
The server now takes the rotation value of the player and removes the flower.
The server draws a line from the rotation of the player for a given distance of range until it hits another player or a wall. If it contacts the location of another player the other player could (perhaps if the server isn't laggy) see red blocks around him/her that quickly disappear symbolizing damage. Or just take damage and be alerted of their current health by the chat box.
The glass blocks are only visible to the player they surround and not other players. (This is important for movement reasons, players could move through each other this way).
Now, as for aiming up and down, this can be achieved 2 ways. First by taking a triangle-like area of the placement of a flower and then using a random-chance of the bullet hitting a target within the cone radius. With decreasing degree of chance as it reaches the outer edge. This is sort of a doom like way but with random-chance.
Alternatively, surround the player in a ball of glass and take the position of the flower in a shot and predict a direction with a cone-like method following the same principals of the triangle method. This allows for 90º shooting but comes with the flaw of players hitting the glass ball whilst falling, so it needs to played with low-ping time and a large (perhaps near maximum range) glass ball.
Now, again, to combat lag and client limitations. The range featured in the example is unrealistic. You'd need near zero lag updating that glass-ball. So it needs to be about 1 less than the maximum build range. 1 less because shooting whilst moving backwards needs to be accounted for (and one block should just about cover it).
Glass should also not be spawned when it intersects with the ground so players can't peak through walls.
Like I said a huge ass custom server mod. But it IS plausible. Feedback welcome.
Oh, and best played with a custom client skin, making glass invisible and yellow flowers look like shots or something.
Would it be nice idea to make the wall destructible?
Maybe with rockets or something.
Are you going to make it or looking for someone to do it?
(to long didnt read)
:tongue.gif:
I can't really summarize a design document...
And Aeomin, thanks if you can get this working. I will be forever in your gratitude. But I won't do you any favors so don't ask.
You are right, updating that many glass blocks will cause lag(in fact it is already reviled during my test).
I'm running tests with Aeomin. Although it is a bit laggy. Normal movement on a horizontal plane works well for awhile. Vertical is not so good.
Trying a new method, but it'll take Aeomin some time working with geometry. Trying to reduce block updates to 9/18 or 4/8 depending on how accurate we can get it.
Only instead of blocks you typed in a command like "/shoot", and it didn't work.
It works because the clients send the player view angles every frame, so yeah.
Trigonometry failed me, the angles are 360/256ths of degrees and not correctly aligned to the Cartesian coords, but everybody could shoot in a single direction! :biggrin.gif:
I think I'll try fixing it in some weeks for a quick prototype, and maybe consider this option (blocks).
Script to edit Minecraft maps with Paint3D
Well you're limited to yellow and red flowers and mushrooms. Because of latency. those are the only ones you can build in the same space as yourself.
Well, convert 256 to 360 loses some precision, but it still works!
Maybe it would be better to use a command and have a separate macro-like program that hooks single clicks and sends the command. Shouldn't be hard to make.
Script to edit Minecraft maps with Paint3D
Maybe, but that's a bad to require players use anything besides official client and command is annoying.
What we might want to do is upgradeable weapon, that way flowers and mushrooms would be enough.
Actually we can also use shrub and that makes up 5 types of weapon.
Experimenting with bullet firing. The precision is.. fair.
-Because of the very small amount of angles possible, a fair amount of auto aim would be implemented.
-When player health reaches 0, the player could be teleported to a death area, and wait for the next round, or become a ghost who watches the gameplay.
-Flowers could represent bullet shots by changing the texture.
-For the rocket, tnt or bomb, an explosion should be generated in blocks by the server. Anyone caught in the radius of the explosion would have damage done to them.
-Health would be shown either by text, cons being local chat flooding, or by 10 far off blocks, white and red, moved by the server to be at the bottom of your screen.
-An enemies health would be shown on their name above their head by changing the color of the name tag, white at beginning, progressing to red. (not sure if this is possible in real time)
Those are my ideas, smooshed in this post. Sorry if they confuse you.