Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
What's the story with these ads on Slashdot? Check out our new blog post to find out. ×

Comment Re: Programming (Score 1) 606

How do you implement that, non-ambiguously, in an intuitive way?

The second link has a bit about that. As it turns out, you really don't want real-world physics. In the case of SMB, much simpler models (see the fourth link), using nothing more than simple arithmetic (in line with TFA), are not only effective, but much simpler to implement on old hardware like the 6502. The iterative process of adding effects and tweaking values until the controls "feel" right. (I can't find the interview i saw earlier, but this should give you a sense of that iterative process, from the developers themselves.)

Sure, anything can be accomplished eventually through brute force and pure persistence, but the programmer with math and physics knowledge is going to do it better and faster

No one is disputing that such knowledge is useful. The question here is whether it's essential.

For games, it's pretty obvious that it's unnecessary, as you admit here. Though I'd like to add, from some of the discussions I ran across, attempting to model real-world physics in games can actually introduce problems that simpler approaches avoid. Again, see the second link. There were a few discussions I ran across yesterday with a quick search that go in to this as well. I can dig them up if you're interested though it shouldn't take you more than a few minutes to find them on your own.

and likely more elegant, because it's hard to find something more elegant than the laws of nature.

I keep going back to that second link, but that answers this pretty well (the second page, iirc). Player physics in games are pretty far divorced from reality -- and for good reason. They simply don't work very well for games. Consequently, you'll find no end to the articles discussing the design of player physics. Common to all of them, as mentioned earlier, is the need to iteratively adjust various values until things "feel" right.

Again, this is a situation where a strong maths background seems essential, but really isn't. Basic arithmetic, and a good aesthetic sense, is sufficient.

Comment Re: Programming (Score 1) 606

Well, that's my fault. I wasn't terribly clear.

Put simply, I'm saying that while a strong maths background is useful, it's not essential to be a competent developer, and that there are many instances where a strong math background appears to be essential, but ultimately is not. That second bit frequently misleads developers in to thinking that they're far more numerically literate than they actually are.

No one is disputing that a strong maths background is essential for some domains. That's perfectly obvious. The argument TFA makes is that, for the most part, developers need very little beyond basic arithmetic.

I agree with the author. Though she didn't make her case very well, I can't dispute the conclusion. I also understand that it makes some people uncomfortable, as they believe themselves to have a strong mathematics background simply because they're competent developers. I suspect that this false sense of numeracy that programming offers causes a good bit of harm.

Comment Re: And we care because...why? (Score 2) 275

Female behaviour is civilized, but male behaviour is crass, tactless, and rude.

First, I said nothing about either stereotypical female or male behavior. You invented that all on your own to fit your preconceptions.

Second, the OP is complaining about being unable to engage in "crass, tactless, and rude" behavior. Specifically, "off-colour jokes" and "crude humour". He thinks that "these things are all healthy male banter". Read our posts again. This is pretty obvious.

Essentially, his complaint is that he can't engage in crude and uncivil dialogue in mixed company without facing social consequences for his admittedly anti-social behavior. He blames women, though I doubt many men would want to work with someone that unprofessional. He puts me in mind of the Drew character from Office Space. Would you want to work with someone like that?

Comment Re: And we care because...why? (Score 1) 275

Without exception, the workplaces with women were more "brittle" in terms of having to watch what you said, no off-colour jokes, no crude humour.

Woah, you had to show basic consideration to other people?! You can't be as crass as tactless as you'd like?

I can't imagine how horrible it must have been to be forced to act like a civilized human being 8-hours a day. The next thing you know, they'll expect you to bathe regularly and wash your hands after relieving yourself. Pure tyranny!

Comment Re: Programming (Score 1) 606

Understanding the equations and implementing them, and even understanding that integration is what you need are the parts that math helps you with

The point is that you don't have to understand them to implement them. You actually need to know very little. Yes, it's helpful, but it's far from essential. That's the point. No one is arguing that you're better-off knowing nothing about math or physics, only that it's not that important for developers even when it superficially appears that that understanding is necessary.

Now we're having a completely different discussion...

How do you make characters move intuitively? By making them inhabit a world that follows physical laws similar to our own.

If I remember correctly, in Super Mario you could move left and right while in the air. That is pretty obviously outside the physical laws of our universe. They did this to give the player more control over their jumps. It feels intuitive, even though it's completely different from the laws of the universe we inhabit.

How do you make sure that a character follows a realistic, predictable, intuitive parabola through the air when they jump?

By abandoning Newton and developing a system that works well for the game. Give it a try. Write a simple side-scroller that accurately reflects the physics of the natural world. You'll be amazed at how terrible it plays. I did a quick search, and found a number of discussions that seem to support this. I also found a few breakdowns that may interest you: Sonic Physics, Super Mario Galaxy Demystified, Mario Gravity, SMB Physics.

That second link has a nice quote: "Obviously, real world physics have a place in today's games. However, they take a backseat to psychology when it comes to making real world gameplay"

Perhaps we can put this issue to rest.

Comment Re: Programming (Score 1) 606

some physics knowledge is absolutely necessary unless you're just leveraging other people's work the whole time

It shouldn't be that surprising, as you're using the work of physicists. The implementation is just details after that. You don't need to understand it, all you need are the equations. There are already well-established methods for integration, so you don't need to invent that either, just implement one.

Here's an easier example: If I asked you to write a t-test function, you'd need to nothing more than look up the equation and implement it. For the parts you don't understand, you can look them up and do the same as well (like the sample mean and the standard deviation). You wouldn't need to know the first thing about statistics. All that work has been done for you.

Mario Brothers had a fairly realistic implementation of gravity, friction, and acceleration

You're over complicating that particular problem. All you need there is common experience. When someone jumps, they go up for a bit and then come down. You slide on slippery things. I'll bet a nickle that the developers of Mario Brothers didn't concern themselves with physical accuracy, but how each action felt intuitively.

Comment Re:Interesting (Score 1) 606

Sure there is.

A programmer writes computer programs. This is the easy part.

A computer scientist is a mathematician specializing in computer science. (Though there are quite a few people with CS degrees who do not fit that description. That's not their fault, but that of the institution that issued that credential.)

A software engineer is just a programmer with discipline envy.

Comment Re: Programming (Score 1) 606

This is a tree, but you don't need to understand anything about graph theory to implement this.

That's true for quite a bit. You don't need to have any understanding of the why, just a basic understanding of when {thing} should be used. Implementation is typically trivial, so just discovering that {thing} would be a good fit for your problem (thanks to google) you can get away with knowing even less.

Before you get the wrong idea, I think a strong mathematics background is incredibly helpful. (With a better understanding, there are times when you can go "I can guarantee x, so don't need to account for y so I can simplify this to ..." and net a boost in performance and some simpler code.) Though it's certainly not essential for an absurd majority of developers. Out side a few domains, the hard part is already done and printed in every textbook.

Comment Re: Programming (Score 3, Interesting) 606

I've done quite a bit of 3D graphics work, and I strongly disagree. You need very little. You say "Linear algebra (matrices) and trig" but you don't need much beyond what matrix operations to apply to achieve some goal (you need to actually understand very little, and far less if you use a matrix library) and soa cah toa on the trig side. Just about every major problem you'd encounter has a near standard solution.

Calculus and differential equations are need for doing simulations of physical processes

This is a bit outside my experience, as all I've done there is a 3D physics engine for a game. Even then, I suspect all you need to know are the equations and a few well-understood approaches to integration, actually understanding the math (or the physics) doesn't seem necessary. (Though I'll admit that it is helpful.)

You can be an excellent programmer without strong math skills, even in some areas where a solid understanding of mathematics would seem essential. I'd even argue against the need for a strong background in logic. If Slashdot is any indication, most developers don't understand even basic logic. They've simply confused their rudimentary understanding of Boolean algebra with a complete understanding of formal logic.

This isn't to slight developers, on the contrary. It's art, after all, not engineering. Be proud that you've mastered a skillful discipline.

"Gort, klaatu nikto barada." -- The Day the Earth Stood Still