Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

580 Good

About KuroSei

  • Rank
  1. KuroSei

    Best comment ever

      Hu. I didnt know you could do a static assert inside a union/struct etc. :| Neat, i always love it when i learn something new. :) Now i only wish i could change the compiler warning regarding non-trivially_copyable types. Saying e.g. the destructor is deleted is unfortunately uninformative if you dont know unions.   Back to topic: Too bad. I will have to remove the comment now. :P
  2. KuroSei

    Best comment ever

    I just found that little gem in a collaborative hobby project.   /** @brief Enables easy access to bytes in a struct for array/struct conversion. @details stype should be trivially_copyable. Its your duty to make sure it is. Otherwise you might be in undefined-behavior-land, which is - trust me on that - not a amusement park. @tparam stype The type to be wrapped. */ template<typename stype> union Bytes { stype data; unsigned char bytes[sizeof(stype)]; }; I dont know if that is good style (its in a "details" namespace) but its quite convenient to have something like that.
  3. KuroSei

    Lighting voxel planets

    I'd either assign each face a light value or each vertex and blend them for smoother lighting depending on the number of vertices. Per vertex close up, per face a little farther out maybe?   To calculate light levels a modified flood fill should work just fine if you dont have to many light levels.
  4. Hello fellow gamedevs,   i have a quick question regarding gesture recognition and hope for some of you to be better informed than i am. (Which is most likely the case.)   What i did first: Me beeing new to the field at first took a very naive approach, sampling my sensor x times per second and then did a likelihood analysis (via  a Levensthein adaption) - which was painfully slow and not really robust (for obvious reasons).   What i do now: My new approach differs quite a bit of that. Now i have a list of sensor data, a time value how fast the state has to be reached to be satisfied and a fuzzyness factor.  Every samplepoint in my list then basicly acts as a state and i store which state was last satisfied. A state is satisfied, as soon as its predecessor is satisfied (state -1 is always) and we reached its ancestor in the given time without leaving the capsule spanned by the two samplepoints and the fuzzynessfactor(as radius).   The question(s) beeing... Does this approach have a name so i can do some readup on that? I am not very well acquainted with the terminology as many of you might have guessed by now, so i couldnt find anything so far. Also: Does this even sound like a feasible approach? It works for very simple gestures and i am currently in the process of testing more advanced ones, but it also clearly has its shortcomings...     I hope someone is able and willing to help, if you need more information i will provide this as soon as possible. Thanks in advance and warm regards, Kuro   PS: I almost forgot to tell! My sensor data is continous and clamped (since its angular data). Positional data is also planned but should work similar.
  5. You have no clue what you are getting yourself into.:)   As far as i know there is no such thing as a "(M)MORPG Do-It-Yourself-Development Kit for Dummies". Multiplayer Games are hard work. Multiplayer realtime 3D games are even harder. Further you arent really specific in your needs at all. The needs of a Shooter might differ greatly from those of a ... say RTS. Thus the engines would differ greatly in terms of rendering mechanics, networking etc.   I am with no means an expert on this topic though and i might underestimate your expertise greatly by packing you with the cliche "I want to write an awsome multiplayer game after i mastered HTML now!" guy... I Also dont mean to discourage you in anyway. Its just... if it fails - which has a great chance to be the cas specially in a 5 year project - you possibly wasted a lot of time for nothing. Of course: You can learn a lot in the process if you do it right. But if learning isnt the goal than it is better achieved by smaller projects where failure isnt such a great trigger for frustration.
  6. KuroSei

    When you realize how dumb a bug is...

    Exporting a tree-structure as a visual output to another tool from a tool that doesnt provide positional data... So yeah... Calculate them from the structure. Not that hard to do, right?   But i wasted like a shitton of time because the target tool had the undocumented feature to set everything with a x or y coordinate of 0 (totally valid value...) to 100 / 100. Searched for ages in my code and then just tried adding 1 to everything... and suddenly it worked. Biggest derp in my recent programming carreer. :/
  7. KuroSei

    Voxel Rendering Engine Tips

      This is not quite true, honestly. Polygonbased voxel rendereres are still the fastest you can get at the moment with the graphics pipeline beeing optimized for such.   Sure, if you have tiny tiny cubes you've got a lot of stuff to render, but you can batch and optimize. Merge larger faces etc. That isnt too complex, especially if you use appropriate datastructes like an octree. In fact with an octree you got the "merged faces" as a bonus to the (in case of a sparse tree) really compact (comparably) memory usage. If you want to get smooth you could as well roll with something like marching cubes (beeing the most known) or move to even more sophisticated algorithms like surface nets or other dual algorithms which optimize mesh topology to some extend.   With my (arguably modest) testing on this subject i found Polygonbased Voxel rendering to be a lot faster than the given alternatives like raytracing/marching etc.
  8. Not so much of a "Boy, how cool", but i dont want this thread to die. :P So... My most recent accomplishment was a first running version of a iso surface extraction algorithm i thought of and implemented from scratch. The results are (almost) equal to those of the marching cubes algorithm, but since my algorithm extracts and then triangulates pathes from a grid LOD should be easily implementable ( Which i will have a look into soon. ) :P So far its running pretty fast concerning its a very naive approach and just meant as a prove of concept... But a remake is in the forge atm and its goin good :P "Complex" cases like a 6-Node Path are simplified atm thus details are lost, but this method (with the right implementation) Also allows for sharp features as tested with rotated cubes. This is a little fiddly, tho :P   I would post a picture of it, but as wireframe its just messy ( As usual: Iso surface with shit tons of triangles ) and i didnt implemented lighting for it yet so its just a clump of... well... Colored Triangles... Every color beeing the same. :P If there is intereset i might post more details or try to implement a quick and dirty lighting solution for actual usefull pictures.... ^^"     DONT DIE, THREAD! The world needs peo... topics like you! (Or at least i do, against the boredom!)
  9. It is indeed for generation on the CPU but i guess it still applies for the GPU. Problematic with this approach is btw that you would need to implement a volumebased physicsengine or a physicapproach on the GPU that works with your extracted meshes etc. Its hard to do, i think, if you need physics, that is.   But i didnt implement any of those algorithms on the GPU and i dont plan to, so i cant help that much with that. I just wanted to point you to some maybe helpful things :)
  10. Well its a set of lookup tables. I guess its not that important that it is super-readable and it serves its purpose well as is.
  11.     How much control? Depends on your noise of course. You can do pretty amazing things with multiple noise steps and some pseudo randomly distributed precalculated models like e.g. trees. Youtube has some nice vids to that. If you go for only perlin noise for example you have persistence, frequency, etc. as parameters to play with and your seed as a starting point.   When it is generated you dont need to know the info, do you? Otherwise: Voxelspace -> Worldspace calculations.    LOD... Thats tricky. Its of course possible e.g. by means of the Trans Voxel Algorithm as proposed by Eric Langyel. http://www.terathon.com/voxels/ But the topic is not as trivial as it should be. I am fiddling around with it, myself. :P
  12. KuroSei

    Performance Regression

    If I am not totally mistaken you could calculate that without the loop entirely. 3 * (n+1) * (41 * n + 304) and the result divided by 200 where n is the upper limit for the loop. Plus I'm not sure wether you even need those values or simply used the equotation for testing. :X I'm quite tired so sorry if I'm offtopic. I made some testing: I am mistaken. You need to use n-1. For n = 10 i get 100.94 period9 and with my equotation for n=9 i get 100.95 With ( 3*n*(41*n+263) ) /200 i get 100.95 for n = 10. It also checks for other values, so i guess Its fine now. X)
  13. KuroSei

    Quick question about the language

    I worked myself through the any-addon. It seemed quite hilarious what effort one has to put in, but now that it works, its not as bad as i thought at the beginning. The mechanics are quite simple but thats what makes it hard for me to comprehend. Anyway, keep up the nice work, Andreas. I fell in lvoe with angelscript, even tho i rly feel kinda stupid sometimes. Well, thats life, isn't it?
  14. KuroSei

    Quick question about the language

    I will look into that. Thanks so far.
  15. KuroSei

    Quick question about the language

    I encountered a similar problem. It has to do with "lamba" arguments and is exactly what you encountered, i guess. The problem is, that i need to store the reference. Simplified my problem is this: I have a "generic" List e.g. ParamList. It has the method void " addParam(void* param, int tId); " registered as " void addParam(const?&in) ". Calling the Method works fine. The reference works okayish in the addParam method itself. My problem is, that i need to store the reference. Three ways to do so now, i guess: 1. ParamList par(); string foo="345"; par.addParam(bleh); BaseEntity@ ent3=System.instanciate("AbstractNPC","AbstractNPC @AbstractNPC(int,string)",par); Works fine, as long as i use the Parameter list in the scope in that foo exists. But when i store the ParamList for caching issues or stuff it kinda breaks. 2. A Wrapper of a reference type like the any addon around the parameter itself ( Like addParam(any(param)); ) 3. Registering an interface of the ParameterList and writing a scriptClass implementing that Interface. It would automaticly increase the reference count then if i stored it there. But im not very comfortable with those solutions. I wonder if there is a better way, or if i can register the addParam method in a different way so the copy of the reference wont be destroyed when the lamba goes out of scope. Help me, oh grandmaster of angelic scripting, I need your wisdom and swear to obey. ._. Really, im crawling around the source for some time now and I am growing tired of this problem. I would simply copy the contents if it wasnt a void* i got there. Makes allocating memory hardly possible, ka?
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!