Which language to learn?

Started by BlueAngel, Mon 20/09/2010 12:52:33

Previous topic - Next topic

BlueAngel

I have had an idea for a game for a long time. Now I have come to understand that I can’t do it without learning some programming.
But I don’t know which I should choose?

I understand that this game I thinking of will take a long time to make and that it probably never will be finish but that’s ok, I just don’t want to start with one language only to figure out that I can’t make it with that one.

To give you an idea; I’m thinking of a virtual world game. I want time to past in the game affecting the world: crops growing, people to have hunger and thirst, day and night. Think the Settlers, Sims and Civilization.
Someone will probably say that why don’t I go and play Runescape but that one like many of those games are really just about fighting and I want a game about growing and making things. And it would be fun to make it myself.

My brother works with flash and he think I should learn that as he can help me with it but as far as I have seen there is no game like the one I want to make with flash (?)

It would also be fun if it could be a game you could play over the internet.

Anyone care to point me in the right direction, please?

cat

Maybe you can do this with AGS? And I suggest learning Italian, because it's a nice language!  ;D

Anian

#2
Hmm, Flash (or actually the language in it is actionscript) is ok, but it won't work on all platforms (for example iPhone), you have to have the latest version of the player to play, it's not really aimed at coding strategy games and such, although there's plenty of examples that it can be done, and you can pretty much forget about more advanced 3d. Also some other options offer tools to help out and work faster.

