tool programming: May I ask...

Started by
22 comments, last by Some Guy 22 years, 2 months ago
Most programs and nearly all professional games are written in C++, now. But I was thinking about something... Why would you write the _tools_ for making that game or program in C++? Why? It would take longer than necessary and bugs would be abundant because of the rush to get it finished, right? C++ is a very good language, but wouldn't you agree that it's not the language of choice for quick, necessary production tools, like level editors? Who writes their tools in other languages to get them working, and get them working correctly? What language do you use? Edited by - Some Guy on January 31, 2002 11:00:54 PM
Advertisement
You wouldn't necsessarily. For example, previous versions of UnrealEd were written in VB. Personally, I think VB is great for that sort of thing. When I need to write a tool, I normally use Java, VB, or C++.

Edit: Grammar ...

Edited by - Martee on January 31, 2002 11:05:21 PM
ReactOS - an Open-source operating system compatible with Windows NT apps and drivers
Most of my tools are command line anyway (really easy in C/C++). The power of piping is nice . To turn a TGA into a bitmapped font with my tools:
gtwtarga < image.tga | gtwfont > font.gbf

That way my font tool only has to support one format (GIM) and the image tools can take care of convert things to that one format. For more complex and highlevel things like map editors (which aren''t written yet for this engine since the map format isn''t finalized) I''ve written a very nice OO GUI system to simplify using C++ for tools. And since I wrote the GUI it''s that much easier to use it myself .

My uncle uses VB for his job. Says it''s very good, but I''ve never used it. The only BASIC I every used was DarkBASIC. Long time ago.

C# could be used as well, I think. I was also considering scripting languages like Python or Ruby. There''s also Delphi and Pascal.

--Some Guy

Ireland. Iceland. Ireland. Iceland.

Greenland. Scotland. Greenland. Scotland.

Germany... huh
Well, for someone who programs "fluently" in C++, why not use C++. Personally, I prefer VB for everything, so I write both my tools and my games in it. But, the UnrealED was VB while the game was C++. I think that they would have been better off to just use C++ for UnrealED just because from what I heard it was more trouble than it was worth (the programmers didn''t have much experience in VB and thought it would just be a simple matter to learn the language as they coded, which would have stuffed up performance I bet). If however they had a person who was skilled in VB, then they might be able to make a fully functional program much quicker with less bugs than a C++ version which would have been beneficial (note I said "might", I bet there are heaps more highly skilled C++ists than there are highly skilled VBists.. So the moral is, use what is comfortable, and don''t change just for the sake of changing.

Trying is the first step towards failure.
Trying is the first step towards failure.
Backend & plugins (DLLs): C++
Frontend & scripts (EXEs): Whatever

[ GDNet Start Here | GDNet Search Tool | GDNet FAQ | MS RTFM [MSDN] | SGI STL Docs | Google! ]
Thanks to Kylotan for the idea!
Well I wouldn''t want to write a complex GUI with straight WIN32 code, MFC isn''t that bad. It''s fast, and if you get proficient, it''s not time consuming either.

Visual Basic? I''m not really experienced with it, but I do like it. Unfortunately most of my tools end up being supported by C++ base code, so the bother of adding the C++ into a DLL and interfacing to it through VB isn''t worth it. Other then that, I sometimes find Basic restrictive in the OO sense.

Java. A promise that well... never made it in my mind. (Although I think Applets are great. Almost under used in some ways.) Of course I only have experience with 1.2 of the SDK and from what I''ve heard version 1.4 (1.4 right?) is supposed to have turned up the heat.

Of course, all opinions expressed here are open to support and criticism :-)



If all that matters is what you get in the end, why go through life?
~Michael Sikora
quote:
Visual Basic? I'm not really experienced with it, but I do like it. Unfortunately most of my tools end up being supported by C++ base code, so the bother of adding the C++ into a DLL and interfacing to it through VB isn't worth it.


That's the rub. Ideally, you want your editor using as much of the same codebase as your game, that way when a file format changes (for instance), it happens in the game and in the tools. It really blows to have a file loading function written in two different languages that has to be maintained. And the wrapping code that you have to do to make VB use your C++ is a pain.
Now, if you're shooting for a Win32 only game, I could see the game engine being developed as a series of stand-alone COM libraries or something, which VB would handle better.

One of the things that I'm exploring now is using .Net for tool development. You could write the editing tools in C# (or VB) with all the nice GUI stuff, and include your C++ as unmanaged code. Seems like the best of both worlds, if it works right.

Take care,
Bill

Edited by - Siebharinn on February 1, 2002 9:28:05 AM
At the moment i''m making a game in Delphi, and the main map editor for it is written using Delphi aswell, because i''m reusing the engine code, i was going to put the entire engine in a DLL and code the editor using Visual Basic, but thought it to be more trouble than it be worth. Although, saying that, the other editors for the game are written using VB, such as the game data files. I''ve been programming in VB for about 3 years, and Delphi for 2, so i''ve got a firm grasp on both. It makes sense to make the editors as small and as unfancy(real word? ), as possible, but still adding error checking and multiple undo levels etcetc, as it''ll make your job much easier. As for command line tools, they are the bomb!, as for converting file formats just slap the commands in a batch file and hey presto!

DarkStar
quote:Original post by Some Guy
Most programs and nearly all professional games are written in C++, now. But I was thinking about something...

Why would you write the _tools_ for making that game or program in C++? Why? It would take longer than necessary and bugs would be abundant because of the rush to get it finished, right?



Because most of the time, game companies have 1 or 2 TOOL coders and yes, most of the tools for professionnal games are made in C/C++... Now, with that said, I also don''t use C/C++ for tools, I use Delphi 6.0...






"And that''s the bottom line cause I said so!"

Cyberdrek

Resist Windows XP''s Invasive Production Activation Technology!

"gitty up" -- Kramer
/(bb|[^b]{2})/ that is the Question -- ThinkGeek.com
Hash Bang Slash bin Slash Bash -- #!/bin/bash
[Cyberdrek | ]

This topic is closed to new replies.

Advertisement