<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Disqus - Latest Comments for snake5</title><link>http://disqus.com/by/snake5/</link><description></description><atom:link href="http://disqus.com/snake5/comments.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Tue, 03 Jul 2012 10:21:57 -0000</lastBuildDate><item><title>Re: #AltDevBlogADay » Matrices, Rotation, Scale and Drifting</title><link>http://www.altdevblogaday.com/2012/07/03/matrices-rotation-scale-and-drifting/#comment-575248212</link><description>&lt;p&gt;Couldn't the usage of different cache lines from a SoA layout like this - ({position,rotation,scale} array, {matrix} array) - help with the performance problems?&lt;/p&gt;&lt;p&gt;Also, what can a scene node represent? Is it any bone in a scene or just the whole character or something else?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 03 Jul 2012 10:21:57 -0000</pubDate></item><item><title>Re: #AltDevBlogADay » Matrices, Rotation, Scale and Drifting</title><link>http://www.altdevblogaday.com/2012/07/03/matrices-rotation-scale-and-drifting/#comment-575204068</link><description>&lt;p&gt;By "editable" I didn't mean the editor, just that they will be used the same way they're used in an editor.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 03 Jul 2012 09:11:08 -0000</pubDate></item><item><title>Re: #AltDevBlogADay » Matrices, Rotation, Scale and Drifting</title><link>http://www.altdevblogaday.com/2012/07/03/matrices-rotation-scale-and-drifting/#comment-575187853</link><description>&lt;p&gt;Why are you storing editable transform data as a matrix? Seems somewhat counter-intuitive since it's much easier to work on position, rotation and scale separately and update the matrix only when any of those are changed.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 03 Jul 2012 08:42:08 -0000</pubDate></item><item><title>Re: #AltDevBlogADay » Comparing Floating Point Numbers, 2012 Edition</title><link>http://altdevblogaday.com/2012/02/22/comparing-floating-point-numbers-2012-edition/#comment-445580836</link><description>&lt;p&gt;There's nothing quite like trying to debug a precision problem in CSG code in the morning. Epsilons do indeed suck and it seems like you have found the answers to the problems I've had before. Thanks for the awesome series of posts.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Wed, 22 Feb 2012 02:44:50 -0000</pubDate></item><item><title>Re: Skin Shading in Unity3d « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/12/31/skin-shading-in-unity3d/#comment-397764147</link><description>&lt;p&gt;If I had access to my collection of movies, I'd show you something - SSS is a lot stronger with refracted light (opposite to viewing direction). EDIT: looks like Wikipedia has a good example: &lt;a href="http://upload.wikimedia.org/wikipedia/commons/0/0b/Subsurface_scattering.png" rel="nofollow noopener" target="_blank" title="http://upload.wikimedia.org/wikipedia/commons/0/0b/Subsurface_scattering.png"&gt;http://upload.wikimedia.org...&lt;/a&gt;&lt;br&gt;Here I see SSS on the nose which also isn't really the right place for that - there's a bone or two immediately under the skin.&lt;br&gt;Also, the color used on the light-shadow transitions isn't the right one - with my almost-perfectly-white cell phone light, I get something a bit closer to orange with my fingers. For the record, the color of my skin is just as white as that of your test model.&lt;br&gt;And finally, in terms of specular, you need more fresnel there. Skin's fresnel data is quite close to that of asphalt. At the moment what you have there is the specular that my working desk would produce.&lt;/p&gt;&lt;p&gt;It's amazing how things can be discovered just by putting one's hand between one's eyes and the monitor... :)&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 31 Dec 2011 02:03:37 -0000</pubDate></item><item><title>Re: Awful Lot Of Heterosexuals Around Here. « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/12/15/awful-lot-of-heterosexuals-around-here/#comment-387399070</link><description>&lt;p&gt;Someone has probably said something like this here but I'll try:&lt;/p&gt;&lt;p&gt;1. I don't care what kinds of characters I see in the game as long as they're not different than the game world. Sorry, but I'm having a hard time imagining an LGBT adventure game hero. Feel free to throw concepts at me to help me share your opinions.&lt;/p&gt;&lt;p&gt;2. The relation between people of different sexualities makes everything just fair. Not every third game is about gay people and not every third person in the world is gay. In any case, everything's getting better than it was before.&lt;/p&gt;&lt;p&gt;3. The only way people could currently buy this is the introduction of the concept through other, familiar concepts. As many have pointed out in IMDb's forums of various gay movies, one of the gay characters are often more feminine than the other and that's what makes it OK (understandable) for most people. Don't forget that heteros aren't gay and they will never really know what it means to be one.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Thu, 15 Dec 2011 12:52:01 -0000</pubDate></item><item><title>Re: Awful Lot Of Heterosexuals Around Here. « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/12/15/awful-lot-of-heterosexuals-around-here/#comment-387369555</link><description>&lt;p&gt;Sam Fisher and Harry Mason both (and perhaps more of them) have kids. How would you spin that with gay characters?&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Thu, 15 Dec 2011 12:23:33 -0000</pubDate></item><item><title>Re: No One Cares About Your Cool Game Idea « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/12/04/no-one-cares-about-your-cool-game-idea/#comment-378837987</link><description>&lt;p&gt;I have to agree - this is a great post - even though the theme is heard a bit too often lately, I did still read and enjoy reading it.&lt;/p&gt;&lt;p&gt;Here's perhaps some of my gross inability to quickly get a job speaking but I'll let it out anyway: most of these 'idea people' (those who don't think about the practical side at all) don't really want to be game developers, a huge part of them don't even really want to see their idea become a real game; they're often just people who aren't satisfied with whatever the market offers at the moment and they want more of something or.. what they really want is power to influence something. So if they can't get to the same conclusion after so many warnings already, they're not cut out to be game developers, at least - not yet.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sun, 04 Dec 2011 03:26:16 -0000</pubDate></item><item><title>Re: IEEE 754 multiplication and addition « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/12/01/ieee-754-multiplication-and-addition/#comment-376616011</link><description>&lt;p&gt;Spotted something odd in the first piece of code:&lt;br&gt;- declaration and initialization of zFrac is missing;&lt;br&gt;- (line 25) assuming it's also u32, "zFrac &amp;amp; 0xFFFFFFFF" wouldn't do anything special i.e. it would just be the same as "zFrac".&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Thu, 01 Dec 2011 07:24:17 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/11/29/review-scores-%e2%80%93-they-are-bad-so-let%e2%80%99s-fix-them-%e2%80%93-ok/</title><link>http://altdevblogaday.com/2011/11/29/review-scores-%e2%80%93-they-are-bad-so-let%e2%80%99s-fix-them-%e2%80%93-ok/#comment-374696535</link><description>&lt;p&gt;They're supposed to give the harshest possible opinion. Many years ago, it was exactly what critics did and how they got the name - they criticised. Now all they do is generate biased hype. Why biased? Because a game that most thinking users rate lower than 6/10 gets a 10/10. And for what? In the case of GTA4 and Gamespot, the score was generated from minigames (which most experienced gamers didn't really enjoy, by the way).&lt;/p&gt;&lt;p&gt;P.S. If something is constantly inaccurate, it is also, by definition, broken.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 29 Nov 2011 00:12:17 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/11/12/ill-just-refactor-that/</title><link>http://altdevblogaday.com/2011/11/12/ill-just-refactor-that/#comment-361923343</link><description>&lt;p&gt;I find myself not using the word most of the time and I think it's for a good reason - "refactor" now seems to simply be an euphemism of "rewrite", thought up to keep the executives from having a no-progress nervous breakdown.&lt;br&gt;But the word without these new meanings would just die - just think how often cleaning up bits and pieces of code is considered something special, not as something coders just do (as a normal part of their job). And changing variable/function/type names for clarity? Probably never, until the word showed up...&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 12 Nov 2011 12:04:34 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/11/06/our-responsibility-towards-training-the-next-creatives/</title><link>http://altdevblogaday.com/2011/11/06/our-responsibility-towards-training-the-next-creatives/#comment-357108319</link><description>&lt;p&gt;Just like you, I have found out that the only way to become better at what I do is to acknowledge that what I've done just isn't good enough. Even if it is, at least for me being above average (ain't that a popular term? &amp;gt;_&amp;gt;) or to be anything else, I still need to accept it's not enough and move on. This actually goes a bit further than just listening to some truthful opinions but I figured that since I don't have really that many opinions to listen to, I might as well shift my own in the direction of progress.&lt;/p&gt;&lt;p&gt;Anyway, this post was very interesting to read for me, particularly because I haven't thought much about being at the saturation point, even though I find way too many worse-than-mediocre programmers getting jobs everywhere. But truth bombs are always a good idea. I can only wish I had more of them.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sun, 06 Nov 2011 14:44:35 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/31/type-names-matter/</title><link>http://altdevblogaday.com/2011/10/31/type-names-matter/#comment-352947276</link><description>&lt;p&gt;I used the word "like" to imply that such changes as "string" -&amp;gt; "name" are nowhere near making the code more readable. Quite the opposite for some, in fact.&lt;/p&gt;&lt;p&gt;Unreadable code, in my opinion, would not only be code that uses near-obfuscated type names but also a heavy lump of OO code that has more internal two-way dependencies than a state-of-the-art skyscraper. It would also be code that uses hideous naming conventions like Systems Hungarian, or useless m_, g_ prefixes - anything that distracts from the real meaning of code.&lt;/p&gt;&lt;p&gt;But I would consider a "typedef std::vector&amp;lt; std::string &amp;gt; StrVec;" very readable, even though it's abbreviated and doesn't fit the STL interface naming convention.&lt;/p&gt;&lt;p&gt;Those are all my preferences. Mostly different from what most programmers consider to be good. Therefore I still think the word "like" is very appropriate.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 01 Nov 2011 13:32:59 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/31/type-names-matter/</title><link>http://altdevblogaday.com/2011/10/31/type-names-matter/#comment-352789008</link><description>&lt;p&gt;I think that for solo projects "know your audience" actually suggests that code should be written only for that one programmer and no one else. That no "if it goes viral" or "future team members" should be considered.&lt;/p&gt;&lt;p&gt;Otherwise it would make no sense - who would I really be writing the code for? What if my project gets picked as the best in an open-source GD contest? Should I write type names for whoever might look at the code later? What if I'm an OO-maniac that inspires hate in Linux software developers, should I rewrite everything in C-like code? What if the long, simple versions of my typedefs could occupy more than 1/4 of length of a line and I initially chose to use half-acronym typedefs that take less than 1/10?&lt;/p&gt;&lt;p&gt;Please don't get me wrong, I'm all for readable code. I just didn't agree with the part where you suggested that code must be written so that other people like it (unless they sell it, of course).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 01 Nov 2011 08:55:10 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/30/c-events/</title><link>http://altdevblogaday.com/2011/10/30/c-events/#comment-352018035</link><description>&lt;p&gt;I'm afraid I can't remember any case/moment where writing/reading to the same variable from different threads has been impossible. Modifying the data of another thread makes it simple to trigger events on that thread. Doesn't require any special systems, just set some variables and forget. The other thread finds out they've been updated and reacts accordingly as soon as it's possible.&lt;br&gt;Sure, there are some rules for that to work but I don't see how [ab]using heavy systems makes anything easier: the message data still needs to be stored, sent and received, and time needs to be taken to do something that doesn't matter too.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Mon, 31 Oct 2011 12:19:08 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/30/c-events/</title><link>http://altdevblogaday.com/2011/10/30/c-events/#comment-350430030</link><description>&lt;p&gt;It is somewhat hard for me to see the point of this. What needs does this fulfill?&lt;br&gt;"Event" in programming is simply a fancy name for "something that is called when something happens", in other words, a simple function that has some context (data, scope...) attached to it.&lt;/p&gt;&lt;p&gt;And well, I don't see any problems writing a function call or using function/class pointers. Sure, one might like to have something "stronger" for UI callbacks but I doubt they would ever require 1000 LOC to implement the add, remove and trigger functions, especially with a STL set.&lt;/p&gt;&lt;p&gt;P.S. Let's cut up one of your own examples: collision callbacks.&lt;br&gt;The usual case is:&lt;br&gt;Number of callers: 1&lt;br&gt;Number of receivers: 1&lt;br&gt;Number of events: 1-3 (add/remove/persist, most important is the first one)&lt;br&gt;Event receiver alive as long as the object is alive.&lt;br&gt;User data capacity for each collision object: 1 pointer.&lt;br&gt;Automatic memory management: none, all non-POD types in user data must be handled manually.&lt;br&gt;Therefore it's much easier to just pass the pointer to a collision object owner interface that can be used as a base class by the real owner, thus enabling unrestricted access to all of the data/functions of the owner. The pointer is detected in the physics engine callback override and it's handled appropriately. Registering and managing receivers is not required, so there's no need to make the design more complex than it has to be. Additionally, this approach allows any other physics-related object query the owner of each collision object processed.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sun, 30 Oct 2011 09:25:26 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/28/dont-be-that-guy-but-how/</title><link>http://altdevblogaday.com/2011/10/28/dont-be-that-guy-but-how/#comment-348656041</link><description>&lt;p&gt;I think "That Guy" just needs to know his audience. If there's none, there might be no point in trying to grab the attention of the people.&lt;/p&gt;&lt;p&gt;There's also one thing about help which might be of interest for you: "helping" implies that you're doing whatever the other person wants, not what you consider to be best for him. That is a huge difference which older people usually respect by not doing anything unless asked. It's not about being understandable if the people obviously do not care about improving their skills. And that seems more likely to be the case with amateur video makers whose most satisfying achievements without doubt would be making a video and uploading it. They would have to constantly destroy their achievements to move on and improve their skills - there's not many people that are ready to do that.&lt;/p&gt;&lt;p&gt;And putting other people's interests before yours seems completely like the wrong way to go. Now here's why:&lt;br&gt;1) People are selfish so by doing that you'll effectively give away all the time that you have - just like funding something that promises nothing returned;&lt;br&gt;2) People are not going to take you seriously unless you have achieved something; (I know, you're probably thinking about my achievements as you read the comment..)&lt;br&gt;3) People generally do not know what exactly it is that they want so unless you're sure that what you do helps, you're probably wasting your time;&lt;br&gt;4) If you're one of those who just like to help, you can make a blog for yourself and write tutorials about stuff in the style of "to whom it may concern";&lt;br&gt;5) There are 7 billion people on our planet, which ones do you really consider to be more important that yourself?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 29 Oct 2011 00:51:22 -0000</pubDate></item><item><title>Re: http://altdevblogaday.com/2011/10/27/game-design-b-minus-should-try-harder/</title><link>http://altdevblogaday.com/2011/10/27/game-design-b-minus-should-try-harder/#comment-347720580</link><description>&lt;p&gt;While I agree with most of that, I can easily understand why repetitive tasks are often there in the first place - if the controls of the game are polished enough to be extremely easy to use (which is the case with most AAA games), gamers will act OCD-like about the included content - killing enemies, smashing boxes etc. - they will want to do all of it, just because it's so simple and satisfying.&lt;/p&gt;&lt;p&gt;What I've often noticed though is that game design often isn't the real problem. Games have physics, mission scripting, all kinds of switch objects etc. If that kind of stuff is in the game code but not in the levels, it makes more sense to blame whoever wrote the story or designed the levels. If AC were a completely mission-objective-oriented game instead of a bean-counting sandbox, or set in an imaginary world, the possibilities for the adventure would probably be endless.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Fri, 28 Oct 2011 01:33:58 -0000</pubDate></item><item><title>Re: A blob array « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/25/a-blob-array/#comment-343787918</link><description>&lt;p&gt;This is the way I see it: &lt;a href="http://img684.imageshack.us/img684/7472/stdvba.png" rel="nofollow noopener" target="_blank" title="http://img684.imageshack.us/img684/7472/stdvba.png"&gt;http://img684.imageshack.us...&lt;/a&gt;&lt;br&gt;As I said, it looks like your implementation can make at most two cache misses when looking up size/capacity while std::vector would make at most only one. Otherwise, everything seems to be just about the same. It seems to me that you don't think pointers are data that needs to be looked up.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 25 Oct 2011 12:19:21 -0000</pubDate></item><item><title>Re: A blob array « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/25/a-blob-array/#comment-343734291</link><description>&lt;p&gt;What are the benefits of using this data structure over std::vector (or anything similar to it)? I mean, seriously. Serialization is just as simple with any container, storage isn't any more compact than what the best implementation of std::vector could give (object count, capacity, pointer and data for both). It also requires reading basic info (size, capacity) from a memory location that could easily be far from cached data. I can easily imagine internal data management being more cryptic due to pointer conversions too. And std::vector also supports using the stack as storage space for your data.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Tue, 25 Oct 2011 10:40:57 -0000</pubDate></item><item><title>Re: Debugging hard to reproduce bugs « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/21/debugging-hard-to-reproduce-bugs/#comment-341328288</link><description>&lt;p&gt;Ah, well then it would help to know more about the memory usage in your projects (including the memory management libraries that you use) and your development environment.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 22 Oct 2011 08:32:42 -0000</pubDate></item><item><title>Re: Debugging hard to reproduce bugs « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/21/debugging-hard-to-reproduce-bugs/#comment-341304742</link><description>&lt;p&gt;My argument is that the tool can more often fail to help with memory corruption bugs. So often that it would make no sense to use it for such bugs.&lt;/p&gt;&lt;p&gt;By the way, if the garbage collection / smart pointer bug was triggered by high memory usage, would it not mean that:&lt;br&gt;- the bug would be extremely simple to reproduce;&lt;br&gt;- it's not really a memory corruption bug?&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 22 Oct 2011 07:06:22 -0000</pubDate></item><item><title>Re: Debugging hard to reproduce bugs « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/21/debugging-hard-to-reproduce-bugs/#comment-341246751</link><description>&lt;p&gt;Those were not just hard bugs he was talking about, but those were crashes and memory corruption. If he said that such a system can be used for, let's say, AI debugging, or finding out why the player character doesn't sometimes jump when it is supposed to, I would definitely agree with him. I think we can also agree that such bugs can sometimes be hard to fix. But if we're talking about memory corruption, which is usually caused by all kinds of bad pointers / array indices, recording random seeds and input could easily do nothing to help.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Sat, 22 Oct 2011 02:13:33 -0000</pubDate></item><item><title>Re: Debugging hard to reproduce bugs « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/21/debugging-hard-to-reproduce-bugs/#comment-341042284</link><description>&lt;p&gt;I wasn't talking about deterministic game logic, that's also not what the post is about.&lt;br&gt;Fully deterministic behavior = doesn't ever differ in any way (data layout in heap, CPU cache state, thread timing etc.).&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Fri, 21 Oct 2011 19:12:47 -0000</pubDate></item><item><title>Re: Debugging hard to reproduce bugs « #AltDevBlogADay</title><link>http://altdevblogaday.com/2011/10/21/debugging-hard-to-reproduce-bugs/#comment-340901630</link><description>&lt;p&gt;Just as tricky as implementing the ability to save the game at any moment. Simple serialization of data + entity/pointer dictionary. With full serialization of dynamic objects, it becomes bulletproof but has a potential to be extremely slow.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">snake5</dc:creator><pubDate>Fri, 21 Oct 2011 14:56:52 -0000</pubDate></item></channel></rss>