Jump to content

war

Alpha Tester
  • Posts

    86
  • Joined

  • Last visited

Everything posted by war

  1. You guys seem to think I know nothing about Voxels / rendering. The fact is even with things like occlusion you still have to compute what's been occluded and what hasn't, and with Voxels you normally render chunks, so if any piece of a chunk is visible then you need to render the whole chunk at a given LOD you can't "quickly generate a single mesh at various LOD's" you generate the whole mesh at a given LOD. My understanding is that to make the data editable something has to store "the edits", from my own tinkering in building voxel based worlds I've figured out that on day 1 for an entirely generated volume (like the planets would be) you'd effectively have a storage requirement of 0 bytes as you only need to store the changes made that deviate from the algorithm / generator. With something like a space station though, there's never any part of that that's procedural, you effectively always have to store every Voxel. You could store only the mesh data but then you need a means to "figure out" the volume data when the mesh gets edited, which is a considerably more complex task than generating a mesh from Voxels in the first place. The other way is to store "actions" and use things like run length encoding to reduce the storage load ... but that's still a lot of data ... So here's where i'm at ... As you guys should be able to see from my Avatar ... I'm IN ... i'm taking a gamble ... it's (i think) a risky one but if these guys deliver even a fraction of what i've seen so far I still like I'd get value for money. So ... @novaquark ... I donated up to Ruby, the money was going to in to my own game project but i've decided to start a new game dev project ... developing LUA driven DU stuff I can't wait!
  2. So I was reading this ... https://devblog.dualthegame.com/2016/11/16/official-lore-bible/#more-1000 I wonder how far we might be able to go in building something that can connect LUA scripting to Aphelia? Also ... could I as a "rogue" break the law and start building AI with LUA to control fleets of drones to do things like gather resources or automate production chains? It would be interesting to tie this in to the game lore too, in such a way that we could shape the game in to a state where "there are worse things than humans on this new world". I have some ideas too, but I'd like to be able to call out to external web services from the game so I could for example ... make a decision based on feeding an algorithm running on my own web server back in to a computer in the game, and use that decision to affect change in the game. This opens up the potential for things like Mobile apps allowing me to interact with my organisation when out and about!
  3. Wow ... some great feedback guys. Did someone say Unigine! ... I love that engine, their Heaven demo makes me want to build an MMO in that world! I'm not looking to rock the boat like maybe ... BlueDrake42 or whatever his name is ... but I do want to understand what it is that NQ is saying they have here. For example ... Procedural generation I know that Voxelfarm worlds are procedural and look amazing but my experience in a shard based world was poor when using a real world MMO solution built on the engine. The alternative is something like no mans sky that did not meet expectations at all and both didn't save the players chances (no mans sky didn't even allow any changes). Voxel Technology Oddly enough I have been talking about doing exactly this for a couple of years now but couldn't find enough support from a seasoned developer community to get help with this idea of using Voxels on this scale because I had developer after developer tell me "it's impossible on todays tech without breaking the laws of physics" ... That said ... I am believer in the technology and do feel it can scale, using procedural in combination with static data and compression / bit packing techniques for the transmission brings the scale in terms of raw bytes in to the possible but it does come with a few "negotiations" you have to make. As I said when I started this thread, the raw numbers of Voxels that represent a large object are just insane and with something like a space station or a large ship you simply can't start from a procedural base so every Voxel has to be considered a change. Given that "fact of how Voxels work" you can then take a data source containing any number of voxels and generate a mesh from that data easily enough and using some pretty common programming techniques known by many today construct meshes at varying "qualities" for use in game. So in short ... My question really wasn't "Using this number of Voxels is impossible right?" it was more something along the lines of ... Given that I as a keen user of the game spend say 2 hours per day for say 10 days in a row editing Voxels I could as a single player build a pretty hefty space station looking at the tooling available here it's reasonable that I could build one of those space stations. Looking at the raw numbers I presented before, lets assume my space station creation was something like 10 million Voxels, that's 10 million individual Voxels that 1 player has created that the server has to process and store and hand out whenever someone looks the right direction from the right spot on the game. I am however, only 1 player ... so lets scale that up ... add another 999 players and we have 1000 x 10 million Voxels that are all entirely non procedural and could be reasonably constructed on the game server. even if those ridiculous number of Voxels are not right next to each other that's still a lot of data to be managing and processing. For an MMO that's a tiny number of players and for a single shard that's an insane amount of mesh data being handed around, the previously mentioned "developer community" tell me this is not possible. So how I see it ... This is either being massively over sold or there are some "gotchas" that are still being overcome (and I seriously want them to be) but these guys must be on to something that through years of digging around and researching this particular technology (Voxels) I have not found anyone that can do this or anyone who even remotely has an idea how to do this on this scale. That on it's own raises questions does it not? I really don't want another no mans sky ... but I do want to know that this stuff really is possible so a little insight in to the tech would be really nice to have if the devs over at NQ are in a sharing mood (just a little technical peek ... please!).
  4. Hmm ... might have to do some digging through the SE code ... see if that lends any interesting light on the subject. Thanks for that, didn't know it was Open Source
  5. Baking a construct takes processing time, and I fully understand LOD (as I previously stated I am a developer myself). I think you're missing the point I was making that this is not so much unachieveable on a small scale and with a few tricks but more a problem of large scale. If 100 people are working on a large space station visible from a nearby moon say, the changes would be insane and thus trigger lots of "re-baking", the cost would quickly result in a ton of network traffic to communicate the baked changes to each of those 1,000 people looking at the object from nearby. You can "cheat" by basically making a few assumptions in code but the problem is still a pretty immense scaling issue. that said, if Microsoft can convert the whole of Wikipedia from English to Russian in 1/10th of a second i'd really love to know what DU can do in the same time
  6. Ok i'm a developer myself, oddly enough this is my dream and I have been crunching this problem for years trying to wait out hardware that can handle the kind of workload involved here so please don't take this as an insult but I'd like to see some rationality here as to how this really works (although I accept that there's some reasonable limits due to IP protection on your part). So gut feeling here ... Take Minecraft and smarten up the voxel tech a lot adding LOD and lets face it much better volume management (that should help it scale a little bit) and then allow the creation of multiple "volumes" within the game world. Lets put some real numbers in to this to exlain the problem I am facing ... Take the moon (that's 3474km in diameter), now lets assume that the voxel data is the same as Minecraft's where "each voxel is 1 cubic meter" so you need a volume of 3,474,000^3 which is a total of 41,926,580,000,000,000,000 voxels to represent the moon (ever seen a planet that small? ... hmmm, no i heaven't either). Lets be reasonable about this ... Even at 1 bit per voxel that's a lot of data to crunch but the reality here is that you would need more than just 1 bit per voxel, with the bulk of voxel engines I've seen or written using at least 1 byte usually 2 per voxel. Taking a "non uniform object" example ... In one of the videos you guys said the space station was 4km in size (so that's a cubic volume of 64,000,000,000 voxels asusming I did my math right), even that seems to raise a few red flags for me but that volume is mostly empty space so i'd estimate you're using maybe an 8th of that or less but that's still a station with actual values for maybe 8,000,000,000 voxels. I just bought a brand new nVidia 1080 GTX graphics card and even if I have that crunch the numbers on each of its 2.5k+ gpu cores it's still going to busy for some time handling that amount of raw data for a whole scene so it's unlikely any client ever sees that raw data instead there must be some magic going on on the server to only send "mesh data" / some form of "view data" from a given view of a volume at a given LOD. Doing that though, puts a hell of a lot of computation on the server farm when you have say 1,000+ players all editing stuff in a small area all that computation is going to get pricey, and farming that load only adds network traffic and the need for more copies of that data to reduce data access overheads! ... Speculation: A view of a "planet" is generated by using a fractal algorithm that describes the shape at varying levels of detail depending on how close you are and then any changes are applied to that using some clever "this 1 Voxel change isn't visible here but that 1,000 Voxel change does X" type algorithm. The raw Voxel data is only stored when edited / player created ... but that could get expensive over time as Voxels are easily editable and very fast raising the question is this a sustainable platform or is there some plan to "retire old data"? Large "ships" / "stations" are beyond me ... you can't "algorithmic-ally compute" those so how does this all work without going beyond the laws of physics for computing the data or network load? ... The raw numbers are massive but computers are good with raw numbers and large data sets so the problem appears to be "interesting" to say the least. The closest we have seen to this is something like Everquest Landmark and the failed Everquest Next project, those games were built on the Voxelfarm engine. http://www.voxelfarm.com/ I once had a discussion with the Creator of Voxelfarm by email when doing some research in to Voxel engines (I was debating writing my own or using one someone else wrote to build a pet project) and 2 key points came out ... 1. Small or big, apparently doesn't matter if your search algorithm is smart enough you have a fixed cost (but that lost me) 2. Physics is where it gets hard not simply drawing! I tried landmark out but it suffered from some serious limitations ... 1. The sharding issue (to handle the network load) which you have somehow solved (or claim to) yet not even the eve team with it's years of experience has cracked that particular problem (simulations don't count). 2. The game ran slow, even on a high end PC typical frame rates were poor <30 fps was normal (although I admit I was playing with it in beta) 3. Persistence just didn't happen ... I would dig a tunnel, walk away from it, come back ... and the hole is gone! ... and why ... disk space is expensive when you need that much of it. 4. The raw numbers here just don't add up unless you have massive voxels (like greater than 10 cubic meters) or you have a chunking algorithm that can spread the load over many servers (something landmark didn't do), the problem there of course is network load leading back to point 1. ... So i'd like to ask for more details on how this actually works as looking at raw numbers for Voxel data clearly is not helping me and you guys must have some answer to this raw scale problem! FYI: I wanted to pledge during the Kickstarter and this is the reason I haven't yet ... really hoping you guys can put my mind at ease as I'm seriously considering pledging enough to get me alpha access (if that's still an option).
×
×
  • Create New...