Programming

Gamers can also use this forum to chat about any game related subject, news, rumours etc.

Moderator: maddog986

User avatar
wodin
Posts: 10709
Joined: Sun Apr 20, 2003 3:13 am
Location: England
Contact:

Programming

Post by wodin »

OK Ive decided to have ago and teach myself programming.

So I need advice. What language should I start with? Can anyone recommend any books? Also do I need any software, if so what should I buy/download?

The long term goal is to learn Java and C+. Then one day I'd like to try my hand as an indy games developer. My dream would be to come along and pick up Combat Leader and finish the game;).

So all help will be appreciated.
User avatar
Zakhal
Posts: 1407
Joined: Thu Jan 04, 2001 10:00 am
Location: Jyväskylä, Finland

RE: Programming

Post by Zakhal »

Eclipse is a good free editor for many languages including java.
"99.9% of all internet arguments are due to people not understanding someone else's point. The other 0.1% is arguing over made up statistics."- unknown poster
"Those who dont read history are destined to repeat it."– Edmund Burke
User avatar
sterckxe
Posts: 1897
Joined: Tue Mar 30, 2004 8:09 am
Location: Flanders
Contact:

RE: Programming

Post by sterckxe »

ORIGINAL: wodin
OK Ive decided to have ago and teach myself programming.

Another convert to the Dark Side
ORIGINAL: wodin
So I need advice. What language should I start with?

If your ultimate goal is to become a wargame programmer you might have a look at what languages are used in wargame development.

The answer is mostly C++, with the odd exceptions of Flashpoint Germany and World in Flames which are written in Delphi, the guys from Koios opting for C# and managed DirectX and everything VASSAL related in Java.

I would recommend taking a look at VASSAL - it's a working engine, the tools are free and it's your shortest path to getting some experience both in programming and in wargame design.

Greetz,

Eddy Sterckx
User avatar
JeF
Posts: 1162
Joined: Tue Apr 01, 2003 12:23 am
Location: Belgium
Contact:

RE: Programming

Post by JeF »

wodin,

very tough question. Vast subject. The simple choice of programming language and environment is difficult, even for seasoned professionals.

Here is a link to start with :
Amit’s Game Programming Information.

And to add to what Eddy's said about popular languages among game programmers : Python is currently used for Combat Mission Campains. Python is an easy to learn language.
I heard some bloke like to program in Delphi, an object oriented Pascal from Borland. [;)]

One more things :
I wouldn't recommend C/C++ and directX for beginers. C#, Java, Python are all environments where you don't need to take care of memory allocation as a programmer. There are more.

Vast subject indeed.

JeF.
Rendez-vous at Loenen before 18:00.
Don't loose your wallet !
Conquest Of The Aegean Web Development Team
The Drop Zone
User avatar
Tankerace
Posts: 5408
Joined: Fri Mar 21, 2003 12:23 pm
Location: Stillwater, OK, United States

RE: Programming

Post by Tankerace »

Start with COBOL. Best Language you can learn.








Just kidding.

VB6 isn't bad if you are just getting started. Can't really do anything with it, but its a good intro language. I myself started out on QBasic then Visual Basic, then took courses on COBOL and C++. C++ is definately the most robust of them all, but it is hard for beginners, especially those with no programming background.

And yes for those who are wondering, I do know (or at least I did... its been a while) COBOL. Most boring, POS, redundat, and in this day and age completely worthless language out there. Suffice it to say we didn't call it Compiles Only Because Of Luck for no reason.
Designer of War Plan Orange
Allied Naval OOBer of Admiral's Edition
Naval Team Lead for War in the Med

Author of Million-Dollar Barrage: American Field Artillery in the Great War coming soon from OU Press.
User avatar
MikeBrough
Posts: 261
Joined: Sun Jan 30, 2005 10:59 am
Location: Scotland

RE: Programming

Post by MikeBrough »

Tankerace

Beg to differ. Boring, perhaps. But, horses for courses. When used for business logic on big iron, it holds its own against any more modern language.

A wiki for you:

'In the late 1990s, the Gartner Group, a data-processing industry research organization, estimated that of the 300 billion lines of computer code that existed, eighty percent — or 240 billion lines — were COBOL. They also reported that more than half of all new mission-critical applications were still being created using COBOL — an estimated 5,000,000,000 net new lines of COBOL code annually'.
Mike Brough
Proud to be an Arab

Be sceptical of the things you believe are false; be very sceptical of the things you believe are true.
User avatar
sterckxe
Posts: 1897
Joined: Tue Mar 30, 2004 8:09 am
Location: Flanders
Contact:

