Jump to content

Recommended Posts

Posted (edited)

Hello, I originally started writing these functions in autoit, because of how easy it was to debug my code (the algorithms are actually implemented in php, though the same functionality could be used without conversion by using aucgi).
 
My original intended purpose for these functions was to allow my web server to calculate if a player was between two points(inside a "region") in a game(minecraft).
 
Currently my functions can do the following:

  • Calculate the absolute distance between two points
  • Calculate the volume between two points(to the nearest whole number)
  • Calculate all points between two points, including their volume(to the nearest whole numbers)
  • Check is a point is between two points(to the nearest whole number)
  • ​(Maybe more I haven't though of?)

I then expanded on the code to add some additional functionality. This code could be used with little modification to create a voxel style game engine. (It could actually even be further modified to support decimal values, though this would significantly slow it's performance exponentially per decimal place, though this shouldn't be necessary, except in rare cases such precision collision detection[ex: detect if a bullet hit a player or npc])
 
I encourage everyone to submit your modifications/optimizations to my code so everyone can use them. I know my code isn't perfect, and it's functions could be expanded on with the right knowledge(things like collision detection, world generation, etc).
 
If you use any of my code in your project, please link to this page! And while not required, I would like it if you please linked me to your project, I love to see my code in use!
 
So finally here's the code(including examples of all functions being used):

voxel.au3

Edited by nullschritt
Posted (edited)
Known Bugs:
  • Second set of coordinates cannot = 0,0,0
  • -> (Fixed by conditionally swapping values)
  • Quick count does not accuratley return the volume.
Edited by nullschritt

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...