What tool is best for the job?

Started by
4 comments, last by ccf_mickliddy 16 years, 3 months ago
Im wondering if someone can give me an idea of which language I should use - ive done a little research, and have a little background in programmin(Ive never made a windows application though). I want to build 2 programs: One that reads from a collection of files to build a game, and the other would create those files(kinda like a gamemaker). I would also like to make both programs in the same language. I have learnt TI-BASIC on the TI-83+ calculator(a VERY basic language) and I know a little HTML. The language im after should be able to: *launch a program in both a windowed mode and Fullscreen. the windowed mode should be able to have the title bar(the bit with the minimise, maxamise, close, etc.) and be capable of having drop down menus(such as file, edit, view, etc.) *Support some sort of 'multiple-framed' interface... Im not really sure how else to explain this other than kinda like frames in HTML. Kind of like a 3D object editing program, where you have one frame that displays the top view, another the bottom and so on. *be relatively easy to learn but fairly powerful aswell... im not scared of learning, but I do get frustrated a little quicker than most people... *Have the ability to draw in both 2D and 3D(at the same time?). Again, similar to a 3D object editing proggy. *Open to read/Open to write files fairly easily, or at least without alot of trouble. DarkBASIC was a nightmare for this, as you had to read the file, literaly, byte-by-byte I have also fiddled around with DarkBASIC(www.thgamecreators.com) and Visual C++. Ive been looking at the DarkGDK(www.thgamecreators.com) and C# aswell. [Edited by - ccf_mickliddy on December 29, 2007 9:37:32 PM]
Heightmeyer: "Can you tell me a little bit about your drawing?"McKay: "This is a diagram of one of the control panels we're going to have to reverse-engineer if we're to have the slightest prayer of getting me back into my own body before I hit puberty again."Heightmeyer: "I see, and what about this bit you sketched over here in the corner?"McKay: "That? That is a kitty cat."
Advertisement
To points 1,2 and 4 the language matters very little and has more to do with the libraries and/or APIs that you use.

If you are new to programming then at learning a high level language such as C#, Python or Java. C or C++ is not a good choice for a beginner because of the complexities of the language and low level functionality that you need to know about. Even developers that have been using it for years get caught out by some of the obscurities.

Steven Yau
[Blog] [Portfolio]

Yes, your choices are heavily influenced by the third party libraries you want to use. For example, complex 2D and 3D graphics rely on the APIs supported by the graphics card in computers. Only two choices exist: OpenGL and DirectX, with both equivalently supported.

With TI-Basic, it's all been about TI-Basic itself and what it could do. Not so with general purpose programming languages. They need to interact with various systems. The hardware, the Windows OS, and so on. This is done through libraries, code written by other people. To interact with the Windows OS, you rely on the various windows libraries and APIs, provided by Microsoft of course. To interact with the graphics card, it's OpenGL and DirectX as I mentioned above. GUI systems can involve various libraries; at the end it always involves the OS libraries, but it's not unusual to involve various abstraction layers like Qt, GTK+, and WxWidgets.

On Windows, the two "best" languages for Windows development are C++ and C#. But I'm using the word best in a very specific way. You can achieve what you want in several other languages. Python is a pretty popular beginner language, because it's both a serious professional language while remaining easy to start with. I heartily support starting with Python. You might like Java though, because it's portable across Linux, Windows, Macs,etc. and provides a complete platform to do what you want.

If you choose to pick either C# or C++, do not pick C++. You want an easy language? C++ is *not* it.
I'll add another vote for starting with C# or Python.

For me, python is a lot of fun to write code in -- but it sounds like you want some power with less effort (it is nice to be able to get things up and running quickly) so I'd vote for C#. More particularly, I'd vote for C# using Microsoft Visual Studio (express edition is free) -- you can drag and drop yourself an application in seconds. If you want to add 3D functionality to it, you can use Managed DirectX -- but it is obsoleted, so you could also use slimdx which has been crafted by a few GDNet folk of some renown as a replacement for Managed DirectX :)

Either way, if you want some WYSIWYG -- Nothing beats Visual studio with winforms (though Interface builder in Xcode on Mac OS is pretty sexy too). Your only catch is that applications you'll make require some form of .NET runtime for end users (i.e. people other than you who are not developers). This is the same sort of predicament you get if you choose Java (except I have a sneaking suspicion that there are more people with Java on their computers simply because it is pretty pervasive over the 'net). Either way, it is not a reason to -not- choose C# :)

~Shiny
------------'C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg.' -Bjarne Stroustrup
If you get a good book, it really doesn't matter what language you pick.

C is simple. Start with that, just keep in mind you won't be writing real programs for awhile. Anything else would be cheating you.
Ok, well ill go with Visual C#(with Visual Studio?).

@Shiny
Yes im very much after a language that I can get alot out of from minimal effort - my long term goal(something id like to complete before i turn 30) is to build the engine i said above, with the capability to build a Space Sim(or Flight Sim), an RPG or a Shooter out of it(Or a combination of the lot). That on its own, id imagine would be very hard work, but ive also devised an 'infinite' universe that can be created for any game built with it - in space, if you travel beyond the solar systems that have been scripted into the files, random systems will be generated. Planets can also be generated in a similar way using a map that is generated onto a bmp(or equivalent). The rgb values of each pixel are added togethor, and divided by 3, to get the hieght of the map, and if X% of the total number is Red/Green/Blu, then it makes trees, grass, snow, and climate depending on what X is, and what colours its checking...
Heightmeyer: "Can you tell me a little bit about your drawing?"McKay: "This is a diagram of one of the control panels we're going to have to reverse-engineer if we're to have the slightest prayer of getting me back into my own body before I hit puberty again."Heightmeyer: "I see, and what about this bit you sketched over here in the corner?"McKay: "That? That is a kitty cat."

This topic is closed to new replies.

Advertisement