PDA

View Full Version : Programming


sam93
24th September 2007, 20:32
I want to learn to program as when I reach 16 what is in 1 and a half years I will be going to college so I can become a software and web developer. So I was wondering if people could give me some good tips and some good sites what I can use to learn.

No one say the good old hello world app because i have already done that.

Sam.

P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips:)

the_angry_angel
24th September 2007, 20:50
P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips:)Part of being a programmer is having the patience to sit and read or discover how a protocol or how to use an API. Things are not always handed on a plate.

To be honest, once you know the basics - if, else, while, for, +, -, =, etc. you've got the knowledge for most languages in existance to date. The rest is simply learning the nuances of the language (i.e. then and end, vs braces), and then all you've got is the standard API.

The standard API is the core part of each and every language. What you can and cannot acheive by using the default functions. Unfortunately this isn't something you can give tips on until you pick a language to use.

So.. Choosing a language. That's always fun. In short pick what you consider to be the best tool for the job.

If you're new to programming then I suggest something memory managed, ideally something interpreted (not compiled), as it's easier to get to grips with. Once you feel that you can acheive your goals in that language, then move onto the next.

As for projects, pick something that you enjoy, not something you feel you need to do.

If you're into web programming, then you might want to try creating a basic blog or forum. This is a relatively simple selection of code to write, should encourage good practise, whilst giving you good knowledge of a language. Once you're done there move onto the next project.

I would not recommend an (In|Out)Sim or Outgauge client as your first significant project.

sam93
24th September 2007, 21:30
Part of being a programmer is having the patience to sit and read or discover how a protocol or how to use an API. Things are not always handed on a plate.

To be honest, once you know the basics - if, else, while, for, +, -, =, etc. you've got the knowledge for most languages in existance to date. The rest is simply learning the nuances of the language (i.e. then and end, vs braces), and then all you've got is the standard API.

The standard API is the core part of each and every language. What you can and cannot acheive by using the default functions. Unfortunately this isn't something you can give tips on until you pick a language to use.

So.. Choosing a language. That's always fun. In short pick what you consider to be the best tool for the job.

If you're new to programming then I suggest something memory managed, ideally something interpreted (not compiled), as it's easier to get to grips with. Once you feel that you can acheive your goals in that language, then move onto the next.

As for projects, pick something that you enjoy, not something you feel you need to do.

If you're into web programming, then you might want to try creating a basic blog or forum. This is a relatively simple selection of code to write, should encourage good practise, whilst giving you good knowledge of a language. Once you're done there move onto the next project.

I would not recommend an (In|Out)Sim or Outgauge client as your first significant project.

Cheers, I was thinking of PHP or C/C#/C++ or JAVA but don't know what one to choice. I think starting a project of a forum will be a good idea and a good challenge, but wouldn't it require alot of coding and time but saying that programming isn't a 5 minute process takes alot of time to do from coding the program and fixing the bugs and errors. So could anyone give me some good sites I could use so I can learn and start my forum project? I know it doesn't get handed to you on a plate but I would love to start somewhere and why not now so I have some knowledge of programming. When it comes to computers I am very willing to learn and I would learn because it is on a pc lol.

So any help would be great.

Sam.

the_angry_angel
24th September 2007, 21:47
Cheers, I was thinking of PHP or C/C#/C++ or JAVA but don't know what one to choice.For web-based stuff, I'd recommend PHP for a newbie.

As for C, C# and C++, you need to know that these are all relatively different languages. C and C++ are more closely related, but there are still a number of significant differences in what should be considered C and C++. C and C++ are also not memory managed, which means you need to understand how memory works, pointers and so on. If you're learning to program these are not the easiest things to pick up.

C# should be considered closer to Java, in terms of syntax and because it uses a JIT (Just In Time) compiler.

I personally believe that Java isn't relevant these days for web development.