RE: Programming

Post by sterckxe »

ORIGINAL: Tankerace

Start with COBOL. Best Language you can learn.



ORIGINAL: Tankerace
VB6 isn't bad if you are just getting started. Can't really do anything with it, but its a good intro language.

Well, these wargames were made in it :

http://www.kamikazewargames.com
ORIGINAL: Tankerace
I myself started out on QBasic

"The fastest compiler on the planet" - it said so in the adverts :)
ORIGINAL: Tankerace
And yes for those who are wondering, I do know (or at least I did... its been a while) COBOL. Most boring, POS, redundat, and in this day and age completely worthless language out there. Suffice it to say we didn't call it Compiles Only Because Of Luck for no reason.

I beg to differ - didn't program a line in it the last 2 decades but the big corporations still have lots of cobol stuff running - simply because it works, is easy to maintain and runs on everything. Demand for guys who know cobol is still high - a lot of them are in the consultancy business making a decent buck. Given that the guys leaving the schools now don't know anything about it, my guess is that demand for those guys will even increase.

Greetz,

Eddy Sterckx
User avatar
Tankerace
Posts: 5408
Joined: Fri Mar 21, 2003 12:23 pm
Location: Stillwater, OK, United States

RE: Programming

Post by Tankerace »

Yeah, you guys are right. Its still in demand (oddly enough), but In my personal opinion it is worthless because it is so limited. That and most of the worthless comment is a personal hatred of the language, I don't think I ever got a program to compile right in the first three tries in my life [:D]. And god help me when I was first learning it, and debugged from the bottom up. OOOPS [X(]
Designer of War Plan Orange
Allied Naval OOBer of Admiral's Edition
Naval Team Lead for War in the Med

Author of Million-Dollar Barrage: American Field Artillery in the Great War coming soon from OU Press.
User avatar
Nomad
Posts: 7273
Joined: Wed Sep 05, 2001 8:00 am
Location: West Yellowstone, Montana

RE: Programming

Post by Nomad »

A comment for the OP, 'learning' to program is learning to think logically. The choice of language is somewhat immatterial but a fairly simple Basic is satisfactory. Once you learn one language other languages are easy, it is just syntac changes. [:)]
Shannon V. OKeets
Posts: 22136
Joined: Wed May 18, 2005 11:51 pm
Location: Honolulu, Hawaii
Contact:

RE: Programming

Post by Shannon V. OKeets »

ORIGINAL: wodin

OK Ive decided to have ago and teach myself programming.

So I need advice. What language should I start with? Can anyone recommend any books? Also do I need any software, if so what should I buy/download?

The long term goal is to learn Java and C+. Then one day I'd like to try my hand as an indy games developer. My dream would be to come along and pick up Combat Leader and finish the game;).

So all help will be appreciated.

My programming background runs from 1968 to the present. Almost all that work was simulations. I have used Fortran, Basic, Assembler (8086), Pascal, C, C++, Delphi, and over a dozen operating systems on over a dozen different hardware platforms. I currently am using Borland's Delphi 2005 for programming Matrix Games' World in Flames. Prior to that I used Borland's C++ 6 to build a stand alone statistical analysis package.

At their core, all programming languages are the same: you define a variable (a place to store data in memory), you give the variable a starting value (write the initial value), you modify that value (read and then write), and you use that value (read it). A language enables you to perform those operations.

Assembler gives you very primitive tools but those tools are fine grained which lets you work with individual bits effectively and efficiently. It not so good at providing an overview / overall structure for large projects.

The difference between Fortran, C, Cobol, (et al) and the more recent languages, C++, Visual Basic, Java, and Delphi are the additional tools they provide for managing a large project. They also either come with, support, and/or can be integrated with supplemental software libraries/packages. In aggregate, they provide a wealth of existing code which you do not have to create from scratch.

To use a rough analogy here, assembler is like a saw, C is like power saw, C++ is like a set of power saws, each with a different capability.

For your purposes (programming a war game) you will want tools that provide excellent support for: screen graphics, keyboard and mouse input, and data structures for both of those plus simulation variables. You do not need: printing capabilities or databases. You might want, but do not require: internet capability and HTML. My advice here is to define the product you want to produce as best you can, without any references to programming languages. Your vision of what you want to create should be as well defined as possible - and definitely written down. It will be an invaluable touchstone for you as you proceed on your quest.

What is going to happen is that you are going to climb a learning curve, acquiring a vast amount of new information. You have to filter that information, ignoring pieces that are irrelevant to your purpose and focus only on those that are important to you. It is the proverbial fire hydraut you are trying to drink from. Don't drown. As a simple example, all the discussion about Cobol, while amusing, has no importance to you. It is a waste of your time to become even modestly curious about it. Focus on your needs.

