3,225 reputation
619
bio website
location Seattle, WA
age 44
visits member for 3 years, 6 months
seen 20 hours ago

Software engineer and long-time dabbler in mathematics; 11th in the Putnams forever ago but I've long since atrophied.


1d
comment What version of Marching Cubes bring “ambiguities”
A very simple way to see how ambiguity can arise is to go down a dimension and look at 'Marching Squares'. In that case, a square with two positive vertices (diagonally opposite) and two negative vertices (also diagonally opposite) can clearly be contoured in two ways: we can either connect the edges such that the two negative nodes are part of the same region, or such that the two positive nodes are. A priori (i.e., without analytical or topological information), there's no reason to prefer one over the other.
Aug
27
comment Quaternion rotation, translation, scale or 4x3/4x4 matrices for Skeletons?
The comment about linear interpolation of rotation matrices doing a worse job than quaternion interpolation is very relevant, though (and as previously noted, gimbal lock is specifically a property of Euler angles, not of rotation matrices) - particularly in that it's much tougher to normalize a matrix back to being orthogonal than to normalize a quaternion.
Jun
25
awarded  Pundit
Jun
17
comment How do I make A* agents avoid other agents?
This exactly - there seems to be a very common perception that pathfinding means A*, and that's just not so.
May
29
comment Forcing Non-Pitch Preserving Audio in HTML5, Construct 2
If space is at a substantial premium then you may want to look at whether you'd be able to go with a shorter snippet of music, but I definitely do back this approach too - relying on playback speed to do your pitch control for (essentially) tension-building runs the risk of degrading the quality of your overall audio experience. Your game will just sound better if you can manually craft multiple versions of your music for the different speeds you need.
May
29
comment Forcing Non-Pitch Preserving Audio in HTML5, Construct 2
Not enough data here to be a proper answer, but my best guess is that you're going to have to pick some subset of browsers that you choose to support, confirm that each of them has some form of pitch control (both Mozilla and Chrome, for instance, have extensions that seem at first glance to support this; I haven't checked on at Safari yet), and then build your own polyfill - it's most likely that you won't be able to use Construct 2 for this particular part of your game. One of the hazards of riding the 'bleeding edge'... (which audio shouldn't be, but that's a separate rant!)
May
21
comment Extrapolation breaks collision detection
Well, I'll say 'just because you can find code for something doesn't make it a best practice'. :-) In this case, though, I suspect that the page you've linked to uses the interpolation value to figure out where to display its objects, but it doesn't actually update the object positions with them; you can do that too, just by having a draw-specific position that's calculated every frame, but keeping that position separate from the object's actual 'physical' position.
May
21
comment Extrapolation breaks collision detection
This will take some digesting to fully understand ('interpolation' has seemingly a dozen different meanings and it's not wholly clear on first glance just what you mean by it here), but my first instinct is 'you should not be doing anything to affect your object's position in your rendering routine'. Your renderer should draw your object at the object's given position, and manipulating the object there is a recipe for trouble, since it inherently couples the renderer to the game's physics. In an ideal world, your renderer should be able to take const pointers to game objects.
May
19
answered How do I find the intersection of a ray and a cylinder?
May
19
comment How do I find the intersection of a ray and a cylinder?
If your cylinders are coins, then it sounds like you're mostly interested in clamped cylinders, and particularly the endcaps - is that a fair characterization?
May
14
comment Packaging HTML5 games as applications for iPhone/Android
What part of this fits into the 'off-topic' category? This isn't asking 'which technology to use', it's asking whether a technology exists for something. It's not an abstract 'how to get started' or 'what to learn next'; it's asking a specific, pragmatic question that is exactly the sort of thing that arises in day-to-day development.
May
12
comment How can I improve my collision detection's performance?
Fantastic all around, including a good introduction to the most fundamental optimization here. There are things I'd have said differently, but to my mind this is the archetype of a good answer.
May
7
comment How to reset the world in an infinite runner game to prevent an overflowing float?
@MichaelBuen Nothing says that you have to map 1 unit : 1 meter. If you're traveling 2K meters per second, how much visibility does the player have? Assuminhg that the player's character is Iron Man sized (2m tall) and that that corresponds to ~20 pixels (a fairly tiny thing), that means that you're scrolling 20,000 pixels per second - a good 600 pixels per (30FPS) frame! It would be virtually impossible to have meaningful gameplay at that scale and speed. More likely, you'd represent things at roughly 1m=1pixel, and so you could say e.g. 1 unit = 100m.
May
6
comment Bullets won't shoot out of barrel in top-down shooter
As a small note, there are many ways for cos(x) and sin(x) to both return positive numbers; for instance, cos(pi/4) = sin(pi/4) ~= .707.
May
2
awarded  Organizer
May
2
comment What is this type of camera called?
@AndonM.Coleman Interesting that you should say that - while I recall hearing the version you're mentioning, I don't think I've heard the word used that way in roughly the last decade, as those engines fell out of necessity - but I've heard it used regularly in recent memory to describe this sort of '3d visual for 2d gameplay' look.
May
2
revised What is this type of camera called?
"terminology" tag seems apropos here.
May
1
comment Determine if a set of tiles on a grid forms an enclosed shape
If you have a vertical line running down the center of your board from top edge to bottom, which side of the board is 'enclosed'?
May
1
comment Why is an engine like Unity3D emphasized over a native library like OpenGL for beginners?
This just showed up on Gamasutra, and while it's not directly an answer to this question, it is relevant: gamasutra.com/blogs/ChrisDeLeon/20140426/215519/… - in particular, it will be very hard for a project you build from the ground up w/ OpenGL to be a 'modest' first project.
Apr
29
comment Why is an engine like Unity3D emphasized over a native library like OpenGL for beginners?
@KamikazeSoctsman Again, disagreed here. I'm not saying OGL is useless - far from it! - but in the last decade I've used my OpenGL knowledge only a small handful of times in brief fits and starts. On the contrary, because game graphics engines tend to be so performance-sensitive, in my experience they're one of the least common places for a new programmer to start out. You should know 3d mathematics, absolutely, and you should understand the principles of rendering - but that's a vastly different thing from learning OGL.