Any of the .NET languages (including c#) can be used on the web, but thet require running the .NET framework to be running, which effectively means exclusively running on a Windows platform (you could run it under mono, but I honestly wouldn't consider this to be production ready for web apps for the moment).

So could anyone give me some good sites I could use so I can learn and start my forum project?
w3schools.com
php.net
devzone.zend.com/tutorials

Finding existing projects and picking them apart can also be a good starting point.

sam93
24th September 2007, 21:58
For web-based stuff, I'd recommend PHP for a newbie.

As for C, C# and C++, you need to know that these are all relatively different languages. C and C++ are more closely related, but there are still a number of significant differences in what should be considered C and C++. C and C++ are also not memory managed, which means you need to understand how memory works, pointers and so on. If you're learning to program these are not the easiest things to pick up.

C# should be considered closer to Java, in terms of syntax and because it uses a JIT (Just In Time) compiler.

I personally believe that Java isn't relevant these days for web development.

Any of the .NET languages (including c#) can be used on the web, but thet require running the .NET framework to be running, which effectively means exclusively running on a Windows platform (you could run it under mono, but I honestly wouldn't consider this to be production ready for web apps for the moment).


w3schools.com
php.net
devzone.zend.com/tutorials

Finding existing projects and picking them apart can also be a good starting point.

Cheers for the help mate. I did start a web browser but I the pc it was on the HDD reformated, I am sort of glad I didn't finish it because I wouln't like to us it because of security settings.

Well I will read up on some information and get some code snippets and put them altogether and see what I come up with.

Sam.

Edit: Should I use notepad or would Visual Studio be ok to use?

racemania
25th September 2007, 00:00
Hi welcome to programing, heres a site ive been using ive found it to describe lots about C#, ive only just began my programing, ( 4 weeks now) and i started out with C++ found it not as easy as C# so i changed now, im also not that great at doing all this still learning, ive found learning from my mistakes shows me the places i have to watch, ive only made a few simple apps atm one is a pictureviewer which is easy now i know how it works.

http://www.functionx.com/csharp/index.htm

idd also suggest getting a text book to write some stuff down on cause u will always sit there and be looking back at what you have leanrt in the past, its also good to do some scribble on to:D.

anyways good luck

Bob Smith
25th September 2007, 00:27
Should I use notepad or would Visual Studio be ok to use?
Never use notepad. If you are going to write something in just a text editor, use something a little more sophisticated than notepad, such as SciTE (http://www.scintilla.org/SciTE.html). There are other similar alternatives about though.

How many languages does Visual Studio cover these days? I only have the VB module installed and can't be bothered to fish out the installer disks. On the whole it seems a solid product to me but then I've tried little else.

racemania
25th September 2007, 00:39
How many languages does Visual Studio cover these days? I only have the VB module installed and can't be bothered to fish out the installer disks. On the whole it seems a solid product to me but then I've tried little else.

it uses C#, C++, VB and J# from what i see on my 2005 version
i think thats it i know the new 2008 is in beta stage was going to try it out but its too big for my isp :(

the_angry_angel
25th September 2007, 00:44
Never use notepad. If you are going to write something in just a text editor, use something a little more sophisticated than notepad, such as SciTE (http://www.scintilla.org/SciTE.html). There are other similar alternatives about though.**must resist classic argument** Vim you heretic, always Vim!!!!!

Honestly sam you're discussing the difference between a text editor and an IDE there. Fundamentally notepad is just a text editor, whereas Visual Studio is so much more. Whether you prefer to go down the toolchain (i.e. a text editor and a compiler) or an integrated solution (an IDE), is again up to you. IDEs do tend to make life a hell of a lot easier though as you can just mash a button and it does X, Y or Z for you. Now truely evil heretics will tell you that emacs is able to do that as well. But you should ignore them. For they are the dark ones. The evil ones. You must laminate evil.

Bob Smith
25th September 2007, 01:42
Fundamentally notepad is just a text editor
It's barely even that. :razz:

SamH
25th September 2007, 02:42
Use all the tools at your disposal. People rip the micky out of me for using DW to develop websites in, but the truth of the matter is that when time is YOUR money and you're quoting on jobs, you need to take advantage of anything that will assist you. Craning for hours over plain text is just stupid when a code checker will highlight an error instantly.. and the less time you spend fixing your errant typos, the more time you can commit to generating something extra special.

DarkTimes
25th September 2007, 07:44
Hi welcome to programing, heres a site ive been using ive found it to describe lots about C#, ive only just began my programing, ( 4 weeks now) and i started out with C++ found it not as easy as C# so i changed now, im also not that great at doing all this still learning, ive found learning from my mistakes shows me the places i have to watch, ive only made a few simple apps atm one is a pictureviewer which is easy now i know how it works.

http://www.functionx.com/csharp/index.htm

idd also suggest getting a text book to write some stuff down on cause u will always sit there and be looking back at what you have leanrt in the past, its also good to do some scribble on to:D.

anyways good luck

I'd recommend MSDN (http://msdn2.microsoft.com/en-gb/vcsharp/default.aspx) for the best place to start with Visual C#, especially the video tutorials, which are really nice and easy to follow.

racemania
25th September 2007, 07:48
I'd recommend MSDN (http://msdn2.microsoft.com/en-gb/vcsharp/default.aspx) for the best place to start with Visual C#, especially the video tutorials, which are really nice and easy to follow.

yer i was looking for those vids but couldnt find them thanks for posting them:thumb:.

Woz
25th September 2007, 10:38
This is the IDE that the Mono IDE was forked from. A good cheap (free) way in to C#. Unless you work in what some call an "enterprise" style of design this should have all you need.

http://www.icsharpcode.net/OpenSource/SD/

DarkTimes
25th September 2007, 11:35
Visual C# 2005 Express Edition is free to of course. ;)

racemania
25th September 2007, 11:58
ohhh i got the professional version didnt know there was a free one :(

col
25th September 2007, 12:33
A good IDE can make a big difference.

example:

Most good programmers know how important choosing good names for variables and object instances is.
If you get it wrong, then later in the project, you either have to spend time and effort going through the codebase updating all the instances to a new more suitable name.... or just leave a bad name in there that causes ambiguity and uncertainty for maintainers (yourself in a few weeks :))
To avoid this trouble you can spend quite a while stressing about the naming process.

Eclipse (at least the latest Java version anyway) has some excellent refactoring tools - renaming a variable throughout the codebase is very simple and quick - just a few clicks and type the new name !

These kinds of tools don't just save time, they can change the way you program.

DarkTimes
25th September 2007, 13:24
Well, intellisense, syntax-highlighting, code completion, refactoring, class browsers, built in documentation tools, project management, version control, one-click compiling... I could go on, but these are some of the reasons I code with an IDE and not with Notepad.

That being said, there is a great Notepad replacement called Notepad++ which is worth checking out. :)

sdether
25th September 2007, 14:07
If you're going into a language with a large framework and wordy syntax (read, C#, Java, many modern OO languages), I highly recommend using an IDE. Otherwise you'll spend more time looking up object names, methods and methodsignatures and correcting spelling than programming.

The Visual Studio Express series is a good place to start. Full visual studio offers more, but not to the extend that the cost is worth it until you can write-off the expense.

Java and python (and depending on who you talk to, ruby) have great Eclipse environments. Although I have friends that swear NetBeans is now better than Eclipse again (at least for ruby).

Terse syntax languages (perl, php, ruby, etc.) don't need an IDE, but syntax highlighting is always a good thing. I personally like to stick to emacs there. I was pleasantly surprised by JEdit as well, but obviously not pleasantly enough to give up my old emacs habits.

sam93
25th September 2007, 15:04
What program would be best to use to build a forum? I was thinking of using DreamWeaver because trhat lets you write using PHP.

Sam.

SamH
25th September 2007, 15:12
For a forum, you're likely to need MySQL or a similar database, and you'll need PHP. Dreamweaver wouldn't be a bad place to start, or Zend. Either's good. :)

sam93
25th September 2007, 15:27
For a forum, you're likely to need MySQL or a similar database, and you'll need PHP. Dreamweaver wouldn't be a bad place to start, or Zend. Either's good. :)

Ok cheers:)

Hollywood
25th September 2007, 15:53
Well that's going to be problem #1. If you expect to learn to do something, as fairly complex as computer programming (which in and of itself is not that complex next to say chemical engineering, medicine, etc.), and you aren't able/willing/etc. to do the legwork required to figure out where to look for information, or how to look for information, then it will cause you no limit to the amount of frustration.

So step one is really to learn how to learn.

Step two would be to learn the basics of programming design and not attempt to code up applications without knowing what you may or may not be doing. The reason a lot of software(especially the hobby stuff, but also commercial stuff too) sucks? Because things are hacked together and not thought through with good design philosophies employed. Lack of understanding about data structures, design patterns, etc. generally lead to poor execution, poor performance, issues with maintainability, etc.

Step three is to do a lot of problem solving. Outside of just the general basics of how to structure a program (which has nothing to do with languages or IDEs, etc.), programming is pretty much like everything else thats remotely scientific... it's about problem solving. Sure its grammar is less rigorous than say mathematical formulas, but if you can excel at geometry proofs or problem solving with algebra or calculus (I realize at 15 and change you wouldn't have been exposed to calculus yet, but the other two you should be), then you should have no problems with solving problems via programming.

