I've always been a computer enthusiast, and for the last seven or so years I've also been a guitar player. I became interested in the idea of recording myself with my computer some time after I started jamming and I wanted to find counter melodies to lines I was writing without needing another human being around. I started experimenting with CakeWalk and some lame audio recorders, trying tricks out like throwing my mic in the soundhole of my hollowbody acoustic guitar.
I learnt pretty fast that recording maybe twelve seconds of music and looping it is a serious bitch with the hardware I had in that day, never mind multitracking a song for production.
Back then, I had a SoundBlaster Pro, 16 megabytes of RAM and a p75.
Two years later I was at a friend's house clicking icons when I found out he had Cooledit Pro installed. I hadn't ever seen anything like this before. Although it was buggy and the filters were painfully slow, there was enough tech there to throw together a song.
Pretty soon after that, I hooked up with modplug (a win32 freeware mod editor) and I tracked
this song.
Modplug was used to do all of the background music
and computer generated notes, and real guitars
were layered overtop with the aforementioned
multitracking software.
This was recorded on a celeron 300 w/ 128 megs of RAM, no SCSI hardware, a $50 guitar and a SB Awe32. I was learning how to use the software, and it took me about a month's worth of time that I had to steal off my friend's machine.
One of the biggest losses is the full duplex recording mode of the Awe32. The recording quality goes right out the window when you start playback. I ended up having to use noise reduction filters, which also sacrificed my overall audio quality.
I recorded all guitar tracks dry because my setup was so poor. Any overdrive/distortion you hear is the result of post-production. I hear you're supposed to do it this way so you can add or remove effects, but most pro musicians get to hear themselves playing overdriven guitar while recording dry to get themselves into the mood.:)
All in all, my hardware wasn't enough to produce a quality track, and it wasn't able to be done in a timely fashion. Nowadays, I've gotten out of highschool, and I have some more spending money. I've picked up an Ibanez RG Series guitar and an RP2000 effects modeling unit, as well as a k7-750 w/ 256 megs of ram and a SBLive (which does full duplex a lot nicer). I'm gonna give it another shot, after the CTF paks are released. (See homepage URL:) )
I'm sorry that something that could have positive effects like this, at the time of release, needs to have the negative effects pointed out. However, this is one of those times.
Kylix is not free enough to be fully accepted by all of the Free Software advocates. Not by a long shot. The restrictions it imposes, and the corporate control of the language are just non-negotiable to the same people who stayed away from KDE because of the old licensing conditions.
It's been shown that the part of the community who calls themselves the Open Source Community are well disposed to using software which does not meet all of the requirements that some people in our community require their software to have before they put a considerable time investment in learning it and using it.
In order for developers not to fragment this community's software choice, I would have to advise against writing general purpose software for Kylix. It must NOT become a core part of Linux distros.
Id software's license agreement for the q3 sdk code including Radiant, the BSP/PVS generator and the light cooking tools do not allow you to commercially exploit the game in any way shape or form.
There's also the marketers of big companies who are savvy to the media hype around video games being 'murder simulators'. Would you want your soft drink logo to get blood splattered on it, or a corpse lying next to it?
I usually don't bother posting to articles that have these many posts already because I just get lost in the noise. However, I thought of something pretty insightful.
Sarcastic news flash: Steve Ballmer thinks the once a toy operating system, Linux is now competition for the Windows line!
Cough.
Ballmer is claming that this toy Operating System is now the top threat to Microsoft... or in other words, there are no real threats to the Microsoft "empire".
Sounds more like an attempt to drum up some response to the fairly recent rattiness of Microsoft's stocks.
Either way, I will continue to love and use GNU/Linux.
When presented with a client, there is more one can do than 'play a game'. One person created an aimbot for Quake 3 and distributed it across the Internet because of a political agenda to 'destroy' the game online, because he thought the entire scene had become too 'commercialised' and he missed the days when people just played Quake 2 for fun.
Sad mentality, but it's a special case that any programmer needs to address, in my opinion.
ESR touched on this issue after Carmack commented on the binary-only frontend. The truth is that Quake is written to rely on security through obsurity (obscurity being the binary where the renderer and networking protocols resides).
The truth is, if Quake had been written in such a way that there was zero trust for the client, it would not have ran as efficiently. Entity positions are sent to the client when they are supposedly in line of sight. In theory, this sounds good. However, the PVS (potentially visible set) has, with my visual estimate, about 10%-20% overdraw. Because of this, a number of cracks can be employed, such as a wrapper for your OpenGL library that will draw all surfaces with an opacity of 0.5f, making characters pop up behind walls before they get to see you.
The fact of the matter is that if the entity's data was sent to the client at the moment that it appeared on the screen, it would pop up because of network latency. In very lagged situations, you can even see this happen.
This is just one example of why networking security in games require different philosophies than that of normal application client/server design.
If there is no obscurity needed, you can have a completely client-to-client game.
The idea of a client to client game as you call it, or peer-to-peer, suffers from having to send all data to all players at all times. Doom required approximately four times the data as Quake did for the same number of players in the game. (Perhaps that's why Quake originally had 4*4 the number of players as Doom did when it initially shipped.)
You can use a binary frontend to encrypt the protocol so as to not to allow proxies that alter the gameplay after the actual protocol has been reverse engineered from the source. However, it would be a simple matter in a game like this to make a computationally inexpensive calculation that gives the angle and velocity for the bullet, while compensating for the wind.
Scorched Earth had some pretty tough AI that basically did just this. (Poolshark, was it?)
It would be impossible to implement network play on a game with the source available like this, where you cannot trust the other party. The correct moves can be very quickly mathematically derived. It's actually a question I submitted to Ask Slashdot some years back, if anyone had an ingenious way to get around it.
An important note to anyone who is working on
a free software project that might get posted on
slashdot: Have the infrastructure set up to harvest volunteer programmers who would like to commit some time and effort to the project! Don't let this free talent slip through your fingers.
The GNU General Public License explicitly states that you can take the terms from any previous or future version of the license and use it in the place of the current version, as a user of the code and resulting software. Doesn't this clause make it impossible to plug holes in the GPL?
Here is the clause:
Each version is given a distinguishing number. If the program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions eithre of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this license, you may choose any version ever published by the Free Software Foundation.
I'm a fan of Joystick101. I go there every day to check for any valid news links to
my site. The writers opinions are always insightful. However, I think the author is off base on this one.
It's funny that John Carmack called these the halcyon days of polygon based gaming, and yet two years down the road, some flawed marketing is going to drop that down the tubes. Consoles are
just not that essential.
I think we're finally arriving at at age where we can honestly say that games look exciting to people who don't play games. The same people who stop to watch movies playing at Future(Torture) Shop would now stop to watch some kid playing a game at some display stand.
Games truly look good for the first time, and there are enough excess polygons to throw around to express artistic ideas. I don't buy it.
If moore's law holds, and I'm not one to predict whether or not an estimate would fail (who am I to do such a thing?) we should be somewhere around six or seven gigahertz by the time we're all scoffing at this article's headline.
Six or seven gigahertz. We'll be finished simplifying the user interface FAR before then. We'll be fancifying it.
Let's not forget that posting a quote from someone does not excuse you from your endorsing it as being relative to your story and helping depict the disposition therein.
I've been playing around with the design of a terrain engine. For those who don't know the basics of heightmap engines, the obvious thing to do is to have a grid of vertices. The height of the vertices is defined by a bitmap image, where each pixel's grayscale intensity represents the height of the vertex.
The result is that a grayscale image can be created in The Gimp, and the output sent to my (and many other) terrain engines after saving a file. This is an unsatisfactory amount of feedback.
I'd been doing some thinking about making a real terrain editor when it struck me that I would probably be recreating most of the tools and filters in The Gimp, but at a decidedly lower quality. I then realised that what I wanted to do is the opposite of plugins, additional filters, Perl-Fu and Script-Fu: I wanted to throw out the buffer where all the filters and tools are rendered to, and replace THAT with a plugin to the other end of The Gimp.
I am interested in replacing the framebuffer in The Gimp with a AF_UNIX socket which transmits the framebuffer data over to another app, which would be in this case, my terrain. I would be able to paint modifications onto my terrain with all of The Gimp's tools.
I'm pretty busy with my website these days, as we just went live, but I'm definately interested in looking into the code for The Gimp soon enough to see if this is feasible.
The only real alternative to BizTalk is, ebXML and it's lame. It's just Sun and a bunch of bureaucrats backing it.
It's this sort of quote that really makes me lose respect for the articles. Calling something 'lame' in a tech article does not suffice, except when herding lower IQ types into opposing a technology and chuckling at the misfortunes of another.
What do you think about the idea of dynamically generating native code in places where emulation is necessary instead of repetitively doing a loop that follows the below sequence:
Can the code already be run natively?
No, the code does some hardware specific tricks. Turn the emulation on.
Pass code and data off to proper kernel abstractions in the current OS.
I am going through many of the same sorts of troubles with @home. If you would be willing to help out with getting through their policies so that they could service my connect by answering some of my questions, I would hold thisfavour in the highest regard.
Please reply to my E-Mail address if this is so. I would have mailed yours, but I did nothing much but smirk when I saw what it was.
This claim is absurd. There is only one kind of hint you can take from the Linux code: Design decisions. If you think that any Windows instabilities are caused by flawed design decisions, then you have another thing coming.
Finding errors with design decisions could be done by purely looking at theory on paper. However, the problems are much more deeply routed. They are problems with the implementation. I don't see how spying at Linux code could improve this. Let's call this bullshit a product of hype and move on...
I've seen the jokeish pile of shit cable modem service that is available to me here in British Columbia for $40. The service is horrible- they told me they support my connect- as long as they can "ping my modem", they are satisfied and 100% supported, the tech people clueless (Tier 1 does not know the difference between TCP and ICMP) and the bandwidth cap intolerable.
So, this is what I get for fourty dollars a month Canadian? I'd pay triple that for good service, a consistent connect to Quake servers, and the ability to talk to someone who knows networking when I phone tech support.
One of the most killer moments was when I complained to the tech support guys about the crappy connects I got in Quake, to the tune of five or six packet loss phone jack icons a minute (yes, I troubleshooted every last variable other than my cable modem) and in order to get me off the phone, they told me to take a screenshot of the lag, and to send it to support@home.com. So, I took a picture of the game not moving.
Around a year ago I picked up a copy of Learning GNU Emacs by O'Reilly. One part of this excellent book describes using a mini-mode called abbrev-mode, which expands things you type. When I discovered this, I became overzealous and started to create different abbreviations for each major mode.
When I programmed in C++, I would make _loop expand to:
int count;
for ( count = 0; count < x; count++ )
I would then write a _loop macro for Perl which would do the same thing for the Perl minimode. After a short while, I realised where this was going. I started to program in a short form that enabled me to not understand the detailed syntax of the language, and to get by in simple situations with a superficial understanding.
My next experiment was to play around with the idea of a MetaLanguage. It turns out that such a thing may actually be able to output different languages based a generic input language.
It seems that Larry Wall is interested in doing something similar. While there are those who would be against Perl for it's confusing syntax- It never whines about not doing something if it can do anything at all- just try printing a hashref for an example- Perl has done something very interesting over the years.
Perl has shown us how much we are sacrificing by making language syntax simple, unifying and easy to understand. (No, this shouldn't be +1 funny)
In case anyone was wondering, this happens because Quake 3 uses a virtual machine by default for a large portion of the code on x86 and Motorla. This occurs because of a bug in the VM where a float is rounded up, instead of chopped off, like is supposed to happen when you typecast (float).
This does not happen when you use the hard compiled DLLs, obviously. Also, you do not need a high framerate in order to exploit this bug. Rather, there are framerate points where it is exploitable. 37 frames per second is one point.
When Hemos stated lowend, he wasn't referring to the number of cycles per second the CPU was able to do. Rather, he was talking about the low cache Duron and Celeron CPUs. Good writing doesn't make you think like the author before you understand the prose, and this post was not good writing.
However, what the hell do you think you are all doing by correcting him?
I'm a member of rogers@home, as I have been for two (unhappy) years.
I was cracked while my computer was on a dialup connection to my ISP. Completely dynamic IP, not a 24/7 connect by any means. Ever since I've had the experience of using Rogers@home, my friends and I have always received the same IP when renewing their lease with DHCP. It's almost as if they've just taken out the middleman of telling you that your IP address has been assigned and telling you to configure your data, and just assigning it to you using server side software.
A friend of mine apparently had someone stealing their IP address for two weeks on end. When phoning @home tech support, they traced it to one guy with the incorrect DHCP settings. However, under Acceptable Use Policy, they couldn't do anything but ask him to stop. The result? My friend's DHCP settings constantly returned the same IP, even though it was conflicting.
She paid for two weeks of @home cable modem usage without being able to use it.
Apparently The Hunz has changed his site since I leeched all his music,but you can still check it out here.
I learnt pretty fast that recording maybe twelve seconds of music and looping it is a serious bitch with the hardware I had in that day, never mind multitracking a song for production. Back then, I had a SoundBlaster Pro, 16 megabytes of RAM and a p75.
Two years later I was at a friend's house clicking icons when I found out he had Cooledit Pro installed. I hadn't ever seen anything like this before. Although it was buggy and the filters were painfully slow, there was enough tech there to throw together a song.
Pretty soon after that, I hooked up with modplug (a win32 freeware mod editor) and I tracked this song. Modplug was used to do all of the background music and computer generated notes, and real guitars were layered overtop with the aforementioned multitracking software.
This was recorded on a celeron 300 w/ 128 megs of RAM, no SCSI hardware, a $50 guitar and a SB Awe32. I was learning how to use the software, and it took me about a month's worth of time that I had to steal off my friend's machine.
One of the biggest losses is the full duplex recording mode of the Awe32. The recording quality goes right out the window when you start playback. I ended up having to use noise reduction filters, which also sacrificed my overall audio quality.
I recorded all guitar tracks dry because my setup was so poor. Any overdrive/distortion you hear is the result of post-production. I hear you're supposed to do it this way so you can add or remove effects, but most pro musicians get to hear themselves playing overdriven guitar while recording dry to get themselves into the mood. :)
All in all, my hardware wasn't enough to produce a quality track, and it wasn't able to be done in a timely fashion. Nowadays, I've gotten out of highschool, and I have some more spending money. I've picked up an Ibanez RG Series guitar and an RP2000 effects modeling unit, as well as a k7-750 w/ 256 megs of ram and a SBLive (which does full duplex a lot nicer). I'm gonna give it another shot, after the CTF paks are released. (See homepage URL :) )
I'm sorry that something that could have positive effects like this, at the time of release, needs to have the negative effects pointed out. However, this is one of those times.
Kylix is not free enough to be fully accepted by all of the Free Software advocates. Not by a long shot. The restrictions it imposes, and the corporate control of the language are just non-negotiable to the same people who stayed away from KDE because of the old licensing conditions.
It's been shown that the part of the community who calls themselves the Open Source Community are well disposed to using software which does not meet all of the requirements that some people in our community require their software to have before they put a considerable time investment in learning it and using it.
In order for developers not to fragment this community's software choice, I would have to advise against writing general purpose software for Kylix. It must NOT become a core part of Linux distros.
Id software's license agreement for the q3 sdk code including Radiant, the BSP/PVS generator and the light cooking tools do not allow you to commercially exploit the game in any way shape or form.
There's also the marketers of big companies who are savvy to the media hype around video games being 'murder simulators'. Would you want your soft drink logo to get blood splattered on it, or a corpse lying next to it?
I usually don't bother posting to articles that have these many posts already because I just get lost in the noise. However, I thought of something pretty insightful.
Sarcastic news flash: Steve Ballmer thinks the once a toy operating system, Linux is now competition for the Windows line!
Cough.
Ballmer is claming that this toy Operating System is now the top threat to Microsoft... or in other words, there are no real threats to the Microsoft "empire".
Sounds more like an attempt to drum up some response to the fairly recent rattiness of Microsoft's stocks.
Either way, I will continue to love and use GNU/Linux.
Sad mentality, but it's a special case that any programmer needs to address, in my opinion.
ESR touched on this issue after Carmack commented on the binary-only frontend. The truth is that Quake is written to rely on security through obsurity (obscurity being the binary where the renderer and networking protocols resides).
The truth is, if Quake had been written in such a way that there was zero trust for the client, it would not have ran as efficiently. Entity positions are sent to the client when they are supposedly in line of sight. In theory, this sounds good. However, the PVS (potentially visible set) has, with my visual estimate, about 10%-20% overdraw. Because of this, a number of cracks can be employed, such as a wrapper for your OpenGL library that will draw all surfaces with an opacity of 0.5f, making characters pop up behind walls before they get to see you.
The fact of the matter is that if the entity's data was sent to the client at the moment that it appeared on the screen, it would pop up because of network latency. In very lagged situations, you can even see this happen.
This is just one example of why networking security in games require different philosophies than that of normal application client/server design.
If there is no obscurity needed, you can have a completely client-to-client game.
The idea of a client to client game as you call it, or peer-to-peer, suffers from having to send all data to all players at all times. Doom required approximately four times the data as Quake did for the same number of players in the game. (Perhaps that's why Quake originally had 4*4 the number of players as Doom did when it initially shipped.)
Scorched Earth had some pretty tough AI that basically did just this. (Poolshark, was it?)
An important note to anyone who is working on a free software project that might get posted on slashdot: Have the infrastructure set up to harvest volunteer programmers who would like to commit some time and effort to the project! Don't let this free talent slip through your fingers.
The GNU General Public License explicitly states that you can take the terms from any previous or future version of the license and use it in the place of the current version, as a user of the code and resulting software. Doesn't this clause make it impossible to plug holes in the GPL?
Here is the clause:
I'm a fan of Joystick101. I go there every day to check for any valid news links to my site. The writers opinions are always insightful. However, I think the author is off base on this one.
It's funny that John Carmack called these the halcyon days of polygon based gaming, and yet two years down the road, some flawed marketing is going to drop that down the tubes. Consoles are just not that essential.
I think we're finally arriving at at age where we can honestly say that games look exciting to people who don't play games. The same people who stop to watch movies playing at Future(Torture) Shop would now stop to watch some kid playing a game at some display stand.
Games truly look good for the first time, and there are enough excess polygons to throw around to express artistic ideas. I don't buy it.
If moore's law holds, and I'm not one to predict whether or not an estimate would fail (who am I to do such a thing?) we should be somewhere around six or seven gigahertz by the time we're all scoffing at this article's headline.
Six or seven gigahertz. We'll be finished simplifying the user interface FAR before then. We'll be fancifying it.
Lame is a horse you put to sleep.
Let's not forget that posting a quote from someone does not excuse you from your endorsing it as being relative to your story and helping depict the disposition therein.
I've been playing around with the design of a terrain engine. For those who don't know the basics of heightmap engines, the obvious thing to do is to have a grid of vertices. The height of the vertices is defined by a bitmap image, where each pixel's grayscale intensity represents the height of the vertex.
The result is that a grayscale image can be created in The Gimp, and the output sent to my (and many other) terrain engines after saving a file. This is an unsatisfactory amount of feedback.
I'd been doing some thinking about making a real terrain editor when it struck me that I would probably be recreating most of the tools and filters in The Gimp, but at a decidedly lower quality. I then realised that what I wanted to do is the opposite of plugins, additional filters, Perl-Fu and Script-Fu: I wanted to throw out the buffer where all the filters and tools are rendered to, and replace THAT with a plugin to the other end of The Gimp.
I am interested in replacing the framebuffer in The Gimp with a AF_UNIX socket which transmits the framebuffer data over to another app, which would be in this case, my terrain. I would be able to paint modifications onto my terrain with all of The Gimp's tools.
I'm pretty busy with my website these days, as we just went live, but I'm definately interested in looking into the code for The Gimp soon enough to see if this is feasible.
It's this sort of quote that really makes me lose respect for the articles. Calling something 'lame' in a tech article does not suffice, except when herding lower IQ types into opposing a technology and chuckling at the misfortunes of another.
What do you think about the idea of dynamically generating native code in places where emulation is necessary instead of repetitively doing a loop that follows the below sequence:
I am going through many of the same sorts of troubles with @home. If you would be willing to help out with getting through their policies so that they could service my connect by answering some of my questions, I would hold thisfavour in the highest regard.
Please reply to my E-Mail address if this is so. I would have mailed yours, but I did nothing much but smirk when I saw what it was.
This claim is absurd. There is only one kind of hint you can take from the Linux code: Design decisions. If you think that any Windows instabilities are caused by flawed design decisions, then you have another thing coming.
Finding errors with design decisions could be done by purely looking at theory on paper. However, the problems are much more deeply routed. They are problems with the implementation. I don't see how spying at Linux code could improve this. Let's call this bullshit a product of hype and move on...
Michael Labbe
I've seen the jokeish pile of shit cable modem service that is available to me here in British Columbia for $40. The service is horrible- they told me they support my connect- as long as they can "ping my modem", they are satisfied and 100% supported, the tech people clueless (Tier 1 does not know the difference between TCP and ICMP) and the bandwidth cap intolerable.
So, this is what I get for fourty dollars a month Canadian? I'd pay triple that for good service, a consistent connect to Quake servers, and the ability to talk to someone who knows networking when I phone tech support.
One of the most killer moments was when I complained to the tech support guys about the crappy connects I got in Quake, to the tune of five or six packet loss phone jack icons a minute (yes, I troubleshooted every last variable other than my cable modem) and in order to get me off the phone, they told me to take a screenshot of the lag, and to send it to support@home.com. So, I took a picture of the game not moving.
..
Michael Labbe
I agree... and I am glad this was said. It's a shame it was moderated down.
Point taken.
Michael Labbe
Around a year ago I picked up a copy of Learning GNU Emacs by O'Reilly. One part of this excellent book describes using a mini-mode called abbrev-mode, which expands things you type. When I discovered this, I became overzealous and started to create different abbreviations for each major mode.
When I programmed in C++, I would make _loop expand to:
int count;
for ( count = 0; count < x; count++ )
I would then write a _loop macro for Perl which would do the same thing for the Perl minimode. After a short while, I realised where this was going. I started to program in a short form that enabled me to not understand the detailed syntax of the language, and to get by in simple situations with a superficial understanding.
My next experiment was to play around with the idea of a MetaLanguage. It turns out that such a thing may actually be able to output different languages based a generic input language.
It seems that Larry Wall is interested in doing something similar. While there are those who would be against Perl for it's confusing syntax- It never whines about not doing something if it can do anything at all- just try printing a hashref for an example- Perl has done something very interesting over the years.
Perl has shown us how much we are sacrificing by making language syntax simple, unifying and easy to understand. (No, this shouldn't be +1 funny)
Michael Labbe
In case anyone was wondering, this happens because Quake 3 uses a virtual machine by default for a large portion of the code on x86 and Motorla. This occurs because of a bug in the VM where a float is rounded up, instead of chopped off, like is supposed to happen when you typecast (float).
This does not happen when you use the hard compiled DLLs, obviously. Also, you do not need a high framerate in order to exploit this bug. Rather, there are framerate points where it is exploitable. 37 frames per second is one point.
Michael Labbe
When Hemos stated lowend, he wasn't referring to the number of cycles per second the CPU was able to do. Rather, he was talking about the low cache Duron and Celeron CPUs. Good writing doesn't make you think like the author before you understand the prose, and this post was not good writing.
However, what the hell do you think you are all doing by correcting him?
Michael Labbe
I'm a member of rogers@home, as I have been for two (unhappy) years.
I was cracked while my computer was on a dialup connection to my ISP. Completely dynamic IP, not a 24/7 connect by any means. Ever since I've had the experience of using Rogers@home, my friends and I have always received the same IP when renewing their lease with DHCP. It's almost as if they've just taken out the middleman of telling you that your IP address has been assigned and telling you to configure your data, and just assigning it to you using server side software.
A friend of mine apparently had someone stealing their IP address for two weeks on end. When phoning @home tech support, they traced it to one guy with the incorrect DHCP settings. However, under Acceptable Use Policy, they couldn't do anything but ask him to stop. The result? My friend's DHCP settings constantly returned the same IP, even though it was conflicting.
She paid for two weeks of @home cable modem usage without being able to use it.
Fuck you, @home.
Michael Labbe
It's still a major rewrite... unless you were implying switching the renderer in-game to Java. :P