• What are you working on? v66 - February 2017
    558 replies, posted
[QUOTE=Goz3rr;51820238]Greenlight was a one time $100 fee letting you submit as many games as you want, Direct will have a fee per submission[/QUOTE] That doesn't change anything, i didn't check this for myself but how many trash games actually ended up on steam while being the first and only submission by the developer? This makes it only worse in fact, if you have to pay some amount of money and know it will not go trough any quality control, it actually encourages trolls.
CUDA's 7.5 runtime added support for half-precision 16-bit operations, and on Pascal architecture this should conform to decent enough precision during instruction execution. the "cuda_fp16.h" header includes all the intrinsics you could ever want, in a number of rounding modes, and includes loads of conversion functions. It gets cooler though, because then each CUDA core on a Pascal chip can perform 2 16-bit instructions per cycle (in many cases, if you use the right intrinsics iirc), and loading from texture memory and writing to texture memory is LOADS faster. This was going to be the only real bottleneck in my program, as the only way for me to make it so that you didn't need to program any CUDA code at all while using this library was to have each C++ module launch its own kernel and keep 2 texture objects (one for reading, one for writing). So, in order to step between modules, I have to perform pretty costly allocations and memcpys before launching the kernel :/ My partner has disappeared, though. I emailed him asking if he could get some sort of utility for saving cudaTextureObject_t's to a file, so that we could debug things and such, but he's not gotten back to me. I really need that, too, as I spent most of the day writing two generator modules and figuring out how to get (nearly) language-agnostic wrappers around CUDA kernels working.
[QUOTE=cartman300;51818622]And in my opinion, the current 30% cut from steam is ridiculous. But that's another story.[/QUOTE] The 30% cut is pretty industry standard for a distribution platform. People tend to forget what a huge service a platform like Steam provides to developers. Hell, back in the day it was not uncommon for publishers and physical distributors to take over 80% of the sales price.
[QUOTE=false prophet;51820223]I didn't expect AABB collision detection to be so easy to implement in a 3D world. [edit] left two words out[/QUOTE] I mean, it's literally just an extra pair of checks compared to 2D
Visual studio judging me for not knowing what functions do [img]https://i.gyazo.com/f2b41ca7091bab1afae23bc8d8c0abd7.png[/img]
"Hey, maybe I should try blending between multiple vowels instead of playing just one!" [vid]https://my.mixtape.moe/kiecmn.wav[/vid] :disgust:
[QUOTE=WTF Nuke;51815579]Well to be fair every compiler spews the error up from the point of error (i.e. when the error actually occurs) to the code that calls it erroneously. Cutting out all the in between steps can be bad because then it doesn't produce an actual trace, and showing all the steps can result in hundreds of lines of errors that most people don't know how to interpret. Hence why we have been praying for concepts for the last 20 years. Another way to reduce the spew is to write template code that errors out on incorrect templates early, but it can be really hard and also really annoying. Sometimes it's impossible to know that there will be an error until all the instantiation is done.[/QUOTE] I try to emulate it with type traits, but some things you just don't really want to (or can't) define a type trait for. Also [i]very[/i] notable that static_assert isn't SFINAE safe, for example, std::make_signed on MSVC will throw a static assert if you feed it a non-number (which is pretty helpful and allowed, since the spec says this is UB), but if you do: [code]template<typename T> std::enable_if<std::is_integral<T>::value, std::make_unsigned<T>::type>::type my_function(T const &value)[/code] std::make_unsigned<T>::type is obviously evaluated before the enable_if is even considered, and static_asserts aren't an SFINAE error, so it escapes and errors if you try to call my_function(0.0f) even if you have an overload for that case. And that's why my "standard" library has a wrapper for make_unsigned which just lacks ::type for non-integrals :v:. Does result in garbage errors if you mess up though. [editline]14th February 2017[/editline] My main problem with MSVC's error output is that has apocalyptically bad error recovery, but someone thought it was [i]really[/i] good and didn't think to make it stop on most errors. End result: 1 simple type error = 100 error avalanche. Doesn't help that the 100 error limit doesn't entirely work and it can get to the point of the entire IDE lagging under thousands of lines per second of errors being thrown at it, or an internal compiler error if a template too many is involved. Their error recovery even replaces types with int instead of the usual <error> type in some circumstances, which can make it difficult to figure out what's going on. Oh and the fact that it often turns a pretty simple template error into 50 lines. I'm honestly scared of breaking the entire IDE if I resize the output window appropriately (even though that has actually never happened, it just feels that fragile) so I often end up pasting it into a text editor. Not a huge loss since it doesn't even have any fucking highlighting anyways. [editline]14th February 2017[/editline] Oh yeah and the "Errors" pane isn't fucking sorted by error order, so due to the ""recovery"" it's basically useless, if I'm knee deep in developing something there can be 1000 lines of warnings since template warnings are just as verbose as template errors (most warnings boil down to "oh my god they used FLOATING POINT", since my timing functions tend to return doubles). The error pane lets me hide those.
Spent hours trying to center a winform textbox in code before I discovered anchors. Snarf snarf lion-o
[QUOTE=Tobba;51821531]I try to emulate it with type traits, but some things you just don't really want to (or can't) define a type trait for. Also [i]very[/i] notable that static_assert isn't SFINAE safe, for example, std::make_signed on MSVC will throw a static assert if you feed it a non-number (which is pretty helpful and allowed, since the spec says this is UB), but if you do: [code]template<typename T> std::enable_if<std::is_integral<T>::value, std::make_unsigned<T>::type>::type my_function(T const &value)[/code] std::make_unsigned<T>::type is obviously evaluated before the enable_if is even considered, and static_asserts aren't an SFINAE error, so it escapes and errors if you try to call my_function(0.0f) even if you have an overload for that case. And that's why my "standard" library has a wrapper for make_unsigned which just lacks ::type for non-integrals :v:. Does result in garbage errors if you mess up though. [editline]14th February 2017[/editline] My main problem with MSVC's error output is that has apocalyptically bad error recovery, but someone thought it was [i]really[/i] good and didn't think to make it stop on most errors. End result: 1 simple type error = 100 error avalanche. Doesn't help that the 100 error limit doesn't entirely work and it can get to the point of the entire IDE lagging under thousands of lines per second of errors being thrown at it, or an internal compiler error if a template too many is involved. Their error recovery even replaces types with int instead of the usual <error> type in some circumstances, which can make it difficult to figure out what's going on. Oh and the fact that it often turns a pretty simple template error into 50 lines. I'm honestly scared of breaking the entire IDE if I resize the output window appropriately (even though that has actually never happened, it just feels that fragile) so I often end up pasting it into a text editor. Not a huge loss since it doesn't even have any fucking highlighting anyways. [editline]14th February 2017[/editline] Oh yeah and the "Errors" pane isn't fucking sorted by error order, so due to the ""recovery"" it's basically useless, if I'm knee deep in developing something there can be 1000 lines of warnings since template warnings are just as verbose as template errors (most warnings boil down to "oh my god they used FLOATING POINT", since my timing functions tend to return doubles). The error pane lets me hide those.[/QUOTE] The lag due to errors got better in 2017, but unfortunately I'm stuck back in 2015 half of the time working on my CUDA library. The error avalanche is a pain in the ass though. CUDA's compiler can be worse though, when it comes to errors, as it can get really easy to get completely useless error reports without being able ot understand why. I was getting undefined symbol errors when compiling some CUDA sources that include another CUDA source, and the symbol name was crazily fucking mangled. I had included the header, I had made sure the function definition and declaration matched (one nice thing about MSVC/C++ is that those green squiggles make it easy to see when you've messed this up), and so on. Turns out I have to make sure I'm compiling relocatable device code, i.e enabling completely seperate compiliation of all my .cu files and .cpp files, so that the linker is able to actually link together seperate .cu files. Otherwise, everything has to go in one .cuh and one .cu D: Also, intellisense is broke as fuck for CUDA. Since it stops tracking errors after a number of "undefined function/type" errors, I usually have to compile and wait for the nvcc output window to tell me what got all fucked after intellisense just quit. Off this topic though, can anyone recommend some good reference material I could give to my project partner, in the interest of getting him a bit up to speed on C++? He's only worked with MATLAB, a touch of C at the start of this course, and a bit of CUDA to go with that. I'm emailing him a .pdf of the C++ primer, but that's pretty fuckhuge and dense. It'd be nice to help him start understanding things like templates, OOP (esp. virtual/base/derived classes, I use em loads), and other things that will be new to him.
I have been working on some Clone Trooper equipment for my friends Clone Trooper model. Started on the highpoly model of the antenna today still have to add smothing groups and fix some "loops". After that i will add some detail and start unvrapping the model. Some screens: [img_thumb]http://i.imgur.com/ktnq4aT.png[/img_thumb] Highpoly [img_thumb]http://i.imgur.com/mQdUTy7.png[/img_thumb] [img_thumb]http://i.imgur.com/sP4v9qB.png[/img_thumb] Lowpoly [img_thumb]http://i.imgur.com/Yjnuh00.png[/img_thumb] Its not finished so dont tell me that the curves are not perfect :D. And i know its not much but its my first work in 3ds max so im a little bit proud.
It doesn't... it doesn't look like completely arse. What is this? What have I done?! [IMG]https://dl.dropboxusercontent.com/u/9317774/fuckyouguys.PNG[/IMG] I need to tweak the rocks and/or fix the ground colour a little, but still, its not upfrontly hideous Edit: Added normal mapping to add a little more detail to the terrain up close Here it is at a large scale: [IMG]https://dl.dropboxusercontent.com/u/9317774/normal_mapping.PNG[/IMG] Here it is at the scale I've chosen to implement it: [IMG]https://dl.dropboxusercontent.com/u/9317774/mapping.PNG[/IMG] I may tweak the normal maps a little so it has more effect at a distance, or possibly refine it even further so it looks better up close
I wanted to add text drawing outline mode to ShareX before but it was not looking good with default font size which is 18px. But when font size is 50px or higher it looks pretty good. [img]https://dl.dropboxusercontent.com/u/14076298/ShareX/2017/02/ShareX.vshost_Fe7KOMmjWc.png[/img] So if I add checkbox to enable/disable outline mode then it gonna be problem with current default text options. Because most people not gonna be increasing their font size after enable outline mode and after see it looks bad they will just disable it. I'm thinking maybe I should add new drawing tool button for "Text with outline", that way it can have its own default font size and color settings. And users can easily switch between them because current text tool is better for writing long stuffs while this new tool gonna be better suited for few word stuffs.
[QUOTE=Leonpg;51822295]I have been working on some Clone Trooper equipment for my friends Clone Trooper model. Started on the highpoly model of the antenna today still have to add smothing groups and fix some "loops". After that i will add some detail and start unvrapping the model. Some screens: [img_thumb]http://i.imgur.com/ktnq4aT.png[/img_thumb] Highpoly [img_thumb]http://i.imgur.com/mQdUTy7.png[/img_thumb] [img_thumb]http://i.imgur.com/sP4v9qB.png[/img_thumb] Lowpoly [img_thumb]http://i.imgur.com/Yjnuh00.png[/img_thumb] Its not finished so dont tell me that the curves are not perfect :D. And i know its not much but its my first work in 3ds max so im a little bit proud.[/QUOTE] You need to do a bunch of tutorials, no offence but there's serious pinching going on there bad curves it's just generally not good so many issues and I'd like to point out the point of a high poly mesh is to add a bunch of fine details that get baked into a normal map for the low poly it's not just a low poly mesh that's been turbo-smoothed.
[media]https://www.youtube.com/watch?v=rU0PpMUdkEM[/media] Fixed most missing materials and got it reading which sky cubemap to use.
[QUOTE=Radical_ed;51812218][img]http://i.imgur.com/RA44jY9.gif[/img] Working on a game to demo the speed of my Firebase plugin (that's the cloud database on the right)[/QUOTE] [media]https://youtu.be/8ct8LjnnKUA[/media] Here's the data being uploaded on 4g and downloaded via wifi w/ no predictive netcode
[thumb]http://carp.tk/$/LibTech_2017-02-15_02-54-13.png[/thumb] Double buffered render targets!
I managed to finally implement bindless textures. Despite taking a few days, the performance gain is really good. I'm happy with the way my system works now, though it is a bit more complex and if I'm not careful in the future I could wind up breaking a few things. In a nutshell, bindless texturing essentially means that a uint64_t handle is given by the gpu for a texture, which ~= an entire texture sampler (and can be supplied to a shader by several means) The way that I do it is that my material manager class holds a library of sorts on all of the textures it registered, and holds their 64 bit handles. It then feeds this array into an SSBO which can be consumed in shaders. When a model is created, it stores the appropriate material handle array spot ID alongside its vertices, which then gets sent from vertex shader -> fragment shader for each triangle, retrieving the appropriate sampler from the array using this ID spot. With this I'm able to render models so much faster, especially complex ones with many meshes and many textures because each model only now needs 1 draw call.
Hey guys, I'm about to release my library and was hoping you can take a cursory look, see if anything sticks out/looks wrong. I'm also not really sure what the best way to do this is. I was planning on posting on some subreddits, specifically cpp, gamdev, and roguelikedev but I wasn't sure what time to post at, if I should post all at once or stagger, etc. If you guys have any advice I'd love to hear it. Here's a link: [url]https://github.com/Yelnats321/EntityPlus[/url] All that's left to do is add the license (going to use boost I think) and post benchmarks against entityx, which I have an order of magnitude on (I couldn't figure out how to get anax to work).
[QUOTE=WTF Nuke;51824785]Hey guys, I'm about to release my library and was hoping you can take a cursory look, see if anything sticks out/looks wrong. I'm also not really sure what the best way to do this is. I was planning on posting on some subreddits, specifically cpp, gamdev, and roguelikedev but I wasn't sure what time to post at, if I should post all at once or stagger, etc. If you guys have any advice I'd love to hear it. Here's a link: [url]https://github.com/Yelnats321/EntityPlus[/url] All that's left to do is add the license (going to use boost I think) and post benchmarks against entityx, which I have an order of magnitude on (I couldn't figure out how to get anax to work).[/QUOTE] You may want to include a build system other than VS, unless you've decided to only support VS obvs
[QUOTE=Icedshot;51824879]You may want to include a build system other than VS, unless you've decided to only support VS obvs[/QUOTE] It's header only so I didn't feel the need for that, but I will consider it for the tests.
[QUOTE=Canary;51823177]You need to do a bunch of tutorials, no offence but there's serious pinching going on there bad curves it's just generally not good so many issues and I'd like to point out the point of a high poly mesh is to add a bunch of fine details that get baked into a normal map for the low poly it's not just a low poly mesh that's been turbo-smoothed.[/QUOTE] Thank you for the advice but i already know that. I only put the modifiers on to see what i still have to do on the low poly mesh. As i said fixing the N-Gons and adding smoothing groups will fix that. After that i can add the detail you are talking about. As I said in my post above its not finished and i know what i have to fix and add.
[img]http://i.imgur.com/kf1GAQi.png[/img] I'm like a rock throw away from nailing shadow maps, just a few issues (like for some reason the bottom isn't being cast). And for some reason normals are all borked, because the shaft should not be darker (but the normals are fine in Blender). It's like one thing gets fixed and then two unrelated problems happen next..
I've implemented dynamic texture replacement. The rocks themselves have no texture specified in the .mtl, only a diffuse colour (in 2 objects). When loaded, the loader creates a 32x32 texture with a cache name of "CACHE" + to_string(r) + to_string(g) + to_string(b). Rocks have caching enabled (as all rocks of a type are the same, and do not need unique textures), which means that if I just fetch the green texture for any rock, and make it instead *brown*, all of that green colour is patched out for brown for all rocks (as long as its specified as a kD not a texture) Cool! [IMG]https://dl.dropboxusercontent.com/u/9317774/rocks.PNG[/IMG] I may implement a materials editor to allow me to dynamically fiddle with this sort of thing. Or not. I'm still not sure on the rocks, but its time to stop fiddling with the map editor and pull all this into the game. Also, due to the lack of objects in the sky, this map (even though significantly more detailed than the test map) will be significantly faster to render, which is both hilarious and super useful
So our friendly neighborhood alt maker Verideth finally released his [url=https://github.com/Verideth/Voxel]Voxel Engine[/url]! Unfortunately it's [url=http://glua.site/verideth.html]not his[/url] and won't admit it.
[QUOTE=MeepDarknessM;51828747]So our friendly neighborhood alt maker Verideth finally released his [url=https://github.com/Verideth/Voxel]Voxel Engine[/url]! Unfortunately it's [url=http://glua.site/verideth.html]not his[/url] and won't admit it.[/QUOTE] Jesus Christ, with all of that effort spent trying to pass it off as his own, he could have just fucking learned how to do in the first place.
[QUOTE=MeepDarknessM;51828747]So our friendly neighborhood alt maker Verideth finally released his [url=https://github.com/Verideth/Voxel]Voxel Engine[/url]! Unfortunately it's [url=http://glua.site/verideth.html]not his[/url] and won't admit it.[/QUOTE] Some quality code there in one of the files [url]https://github.com/lokeshguddu/OpenGL/blob/28f57a2354ba93d56c82249bfe93a3b1aeb51e90/assimp/bin/Debug/opengl.cpp#L140[/url] [cpp]if(1000.0/30>SDL_GetTicks()-start) SDL_Delay(1000.0/30-(SDL_GetTicks()-start));[/cpp] If rendering took less than 33ms (30fps), delay until that amount of time. *twitches internally*. Even if you were going to do lockstep this is still the worst way to do it, you're delaying 33ms after rendering rather than delaying just before rendering (which means that any game logic in the future will massively slow down your game). Even then, your game process/thread/function should run lockstep, and then do rendering with interpolation/prediction. Or just anything other than this. I really don't know why you would build a lockstep game, unless you really just love 30fps Not verideths code though, that seems fine in terms of render loops at least. Although I have to say, I really struggle to care about someone borrowing terrain gen and gl init code, its the most generic boring code there is. Terrain gen particularly (random functions) are often very cargo culty and direct c+p is often the best bet. On top of that, I'd flat out nick someone elses code if i needed to do cl/gl init, and I have in the past (with attribution these days, but not back when I was newer at coding and less commercially minded) For an interesting explanation of why some terrain gen functions work well (perlin turbulence), there's an interesting paper where they essentially rederive a perlin noise turbulence function but from a physical perspective, if you want to kick some of that cargo cult in the face [url]https://www.cs.cornell.edu/~tedkim/wturb/wavelet_turbulence.pdf[/url]
[QUOTE=MeepDarknessM;51828747]So our friendly neighborhood alt maker Verideth finally released his [url=https://github.com/Verideth/Voxel]Voxel Engine[/url]! Unfortunately it's [url=http://glua.site/verideth.html]not his[/url] and won't admit it.[/QUOTE] You'd get some of these by following tutorials or getting boilerplate code from somewhere (those perspective constants appear in some of my stuff too), but I agree that he's at the very least [I]very[/I] much overstating his achievements. [editline]16th February 2017[/editline] [QUOTE=Icedshot;51828841][...] Not verideths code though, that seems fine in terms of render loops at least. Although I have to say, I really struggle to care about someone borrowing terrain gen and gl init code, its the most generic boring code there is. Terrain gen particularly (random functions) are often very cargo culty and direct c+p is often the best bet. On top of that, I'd flat out nick someone elses code if i needed to do cl/gl init, and I have in the past (with attribution these days, but not back when I was newer at coding and less commercially minded) [...][/QUOTE] I personally think that's one of the more interesting parts, but that implies having an interest in the underlying mathematical models and not just in using it.
[QUOTE=Tamschi;51828854]You'd get some of these by following tutorials or getting boilerplate code from somewhere (those perspective constants appear in some of my stuff too), but I agree that he's at the very least [I]very[/I] much overstating his achievements. [editline]16th February 2017[/editline] I personally think that's one of the more interesting parts, but that implies having an interest in the underlying mathematical models and not just in using it.[/QUOTE] RNG functions like (((x >> n) * somenumber) << m) / bignum or whatever, then performing linear interpolation in 2/3d on the result, then accumulating different frequencies is super uninteresting (at the basic level, its cooler once you get more advanced) IMO. Often the magic numbers are picked for somewhat arcane reasons (LCG stuff). That's basically what veredith's got going atm I've personally spent quite a lot of time fiddling around with terrain gen from my area of gpu wavelet turbulence and called-perlin-but-actually-value noise from that old website back in the good old days that used to be the top result, but if you don't know what you're doing it can just be simply frustrating as there's a bunch of trial and error as to what looks good visually, eg often you want to skip a few octaves or reweight the octave accumulation, or weight your x/y/z coords with low frequency noise to produce smoothly varying terrain
So, I've started a side project that could be a ton of fun. The plan is to mix the gameplay of Towerfall: Ascension with the visuals and dark humor of LISA, roll it into a fun campaign based platformer with co-op, then release it on Steam for shits and giggles. I've only written a simple test so far: [IMG]http://i.imgur.com/UBSm9ra.jpg[/IMG] Thoughts? I feel like the art style is overdone, but I'm having fun being able to make tons of ridiculous characters at a time.
[QUOTE=MeepDarknessM;51828747]So our friendly neighborhood alt maker Verideth finally released his [url=https://github.com/Verideth/Voxel]Voxel Engine[/url]! Unfortunately it's [url=http://glua.site/verideth.html]not his[/url] and won't admit it.[/QUOTE] Why does he keep claiming that he made things in like 3 hours
Sorry, you need to Log In to post a reply to this thread.