Archived

This topic is now archived and is closed to further replies.

Mindwarp

Why use linux to dev games?

Recommended Posts

Hello everyone, For about the past year or so I have been running linux as my primary operating system. Previously I had only windows experience. I am currently running windows 2000. I recently switched to windows this week because I was hoping to find direction in programming (It always seems to me like there isn''t much money in programming free software or selling software in a market where everything is free). I would just like to share some of my thoughts for those who havent tried linux as to its advantages and disadvantages for programmers looking to make games (Primarily win32 platform). Some benefits of linux are that it is free. To get my win2k box up to speed I have to attempt to attain a copy of Visual C++ 6.. god only knows how much that costs if your not a student. Then I want to make a logo or 2 for my game, so I need to find a suitable editor. Seems either fireworks or photoshop. Both costing alot of money (I prefer photoshop). Then I figure I want some 3d stuff in my games, so I need to go purchase some 3d editor like 3ds max.. point is by the time I am done I have probably spent more money than I have, which is a bad thing. With linux you have the gcc compiler which is free. It does not come bundled with a IDE (I know what most people are saying right now, they can just use borland in windows without paying for the above visual C++.. bah), but it is command line driven, and is very easy to use. (ex. gcc mygame.c -o mygame.exe) There are several very good editors (vim for console mode and xemacs and gvim for xwindows). As for picture editing gimp is great, and for 3d work blender is excellent also. So how do you make games on Linux that do both linux and win32? Libsdl (http://www.libsdl.org).. lets you do both.. slap in a good api like opengl and your ready to go. Give linux about a month or 2 months of moderate use and you will be flying. Point is.. even though the free applications I mentioned are all available on windows also, they may not be as well supported since they were designed for linux. Also linux itself is free, which is a big benefit with XP costing as much as it does. Not to mention you can then serve a webpage, host your own email server etc. all for free.. As a coder I actually enjoy alot of the command line-ness of linux, as it really helps me get stuff done faster than trying to work through some GUI (which probably explains why apache is the #1 webserver. Just simply edit the apache.conf file and your rocking). Related links: www.mandrake.com - Mandrake linux - Good distrobution to start out with www.debian.org - the distribution you will use once you know what your doing www.linuxnewbie.org - where I first learned how to use linux www.libsdl.org - the library your application will use so you dont need to fuss with winapi nehe.gamedev.net - Just about all examples available in SDL cone3d.gamedev.net - SDL examples there also www.gimp.org - Graphic editor www.blender.nl - 3d editor www.vmware.com - Lets you run windows from inside linux ($$$) www.winehq.org - Lets you run windows applications from inside linux (ex. half-life, the sims etc. all run pretty decent) www.slashdot.org - Tons of linux related news, one-sided stories on how linux rules www.lokigames.com - a example of games ported using SDL www.enlightenment.org - my favorite windows manager Hope this helps anyone who is bored with their current operating system, sick of paying too much $, sick of bad business tactics, or if your a hippie.. Mindwarp

Share this post


Link to post
Share on other sites
Although I don''t know his reason for posting this, a lot of his points are valid . SDL is so cool (spred the word ). Here''s the link for GIMP for Windows if anyone wants it: http://user.sgic.fi/~tml/gimp/win32/. The Win32 version is a little buggy, it is much better in *nix.

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Also remember, the main reason Linux hasn''t become hugely popular yet is because there hasn''t been as much development and support for it. Once more people (like you coders out there) start supporting and developing on Linux, it will quickly get much more popular.

Share this post


Link to post
Share on other sites
Umm. Why are you switching back to Windows again?

Oh well, I''ll post a few random thoughts. The last time I had to do a Windows app (for a job interview), I whipped out my ancient Win95 cd, pulled the Borland compiler off the net, and was ready to go within 20 minutes. I only needed to show a garbage collecting/compacting algorithm, and some other random stuff, so it was all console. Did the coding under Linux w/Vim tested/debugged with gcc/gdb and then just copied it over to the Windows stagin area and recompiled. Who needs Visual Studio?

Way back when, when I still used Windows regularly, I used Paint Shop Pro for 2d graphics stuff (www.jasc.com). It suited my needs well enough. Don''t knock it either, the game dev company I worked at used it right alongside Photoshop. For light graphics (ie, if your abilities rank as "Programmer Art", or if all you need to do is some scaling, format conversion or color correction), it is a viable, cheaper alternative to Photoshop. That was a few major versions ago, though, so not sure how well it has matured. If you can have the artists on your team using Photoshop, and leave the programmers with Paint Shop Pro for emergency touch ups, that might be an ideal solution.

I have yet to be impressed with what I''ve seen of the Windows Gtk port, so avoiding the GIMP under Windows is probably wise.

VMWare (www.vmware.com) is your friend. If you can afford the full version, you can run any number of versions of Windows or other OSs. Cheaper than a dedicated machine for different Windows versions, but you''ll want at least 256MB of RAM... Also great for testing installs, you can set up virtual machines that "roll back" to a clean state whenever you want them to. I use this daily at my current job, and it is worth every penny.

Or... Go Mac. A platform with a less saturated market for games. Perhaps an indie developer would have a better chance of getting notice. Mac OS X rocks, and the dev tools are free (Project & Interface Builder, gcc, etc) + the familiar *nix command line tools are available. And Macheads are probably more used to paying for their software. iBooks can be had fairly cheaply and are nice (the iBook and OS X combo are what finally got me to switch )

Share this post


Link to post
Share on other sites
I tend to disagree (not with Linux being a great OS, but with everything in the Windows world being expensive). My hard drive is filled with free Windows software. MinGW, Mozilla, Winamp, ICQ, Apache, J2SDK, JCreator, SSH, Leech FTP, Editor ''99, QWS3270, Cygwin, and so on. These aren''t just crappy ports of Linux apps, they are high-quality native Windows applications which I use every day.

Share this post


Link to post
Share on other sites
ok, Here is my 2 cents,

I code for Windows inside Linux, mostly because of the money factor, even when I code under Windows I do it with Linux(ish) tools, that is Gimp for Win32, Xemacs for NT, Mingw32, AC3d (not really free, but worth paying for), I have to say that it is a really good environment to work with, and I am staying with it.

The Fact That I can Actually Email the authors of the programs I use, and tell them how great their software is, or tell them hey there is a bug in there! or even fix the bug myself and send them the patch feels great, as you get to be where the action is

My goal is to write a comercial game (its on its way), I know it doesn't very well fit with being developed with open source technologies, but, I want to turn this into a way of life, and the plan is to make donations once the game generates revenue, The GIMP,Mingw,SDL and RedHat are on top of my list, so I see it as a use now, pay later kind of thing.

By The Way, SDL IS great!

Edited by - kwizatz on November 5, 2001 10:39:32 PM

Share this post


Link to post
Share on other sites
Use Kylix or Delphi6. They are both free and u can download it from http://www.borland.com
The code is X-platform for both Win32 and Linux. It has a great IDE and good debugging facilities.
For api header translations, you can find it at www.delphi-jedi.org
For OpenAL header translations you can wait for the jedi release or find it at http://amresh09.tripod.com


Amresh
ramresh@dsqsoft.com

Share this post


Link to post
Share on other sites
I have been an avid windows user for some time now and I wanted to learn something new.. so I bought a box for $200 and converted it to OpenBSD (not linux) I installed Mandrake and Suse before.. but I didn''t like them.. To be honest I have not developed anything for **nux yet, but it does look promising.. setting up config files with VI was quite interesting.
Windows is good for games because of DirectX. Linux is free, but still requires you to set aside HD partitions to install (except for stuff like loadlin)..


I feel that people keep dancing around the problem.. why not just create an whole OS for game development. Or remember the old days.. the game WAS the OS! The problem is imagine writing driver code for 2000 different devices. Also you could use legacy stuff VESA.. SB compatible code...etc.. but you lose hardware acceleration..
maybe writing a game OS is not a good idea..

sorry i was writing in "real time" so my writing contradicts itself =P

that''s my half a pennies worth

Share this post


Link to post
Share on other sites
Anonymous Poster-I don''t know anything about Linux (although I''ve thought about using it because it sounds like a really cool OS), but from what I understand it''s a prompt driven OS (sort of like DOS). Is that right? If so, that''s the reason it will never be hugely popular. Most PC users aren''t really what you call ''geeks'', what they''ll want is an OS that is an event driven type with a visual interface. Personnally, I like that sort of stuff. But I know a little (I said ''alittle'') about programming. Most PC users aren''t programmers and don''t wanna be. They want something that''s easy to use and they don''t care about technical stuff.
Of course, those of us here who are serious about this stuff are an exception to the rule.
Who agrees? disagrees?

"A man can''t just sit around." ''Lawn Chair'' Larry Walters (1982)

Share this post


Link to post
Share on other sites
quote:
Original post by Tracy
but from what I understand it''s a prompt driven OS (sort of like DOS).

http://www.kde.org/screenshots/kde2shots.html
Yes, the console is extremely important in the Linux world, but it''s quite possible to use Linux without touching a console. Some distributions (such as Mandrake) will automatically configure your system to start a graphical environment on boot.

Of course, the console is an extremely useful tool, and in many ways, it''s much more powerful than a GUI could ever be

Share this post


Link to post
Share on other sites
Tracy,

XWindows is the Graphic interface for Linux, it doesnt has to be command prompt driven unless you want it to be, dont think of it as something like 16 bit DOS, because it is not, although if I had to give you an idea of how it works, I would have to say it is like when you had to boot in DOS and run Windows with WIN, of course there are methods (XDM) so you can start in graphics mode right away.

try too look for Linux desktop screenshots, I remember that after being so used to the Windows Look and feel I was impresed seeing those.

Share this post


Link to post
Share on other sites
I''m still debating whether I should devote the majority of my time learning to develop for windows or Linux. The realistic part of me says that Windows is the more profitable venture and will make me more marketable, but the more curious and pioneering side of me wants to learn Linux.

What little I do know about Linux programming seems very interesting. What I find most interesting is how open things are. I think I could learn more quickly with Linux despite its (seemingly) higher complexity because source code is so readily available. IT lets me see the nuts and bolts of how real programming works. So even though Windows stuff seems more enscapsulated (no need to worry about X windows, file managers, and wondering if your audience has all the dependencies), Linux just seems like the tinkerers paradise.

However, Linux has another nasty downfall. Namely that I see Windows outperforming it graphically come DirectX9. And going along with that, in Windows programming, all it seems you really need to know is the DirectX API and some Win32 stuff. With Linux, you have to know the Linux kernel, SDL, OpenGL (and or Mesa), X windows, and potentially GUI toolkits/Desktop stuff like GTK gnome or Kde/Qt. That''s what I mean by the learning curve.

So for a beginner like me, what would people recommend I learn first? If I study windows/directX programming first, will it make the transition to Linux easier? Or would it be the other way around, and should I study Linux first and then move on to Windows?

Share this post


Link to post
Share on other sites
Two words: DRIVER SUPPORT

Until linux can woo manufacturers into developing drivers for video cards, printers, lah di dah, linux will go nowhere. I agree, its a great platform, and could be the best in terms of a development platform, but, they need to get some support. I''ll agree its grown in popularity, and some manufacturers are developing drivers now, but its still pretty weak. Second problem, standard user interface.....Fix those two major situations, and linux will grow much faster.

Share this post


Link to post
Share on other sites
Dauntless,

if you are confident enought, learn both, some people put it as "if I learn WinApi, I will never learn GTK+" as if they were both so hard to learn that only one fits in your head, as it comes up, its not really all that different, if you know standard C/C++, you already know how to program in both Windows and Linux, its just a matter of getting used to the tools available to you on eighter platform, I code in/for both, I learned WinApi first, cos Windows was what was available to me at the time, but learning different Linux API''s its not as hard as it might seem (my first Linux program was a FLTK app, and I found it to be a lot easier than WIN32_LEAN_AND_MEAN).

Of course you will be more likelly to find a job sooner if you know Windows, but if its a 70%/30% chance, wouldnt you want to learn both, and have a 100% chance?

Share this post


Link to post
Share on other sites
quote:
Original post by Famine
Two words: DRIVER SUPPORT

Actually, there''s a whole bunch more words. Standard directories. Standard definitions of dependencies (which versions of which libraries link against which other versions of which other libraries). Defined installation procedures. Improved user interface (if Linux ever wants to go mainstream).

There''s also the fact that commerce and Linux haven''t gone too well together - from the succession of cutbacks and closures of Linux companies (most notably VA''s hardware operations) to Linux users'' lack of support for commercial Linux software (note the dismal sales of the boxed Linux Quake3/Arena). Put your moeny where your mouth is, Linux faithful.



I wanna work for Microsoft!

Share this post


Link to post
Share on other sites
Well you guys seem to enjoy smashing linux.. feel good?

I was not saying linux should replace windows, nor its superiority. But when you can design games that work on both platforms, and for free no less, I figured I would help pass along the world. Thats all. I didn''t say linux owns the desktop or has superior driver support. It doesn''t. But in many cases, such as mine, it has proven to be a very productive environment for my development. Thought I would share, thats all

Mindwarp

Share this post


Link to post
Share on other sites
I don''t think anybody was smashing Linux. People simply aired their views on the pros and cons of Linux development. Don''t be so overprotective; the Linux community bashes Windows all the time... what goes around, comes around.

And I love Linux.



I wanna work for Microsoft!

Share this post


Link to post
Share on other sites
your arguments are pretty bogus. gcc (that free compiler you love for linux) runs on windows. borland has a free compiler too. for your image editing, you got paint (just as good a bitmap editor as any other). Gimp runs on windows too (and is still free). most of your cool imaging effects will most likely be done by your own tools anyway (building alpha maps and such). For 3d modeling, blender runs on windows too.

all these free tools run on windows too, so the only thing you have to pay for is the OS.

--michael

Share this post


Link to post
Share on other sites
quote:
Original post by chiuyan
Your arguments are pretty bogus... All these free tools run on Windows too, so the only thing you have to pay for is the OS.


How does that make his ''arguments'' bogus? He even points out that most of those programs run in Windows. His ideas still can potentially save money. Saving money is the point, isn''t it? Why are you trying to ''disprove'' his tips for saving money?

[Resist Windows XP''s Invasive Production Activation Technology!]

Share this post


Link to post
Share on other sites
Nah, the origional point wasn''t saving money, but why develop on Linux. By proving that most of the free software you want to use also runs on Windows, then you''re back to the point of which OS to use to develop. =)