I would suggest screen graphics as a good place to start, with equal importance on user interface and simulation. All of these are broad topics and you need to filter what you investigate or you will spent hundreds of hours and dollars on side issues. Regretably, you are practically doomed to do that anyway: I own a bunch of books and software that I never should have purchased, but they sure seemed like a good idea at the time.

If you can define a small test project, that would be excellent. You could then see what all is involved in: learning about tool/software choices, teaching yourself about each tool/topic, and actually doing the work with the tools to produce a functioning program.

I like Delphi and C++ equally well. If I were creating software for web sites, I would look seriously at using Java (1st choice) and Visual Basic. All of these work on the internet, but there are different libraries/packages to support them.

Oh, and all this stuff changes continuously. In the time that I have taken to write this, new products have been introduced. You cannot keep up with the changing world while you are doing work on a project. You must establish the tools you will use and then use them to see the project through to completion. Changes tools in midstream gets everything wet. There are enough aggravations making things work without bringing in more complexity voluntarily. I strongly advise against using any new releases of software or hardware. Working on the cutting edge causes a lot of blood loss (I speak from extensive experience on this). Go with well establish products, please.

Good luck!
Steve

Perfection is an elusive goal.
User avatar
Arjuna
Posts: 17768
Joined: Mon Mar 31, 2003 11:18 am
Location: Canberra, Australia
Contact:

RE: Programming

Post by Arjuna »

Wodin,

I second Shannon's advice. Whichever programming language you choose you are going to be up for a big learning curve. I started working on our Airborne Assault engine with virtually no programming experience other than some limited database programming in 4th Dimension ( a Macintosh relational database ). Everything else I learnt on the job with a great deal of help from my colleague Paul Scobell. We decided at that time on developing in C++, primarily for speed and the STL libraries that were then becoming available.

My advice would be to choose the language to develop in and just bite the bullet. If I was starting today I would probably opt for C# again because of speed and the tremendous inbuilt support libraries, especially its ability to provide persistence support. When we strated in C++, there was no inbuilt persistence support. We ended up developing our own Panther Object oriented Database ( POD ). This consumed a good deal of time initially but has paid off handsomly over the years. C# gives you this for free. Again I relying on advice here from Paul Scobell. He's been using C# in his day job for some time now and really likes it.

Anyway good luck.
Dave "Arjuna" O'Connor
www.panthergames.com
User avatar
Mike Wood
Posts: 1424
Joined: Wed Mar 29, 2000 4:00 pm
Location: Oakland, California
Contact:

RE: Programming

Post by Mike Wood »

Hello...

I started with assembler for the IBM 360, B.A.L.. Also coded main frames in Fortran, Cobol, Easy Coder, SPS, SYS and RPG. Then went to PCs and used Assembler (8086), Pascal, Basic, Quick Basic, C and C++.

Everything I have written at Matrix Games has been in either Watcom C (SPWaW), Turbo C (PacWar) or Visual C/C++ (all other games).

If you want to be a game programmer, I strongly suggest you learn C/C++. If you want to understand the afore mentioned, I strongly suggest you learn Assembler (8086).

My Opinion...

Michael Wood
benpark
Posts: 3033
Joined: Mon Aug 12, 2002 1:48 pm

RE: Programming

Post by benpark »

I had a similar idea, Wodin. I have no programming experience, save for a class in "Basic" in 7th grade (1983). I did a lot of research. DarkBasic was pretty cool, but didn't seem enough for what I wanted. GameMaker (http://www.gamemaker.nl/games_exe.html) seemed good as well. But I think C++ is the way to go.

I'm not sure I want to commit the time to learning it, however. I do have all the beginings of the graphics done-that's the stuff that appeals to me.

All this sure makes you appreciate a well programmed game, though!
"Fear is a darkroom where the devil develops his negatives" Gary Busey
User avatar
Marc von Martial
Posts: 5292
Joined: Thu Jan 04, 2001 4:00 pm
Location: Bonn, Germany
Contact:

RE: Programming

Post by Marc von Martial »

I have no programming experience, save for a class in "Basic" in 7th grade (1983)

Yeah baby, I even managed to code my own RUN GOTO routine, LOL.

benpark
Posts: 3033
Joined: Mon Aug 12, 2002 1:48 pm

RE: Programming

Post by benpark »

Yep. I still remember thinking "this is really boring now, but someday...someday...Squad Leader's gonna make it to the computer".
"Fear is a darkroom where the devil develops his negatives" Gary Busey
mgarnett
Posts: 270
Joined: Sat Nov 12, 2005 10:50 am