The 8 queens or the traveling salesman problems are classic problems to be solved. If you can solve those, programmatically, while employing good design, use of data structures, and design practices you'll know you are on a track in your learning of "how to develop software".

No one ever was successful at learning by delegating responsibility

P.S I know there are a load of these type of threads but I find it easier then looking through others for links and tips:)

wheel4hummer
25th September 2007, 16:00
ideally something interpreted (not compiled), as it's easier to get to grips with.


*cough* Python *cough*

amp88
25th September 2007, 16:20
Before I went to uni in 2003 to do Computing Science I'd only done standard grade computing and I had literally no programming skills. In uni I studied Java for 3 years, C for about 6 months and SQL for about a year. Now I've gone from knowing practically nothing to a Software Developer job using Java and SQL. The main thing I'd say with programming is that unless you actively want to learn and improve you probably shouldn't do it. A lot of people will try to learn as little as possible to accomplish a task (setting up a forum, for example). Unless you want to know both how something works AND why it works I don't think you'll get on very well as a programmer. I know a lot more now than I did in 2003 but I realise in the grand scheme of things I don't really know much. I'm constantly looking to improve my existing knowledge and widen my experience.

I would recommend you start off trying to learn Java with Eclipse (http://www.eclipse.org/). I recommend Java because it's a very powerful language, it has good documentation (the Java API is really good) and it's very structured. Once you've learned/mastered the basics in Java you'll be well equipped to move on to something like C#/C++.

Java has a reputation for being slow to execute and a bit cumbersome to develop with, but if you use a modern compiler/VM and you've never programmed before you won't notice any lack of speed. Java is used by many large corporations and interbank transfers in the UK are dealt with in Java (80+ million per day).

the_angry_angel
25th September 2007, 16:33
Java has a reputation for being slow to execute and a bit cumbersome to develop with, but if you use a modern compiler/VM and you've never programmed before you won't notice any lack of speed.That's like saying if you've never driven in a sports car you won't notice that your Ford Ka is slow..

Java is used by many large corporations and interbank transfers in the UK are dealt with in Java (80+ million per day).The reason for this is that banks tend not to change software often and the era in which most of their software was written, there weren't many real cross platform alternatives. And now it's just still used "because", in my admittedly limited banking evironment knowledge.

Don't get me wrong, if you like Java then good for you. I just feel that it's not that friendly for a lot of newcomers (although I like case sensitivity, amongst it's other features). My beef is that it encourages OOP, by making procedural fairly non-trivial. But the OOP isn't that brilliant. if you're new to programming diving into OOP might be considered harder to comprehend than procedural, especially if you end up digging in with SWING..

Sam / anyone who wishes to learn to program;

You need to realise that everyone will advocate based on their own experiences. This ends up with "arguments" over trivial things, such as what the best editor / IDE is, or what the best language is. Take what we all say with a pinch of salt and try everything for yourself. Then pick what you think is the best tool.

What works for one person doesn't work for another, is what I'm trying to say. But no matter what you do, use Vim.

sdether
25th September 2007, 17:32
Referring to Java and Speed ...
That's like saying if you've never driven in a sports car you won't notice that your Ford Ka is slow..


The thing that gets me about people complaining about Java and speed is that half the time it comes from people that then go back to writing php, python, perl, ruby, etc. (angry_angel, don't recall what your choice is). Now that's like saying that you think that the Ford Ka is slow and that's why you'd rather walk everywhere.

I won't argue that Java has a habit of forcing people down very academic levels of abstraction in OO that are just unfriendly to newcomers and speed. Swing and the whole j2ee are two infrastructures that come to mind there.

the_angry_angel is right, of course, that any reference to particular languages will invoke long, meaningless posturing by all :) Consider this my posturing, and that said, I do agree that if you're starting out and not doing it via CS 101, java is a bit heavy and more likely to frustrate you before you ever find the joy of programming (unless you're just a OO geek). The scripting languages is really where it's at to get your feet wet.

Hollywood
25th September 2007, 19:12
I'm not even going to debate languages/VM/etc. merits because as sd points out it'd be a flame fest, and usually because people are misinformed.

Java/C#/etc. are OO, but you can do tons of procedural programming in them. And spaghetti code is completely possible (I've seen bizarre stuff in huge corporate systems that makes you shake your head). However, scripting languages are a bane because they are generally used incorrectly and they tend to make it very easy to end up with spaghetti code which ends up teaching only bad practices.

The scripting languages is really where it's at to get your feet wet.

As far as languages, personally I think everyone should have to do some assembly (especially mainframe assembly), some Fortran, heck do some oddball stuff like learning Forth. Anything to stretch your mind and be able to look at programming problem solving in a different light. Be exclusionary (just as its bad for the LFS community) is bad because it doesn't allow you to approach problems with new, potentially innovative, manners.

Shotglass
25th September 2007, 19:20
As far as languages, personally I think everyone should have to do some assembly (especially mainframe assembly), some Fortran, heck do some oddball stuff like learning Forth. Anything to stretch your mind and be able to look at programming problem solving in a different light. Be exclusionary (just as its bad for the LFS community) is bad because it doesn't allow you to approach problems with new, potentially innovative, manners.

thats what i said in some other thread on learning coding
if youre serious about it you should at least try one language of the major categories (imperative functional and logic) and preferably a whole bunch of other ones

Stigpt
26th September 2007, 12:41
As editor goes, choose emacs! You can do just about anything with emacs!
provided you spend 28 years learning how to use it, ofc.

sdether
28th September 2007, 14:11
Wow - it is just physically impossible to have a conversation about programming without it desolving into an argument! :D

If programmers spent less time arguing and more time making useful bug-free software then the world would be a much better place! :)

