i think you should make a map rotation system to help the players building
like camera rotation
-
Xayne Bradbury commented
a 90 degree camera rotation would be amazing, that way my retarded building could look a bit less retarded
-
Bruno commented
its a great idea
for example rotating 45degrees at a time would be the minimun needed
idk nothing about games
but that should require a lot of work -
faustdonner commented
Why confusion? Its just a 90 degree rotation every time. They will need some textures from blocks from the side. The difficulty is more making a fluently animation to get from one perspective to another. That might need 3D rendering for a short time if ya look at a 45 degree angle at blocks. Would no such thing exist and the screen simply jump to another perspective. That would be confusing.
-
abforme2005 commented
Rotating will just add confusion. Just my 2¢.
-
edropus commented
Note: I assume A LOT below. I'm not saying that this is how the game works, just that this is how it would work if I wrote it. IE, if the way the screen writes is similar to the below, it should be viable.
Let's say for the sake of ease that the screen only displays 8x8 blocks at a time.
It's theoretically simple to do in 90 degree turns since ALMOST all of the blocks in the game theoretically 'look the same' from any direction. Let's just pretend for a minute that carpets and doors didn't exist and all we were left with were blocks that 'looked the same' from all 4 corners.
After pulling the local region's blocks down to the client I'd write them to the screen starting in the upper-left hand corner, moving right until I'd drawn an entire line, then I'd move down one and do the same - IE, write from 'block' 0x0 to 0x1, 0x2, 0x3 until I got to 0x7, then I'd move down to 1x0, 1x1, 1x2, 1x3, etc.
In pseudocode:
x is 0, y is 0
while x < 8
while y < 8
draw block(x,y)
x ++
y++And this would take the region block information from the server and draw it to the screen from the upper-left to the lower-right corner, row by row.
Now in THEORY to 'rotate' the camera you'd just have to change the order in which the blocks are drawn to the screen, again on the assumption that these blocks would all look the same from each direction.
For example, let's say you wanted to rotate the camera 90 degrees to the left. This would make it so that what was formerly drawn in the upper-left corner of the screen is now drawn in the upper-right, and instead of building from left-to-right we're building from top to bottom. Like:
x is 0, y is 7
while y < 8
while x > 0
draw block(x,y)
x ++
y ++Here's another way to say it. Let's say this is how we normally draw the screen, where the X is in the upper left and the Y is in the upper right.
XoY
ooo
oooRotate 90 degrees to the left:
ooX
ooo
ooYAnother 90:
ooo
ooo
YoXAnd so on. The above string of blocks is [XoYoooooo]. The point is you can write this to screen from different directions (again assuming the blocks look the same on each side) by changing the direction and order in which the blocks are drawn to the screen.
Now again I'm not saying that this is an 'easy' fix or that I know exactly how it works - I could be COMPLETELY off and this could be nowhere CLOSE to how the client draws to the screen. I'm basing this mostly off of stuff like Flash and HTML5. Even if it IS similar to the way 8bitMMO handles it, that doesn't mean it's an easy thing to just slap together. And the above scenario isn't ideal because there ARE blocks in the game that look different depending on the angle. I had just had this idea the other day, so when I saw your suggestion I figured I'd put it on here.
Good luck on the idea!
-
Dustin Stone commented
no offense to the idea. I love all ideas but rotation in game might screw up the "z axis lock" along with other things. The engine currently cant rotate just yet but be patient it might just happen but not anytime soon.