The number of changes made to the game/mod source is negligible from the 1.27g to 1.29h jump. A few arbitrary limits have been raised for who knows what reasons, and the new media for the cg_old* weapons have been added to the client game.
It's possible to run 1.27g source mods on 1.29h. I doubt 1.30 is much different. Certainly my mod's beta test last night went smoothly on 1.30.
There isn't much choice unless you want to do a major tradeoff between security and efficiency. For example, one of the major reasons people can make proxy cheats ( or otherwise ) that have pop-up radar screens that show where everyone is, is because the server sends the location data of other clients when they are not quite yet in the screen, but in the potentially visible set.
One secure alternative would be for the server game to cast a ray from each client to every client in the same PVS every frame. If they are visible, send their location on the next snap.
Sounds good, until you realize that with latency issues a client may not start getting drawn until he's halfway across a doorway if he strafes by. Gets even worse when you consider how expensive the trace calls are on the server (maybe not TOO bad these days).
That was a bit of an oversimplification, but most security in Q3 has to be obscure to make up for the required tradeoffs in efficiency over an untrusted client.
The extreme would be to send jpegs over the wire and have the client just display them, in exchange for telling the server which buttons the client is pressing. It goes without saying why this isn't done.
Interesting point, but don't forget Quake 3 technology is in a lot of other games, including Return to Castle Wolf and Soldier Of Fortune 2, and maybe others.
Q3 has it's shortcomings, but it's probably the best development platform I have ever come across for games. It should be around for a while longer.
hmm, smaller programs
on
VIM 6.0 is Out
·
· Score: 2, Flamebait
Oh what? Since when do you have to release a new version of your text editor to get features like working over ftp?:) People blame emacs all the time for being one monolithic bloated program, when in fact it's far more modular than the lesser text editors that other people settle for.
Calling emacs one big monolithic program is only true if you couldn't peel off the layers of LISP code that you may not require. It'd be like calling Linux bloated because it comes with ALL the GNU tools.
I'm all for working software, but I think I would be more than mildly hesitant to accept code patches for my software project that apply themselves to tightly repeated loops or areas of code that *I* wanted to implement.
To some programmers, having working code is not as important as having the experience and knowledge of the codebase. These are the guys who will understand the codebase in months and years to come. To me, accepting a large number of patches early on in the dev process could lead to a sordid understanding of how and why everything works. (Will your static char buf[] fit on the PPC stack in that reimplemented sprintf() call? What? You didn't consider that when accepting the patch last year?)
I've had code turned away by the svgalib developers, because my implementation wasn't full enough. Sure, I coded in dvorak support before they released a version that could do it a couple years back, but my patch was too hacky for their tastes. Theirs allowed a true remapping of the keyboard in raw mode. Mine was an on/off translation switch.
I know someone in real life who has shelled over at least three digit dollar amounts for Diablo items. He does not fit your stereotype of a god mode Quake cheater. In fact, he was a dedicated developer on one of the most popular Quake mods of all time, which he played very often with his clan in all seriousness.
I would more quickly equate the type of person to do this sort of item purchasing to be the same type who would purchase stand up Street Fighter arcade machines: the hardcore gamer who [has a lot of cash and] is willing to up the ante and excitement by adding as many elements to the experience as possible.
Please, make the people I have to answer to demand good, clean code. More often than not, clients of mine want the job done right here, and right now.
I had one PHB try to freeze the project, bring his friend in, add features, and resume the project (rather than compensate us for the features). Please, make everyone understand what quality internals are, so that I may have an understanding when I demand the resources for such a thing.
You may be interested to know a version of the DMCA is coming to Canada, whether or not you think entertainment and consumerism applies up north as well.
Non photorealistic rendering is a very cool field of graphics, if that's what these guys are doing. For more info on the technique, check out this google-attained page here.
For fleeting minutes, one of the games I considered creating in this very past year was a Zelda-type game where the models are cartoon NPR-rendered but with a richly detailed Street Fighter World Warrior type colourful background.
This doesn't seem too far from that. I think M[ia]moto (sp) is using his instincts on this one.
Name me one person you know who is at least moderately computer savvy, has a cd burner and uses a computer as a hobbyist device who has not done something illegal with their cd burner within a week of owning it.
Right. That's partly the reason why we Canadians pay a CD levy tax.
There is no point in which Bradley Kuhn tried to make an anaolgy between the severity and repercussions of slavery's freedom lost and the severity and repercussions of people who have no choice but to use non-free software. The analogy was given in order to assist the reader in finding an objective comparison between which freedoms are the rights of citizens and which freedoms impose on others. (The right to swing your fist stops where my face starts.)
I love the benefits of free software(linux, etc) but there is a place for closed proprietary software and there is nothing wrong with using them.
Right now there is a place for free software and proprietary software in the same world. However, in many cases, the philosophies of the two cannot naturally coincide, and there is conflict. If, in the future, we are left with one of the two, it will be because of the efforts of the people fighting(working) for the philosophy that they choose. Advocacy starts now.
The best tool for the job isn't always the one the developer is most familiar with. There are many things I would rather develop with Perl over C, even though I've only been using it heavily for two years. I've been a C programmer of the almost-every-day sort for two years short of a decade now.
Us younger programmers who are blessed with languages that are more articulate allow us to see the big picture sooner, and more clearly.
Hey, cool. I just finished reading "The Pragmatic Programmer" last week. This seems to be by the same authors. I recommend their work. I only wish I got ahold of it earlier than I did. It seems I've come up with a lot of the same points they did, the hard way. (Perhaps that's for the best...)
It was a cause of concern when I read that you left Loki Software. Even though I understand that you personally hold the Copyright for SDL, the nature of Loki seems to imply that it's presence encouraged you to continue development.
With that part of your life behind you, would you like (or have you made) a public statement about the future of SDL?
By design, it's a very bad idea to make your trojan/virus do anything too shocking.
Ever boiled a frog? If you throw a frog in hot water, it'll jump out. If you slowly turn up the heat, it'll roast.
This sort of violent behaviour in a virus stops it from being able to live with it's host, because it gets detected way too fast. A worm/virus/trojan that has too great a consequence on it's host will be wiped out too soon, and in the case of the worm, this means lesser propogation.
I've been a keyboard hoarder for too long now. Here's a list of things I think the perfect keyboard would have.
Boxed with a device that physically proxies between the port on your motherboard and the actual keyboard. This piece of hardware would remap all keyboard requests to dvorak, or perhaps other key mappings.
Tactile keys that don't resist key presses worth a damn, they just fall under the lightest touch and go click
A hardware option to override BIOS key repeating and have rapid fire like the old NES Advantage controller on the Nintendo - you hold down one button, and the system registers massive repeats. I would use this to up my key repeat rate from 30 to an inane number around 200. Rare few people might remember the TSR Hyperkey for DOS that had this same effect.
Macro recording and playback.
There are no damn windows keys, ever. Logitech bonus keys are out, too.
Function keys on the left, perhaps doubled with the ones on the top.
Bundled with one of those keyboard skins, because you can never buy any that fit your keyboard perfectly.
Scroll lock, num lock and caps lock rights in the upper right hand corner, so light flashing programs don't act stupi.
Big backwards 'L' shaped enter key.
Long wire
Phat plastic design that allows you to drum on the thing below the spacebar and have it sound like a wicked snare drum. I hate keyboards that are too solid sounding.
Can withstand a few punches.
Given a few different circumstances, I may have gone into producing such a device years ago.
1. Float trial balloon with extremely controversial idea.
Actually, when you think about it, this isn't much different than deciding terms for a contract, if you replace #1 with a discussion of how much money you're going to be making.
Perhaps it's possible that Microsoft is trying to find the most offensive, yet acceptable ground to be on, and this is being done by trial and error.
After a year and a half of a VERY broken connect and refusals time and again from rogers to send anyone to my house to repair my connect, I threatened them with a lawsuit in order to talk to someone in a higher tier in tech support. (A benign threat- I didn't have the time or money to take on this sort of thing.)
I insinuated that they advertised that Rogers allowed you to do certain things with your cable modem, including surfing the web and playing games. However, I was told flat out by many of their techs that as long as my connect is up and they can ping it, they will do NOTHING ELSE to help me with my connect.
When Rogers left British Columbia and Shaw moved in, a tech came to my house to switch my Lancity modem with a Terayon model (thanks to Terayon and Shaw for the non-competition monopolistic contract). Apparently the wiring inside my wall was positively rotten. It was fixed by a Shaw employee that day.
Rogers deserves to rot for what I would call false advertising.
As a sidenote, if anyone is going through a Shaw to Rogers switch like I did, check out my experiences.
I agree that code reuse causes bloated software in that libraries often are required to deal with a very general case of the problem, which requires much more time than just coding an example by yourself.
However, I can prove that code reuse isn't always bloat: the ANSI C library on your system. If the ANSI C library was statically linked, there wouldn't be any shared memory redgarding it between your processes. When you run 'top' and a process says it takes up a few more megabytes than you thought it would, be sure to check the shared column.
Saying that code reuse causes bloat is not the whole story. Code reuse serves both sides of the bloat war.
Put your msg subject on the top and this would make a great shirt. ThinkGeek?
It's possible to run 1.27g source mods on 1.29h. I doubt 1.30 is much different. Certainly my mod's beta test last night went smoothly on 1.30.
There isn't much choice unless you want to do a major tradeoff between security and efficiency. For example, one of the major reasons people can make proxy cheats ( or otherwise ) that have pop-up radar screens that show where everyone is, is because the server sends the location data of other clients when they are not quite yet in the screen, but in the potentially visible set.
One secure alternative would be for the server game to cast a ray from each client to every client in the same PVS every frame. If they are visible, send their location on the next snap.
Sounds good, until you realize that with latency issues a client may not start getting drawn until he's halfway across a doorway if he strafes by. Gets even worse when you consider how expensive the trace calls are on the server (maybe not TOO bad these days).
That was a bit of an oversimplification, but most security in Q3 has to be obscure to make up for the required tradeoffs in efficiency over an untrusted client.
The extreme would be to send jpegs over the wire and have the client just display them, in exchange for telling the server which buttons the client is pressing. It goes without saying why this isn't done.
Q3 has it's shortcomings, but it's probably the best development platform I have ever come across for games. It should be around for a while longer.
Calling emacs one big monolithic program is only true if you couldn't peel off the layers of LISP code that you may not require. It'd be like calling Linux bloated because it comes with ALL the GNU tools.
To some programmers, having working code is not as important as having the experience and knowledge of the codebase. These are the guys who will understand the codebase in months and years to come. To me, accepting a large number of patches early on in the dev process could lead to a sordid understanding of how and why everything works. (Will your static char buf[] fit on the PPC stack in that reimplemented sprintf() call? What? You didn't consider that when accepting the patch last year?)
I've had code turned away by the svgalib developers, because my implementation wasn't full enough. Sure, I coded in dvorak support before they released a version that could do it a couple years back, but my patch was too hacky for their tastes. Theirs allowed a true remapping of the keyboard in raw mode. Mine was an on/off translation switch.
I know someone in real life who has shelled over at least three digit dollar amounts for Diablo items. He does not fit your stereotype of a god mode Quake cheater. In fact, he was a dedicated developer on one of the most popular Quake mods of all time, which he played very often with his clan in all seriousness.
I would more quickly equate the type of person to do this sort of item purchasing to be the same type who would purchase stand up Street Fighter arcade machines: the hardcore gamer who [has a lot of cash and] is willing to up the ante and excitement by adding as many elements to the experience as possible.
I had one PHB try to freeze the project, bring his friend in, add features, and resume the project (rather than compensate us for the features). Please, make everyone understand what quality internals are, so that I may have an understanding when I demand the resources for such a thing.
You may be interested to know a version of the DMCA is coming to Canada, whether or not you think entertainment and consumerism applies up north as well.
Non photorealistic rendering is a very cool field of graphics, if that's what these guys are doing. For more info on the technique, check out this google-attained page here.
For fleeting minutes, one of the games I considered creating in this very past year was a Zelda-type game where the models are cartoon NPR-rendered but with a richly detailed Street Fighter World Warrior type colourful background.
This doesn't seem too far from that. I think M[ia]moto (sp) is using his instincts on this one.
Name me one person you know who is at least moderately computer savvy, has a cd burner and uses a computer as a hobbyist device who has not done something illegal with their cd burner within a week of owning it.
Right. That's partly the reason why we Canadians pay a CD levy tax.
There is no point in which Bradley Kuhn tried to make an anaolgy between the severity and repercussions of slavery's freedom lost and the severity and repercussions of people who have no choice but to use non-free software. The analogy was given in order to assist the reader in finding an objective comparison between which freedoms are the rights of citizens and which freedoms impose on others. (The right to swing your fist stops where my face starts.)
I love the benefits of free software(linux, etc) but there is a place for closed proprietary software and there is nothing wrong with using them.
Right now there is a place for free software and proprietary software in the same world. However, in many cases, the philosophies of the two cannot naturally coincide, and there is conflict. If, in the future, we are left with one of the two, it will be because of the efforts of the people fighting(working) for the philosophy that they choose. Advocacy starts now.
Yesterday, I found a new feature that I enjoy. Try typing 'link:' into the Google search. It tells you all the sites that link to that site.
I know if you own the site, you can check it out with an HTTP_REFERER, but that isn't always the case.
The best tool for the job isn't always the one the developer is most familiar with. There are many things I would rather develop with Perl over C, even though I've only been using it heavily for two years. I've been a C programmer of the almost-every-day sort for two years short of a decade now.
Us younger programmers who are blessed with languages that are more articulate allow us to see the big picture sooner, and more clearly.
Hey, cool. I just finished reading "The Pragmatic Programmer" last week. This seems to be by the same authors. I recommend their work. I only wish I got ahold of it earlier than I did. It seems I've come up with a lot of the same points they did, the hard way. (Perhaps that's for the best...)
It was a cause of concern when I read that you left Loki Software. Even though I understand that you personally hold the Copyright for SDL, the nature of Loki seems to imply that it's presence encouraged you to continue development. With that part of your life behind you, would you like (or have you made) a public statement about the future of SDL?
By design, it's a very bad idea to make your trojan/virus do anything too shocking.
Ever boiled a frog? If you throw a frog in hot water, it'll jump out. If you slowly turn up the heat, it'll roast.
This sort of violent behaviour in a virus stops it from being able to live with it's host, because it gets detected way too fast. A worm/virus/trojan that has too great a consequence on it's host will be wiped out too soon, and in the case of the worm, this means lesser propogation.
<\Devil's advocate>
I wrote it last night. No, really.
\\\ SLUDGE
Alright. I'm Canadian. I'm interested in letting people in power know that I take strong issue. What is the most effective way to go about this?
\\\ SLUDGE
- Boxed with a device that physically proxies between the port on your motherboard and the actual keyboard. This piece of hardware would remap all keyboard requests to dvorak, or perhaps other key mappings.
- Tactile keys that don't resist key presses worth a damn, they just fall under the lightest touch and go click
- A hardware option to override BIOS key repeating and have rapid fire like the old NES Advantage controller on the Nintendo - you hold down one button, and the system registers massive repeats. I would use this to up my key repeat rate from 30 to an inane number around 200. Rare few people might remember the TSR Hyperkey for DOS that had this same effect.
- Macro recording and playback.
- There are no damn windows keys, ever. Logitech bonus keys are out, too.
- Function keys on the left, perhaps doubled with the ones on the top.
- Bundled with one of those keyboard skins, because you can never buy any that fit your keyboard perfectly.
- Scroll lock, num lock and caps lock rights in the upper right hand corner, so light flashing programs don't act stupi.
- Big backwards 'L' shaped enter key.
- Long wire
- Phat plastic design that allows you to drum on the thing below the spacebar and have it sound like a wicked snare drum. I hate keyboards that are too solid sounding.
- Can withstand a few punches.
Given a few different circumstances, I may have gone into producing such a device years ago.\\\ SLUDGE
Actually, when you think about it, this isn't much different than deciding terms for a contract, if you replace #1 with a discussion of how much money you're going to be making.
Perhaps it's possible that Microsoft is trying to find the most offensive, yet acceptable ground to be on, and this is being done by trial and error.
\\\ SLUDGE
Failing having access to a properly configured emacs, Jed will do in a pinch.
\\\ SLUDGE
After a year and a half of a VERY broken connect and refusals time and again from rogers to send anyone to my house to repair my connect, I threatened them with a lawsuit in order to talk to someone in a higher tier in tech support. (A benign threat- I didn't have the time or money to take on this sort of thing.)
I insinuated that they advertised that Rogers allowed you to do certain things with your cable modem, including surfing the web and playing games. However, I was told flat out by many of their techs that as long as my connect is up and they can ping it, they will do NOTHING ELSE to help me with my connect.
When Rogers left British Columbia and Shaw moved in, a tech came to my house to switch my Lancity modem with a Terayon model (thanks to Terayon and Shaw for the non-competition monopolistic contract). Apparently the wiring inside my wall was positively rotten. It was fixed by a Shaw employee that day.
Rogers deserves to rot for what I would call false advertising.
As a sidenote, if anyone is going through a Shaw to Rogers switch like I did, check out my experiences.
\\\ SLUDGE
I agree that code reuse causes bloated software in that libraries often are required to deal with a very general case of the problem, which requires much more time than just coding an example by yourself.
However, I can prove that code reuse isn't always bloat: the ANSI C library on your system. If the ANSI C library was statically linked, there wouldn't be any shared memory redgarding it between your processes. When you run 'top' and a process says it takes up a few more megabytes than you thought it would, be sure to check the shared column.
Saying that code reuse causes bloat is not the whole story. Code reuse serves both sides of the bloat war.
\\\ SLUDGE
I tried replying to this article, but my computer crashed as I did. No lie.
Anyways, I was saying that I have upgraded this month to the newest version. Failures are still occurring. I'm glad you've had better luck.
\\\ SLUDGE