Spoiler Alert. It's like the ratman drawing that says "She's watching you." Canonical is she in that case.
I'm personally a fan of Fedora, but if Steam on GNU/Linux is distributed as a tarball, that'd be best in the interests of Valve. Even if some people (mainly Ubuntu users) would be a bit stuck on the concept of a tarball, it'd be minimal work for Valve, and maximum cross-distribution compatibility. Darren L. VanBuren ===================== http://theoks.net/ On Mon, Jun 14, 2010 at 16:49, Harry Jeffery <harry101jeff...@googlemail.com> wrote: > It's all down to personal opinion, as long as it does what you need > quickly and effectively then it's fine. I've yet to see the dark side > in cannonical so I honestly can't say much about their ethics. > > Either way, I <3 Linux and so should Valve. > > On 15 June 2010 00:19, Katrina Payne <fullmetalhar...@nimhlabs.com> wrote: >> Well a few points: >> >> The commands in the Linux Commandline... and well those on any UNIX or UNIX >> Workalike have not really changed since the 1970s. You could pick up a book >> on >> BASH or TCSH from the 1970s, and still have most of what you should do. >> >> This kind of has allowed for tools to be put around these base functions, >> such >> as autocomplete, history and well--quite a few other really handy tools, to >> be >> added into the Linux CLI, to make its functionality go above and beyond >> anything cmd.exe is capable of. >> >> I still have yet to look into Microsoft's PowerShell though. >> >> This is why most Linux users use the CLI. It has developed into an experience >> that is completely unlike the root canal that is cmd.exe. You can actually go >> in, and get some functionality from it. A lot of functionality too. It also >> gives the feeling that the user has more direct control--without that Pesky >> GUI in the way (though, technically, this just has a bunch of other items >> typically in the way, such as init.d, bash, various bash extensions--maybe >> screen... you are just trading one thing in the way, that is, a GUI, for >> another thing, that is a CLI). >> >> Now, that said--there are plenty of Desktop Environments ('DE') that Linux >> can >> make use of, that pretty much make requirement of CLI use unnecessary. That >> is, between KDE4, LXDE, XFCE, E17 and GNOME2/GTK, the average Linux user >> nearly never has to do anything on the CLI. Unless something has gone >> horribly >> wrong. In which case, he should be able to get the local Linux Admin to fix >> it. >> >> As that technically is what he'd do if something went horribly wrong on >> Windows. He'd get his local Windows Expert to fix it. >> >> The "required" use of the CLI rather than GUI to properly use Linux, is much >> like how using Vi is "required" rather than EMACS for the proper use of >> Linux. >> >> Also, I use Fedora, and typically find it a LOT easier to work with than >> Ubuntu. This maybe, because Fedora tries not to be a bunch of asshats to the >> people upstream. The same cannot be said about Canonical, the owners of >> Ubuntu. Where, from what I have seen on their policies by past actions... >> their MAIN desire is to be asshats to the upstream. >> >> I have a long winded rant on why I do not like Ubuntu... I mostly just state >> that nobody uses Ubuntu Linux. Typically most people go over to another Linux >> Distro afterwards, generally agreeing that no matter what Linux Distro they >> go >> to, be it Fedora, Puppy (well, prior to being based on Ubuntu), Arch, Slack, >> Gentoo, Knoppix, CentOS, LFS, etc., is better than Ubuntu... either that, or >> they return to Windows--only using Ubuntu as a rescue disk setup. >> >> Right, now then. Back to your regular discussion >> >> ~Katrina >> >> On Sunday, June 13, 2010 07:20:08 am Harry Jeffery wrote: >>> People like the command line because it's very fast to do what you >>> want if you know what you are doing. So far ubuntu seems to be the >>> most user friendly linux distro and what a majority of linux gamers >>> might use. >>> >>> Personally I'd just use arch-linux and optimize my system...a lot. As >>> long as nVidia release decent linux drivers it's all good. >>> >>> On 13 June 2010 14:01, Adam Buckland <adamjbuckl...@gmail.com> wrote: >>> > A couple of things: >>> > >>> > Elan Ruskin gave a good talk on porting to consoles at GDC08. The >>> > slides are on Valve's website. There's something in there that may >>> > help you here: >>> > >>> > #ifdef __GNUC__ >>> > #define MAXSI_THREADED_VARIABLE __thread >>> > #else >>> > #define MAXSI_THREADED_VARIABLE __declspec( thread ) >>> > #endif >>> > >>> > You may wish to use another define for windows rather than an else >>> > statement in case you wish to port it somewhere else in the future. >>> > >>> > Also I agree, the Mac and Linux ports are incredibly similar. In fact, >>> > on the Mac port a shell script is executed first to determine whether >>> > it's running on OS X or Linux. >>> > >>> > Finally Linux could be a great consumer platform. Before it can become >>> > this, it needs to learn that not everyone is a power user, and make >>> > things simple. Learn from the Mac app bundles, and remove reliance on >>> > the command line (for example the output is shown on the update >>> > software). It scares normal users. That, and a lot of power users >>> > (like myself), don't want to have to rely on the command line for >>> > everything. >>> > >>> > On 13 June 2010 13:28, Jonas 'Sortie' Termansen <hlcod...@maxsi.dk> wrote: >>> >> I'd like to share a few experiences about porting code and writing >>> >> portable code. Scroll down, if you just want my thoughts on how portable >>> >> the Source Engine is. >>> >> >>> >> Recently I've been porting my in-development digital distribution >>> >> platform to GNU/Linux for the fun of it. Naturally, most of my code >>> >> didn't work right out of the box. But it is worth that several >>> >> subsystems actually worked at the first attempt, or with an edit or two. >>> >> For instance, my string system and parser classes/functions compiled >>> >> right away. >>> >> >>> >> However, stuff like accessing the filesystem, multithreading, user >>> >> interfaces, networking, and so on didn't work because it relied on the >>> >> Windows API. The interesting part here is that POSIX does things >>> >> differently; but almost in the same manner as Windows. That means for >>> >> each Windows API call you use, there is often one or more POSIX calls >>> >> that does the same thing (if you add a little abstraction, that is). >>> >> >>> >> Now, some of you heavily suggested the use of #ifdefs all around the >>> >> code. You should not use #ifdefs each time you rely on platform specific >>> >> behavior, but only in shared function calls or in headers. For instance, >>> >> if you have to open a file. On Windows you can call the CreateFile >>> >> function, while POSIX supports the open function. That means for each >>> >> file opening, you need to write something like. >>> >> >>> >> #ifdef linux >>> >> int FileHandle = open(Path, Flags); >>> >> #elif defined(WIN32) >>> >> HANDLE FileName = CreateFile(...) >>> >> #endif >>> >> >>> >> Naturally, this isn't very pretty. And if this was used all over the >>> >> Source Engine you would spend a lot of time writing #ifdefs and checking >>> >> platform specific documentation. However, I am not saying #ifdefs are a >>> >> bad idea. But instead of using them all over your code, you should move >>> >> them to a shared class or function that simply implements all this once. >>> >> In my code, I declared an abstract baseclass called MaxsiFileSystem that >>> >> implements all the common functions to access the local filesystem. So >>> >> now when I wish to open a file for reading, I would call: >>> >> >>> >> MaxsiHandle FileHandle = FileSystem()->OpenFile(Path, MAXSI_FILE_READ | >>> >> MAXSI_FILE_SEQUENTIAL); >>> >> >>> >> This additional layer of abstraction makes it very easy to add support >>> >> for new platforms as you just have to define a new child of the abstract >>> >> baseclass. I have also added such a layer for my Window System. This >>> >> means I call my own APIs in my actual code, and then it redirects it to >>> >> the Windows API or GTK+ depending on your platform. >>> >> >>> >> You might also have noticed I implemented a FileSystem() function, in >>> >> the same manner I have implemented a WindowSystem() function that >>> >> returns the window system in use by the current function/class. This >>> >> makes it easy to simply swap the window system on the fly. For instance, >>> >> my source mod links against my distribution platform (LGPL) and my mod >>> >> then implements some of these interfaces. It could implement the >>> >> MaxsiWindowSystem class using VGUI and then my programs could be >>> >> natively drawn ingame with mininal work. >>> >> >>> >> Other porting issues includes how the VS compiler breaks a lot of the >>> >> C99 standard. To counter this, I have simply declared a lot of macros in >>> >> my header files that replaces platform specific behavior. #defines are >>> >> very powerful for this. For example, to declare a thread-specific >>> >> variable, I would use this header define: >>> >> >>> >> #ifdef __GNUC__ >>> >> #define MAXSI_THREADED_VARIABLE __thread >>> >> #else >>> >> #define MAXSI_THREADED_VARIABLE __declspec( thread ) >>> >> #endif >>> >> >>> >> And then use the MAXSI_THREADED_VARIABLE macro to declare each threaded >>> >> variable. My experience is also that the GNU Compilers throw much more >>> >> errors and warnings than the Visual Studio compiler - and it is often >>> >> right to do so. Visual Studio teaches you to write bad >>> >> standards-breaking code, even if you just compile using MinGW you will >>> >> get to fix a lot of issues that makes your code rather non-portable. >>> >> (Like avoiding Microsoft-specific extensions to the C Library, in some >>> >> cases.) But Microsoft did break the standard enough that you might need >>> >> to use some of the above methods for porting, just to get your code >>> >> compiling using MinGW. >>> >> >>> >> >>> >> Now to return to the Source Engine. In my experience a lot of stuff in >>> >> the SDK code is already defined using interfaces, classes, and such. >>> >> That means the actual porting issues have been outsourced to the Engine. >>> >> This, in turn, means that the SDK code will be rather easy to port >>> >> compared to the Engine. Fortunately, as the Source Engine already is >>> >> highly modular using interfaces, it is easy to just swap a DX renderer >>> >> with OpenGL. As such, they already have the framework to make their code >>> >> work on new platforms - all they have to do is implement their >>> >> interfaces using the local system calls. If you start to do this on the >>> >> low-level interfaces and move upward, then soon your program starts >>> >> working in all its glory. >>> >> >>> >> As for a Steam Client for GNU/Linux. It exists. I lost the link, but it >>> >> seems that Valve uploads nightly builds of their Steam Client, and each >>> >> day it works just a bit better. Last I heard, the Steam Client actually >>> >> logged on and the actual UI was partially drawn. I am not sure why Valve >>> >> is so silent about this - perhaps it's just experimental, or they they >>> >> to make a big deal about it, like they did with the Mac. Seriously, when >>> >> are they gonna shut up about it? Last I saw was that they made a funny >>> >> TF2 comic about it. >>> >> >>> >> >>> >> Porting programs to Linux hasn't been very hard for me, though it is a >>> >> lot of work, if you want to do it properly. It seems that the Source >>> >> Engine is already highly portable and GNU/Linux build doesn't seem too >>> >> difficult, as it seems from the nightly builds. There is no doubt about >>> >> whether we need a client for GNU/Linux, it is just a matter of time >>> >> before they announce and release it. >> >>> > Bucky >> >> >> _______________________________________________ >> To unsubscribe, edit your list preferences, or view the list archives, >> please visit: >> http://list.valvesoftware.com/mailman/listinfo/hlcoders >> >> > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, please > visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders