Development tools?

Talk about anything, including games and servers not affiliated with The Mana World.
Post Reply
Aranince
Peon
Peon
Posts: 8
Joined: 26 Feb 2007, 20:22

Development tools?

Post by Aranince »

Hello dev team. I'm just wondering what tools you use on the various platforms(Linux, Windows, Mac). I am making a cross platform game and wanted to get the best way to do this and was wondering what tool chain you use(command line and make, or IDE).

Thanks,
Ryan
User avatar
Bjørn
Manasource
Manasource
Posts: 1471
Joined: 09 Dec 2004, 18:50
Location: North Rhine-Westphalia, Germany
Contact:

Post by Bjørn »

The game is programmed in C++, for which compilers exist for any operating system, as well as plentyful choice in IDEs. The libraries you choose should also be portable. We use SDL together with some addon libraries and utility libraries like libxml2 (for XML parsing), libcurl (for downloading files over http), zlib (for decompressing gzip compressed data), etc.

You may also want to consider using a scripting language though. For example most of the above libraries (or higher level wrappers) are also available for Perl, Python and Ruby.

As another alternative, you could go with Java or C# and rely on their virtual machine to give you the portability and their huge standard library for the functionality.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

I am using Windows XP and the following tools:

Code::Blocks as IDE
MinGW as compiler
TortoiseSVN as SVN Client
Gimp for creating graphics

But I wouldn't say that these are the ultimate tools for everyone for the job. Being independent of special programs and using open standards instead is very important for cross-platform development.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Thoht
Peon
Peon
Posts: 7
Joined: 21 Aug 2007, 17:14
Location: Sweden

Post by Thoht »

Followup question! :)

What kind of education do you programmers have? I once got to try out programming in C++, but being more into doodling around with Photoshop and the like I didn't continue. My teacher back then said it'd take me at least two years to learn how to implement graphics in my programs.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

I tought myself everything I know about programming.

I started with Commodore Basic on a Commodore Plus/4 (a work-oriented nephew of the famous C64). When I got a PC I continued with Quick Basic. When I started to realize that QB is just not state-of-the-art anymore I decided to learn C++. I also learned HTML*, JavaScript and PHP when i got interested in creating websites and also looked into some other scripting languages. The more programming languages you learn the easier it becomes to learn more. The first language is always the hardest to learn.

How long it takes to archieve what depends on how fast you learn and on how much time you invest. When you want to learn C++ you should first go through a general C++ tutorial (I know an excelent German one but I can't recommend you one in english or swedish right now. But Google will surely help you). This will teach you the general constructs of the language (the "grammar") but the only functions (the "vocabulary") it will teach you will be for text output.

Then it is up to you what you want to learn. Depending on what kind of programs you want to create you should read tutorials and references of common libraries.

-When you want to create GUI applications, you should read a tutorial about a GUI library like QT, wxWidgets or MFC.
-When you want to do network programming or client/server applications, reading about Winsock (windows) or UNIX sockets (most other operating systems) will teach you what you need to know.
-When you want to create graphical fullscreen applications (read: games) you should take a look at SDL for 2d engines and OpenGL when you feel adventurous and want to try 3d graphics.




*) Yes, I know that HTML is a markup language and no programming language.
Last edited by Crush on 23 Aug 2007, 16:30, edited 1 time in total.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Thoht
Peon
Peon
Posts: 7
Joined: 21 Aug 2007, 17:14
Location: Sweden

Post by Thoht »

Oh thanks!

I still got the basics somewhere in the back of my head and could probably find my old books somewhere too. Would getting a grasp of the SDL library functions be sufficient to create some simplistic small games just for a laugh? Or would I need some knowledge of GUI libraries as well?
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

Basic is not just BASIC. "Basic" is often used as a marketing term for languages that aim at beginners or users of other basic-named languages. There are tons of different programming languages that call themself "Basic" (Wikipedia lists over 100)but most of them have very few in common. The only thing all have in common is that most of them aren't used (andmore) by serious programmers. The only basic dialect that is still widely used is Visual Basic.

To use the SDL library you first have to learn a language that can use it. According to the SDL homepage these are the languages that can use SDL:

Ada
C# *
C++ *
Eiffel
Erlang
Euphoria
Guile
Haskell
Java *
Lisp
Lua
ML
Objective C *
Pascal
Perl
PHP
Pike
Pliant
Python
Ruby
Smalltalk

*) These are languages I would suggest for creating games.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Thoht
Peon
Peon
Posts: 7
Joined: 21 Aug 2007, 17:14
Location: Sweden

Post by Thoht »

My bad, I meant basics as in fundamental knowledge, and not Visual Basic. Perhaps I was speaking Swenglish. :) Nevertheless, thank you for the link and the list!

I had a look at Objective C, C++ and C# at Wikipedia, but it made little sense when it came to what distinguishes the languages from each other. I did however gather that Apple's having a poke at Objective C for Leopard, C++ has a new standard coming up, as well as being backed up by Boost, and Microsoft seems to focus on C# for their .NET framworks. So, none of those seem to be getting left behind.

Xcode (I'm using a Mac) only compiles Objective C and C++ of those three according to it's website. Seeing as TMW is C++, is it a viable choice? Why did you choose to program it in C++ rather than C# or any other language if I may ask? :)
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

I wasn't a part of the dev team when that dicision was made, but I believe that the following reasons might have been important:

-When the project was started C# wasn't that widespread yet. C++ on the other hand was and still is the most widely used programming language for professional game development and many other areas. This makes it easier to find people who can program in it.
-Because of the widespread use of C++ many 3rd party libraries exist for it.
-C# is a programming language developed by microsoft. This makes it a bad choice for applications that are meant to run on other platforms than windows. Well, there are initiatives to make C# applications run on other operating systems like dotGNU or Mono but these projects are a) not mature yet and b) the sword of damocles hangs over these projects in form of microsofts software patents. For that reason C# isn't that well accepted in the free software community.
-It was ElvenProgrammers favorite programming language :roll:
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
Isshou
Peon
Peon
Posts: 4
Joined: 20 Aug 2007, 04:00

Post by Isshou »

Crush wrote: -C# is a programming language developed by microsoft. This makes it a bad choice for applications that are meant to run on other platforms than windows. Well, there are initiatives to make C# applications run on other operating systems like dotGNU or Mono but these projects are a) not mature yet and b) the sword of damocles hangs over these projects in form of microsofts software patents. For that reason C# isn't that well accepted in the free software community.
Unless Microsoft can prove that something came from the JIT in the MS .net framework they have no grounds for prosecution. C#, MSIL, and even the Framework itself are openly documented. C# and MSIL are even so far as to be put under an external standards panel for regulating language development. What they did lock up with software patents is the JIT compiler which is the bread and butter to the .net framework running as a managed language without the implications of being an interpreted language.

C++ still holds a lot of value because of the vast libraries and how common place it is in the majority of systems.

The biggest disadvantage to C# or Java is that you need their respective framework/platforms to be able to run anything. Sun has pushed out a lot of Java to give Java it's "cross-platform" ability. Microsoft isn't going to push .net out to anything else, but there is enough community around C#/Managed Code that it is being brought to other systems. Mono is actually doing quite well in producing an equivalent framework for the most interoperability.

Since you're building on a Mac I would suggest C++ or Java, and if later you start to develop on Windows or get .net framework on the Mac then you can learn C#.

One thing about learning a language, is there are a lot of languages that are similar to some other language. If you learn C++ then it's less of a step to learn C# or even Java. However it's still a big step to go from something like C++ to something like Lisp. They are entirely different paradigms.

Anyways, good luck on learning. I took the official route... I got a degree in Computer Science.
User avatar
Crush
TMW Adviser
TMW Adviser
Posts: 8046
Joined: 25 Aug 2005, 16:08
Location: Germany

Post by Crush »

Isshou wrote:
Crush wrote: -C# is a programming language developed by microsoft. This makes it a bad choice for applications that are meant to run on other platforms than windows. Well, there are initiatives to make C# applications run on other operating systems like dotGNU or Mono but these projects are a) not mature yet and b) the sword of damocles hangs over these projects in form of microsofts software patents. For that reason C# isn't that well accepted in the free software community.
Unless Microsoft can prove that something came from the JIT in the MS .net framework they have no grounds for prosecution. C#, MSIL, and even the Framework itself are openly documented. C# and MSIL are even so far as to be put under an external standards panel for regulating language development.
Just because the whole stuff is openly documented and standardized doesn't mean that microsoft can't claim any patents anymore. It wouldn't be the first time that a corporation aims to get their technology as widespread and standardized as possible just to claim software patents later. Richard Stallman said about this topic:
Mono is a free implementation of Microsoft's language C#. Microsoft has declared itself our [the free software movements] enemy and we know that Microsoft is getting patents on some features of C#. So I think it's dangerous to use C#, and it may be dangerous to use Mono. There’s nothing wrong with Mono. Mono is a free implementation of a language that users use. It's good to provide free implementations. We should have free implementations of every language. But, depending on it is dangerous, and we better not do that.
Last edited by Crush on 25 Aug 2007, 13:56, edited 2 times in total.
  • former Manasource Programmer
  • former TMW Pixel artist
  • NOT a game master

Please do not send me any inquiries regarding player accounts on TMW.


You might have heard a certain rumor about me. This rumor is completely false. You might also have heard the other rumor about me. This rumor is 100% accurate.
User avatar
Thoht
Peon
Peon
Posts: 7
Joined: 21 Aug 2007, 17:14
Location: Sweden

Post by Thoht »

Thank you for your very informative answers, both of you! :) It made more sense to me than reading Wikipedia. ;)

I'll continue (in a casual way) to learn C++ and start messing around with SDL. Already found some good tutorials. I don't want to paint myself into corners, so I'll be taking the cross-platform route. ;)
Isshou
Peon
Peon
Posts: 4
Joined: 20 Aug 2007, 04:00

Post by Isshou »

Not that I don't put a lot of faith in Richard Stallman, but I prefer to go directly to the source:
Is Microsoft helping Novell with this project?

There is no high level communication between Novell and Microsoft at this point, but engineers who work on .NET or the ECMA groups have been very friendly, and very nice to answer our questions, or clarify part of the specification for us. Microsoft is interested in other implementations of .NET and are willing to help make the ECMA spec more accurate for this purpose. Novell participates in the ECMA committee meetings for C# and the CLI.
What is Monoâ„¢ exactly?

The Mono Project is an open development initiative sponsored by Novell to develop an open source, UNIX version of the Microsoft .NET development platform. Its objective is to enable UNIX developers to build and deploy cross-platform .NET Applications. The project implements various technologies developed by Microsoft that have now been submitted to the ECMA for standardization.
http://www.ecma-international.org/publi ... ma-334.htm
and
http://www.ecma-international.org/publi ... ma-335.htm

Ecma has a code of conduct regarding patented standards submitted to them:
http://www.ecma-international.org/memen ... onduct.htm

This doesn't mean there isn't something else Microsoft can go after Mono for, in fact the mono team knows some of these things and have some contingency plans if litigation occurs.

I personally think the patenting of software is horribly broken. It can in effect make it so after leaving a job that a software programmer is basically on the "do not hire" list in fear of dealing with the previous employer making claims about current work of said employee.
User avatar
Bjørn
Manasource
Manasource
Posts: 1471
Joined: 09 Dec 2004, 18:50
Location: North Rhine-Westphalia, Germany
Contact:

Post by Bjørn »

You said yourself that Microsoft has patents on their .NET JIT compiler, which makes it dangereous to implement an alternative even when you're not taking anything from the MS implementation, unless you know exactly how to avoid said patents (since avoiding copyright issues does not help much against avoiding patents).

Also note that Novell has made a patent deal with Microsoft, so probably they (and their customers) have nothing to fear from .NET patents, but others might.
Post Reply