I guess after spending some time finding some annoying bug, going to a forum to watch the slow-motion train-wreck of programmers defending the semantics of their chosen language is stress relief. I mean this thread has long ago stopped being useful on the programming topic, but why do i still read it.. Is that why people watch reality TV? Geez, i thought i was better than that :D.

Warning, On-Topic content follows:

I just spent the last week tracking down memory issues in FMR's control software. Yeah, isn't switching to a "managed" language supposed to solve memory leaks? Hahahaha.. you'll never get away from memory issues. They're not called "leaks" anymore because it's not leaking, the GC is completely aware of the memory being retained. It's you, the programmer, that has done something that prevents the object from being collected.

Except in this case, it actually was an old fashioned leak: The GC was not growing, but the Taskmanager was reporting growth. I did a stress test of running our software for a week and at day 4, I was running out of VM.

Did memory profiling, etc. and couldn't track it down. Finally found single line in a bit of utility code that was the culprit. See, .NET, unlike Java, let's you get down and dirty. I.e. it hands you a shotgun and sez "I know you're not used to handling heavy weapons, but hey, it's your foot your gonna shoot off. Have Fun!" I was using a scheme of getting some unmanaged heap memory, pinning it down (so that the GC didn't move it), and copying a byte array straight into a struct (a standard operation in C/C++). I then did unpin it again, allowing for GC collection, but in some places was missing the line that did the heap de-allocation. Dooh.

Expect LFSLib 0.17b in a week or so (other changes still being worked on) and if you have more pressing memory concerns, PM me.

the_angry_angel
28th September 2007, 17:04
but in some places was missing the line that did the heap de-allocation. Dooh."free the mallocs" springs to mind :D Sorry, that's a terribly geeky and sad joke. It does demonstrate the importance of good practise though - make sure you always destroy, or mark as unused, what you no longer need to use. This goes for scripting and memory managed languages as well as non-memory managed programs.

Stigpt
11th October 2007, 11:59
"free the mallocs" springs to mind :D Sorry, that's a terribly geeky and sad joke. It does demonstrate the importance of good practise though - make sure you always destroy, or mark as unused, what you no longer need to use. This goes for scripting and memory managed languages as well as non-memory managed programs.


Any good programmer should TATTOO this on their body. Preferably on the hands.

DemonTPx
11th October 2007, 13:17
As editor goes, choose emacs! You can do just about anything with emacs!
provided you spend 28 years learning how to use it, ofc.


Lol, VI for the masses! :D or notepad++ for the not-so-nerdy-geeks!

St4Lk3R
15th October 2007, 13:30
Lol, VI for the masses! :D or notepad++ for the not-so-nerdy-geeks!
what about eclipse?

Hollywood
15th October 2007, 14:15
Eclipse ain't bad; its does have some oddities to it that I've never really adjusted to since it debuted back as Visual Age in like '99 or 2000. I definetly prefer it over netbeans for Java development.

what about eclipse?

St4Lk3R
15th October 2007, 14:28
Eclipse ain't bad; its does have some oddities to it that I've never really adjusted to since it debuted back as Visual Age in like '99 or 2000. I definetly prefer it over netbeans for Java development.

I also use it plus the PDT Extension (by Zend) and the Zend Debugger to develop my PHP applications ;)