Well since you're starting out, you'd probably want to start of your search with a game engine (if you're not familiar with the term look it up a bit on wiki or similar), AGS is sort of that but specialised in making (retro) adventure games, there is other software that's far more versatile.
Most of game engines offer basically a set of tools (like map editor, mesh and graphics importing etc.) and on a programing level they're about 2 or 3 steps above a programing language.

Now, why I'm mentioning game engines, well, as does AGS, they usually have a set of their own commands/language which is based on one of the basic programing languages but have some higher functions available so you don't have to program absolutley everything - such as AGS has a sprite editor where you can change the animation or making rooms etc. But they're based on the basics and you should know a programing language (at least enough to modify stuff others have done but you want to use in your project - AGS example might be using plugins).

As far as I can tell your best options are C++, C# and Python. They're the most popular and widespread. They come with their own software accessories like compliers, but you can get and download them from various sites, like for example for Python http://www.python.org/ .
All of the mainstream languages can basically do everything, depending on which API, game engine or other surroundings you choose, you'll need to know that language (granted some work on more than one).
To get started, go to a bookstore and get a book on a language you choose, it's as simple as that. If you want to learn other languages later, it'll be waaay easier.

Also it'll depend if you want to make a 2d or a 3d game, pricey or free, for pc or more platforms, what genre (you might wanna find a specialized one) etc. Here are 2 sites that should offer options:
http://www.devmaster.net/engines/
http://en.wikipedia.org/wiki/List_of_game_engines

Hope that helps a bit. You can of course always get somebody else to do the coding for you, but you have to offer something to the project as well and it's good to know limitations and pipeline (process/steps of creating) of the tools at your disposal.
By the sound of what you wanna make and examples of games, you can probably do with a 2d engines which are usually simpler to use and there's more options for small or no fees.
I don't want the world, I just want your half

bicilotti

over the internet + helping brother -> flash, me says

Still, take a look at this. Maybe AGS could do that!


Shane 'ProgZmax' Stevens

I'd actually say to check out html 5 or javascript or c#.

http://www.phoboslab.org/biolab/    is an example of a game written with html 5 and javascript.  The reason why I would recommend this over flash is because not everyone has or likes flash, but all browsers have javascript and html.  It's one of those situations where you could build the game into your site and be sure that everyone would at least be able to pull it up.

As for c#, it started as quite a slow but more visual, object-oriented offshoot of c++ but now it's pretty fast.  Elements that would take you several hours to set up in c++, like guis, are very quick to do in c# and it the learning curve is a bit smoother I imagine.


Anian

But still with Flash or with html5, you don't actually get a standalone solution, you have to have a player/browser...
I don't want the world, I just want your half

Calin Leafshade

In my experience the language/platform with the best ease of use to power ratio is XNA with C#

XNA does limit you to windows but as a beginner, platform independancy should be pretty low on your list of requirements.

XNA also has the advantage of being heavily supported with a lot of tutorials and stuff around.


Wonkyth

Yeah, I've been using C# (With a little XNA every now and again) for some time now, and I've been fully satisfied with the results. With XNA you can do 3D pretty easily, so if it's anything like RunEscape in that respect, it could make things easier.
Basically, you should be able to do what you want equally well with most of your options, but what you choose will change both the quality of the final product, and how difficult the initial coding will be.

I'm taking a short break from AGS, and so will have plenty of time to get even more familiar with C#, and possibly be  a C# tutor of sorts...

Anyway: C# == good; Happy to help.  :)
"But with a ninja on your face, you live longer!"

BlueAngel

Thanks all for your answers, as I feared there is a lot of different things to think of.
I been looking at different game engines like Unity but I see there is a lot more out there. Thanks for the links.

I really love AGS but it feels like it’s not build for making games like those I mentioned earlier and even in AGS I feel that if I want to make more advanced game I will have to learn to script.

I think to that I should start with a 2D games and a one that’s free, as long as the fees don’t get too big.  ;D

ProgZmax, that something to think of as well. But still to have someone to ask is a great help too.

Still, sounds like most of you say C# (don’t know XNA â€" have to look that one up)


Thanks for all help!!! (off to the bookshop we go…)

Khris

If you decide to use C# and XNA (which I also recommend), download Visual C# 2010 Express and XNA Game Studio 4.0.

XNA is a wrapper for DirectX which basically makes stuff way more accessible.

Here is a page with a few beginner's tutorials:
http://www.xnadevelopment.com/tutorials.shtml

bicilotti

Quote from: BlueAngel on Mon 20/09/2010 12:52:33
It would also be fun if it could be a game you could play over the internet.

Can you easily make your game playable over the internet using C# / XNA?

Also, if you want your game to be playable on Linux / MacOS you would have to choose a different language (C++ / Allegro I suppose).

BlueAngel

I´m a little confused over  XNA, do I need to own a Xbox 360? ???

Babar

The ultimate Professional Amateur

Now, with his very own game: Alien Time Zone

Anian

You don't need an XBox, it's just that the package is made for both PC and XBox (you make software in a way that with just a few changes, ie making the controls work with a gamepad and such will make it work on XBox as well) and basically Microsoft wants people to make content for XBLA.  ;D
I don't want the world, I just want your half


Ryan Timothy B

I had experimented with C# and XNA a few weeks ago, but I had difficulties doing very primitive stuff. I tried to make a few cubes and let the camera freely move around/through them. I couldn't even do that.

I even looked at the 3D primitives tutorial script they offer, but was completely confused in how to make multiple cubes and having the camera have free roam with mouse and keyboard. With their script, it seemed that the cube was positioned relative to the camera, not to the world. It's a bad example script for n00bs, if you ask me.


:P I always get stuck on simple things when I'm learning something new. Then it's usually okay from then on.
Does anyone here know how to do this?

Wyz

There are plenty of different languages, platforms and engines but there isn't really one that works best. It is kind of personal, so I would recommend you test several things and choose what you like the most. Even if you already stuck to something it never hurts to test different things, you might like it better.

Things you could try Flash, Javascript / HTML5, C++ and a lib like allegro or SDL, Microsoft's developer tools, Java, Python, AGS, ... what just pops in my mind

For me C++ and SDL is often the winning team, but I would also consider AGS as a real option. :D
Life is like an adventure without the pixel hunts.

Paper Carnival

Quote from: Ryan Timothy on Thu 23/09/2010 15:35:14
I had experimented with C# and XNA a few weeks ago, but I had difficulties doing very primitive stuff. I tried to make a few cubes and let the camera freely move around/through them. I couldn't even do that.

I even looked at the 3D primitives tutorial script they offer, but was completely confused in how to make multiple cubes and having the camera have free roam with mouse and keyboard. With their script, it seemed that the cube was positioned relative to the camera, not to the world. It's a bad example script for n00bs, if you ask me.


:P I always get stuck on simple things when I'm learning something new. Then it's usually okay from then on.
Does anyone here know how to do this?

If you want to make serious 3d games then I suppose learning some of the theory first helps (eg matrices and transformations). But, if you want to make 2d games in XNA you don't need to learn any of that, and it's much easier.

If you are not an experienced programmer, Game Maker is also a good choice. Its power compared to that of XNA is limited, but it's much simpler to jump right in.

Ryan Timothy B

Yeah that's the thing. I wanted to dabble in making some 3D games for experience.

I can do the whole models things. Importing and using them, angles, etc. I just for some reason couldn't figure out how to create a cube through scripting. I do understand matrices. The tutorial script does show how to make the cube, just not how to display it properly.

That's the only trouble I'm having with it.

Calin Leafshade

There are 2 matrices to deal with.

The camera matrix, which deals with the models orientation relative to the camera
and the world matric which deals with the models position in the world.

I would suggest one of those matrices is not being updated as you move your camera.

SMF spam blocked by CleanTalk