Personally, I''m a Linux advocate. I think it''s a great OS. I''m also a so-so Open Source Software(OSS) advocate. I think OSS is great in an ideal world, but unfortunately, we''re not in an ideal world. I wish we were. =(

I think the biggest barrier to Linux isn''t that it''s open source, but that most Linux users won''t pay for applications. Companies are willing to pay for support contracts and software licensing on OSS, but end users aren''t ready to go there yet. Until then, there just isn''t the drive to create robust, stable software.

Personally, I wish Microsoft would develop their applications to run on Linux and even build their own GUI shell. But, again, not an ideal world we live in =)

I hope in the future companies will invest in OSS programmers and just hire them to adapt OSS packages to a company''s specific needs. But so far, most companies are still willing to pay for their own development from scratch. Though IBM is making some positive changes in that regard.

We''ll have to see how it all plays out. But the great thing about OSS is their willingness to port to Win32. I''m glad the spirit behind OSS continues beyond the OS Religion Wars!

Rube.

Share this post


Link to post
Share on other sites
quote:
Original post by Rube
Nah, the original point wasn't saving money, but why develop on Linux. By proving that most of the free software you want to use also runs on Windows, then you're back to the point of which OS to use to develop. =)


I think it was to save money (maybe I interpret arguments differently ), and Linux happened to be one of the options to turn to. There's no reason NOT to use Windows if you already have paid for it, unless it can't do something you want it (doesn't have the feature, doesn't have the software, technically lacking, whatever).