james_bskt
6th April 2008, 16:11
hi all

ive been looking all over the net and have tried out about 3 different dodgy looking programs involving game design or development, just to try and find out how you would go about making a game like this. i know it would be extremely difficult with physics and all, but im not talking about today's standard just something like the 2nd or 3rd release of lfs.

the programs that i've tired have given me the option to build the terrain for the game, so ive played about with that for a bit quite fun, does lfs work this way too? a terrain mould first? then i added textures but they failed, and also i attempted to build a few objects, which also ended in failure :D

i have so much patience though, and wont give up on this epic pointless task to build myself something, but the only guides i can find are for RPG or adventure (World of warcraft style) enviroments no vehicles.

can anyone refer me to any useful information here in the forums or elsewere because i am now addicted to googling words like "race game development" / "vehicle object design" "terrain for racetrack" and not getting anywere.

ohh yeah to make matters worse i don't know much about game design. im a website designer, so have knowledge of, er, the wrong field, if you like, of computing.. i'd like some info on what programs to use mainly.

please dont tell me to give up as i said i'm a patient person who wont be giving up on this, dont direct me to something like this (http://www.flashgames247.com/play/836.html) :nod: :tilt: :shrug:


also, i have been reading around in the programming section since posting this, and wondering if it should actually be in there.... i've read so many articles in there but most go over my head. like walking into mathmatical phycics degree at six years old. it wont work.

