Fix: Report the problem early, but don't shout about it. Whisper it. Make the information get lost in the early phase. Phrase it as "There is a risk of... but this problem should be taken care of in a later phase of the project", or "We have to take * into consideration as well". Then it's "I said it would fail! Why didn't you listen?" Then even if you can't fix it on time, the manager who neglected the memo and assigned you other, less important work is to take the blame.
1) Be Smart, Willing, Able, and Nice to work with (SWAN)
Be the pack mule of the team. Remember the budget rule? Spend less than your budget, have your budget cut next year. Slightly overspend and you have a chance for your budget to be extended. Same applies to work load. Do everything on schedule and next time the schedule will be tighter. Show you're willing and able to take project A and they will give you project B because it seemed you'd have too much slack.
2) Don't add negative value. Remember that you are being paid to help your group/company make money. If this is not kosher, move on and join the Peace Core.
If it's designed to fail, all the blame will be on you anyway.
2) Avoid sending e-mails whenever possible. If you must, keep them extremely neutral. Use phone calls and personal conversations for any type of discussion or criticism--technical or otherwise.
When it comes to blame, it's their documents vs your word. What is stronger? The key is to make the trail contain what you WANT it to contain, no matter what the communication says. Email them "I predict that can't be done on schedule", then call them 5 mins later stating you caught a bug in your calculations and it can be done after all. The email remains, the call is gone. 3) Make sure your work is visible, and helps your group's visibility. Well developed, flexible software that meets the customer's needs provides the ultimate visibility.
Yes, except - NOT TOO EARLY. First gain enough influence by quiet means. Then smash the others and remain on top. If you shout "Look, Daddy, Look at me!" you will get slapped by bigger kids really fast.
4) Disabuse yourself of the ridiculous concepts of "Customer Requirements" and "Use Cases." They will not come. If they do, they will mutate into uselessness VERY QUICKLY. Avoid people who believe in such nonsense. Instead, thoroughly analyze the problem, the customer, and the market and create your own "requirements."
This method gives your team and company automatically a long line of "maintenance and correction" opportunities. If they say Ethernet and you think "WiFi will be easier", prepare to crawl with the TP wire waist deep in snow in -30C because the WiFi antenna has frozen.
5) Innovate. Do "cool stuff" (prototypes, new concepts, algorithms, research) whenever there is a lull. If you do not do this, you will either get replaced or doom yourself to a life of mediocrity--probably both. Leverage the "cool stuff" at an opportune time to help your group.
You'll be the first one to blame. Nobody got fired about choosing Microsoft. Implement any experimental technology and whatever fails in the project (no matter how unrelated) it will be blamed on the technology and you.
(BTW, IANAM--I am Not A Manager). Yes. You're redundant.
Oh, that's all the matter of drawing the line between scientific and unscientific. Certainly old (some 16th century?) Polish legend of nobleman Twardowski who got to the Moon, running from the devil, was very unscientific. Show it to any reasonable scientist of 16-18th century and they will laugh "Man on the Moon? What kind of stupid idea is that?" But does that undermine Armstrong's achievment? I don't think so. Ancient misinterpretation, over-simplicization (Twardowski flew to the moon on a rooster) , very naive approach to the idea. Conception of a man walking on the Moon. - For its times very unscientific. Now quite real...
I believe Science will have to change shape, change its rules. Like, take something similar to Heisenberg's rule, on a stronger, wider basis; now known as the family of theorems around Murphy's laws: Phenomenons that occur only when you don't try to analyse them scientifically. Try to make stats, you get perfect Gaussian curve. Put the notepad away, let 10 events slip by undocumented and you are just SURE you got a spike that is WAY against any statistics, but you can't prove that. Now assume you have godly knowledge and you know it really happened, it really is and it really works like that. How are poor humans with current rules of science to discover these tricky laws that actively avoid exploration? Some kludges, cheats, workarounds would have to be designed. Really tricky stuff. And of course current reliable tools like statistics would have to be put away. So, the Murphy's Law and vicinity sound helluva unscientific? But does that mean they are false or just that our current tools of science can't prove them?
Ockham's razor is a very convenient tool but sometimes (rarely) misses.
Actually... If HURD wasn't vaporware... What were the alternatives to the (bare bones of) GNU OS at time when Linus integrated his kernel with it? RMS may be rabid but without him Linux would be nowhere near to where it is now. Probably nowhere at all.
...if he got sentenced for violating the copyright of the original myDoom...
Re:Sounds like a pretty good idea to me...
on
Microsoft in 2008
·
· Score: 1
Any attempt to get rid of X would have to be able to do all the things X can do
So where's the point? (being speed things up by removing unnecessary clutter)
I'd still see it possible: YET another level of indirection (sorry!). - A "bare bones" simple, fast interface replacing X on the very bottom. - An "X" layer on top of it.
New apps and DMs would use the new interface. Old ones would use the compatiblity layer which would provide all the old functionality with all the old speed loss or even more, but without slowing down anything that isn't using it. Something similar to SDL, but while SDL "punches a fast hole" in slow X, this would work in opposite direction, overlay slow compat layer on top of fast base.
Bill, please, remember to feed Richard and let him out at least once a week! Last time I visited him in your dungeon, he had hardly enough strength to curse me for my betrayal. I know having him dead and all would make things much easier, you not getting bitten, me not being spit at, but for God's sake, RMS is the real father of the OS. I understand it's better like this, but it's sad to see him there. He IS a human being and deserves at least some respect, even if he doesn't behave like one. Keep your side of the contract and I'll keep bullshitting the EFF thugs that he keeps mailing me from central Australia on regular basis.
If the first person you shoot sends the whole area you're in into an alert state so high you can't really do anything else without getting killed, that game won't be very much fun.
Oh, of course. Except if you manage to kill the other person before they start the alarm. You see a guard room with 6 guards spread over the room, and that big, red alarm button? Start killing from the guy nearest to it, then second dude gets killed trying to reach to alarm, third one falls running for cover, three more drop behind some corner and exchange fire with you. A real challenge, stallmate, hard to solve. But if all 6 rush for the button, 5 fall, 6th gets to press it at 5% health, then dies, it's stupid. Get the AI's priorities right. #1: Survival.
I'd agree they might be difficult in an open terrain,...which is so rare, few good games implement it.
but in Doom 3? I seriously doubt it.
Who talks about crappy AI in the graphics technology demo D3 was? It's not for playing, it's for show to developers. Seen the ads? "Huge technological improvement". Think Q3A, UT bots.
There is no layInWait() since zombies spawn only when you walk on the trigger to spawn them. Learn the location of spawn points and triggers and you own them. AI is dead.
You can ignore wouldFragSelf() by making the zombie immune to its own fire.
Cheat. Crappy game.
The teleportTo() is trivial. except of decision, when to perform it...
The dodge() is just a variation on takeCover(). Not quite. Dodge incoming missile and keep fighting. Take cover if the enemy overwhelms you. Hide and wait for it to pass by, then shoot their back...
The run() is just a variation on walk().
I didn't mean "run" as "move quickly" but as "escape" - retreat in not necessarily orderly manner. Say, the opponent has vastly stronger weapon than you do. Instead of picking the unequal fight, run to find something better and watch your back. See that Redeemer closing on you? run(likeHell).
The only remotely challenging thing is jumpAcross() and even that could be accomplished by pairing spots that jumping can happen between. Toss in invisible tram lines for pathing and I don't think it's that complex....and once the player learns them, he can just pick a single spot, aim once and get 500 frags without being shot at even once, just by timing the fire. Or at least make a lot of these paths...
Yeah, "be beaten". Zero challenge! After beating 300th such one, it becomes incredibly boring! It's how it is now. But should it still be so? People consider "Healthy Peaceful Wildlife" an essential mod to Morrowind, just because thanks to it most of animals don't attack on sight. Not only more realistic, above all WAY more fun to play when you don't have to fight every 20 seconds.
That at least would be challenging. Like in Morrowind. It was a great story, but the fight AI sucked. There were maybe 2 or 3 enemies whom I enjoyed fighting, but in most cases your character was just overpowered and the enemies were mostly helpless. When you see the opponent levitate and take out a bow, and you have only sword, RUN FOR COVER, don't walk in circles! If you see 3 of your friends fell on the same walkway, killed by arrows, don't be the fourth! If you know the guy you meet killed some local god in a duel, don't start a fight! And if you don't know, if you see your weapon has no effect, beg for mercy!
Many RPG games struggle to let the player make as many kills as possible, fight hordes of enemies. I'd be really satisfied with a game where I'd make 2-3 kills thorough the whole storyline, but make them essential, challenging and unique - and base the rest of the game on other interesting quests. And why are there so few games where non-violent solutions are the right way to go, and killing only gets you in trouble?
I love Hitman series for stealth and actively encouraging to kill as few as possible, though still there are levels where killing 30-50 enemies is easier than psaaing the level in stealth manner.
"Easy - enemies are weak and stupid" "Normal - enemies are strong and stupid" "Hard - enemies are strong and smart"
What I regret, that there wasn't a setting for "enemies are weak and smart". I hardly enjoy unloading 30 bullets from my clip into hardly moving enemy's head instead of 10. But I vastly more enjoy unloading 30 bullets at the walls around a smart, dodging enemy trying to get it and finally killing with 1-2, than shooting 10 bullets right in head and have it still live.
Actually, that's a neat idea that could be realized in a simple way: Get an "adaptative AI" that learns your habits. Play for a hour or so, "teaching". Then switch to "learning mode" when the AI doesn't try to EXPLOIT your habits but to EMULATE them. The result is you fight "against yourself" and can learn your own strengths and weaknesses. Wash, rinse, repeat.
The reason may be the AI never stops. You create a lot of overhead by accessing menus, scrolling map, reading messages. It takes you time. The AI starts doing it all earlier simply because it takes less time to do, then gets the results faster.
Actually, many games implement this. Some just have bugs like that. Launch 2 rockets in short sequence, the bot dodges one and steps into route of the other. Remember original HL? Throw a grenade at grunts and you're safe until it explodes, as the grunts take cover instead of shooting. Turn behind a corner sharply and the bot unloads a rocket at the wall, hurting self. Run backwards, launching rockets around the corners and see the bot keeping walking into them.
BTW, if I heard a noise, found nothing, next time I would look harder.
One thing I miss really hard. If I don't hear a shot and see my companion fall, I run for cover and then really cautiously look for the sniper. Not stand over the corpse or go on with what I was doing.
Still stuff like coverNear(), advanceTowardsPlayer() are tricky. Add to that dodge(), shoot.withAdvance(), shoot.grenade.withBounce(), teleportTo(), test.wouldFragSelf(), run(likeHell), jumpAcross(), layInWait()... and you get a nice set of features that seem trivial but are hard like the hell to code them right.
But, yes! The problem is "simulation of human" vs "solving problems". There are many applications where something quite but not entirely unlike AI is applied to solve some problems. Image/sound/voice recognition, fast optimization, and such. But they aren't even nearly aiming at simulating human behavior, and often take completely other methods than what human would. On the other hand, AI in games aims to simulate human behaviour, interacting with humans. Often it's hard to tell a bot apart from a real player - seems they pass Turing test as to fight techniques quite well. It's attempt at real AI. And games produce more money than Hollywood:)
In one hand, the AI of bots in "duel FPS" (QIIIA, UT series) is sometimes amazing and they are really challenging. A new player doesn't stand a chance against a bot at highest setting. On the other hand, in many RPG games, or "adventure" FPS (think HL2) the AI lacks a lot, often plainly sucks.
Why can't they just port the "duel bots" as the NPC?
you give up your right to enforce patent claims against that software (or maybe all cddl software in general?)
6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as "Participant")
Translation: Sue any developer of the software (Sun or anybody from the Open Source community), about a patent.
That's it. Attack about ANY patent supposedly (be it true or not) appearing in ANY product by that person. Actually, not even software - patents of anything: devices, technology, economy, anything patentable. (too bad it doesn't work against copyright claims though).
Nice. Contribute 20 lines of code, have it included in the tree even for a week, after which some QA removes it, just enough for it to appear in CVS history and if somebody sues you about ANY patent, you can countersue about any of SUN's patents.
Fix: Report the problem early, but don't shout about it. Whisper it. Make the information get lost in the early phase. Phrase it as "There is a risk of... but this problem should be taken care of in a later phase of the project", or "We have to take * into consideration as well". Then it's "I said it would fail! Why didn't you listen?" Then even if you can't fix it on time, the manager who neglected the memo and assigned you other, less important work is to take the blame.
0) Don't Tick Anyone Off
okay.
1) Be Smart, Willing, Able, and Nice to work with (SWAN)
Be the pack mule of the team. Remember the budget rule? Spend less than your budget, have your budget cut next year. Slightly overspend and you have a chance for your budget to be extended. Same applies to work load. Do everything on schedule and next time the schedule will be tighter. Show you're willing and able to take project A and they will give you project B because it seemed you'd have too much slack.
2) Don't add negative value. Remember that you are being paid to help your group/company make money. If this is not kosher, move on and join the Peace Core.
If it's designed to fail, all the blame will be on you anyway.
2) Avoid sending e-mails whenever possible. If you must, keep them extremely neutral. Use phone calls and personal conversations for any type of discussion or criticism--technical or otherwise.
When it comes to blame, it's their documents vs your word. What is stronger?
The key is to make the trail contain what you WANT it to contain, no matter what the communication says. Email them "I predict that can't be done on schedule", then call them 5 mins later stating you caught a bug in your calculations and it can be done after all. The email remains, the call is gone.
3) Make sure your work is visible, and helps your group's visibility. Well developed, flexible software that meets the customer's needs provides the ultimate visibility.
Yes, except - NOT TOO EARLY. First gain enough influence by quiet means. Then smash the others and remain on top. If you shout "Look, Daddy, Look at me!" you will get slapped by bigger kids really fast.
4) Disabuse yourself of the ridiculous concepts of "Customer Requirements" and "Use Cases." They will not come. If they do, they will mutate into uselessness VERY QUICKLY. Avoid people who believe in such nonsense. Instead, thoroughly analyze the problem, the customer, and the market and create your own "requirements."
This method gives your team and company automatically a long line of "maintenance and correction" opportunities. If they say Ethernet and you think "WiFi will be easier", prepare to crawl with the TP wire waist deep in snow in -30C because the WiFi antenna has frozen.
5) Innovate. Do "cool stuff" (prototypes, new concepts, algorithms, research) whenever there is a lull. If you do not do this, you will either get replaced or doom yourself to a life of mediocrity--probably both. Leverage the "cool stuff" at an opportune time to help your group.
You'll be the first one to blame.
Nobody got fired about choosing Microsoft. Implement any experimental technology and whatever fails in the project (no matter how unrelated) it will be blamed on the technology and you.
(BTW, IANAM--I am Not A Manager).
Yes. You're redundant.
Oh, that's all the matter of drawing the line between scientific and unscientific. Certainly old (some 16th century?) Polish legend of nobleman Twardowski who got to the Moon, running from the devil, was very unscientific. Show it to any reasonable scientist of 16-18th century and they will laugh "Man on the Moon? What kind of stupid idea is that?"
But does that undermine Armstrong's achievment? I don't think so. Ancient misinterpretation, over-simplicization (Twardowski flew to the moon on a rooster) , very naive approach to the idea. Conception of a man walking on the Moon. - For its times very unscientific. Now quite real...
I believe Science will have to change shape, change its rules. Like, take something similar to Heisenberg's rule, on a stronger, wider basis; now known as the family of theorems around Murphy's laws: Phenomenons that occur only when you don't try to analyse them scientifically. Try to make stats, you get perfect Gaussian curve. Put the notepad away, let 10 events slip by undocumented and you are just SURE you got a spike that is WAY against any statistics, but you can't prove that. Now assume you have godly knowledge and you know it really happened, it really is and it really works like that. How are poor humans with current rules of science to discover these tricky laws that actively avoid exploration? Some kludges, cheats, workarounds would have to be designed. Really tricky stuff. And of course current reliable tools like statistics would have to be put away.
So, the Murphy's Law and vicinity sound helluva unscientific? But does that mean they are false or just that our current tools of science can't prove them?
Ockham's razor is a very convenient tool but sometimes (rarely) misses.
unless you're way tastier than the other guy that is... Having this installed in 20yo falling apart piece of junk misses the point.
Pocket Pc? Nay! A TI Calculator!
Actually... If HURD wasn't vaporware...
What were the alternatives to the (bare bones of) GNU OS at time when Linus integrated his kernel with it? RMS may be rabid but without him Linux would be nowhere near to where it is now. Probably nowhere at all.
...if he got sentenced for violating the copyright of the original myDoom...
Any attempt to get rid of X would have to be able to do all the things X can do
So where's the point? (being speed things up by removing unnecessary clutter)
I'd still see it possible: YET another level of indirection (sorry!).
- A "bare bones" simple, fast interface replacing X on the very bottom.
- An "X" layer on top of it.
New apps and DMs would use the new interface. Old ones would use the compatiblity layer which would provide all the old functionality with all the old speed loss or even more, but without slowing down anything that isn't using it.
Something similar to SDL, but while SDL "punches a fast hole" in slow X, this would work in opposite direction, overlay slow compat layer on top of fast base.
Post Scriptum
Bill, please, remember to feed Richard and let him out at least once a week! Last time I visited him in your dungeon, he had hardly enough strength to curse me for my betrayal. I know having him dead and all would make things much easier, you not getting bitten, me not being spit at, but for God's sake, RMS is the real father of the OS. I understand it's better like this, but it's sad to see him there. He IS a human being and deserves at least some respect, even if he doesn't behave like one. Keep your side of the contract and I'll keep bullshitting the EFF thugs that he keeps mailing me from central Australia on regular basis.
If the first person you shoot sends the whole area you're in into an alert state so high you can't really do anything else without getting killed, that game won't be very much fun.
Oh, of course. Except if you manage to kill the other person before they start the alarm. You see a guard room with 6 guards spread over the room, and that big, red alarm button? Start killing from the guy nearest to it, then second dude gets killed trying to reach to alarm, third one falls running for cover, three more drop behind some corner and exchange fire with you. A real challenge, stallmate, hard to solve. But if all 6 rush for the button, 5 fall, 6th gets to press it at 5% health, then dies, it's stupid. Get the AI's priorities right. #1: Survival.
I'm not going top buy any EA game from now either.
:)
(doesn't mean I'm not going to play them though. Long live warez sites
I'd agree they might be difficult in an open terrain, ...which is so rare, few good games implement it.
...and once the player learns them, he can just pick a single spot, aim once and get 500 frags without being shot at even once, just by timing the fire. Or at least make a lot of these paths...
but in Doom 3? I seriously doubt it.
Who talks about crappy AI in the graphics technology demo D3 was? It's not for playing, it's for show to developers. Seen the ads? "Huge technological improvement".
Think Q3A, UT bots.
There is no layInWait() since zombies spawn only when you walk on the trigger to spawn them.
Learn the location of spawn points and triggers and you own them. AI is dead.
You can ignore wouldFragSelf() by making the zombie immune to its own fire.
Cheat. Crappy game.
The teleportTo() is trivial.
except of decision, when to perform it...
The dodge() is just a variation on takeCover().
Not quite. Dodge incoming missile and keep fighting. Take cover if the enemy overwhelms you. Hide and wait for it to pass by, then shoot their back...
The run() is just a variation on walk().
I didn't mean "run" as "move quickly" but as "escape" - retreat in not necessarily orderly manner. Say, the opponent has vastly stronger weapon than you do. Instead of picking the unequal fight, run to find something better and watch your back. See that Redeemer closing on you? run(likeHell).
The only remotely challenging thing is jumpAcross() and even that could be accomplished by pairing spots that jumping can happen between.
Toss in invisible tram lines for pathing and I don't think it's that complex.
Yeah, "be beaten". Zero challenge! After beating 300th such one, it becomes incredibly boring!
It's how it is now. But should it still be so?
People consider "Healthy Peaceful Wildlife" an essential mod to Morrowind, just because thanks to it most of animals don't attack on sight. Not only more realistic, above all WAY more fun to play when you don't have to fight every 20 seconds.
That at least would be challenging.
Like in Morrowind. It was a great story, but the fight AI sucked. There were maybe 2 or 3 enemies whom I enjoyed fighting, but in most cases your character was just overpowered and the enemies were mostly helpless. When you see the opponent levitate and take out a bow, and you have only sword, RUN FOR COVER, don't walk in circles! If you see 3 of your friends fell on the same walkway, killed by arrows, don't be the fourth! If you know the guy you meet killed some local god in a duel, don't start a fight! And if you don't know, if you see your weapon has no effect, beg for mercy!
Many RPG games struggle to let the player make as many kills as possible, fight hordes of enemies. I'd be really satisfied with a game where I'd make 2-3 kills thorough the whole storyline, but make them essential, challenging and unique - and base the rest of the game on other interesting quests. And why are there so few games where non-violent solutions are the right way to go, and killing only gets you in trouble?
I love Hitman series for stealth and actively encouraging to kill as few as possible, though still there are levels where killing 30-50 enemies is easier than psaaing the level in stealth manner.
What I didn't like about Half-Life:
"Easy - enemies are weak and stupid"
"Normal - enemies are strong and stupid"
"Hard - enemies are strong and smart"
What I regret, that there wasn't a setting for "enemies are weak and smart".
I hardly enjoy unloading 30 bullets from my clip into hardly moving enemy's head instead of 10. But I vastly more enjoy unloading 30 bullets at the walls around a smart, dodging enemy trying to get it and finally killing with 1-2, than shooting 10 bullets right in head and have it still live.
Actually, that's a neat idea that could be realized in a simple way: Get an "adaptative AI" that learns your habits. Play for a hour or so, "teaching". Then switch to "learning mode" when the AI doesn't try to EXPLOIT your habits but to EMULATE them. The result is you fight "against yourself" and can learn your own strengths and weaknesses. Wash, rinse, repeat.
The reason may be the AI never stops. You create a lot of overhead by accessing menus, scrolling map, reading messages. It takes you time. The AI starts doing it all earlier simply because it takes less time to do, then gets the results faster.
Actually, many games implement this. Some just have bugs like that.
Launch 2 rockets in short sequence, the bot dodges one and steps into route of the other. Remember original HL? Throw a grenade at grunts and you're safe until it explodes, as the grunts take cover instead of shooting.
Turn behind a corner sharply and the bot unloads a rocket at the wall, hurting self. Run backwards, launching rockets around the corners and see the bot keeping walking into them.
BTW, if I heard a noise, found nothing, next time I would look harder.
One thing I miss really hard.
If I don't hear a shot and see my companion fall, I run for cover and then really cautiously look for the sniper. Not stand over the corpse or go on with what I was doing.
Still stuff like coverNear(), advanceTowardsPlayer() are tricky.
Add to that dodge(), shoot.withAdvance(), shoot.grenade.withBounce(), teleportTo(), test.wouldFragSelf(), run(likeHell), jumpAcross(), layInWait()...
and you get a nice set of features that seem trivial but are hard like the hell to code them right.
But, yes! :)
The problem is "simulation of human" vs "solving problems".
There are many applications where something quite but not entirely unlike AI is applied to solve some problems. Image/sound/voice recognition, fast optimization, and such. But they aren't even nearly aiming at simulating human behavior, and often take completely other methods than what human would.
On the other hand, AI in games aims to simulate human behaviour, interacting with humans. Often it's hard to tell a bot apart from a real player - seems they pass Turing test as to fight techniques quite well. It's attempt at real AI. And games produce more money than Hollywood
In one hand, the AI of bots in "duel FPS" (QIIIA, UT series) is sometimes amazing and they are really challenging. A new player doesn't stand a chance against a bot at highest setting. On the other hand, in many RPG games, or "adventure" FPS (think HL2) the AI lacks a lot, often plainly sucks.
Why can't they just port the "duel bots" as the NPC?
Yeah, except it was fake.
you give up your right to enforce patent claims against that software (or maybe all cddl software in general?)
6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as "Participant")
Translation: Sue any developer of the software (Sun or anybody from the Open Source community), about a patent.
That's it. Attack about ANY patent supposedly (be it true or not) appearing in ANY product by that person. Actually, not even software - patents of anything: devices, technology, economy, anything patentable. (too bad it doesn't work against copyright claims though).
Nice. Contribute 20 lines of code, have it included in the tree even for a week, after which some QA removes it, just enough for it to appear in CVS history and if somebody sues you about ANY patent, you can countersue about any of SUN's patents.
Can't tell you. I didn't even RTFA ;)
Poor thing. Has no idea they embed RFID in the tinfoil.