RE: Programming

Post by mgarnett »

Hi Wodin,

I think the best advice I can give is to choose a language that you feel comfortable with. I started as hobby programmer about 10 years ago and now program as part of my job (I am a forensic technology consultant). During that time I have played with a few languages and associated development environments including those from Microsoft and Borland. When I started programming for Windows, I was given advice to use C++ and so started with Microsoft Visual C++ (I had been programming a Turbo C and Turbo Pascal prior to this).

I struggled to like the language, the concepts that were easy for others to grasp were difficult for me. Eventually, somebody told me to try Delphi, and I have been programming in it ever since. Each programmer likes diffierent things and we all get a sense of achievement in different ways. I get a big sense of achievment when I can get a GUI or Windows App up and running quickly and Delphi gave me that ability. It is based on the Pascal language and, IMHO, is very powerful.

For wargame or general Windows programming, it can accomplish everything very quickly. You could literally have a GUI for a wargame up and running in a very short time, using either the Windows GDI or one of the very good free DirectX components availalbe (Asphyre or DelphiX/unDelphiX). C++ is definately the most popular game development language by far, however if you don't like the language or find it difficult to grasp, then that popularity means nothing.

Cheers

Mark
Mark Garnett
Brisbane Australia
User avatar
wodin
Posts: 10709
Joined: Sun Apr 20, 2003 3:13 am
Location: England
Contact:

RE: Programming

Post by wodin »

Funny enough my only experience is programming a text adventure game in Basic back in 1983 on my BB C 32K;)
User avatar
Jevhaddah
Posts: 627
Joined: Thu Nov 24, 2005 2:38 am
Location: Scotland

RE: Programming

Post by Jevhaddah »

Where to begin...

I too am an old hack from the days of punched cards and ticker tapes and Yes I also used and indeed taught Cobol which I still use as and when required.

I taught programming, among other things for 10+ years at Graduate level, back in the day it was Pascal, Fortran, Cobol, C and dum darra rum dedo dahhhh BASIC :) among others.

There are quite a few modern versions of BASIC availible now such as

Blitz Max www.blitzbasic.com

Dark Basic Pro http://darkbasicpro.thegamecreators.com/

These are commercial version's but there are also free versions of BASIC:

Just Basic http://www.justbasic.com/

BASIC is IMHO unjustly poo pooed by some, but it is amazing what can be done with it these days now that in some cases code can be compiled instead of interprated.

I use it to teach the bairns in the village a bit of programming outside of skool :)

Microsoft are giving away free (for a year) All the applications in Visual Studio Express 2006) after the year you can still use it commercially, but will have to pay for upgrades.

http://msdn.microsoft.com/vstudio/express/

There are thousands of online tutorials out there, just don't try to run before you can walk and pace yourself at your OWN pace, not that suggested by the tutorials.

If I can think of any more resourses I will update this post accordingly.

Cheers
Jevvy
Hairy Scarey Scotsman
I am really quite mad yoo know!
Marc Vaughan
Posts: 2
Joined: Tue Feb 28, 2006 7:23 pm

RE: Programming

Post by Marc Vaughan »

So I need advice. What language should I start with? Can anyone recommend any books? Also do I need any software, if so what should I buy/download?
If you're new to programming then I'll buck the general trend and suggest a nice easy language to pick up and run with - Visual Basic ... its one of the easiest to learn from a 'get something up and visible' point of view and there are a huge amount of tutorials kicking around on the web for it.

In my experience the main reason for people failing with home projects or learning programming is simply frustration at lack of progress which is most common with the more 'technical' languages like C++ because while they're 'more powerful' they do require a certain amount of knowledge and 'grunt work' to get the best out of them.

VB is more limited in that should you enjoy things enough to want to write a 'professional' game then it might be time to learn C++ but in itself you CAN (and people do) make a very impressive program, if you want proof of this the original EHM (Eastside Hockey Manager) was written entirely in VB and impressed me enough to persuade him to learn C++ and join Sports Interactive.

PS> As per usual I'm a sucker for newbie programmers attempting to make games - if you have any specific questions once you start going feel free to pester me via. PM or email (marc.vaughan@sigames.com) and I'll do my best to help.
User avatar
wodin
Posts: 10709
Joined: Sun Apr 20, 2003 3:13 am
Location: England
Contact:

RE: Programming

Post by wodin »

ORIGINAL: Marc Vaughan
My dream would be to come along and pick up Combat Leader and finish the game;).

Great minds think alike
Post Reply

Return to “General Discussion”