I personally still refrain from writing any single OS (whether that single OS is Windows, Linux, or whatever) only software, I like to give people options. I try not to enforce those boundaries external to what I have control over .

[EDIT: Fixing typos. Stupid quarks in the English language, heh]

[Resist Windows XP's Invasive Production Activation Technology!]

Edited by - Null and Void on November 6, 2001 6:28:44 PM

Share this post


Link to post
Share on other sites
Bleh... just stick to writing pure DirectX/Win32 code. Those linux hippies won''t pay for your games anyway! They''re not at all like windows users, who pay for all the software they have! Linux users are the type who would trade copyrighted/commercial products over filesharing systems and IRC! Not windows users, no sir! The evil GPL gnomes will steal your source code, too! And everyone knows that by letting other people look at your code, the blind idiot God Azathoth will spread chaos throughout time and space, and great Cthulhu will awaken from his sleep of death in R''lyeth!! Don''t let that happen! Cross OS/Platform software is bogus! Everyone uses windows anyways! When is the last time you''ve seen someone use something other than windows!? ..
No, macOS doesn''t count. Thats for trendies and soccer moms!
..
UNIX derivatives? Those are only used on stodgy 40-year old monotlithic servers! What kind of nerd are you!?
..
Linux is for peacenicks and hippies, man. They don''t pay for stuff anyway.
..
Consoles!? You can''t develop for those on computers!
..
See what I mean! Everyone uses windows! We should all write 100% windows code from now until eternity! MFC forever! Down with standards! Microsoft is the only standard you need!

Whats a "pozicks"?


...bleh.. I needed that little rant..

Share this post


Link to post
Share on other sites