ive read alot of this post : http://www.lfsforum.net/showthread.php?t=31648 but am still currently bewildered... is there a simpler way? to me it seems as if the world of programming is like before WYSIWYG , i know i havent done much research but it looks as if manual programming ( i.e wrinting a website in notepad ) has not got any visual user programs ( like for instance dreamweaver or frontpage instead of notepad.) i could (and most probably am) be stating the truth here or there could be hundreds of them. but that's wat this post is for, i really dont know. im 80% sure that this should be in programming section!

Stigpt
6th April 2008, 18:00
Ofc not. Website designing is to computing as driving a car is to designing one.
So its understandable you dont understand anything.
The closest thing to a "program" like the ones you describe is visual studio , which looks like this:
http://www.vistadb.net/images/screenshotsXP/vs/vistadb_scrn076.png

Now, that is sort of like designing a webpage with dreamweaver, but having dreamweaver only create the divs - not the actual html code.
Programmers build webpages powered by notepad. (or better, Gedit. Or more geeky, emacs. Or ultra geeky, VI. Or über geeky, a magnet and a steady hand. Or just silly, butterfiles.)


And yes, it IS that complex/long.
As for the development cycle, the very start is usually by modelling in UML (a language to describe in "scribbles" how a program/database will interact with itself), followed by some code implementation.
The thing with textures/maps comes later - first you do the mathematical representations, the "working core" of it, then feed that working core some values to check if its working properly (say you got the momentum calculation thingy worked out, you give it the values to pretend theres an object moving, then see what it tells you it happens)
.
As part of these tests, you might want to eventually try out a more complex "testing area", and the first interface/map/vehicle is born - just to test.

Say you finished you programming of ALL the equations that will govern the car behaviour when its moving straight. You then make a rudimentary track with no or little grafics just to "see" if it "looks" right. Of course, if you turn, the program would crash, but that woule be for later.

Yes its long. Yes its complex. Yes you can learn it :D
Go buy a couple of books on C#, Java(a good starting language). Youll only have to read around 2000 pages to know what we are talking about, and some 4000 to start doing some interesting stuff!

hardcoreobscure
6th April 2008, 21:33
ive read alot of this post : http://www.lfsforum.net/showthread.php?t=31648 but am still currently bewildered... is there a simpler way? to me it seems as if the world of programming is like before WYSIWYG

Your right, but like dreamweaver, you should never rely on the design view. A good solid understanding of the language is just as essential in programming applications (and much more so actually) as it is in creating website designs. WYSINAWYG :thumb:

As Stig mentioned, it would take you years to learn how to make anything remotely as complex as LFS, but if you want a higher level experience then editors are available for many games (usually FPS's) that allow you to mod the game without delving into the code.

They can be good fun too actually.

the_angry_angel
6th April 2008, 21:58
I'm in partial agreement with you that this should be in the programmers subforum. However, it's not entirely relevant to LFS programming. It's definitely not something for TA. It's probably most relevant for Off Topic, but you'll get a shit load of very stupid answers.

Writing something like LFS is complex. There is nothing that will allow you to create something like this, which is WYSIWYG-based, for many reasons. The majority is because it's not suitable for creation by that sort of tool. RPG's on the other hand are more so.

i've read so many articles in there but most go over my head. like walking into mathmatical phycics degree at six years old. it wont work.And there's going to be a big problem. LFS is relatively complex until you break it down into components. These components are loops of game logic, physics, etc. etc. Each component will require various skills which are not always easy to attain. I won't go over this in too much more detail, as it's been covered by others.

However, if you're truely interested in doing something like this then you're going to have to put in a lot of effort to;
1. Learn to program in a suitable language (you'll have to start with baby steps and work your way up in complexity)
2. Learn some basic physics
3. Possibly learn some basic modelling

There are a couple of great books out there which may well help you. A couple that I could recommend from my shelves are Game Coding Complete, and Tricks of the Game Programming Gurus. I'd recommend Game Coding Complete over Tricks.. purely because it's of the same ilk as Coding Complete, and it's much better written and more up to date.

DarkTimes
6th April 2008, 22:03
Well, I'm afraid there is no WYSIWYG short-cut to creating a game like LFS. WYSIWYG lends itself to simple UI design, such as dragging and dropping buttons and forms, but it is not suitable for creating complex, abstract, real-world physics simulations. Or even simple physics simulations. Sorry to say, but a game like LFS is much much much much much more complicated than a web page.

The only way you will ever come to even a close approximation of LFS is by learning to program, learning how to create 3D models, spending at least ten years honing your skills, then sitting down and spending every day for the next five years working on it. This is what the LFS devs did.

In some ways, yes, it's sad that there is no drag-and-drop program for writing complex computer programs, but if you have a goal to write a game (even a little like LFS), then you will need to be realistic about it and start by learning the fundamentals of programming and art.

Edit: TAA beat me again. :)

Edit: Sorry :( I'll try harder not to next time... - taa

mcgas001
6th April 2008, 22:10
Hehe DarkTimes. Ive acutally started on doing a C++ game from a book I have. I'll keep people posted on how things go. :)

vane
6th April 2008, 22:26
aren't most online games done in java? e.g runescape :x then they are built into a webpage, i would love to make a really basic game, once my gcses are out of thg way i will get a coding book and follo some game making tutorial, home brew psp games are easier to make :)

speaking of which one of my close friends is off at uni learning game programming and has learnt java already and done a bit of basic, time to get him to make a runescape like game then vacuum all the money out the little kid's pockets :p

mcgas001
6th April 2008, 22:35
Java isnt the best language to make games with IMO. Anything where the memory is managed for you, Isnt best. C++/C are good for games as they compile directly to machine code. Which then intrertacts directly with the hardware. 99.99% of todays games are made using C++. As much as i know C#, I'd still rather use C++(Hence im learning it now). :shrug:

vane
6th April 2008, 22:49
The only reason i really wanted to get into coding was that i am hoping to be an engineer, which would require me to code programs and software to control machines and other hardware, and it just so happens i have found out my dad knows how to code basic :)

DarkTimes
6th April 2008, 22:57
Java isnt the best language to make games with IMO. Anything where the memory is managed for you, Isnt best. C++/C are good for games as they compile directly to machine code. Which then intrertacts directly with the hardware. 99.99% of todays games are made using C++. As much as i know C#, I'd still rather use C++(Hence im learning it now). :shrug:
I disagree. You can't say that C++ is better for writing games as its faster, it's only better for writing games where performance is going to be an issue. If performance is not a issue, then you should choose the language that will give you the most productivity gains. There's no point writing a 2D shooter in C++ just for the sake of it, when you could write it in Python in a quarter of the time. You choose the best tool for the job. The vast majority of small indie game developers don't use C++, as there are much better languages for the sorts of games they want to make. Also the statement that 99.9% of games today are made in C++ is complete lunacy. I'd take a fair bet and say that online Flash games would give C++ ones a run for their money.

mcgas001
6th April 2008, 23:01
Also the statement that 99.9% of games today are made in C++ is complete lunacy. I'd take a fair bet and say that online Flash games would give C++ ones a run for their money.

Copyright: Beginning C++ Game Programming :x

Well, For games like LFS 99.99% of them are made in C++. Anyway, sorry i read it in this book. :shy:

Dygear
7th April 2008, 21:35
Java isnt the best language to make games with IMO. Anything where the memory is managed for you, Isnt best. C++/C are good for games as they compile directly to machine code. Which then intrertacts directly with the hardware. 99.99% of todays games are made using C++. As much as i know C#, I'd still rather use C++(Hence im learning it now). :shrug:

The Pros use C++, some still use C, but thats due to the core of the game starting out in that, in around 1995. Only people just starting to learn how to program, and in fact also, how to hack games (Like Wall Hacks) use C# and I've even seem people learn how to program, from making wall hacks. It's insane how easy it is to do. (I've never done it myself tho . . . No really.)

vane
8th April 2008, 15:36
Well, For games like LFS 99.99% of them are made in C++. Anyway, sorry i read it in this book. :shy:
just leave it at "some game are done with c++" to avoid digging an even bigger hole :D

matt.tr
12th April 2008, 14:50
i Would start of with basic as it is simle to use.

Hollywood
15th April 2008, 21:12
That is not quite true. Lots of people still use C/C++. Yes, most of the "professional" grade engines and APIs (network, physics, sound, graphics, etc.) still done in C/C++. There are plenty of indie level stuff going on with C/C++ and the open source world. In fact, most of the open source APIs (OGRE being one, Torque Network Library another, OpenAL, ODE, etc.) are all done in C/C++. There are some Java and C# (and other languages) wrappers. That is not likely to change any time soon as its its about as close as you are going to get to machine code with a high-level language.

That being said, its really dependent on your game. There are plenty of other choices (C#, Java) that can be used quite comfortably depending on your game choice. I know GarageGames is working on a game engine similar to their high-end Torque product using the XNA framework (it's called TorqueX), and for Java there are several graphics engines (jMonkey) comes to mind. Outside of graphical games, you could use Java (via JEE or even just JSP), PHP, ASP.NET (or hopefully soon the MVC for ASP.NET instead of the brain dead WebForms), to do web style games. Or there is Silverlight or Flash for more interactive "fun" (whatever that may be... I just generally call them "annoying") games.

And speaking of "hacks", heck building mods in some of the high-end FPS games (Unreal, HalfLife, Cyrsis, etc) can be a "fun" way of learning to program in maybe a more "exciting" venue... depends on your perspective of course.

The Pros use C++, some still use C, but thats due to the core of the game starting out in that, in around 1995. Only people just starting to learn how to program, and in fact also, how to hack games (Like Wall Hacks) use C# and I've even seem people learn how to program, from making wall hacks. It's insane how easy it is to do. (I've never done it myself tho . . . No really.)

SamH
16th April 2008, 00:25
If you want to fast-track into a working and playable game, DarkBasic is probably as good a place as anywhere to start. It's not low-level - it's almost WYSIWYG - but DarkBasic offers rapid returns on effort, and for someone who's never even programmed before, and who's interested in programming something that's graphically rich, this is bound to be invaluable. You can make some giant steps into programming very quickly. Later on you can start looking at the different things that go together to make something work even faster, or be more complex.

http://darkbasic.thegamecreators.com/

DarkTimes
16th April 2008, 00:39
I've not tried DarkBasic, but I've been getting very heavily into Python for the last few weeks. It truly is a glorious language to work with, and I'd suggest Pygame (http://www.pygame.org/) as a nice game library for a programming beginner. Python is so lovely and compact, I think it would be relatively painless for a newcomer to learn. Plus, you know, all the tutorials involve printing Monty Python sketches to the screen, which is a nice change from the dryness of most references. :D

print "This is an ex-parrot!" :)

Woz
16th April 2008, 07:56
*cough* Python *cough*

I work in C# and a mix of Interfaces and Generics gives most of what I need but there have been times I with C# had Duck Typing like Python

:)