Turning an Artist into a Programmer...

Mujuro

Newbie
Joined
Oct 10, 2004
Messages
549
Reaction score
0
For approximately ~3 years, I've been using Photoshop. I literally know the ins-and-outs, but I can never obtain great results. It may be due to my habit of perfectionism, and always wanting to pump out the maximum detail achievable in the confines of Photoshop... but then again, I never know if it looks good to others. I started editing when I was naive, in a sense, and it has really hurt me in the long run.

To keep it frank, I am sick and tired of creating the artistic side of games and modifications. I want to expand my abilities into programming, and totally forgive and forget my previous working habits, and start fresh, to say the least. I have a few questions...

1) Which language should I start out with? The only language I know by heart is BBCode, and it ends there.
2) Which books, as well as authors would you recommend?
3) Is perfectionism (to an extent... well, a serious extent) a plus when programming?
4) Do you have any other relevant information for starting?
 
1) I started out with C++, and I think I'm doing alright with it so far. I would reccomend, however, you aqaint yourself with the fundamentals of programming.
3) I think everyone who becomes any decent with a talent is automatically a perfectionist, otherwise I doubt that person would be skilled. Although there is a point where you think it might be perfect, but there are more "perfect" methods.
4) Experience is key. Do something over and over again, and then when you finally think you've done something and know it by heart, do it with your eyes closed.
 
1) C++, don't learn C first, or else you end up unlearning and relearning everything you know.
2) http://newdata.box.sk/bx/c/ Its a free online book, though, I'd imagine there are better ones in the stores, like How to code for dummies.
3) Ummm... sure?
4) Its going to take time to learn. Expect to debug a lot, and for a long time. You also have to memorize some stuff, of course. Make sure to read through everything carefuly, and, if you are debugging and all else fails, come over to the forums here.
 
Thanks guys. Also, when I say I am a perfectionist, I don't mean I am perfect. I just like to have everything in order, clean, and nothing wrong with it. I know nothing is perfect, it's just a bit of an exageration. By the way, is there a guide to understand all the lingo, such as what "object-oriented" means, as well as other terms?
 
Mujuro said:
Thanks guys. Also, when I say I am a perfectionist, I don't mean I am perfect. I just like to have everything in order, clean, and nothing wrong with it. I know nothing is perfect, it's just a bit of an exageration. By the way, is there a guide to understand all the lingo, such as what "object-oriented" means, as well as other terms?

Perfectionism is a double-edged sword in programming.

On one hand:
A major problem with many C++ programmers is that they get caught up in creating ILLEGIBLE code, and commenting the hell out of it to explain what it does. Good code does not require comments. This is where perfectionism is a good thing, you'll want to create the cleanest, most readable code.

You'll also want the highest quality code possible; therein lies the problem...
A lot of time might be spent re-coding portions of your work, in attempts to make it "just a little better". A perfectionist can easily get caught up in this, and as a result some of your productivity can be wasted in "overdoing it".

You just have to find a balance, the place where the code is quality, without spending too much time on one part.

Now, as for starting languages... C++ is a nice place to start, and there is a lot of documentation available on the net, and in bookstores, if you're interested in learning it.
 
I'd start doing C++, Python, or Java IMHO... C++ is probably the most difficult to learn, but gives you deep deep control... You have to deal with memory and such which can be a pain, but a blessing when you need to optimize... I don't think Java gives you access to dynamic memory control (maybe vectors?) and I highly doubt Python will either... I don't have extensive knowledge with Python and Java so I don't know their boundaries really... Just what I've heard from other programmers.

Perfectionism is explained well in the post above this... If you comment every single line, then it will be useless because it's just not practical and is almost sloppy to an extent that nobody can read your code without comments...

I've heard that there's a book by "Course Technologies" by Michael Dawson that's pretty good... Look on GameDev.net (I think they gave it either a 4.5 or 5 star rating along with the user rating).

Don't do Visual Basic, C, or such things like that... They can teach you bad bad habits that will hurt you when you upgrade to a powerful language like C++

Practice is key!
 
JellyWorld said:
The first language I learnt was Java :p

First language I learnt was BASIC. Man, I miss the days when it was required to have numbers at the start of every line, and to make a function, you had to use GOSUB.

-Angry Lawyer
 
Wow No offence I hate coding I love photoshop and I have also been using it for 3 years I wanna forgive and forget to but i hate bloody coding so Ill go into 3D modeling which will be fun because ill make me one 3D model of my self and mreak my legs
 
I would go with C++ (actually I did go with C++). Someone once said that anything you can do on a computer can be programmed in C++. It may not be true, but it's close.

I have only been learning C++ for a short time, but i'd reccomend a good book over a website any day. It just helps to be able to glance down at a book instead of flicking through websites every time you want to check something. Learn the basics with a book (library is a good start) and refine with websites.

I dont agree that good code does not need comments. The code should show what it is doing, comments show why it is doing it.

Just my 2 cents. :E
 
CrackatiCs said:
Wow No offence I hate coding I love photoshop and I have also been using it for 3 years I wanna forgive and forget to but i hate bloody coding so Ill go into 3D modeling which will be fun because ill make me one 3D model of my self and mreak my legs

Please remove yourself from the internet.
 
I started with php (if you can call php programming) and once I get that down pat I'm moving onto C++ so that me and synth can start a mod.
 
i started with pascal, dumbass computing teacher doesnt know any other languages we could have done java or c++ but no they are dumb, now we have moved on to vb, which is better but we arent actually being taught anything :(
 
Heres a quick run-down of some systems:

C: You shoot yourself in the foot.

C++: You dont shoot yourself in the foot as often, but when you do it blows away your entire leg.

VB: You only appear to have shot yourself in the foot, but you had so much fun doing it you dont care.

VBS: You shoot yourself in the foot with a water pistol.

Pascal: The compiler wont let you shoot yourself in the foot.

Java: You write a program to shoot yourself in the foot and put it on the Internet. People all over the world shoot themselves in the foot.

HTML: You shoot yourself in the foot, only to find out that no matter how gory the result looks, your foot keeps working. Your foot finally stops working when you stub your toe kicking the box the gun came in.

Assembly: Before you can shoot yourself in foot, you must invent the bullet, the gun, the trigger, and your foot.

Microsoft C++ w/Windows SDK: You write about 100 lines of code to print "hello, world!" in a dialogue box, only to have an error pop up when you click on OK. This shuts down the program manager, leaving you nothing but a screensaver. Bill Gates then flies in from washington and shoots you in the foot.

Windows XP: Some teenage hacker shoots you in the foot with ActiveX. You develop gangrene and die.

-------------------------

Hope I helped. :E I love programming humour...
 
HTML: You shoot yourself in the foot, only to find out that no matter how gory the result looks, your foot keeps working. Your foot finally stops working when you stub your toe kicking the box the gun came in.
SO TRUE :D
 
jabberwock95 said:
Heres a quick run-down of some systems:

C: You shoot yourself in the foot.

C++: You dont shoot yourself in the foot as often, but when you do it blows away your entire leg.

VB: You only appear to have shot yourself in the foot, but you had so much fun doing it you dont care.

VBS: You shoot yourself in the foot with a water pistol.

Pascal: The compiler wont let you shoot yourself in the foot.

Java: You write a program to shoot yourself in the foot and put it on the Internet. People all over the world shoot themselves in the foot.

HTML: You shoot yourself in the foot, only to find out that no matter how gory the result looks, your foot keeps working. Your foot finally stops working when you stub your toe kicking the box the gun came in.

Assembly: Before you can shoot yourself in foot, you must invent the bullet, the gun, the trigger, and your foot.

Microsoft C++ w/Windows SDK: You write about 100 lines of code to print "hello, world!" in a dialogue box, only to have an error pop up when you click on OK. This shuts down the program manager, leaving you nothing but a screensaver. Bill Gates then flies in from washington and shoots you in the foot.

Windows XP: Some teenage hacker shoots you in the foot with ActiveX. You develop gangrene and die.

-------------------------

Hope I helped. :E I love programming humour...


brilliant!
 
I've heard from a lot of people that C# is easier than C++, and better...
 
00dave said:
I've heard from a lot of people that C# is easier than C++, and better...

As a coder for both languages, I find each has its own advantages, although I do prefer C++, simply for its robustness. Or something.

Besides, you can't code a mod for HL2 with C#, unless you completely rewrite the whole game.

-Angry Lawyer
 
i just realised the big book i bought to someday sit down and crack through is c+. is this no good then i need to get one on c++ otherwise i wont be able to do anything in hl2?
 
Angry Lawyer said:
As a coder for both languages, I find each has its own advantages, although I do prefer C++, simply for its robustness. Or something.

Besides, you can't code a mod for HL2 with C#, unless you completely rewrite the whole game.

-Angry Lawyer

The glory of the .NET framework is that it can be used to extend existing C++ code.
 
Ravatar said:
The glory of the .NET framework is that it can be used to extend existing C++ code.

True, but that needs ten times the experience that I have. Although, I'm pretty sure RunUO (an emulator for Ultima Online) uses a base engine of C++, and then has "scripts" of C# that get compiled on run-time. Which is awesome, and I still, to this day, can't figure out how they managed.

-Angry Lawyer
 
I've tried C++ a few times, and failed every time. I have a book, Teach Yourself C++ in Ten Minutes by Jesse Liberty, but I always seem to get to a point where the program in the book doesn't work, or I just write it in wrong a million times (but it still looks right!). I'm going to the library today anyways, and since I'm in a coding mood, I might just try to pick out a better book...
 
I model, and yet I find C++ extremely easy. But maybe this is because I have experience with php?
 
Mujuro said:
For approximately ~3 years, I've been using Photoshop. I literally know the ins-and-outs, but I can never obtain great results. It may be due to my habit of perfectionism, and always wanting to pump out the maximum detail achievable in the confines of Photoshop... but then again, I never know if it looks good to others. I started editing when I was naive, in a sense, and it has really hurt me in the long run.

To keep it frank, I am sick and tired of creating the artistic side of games and modifications. I want to expand my abilities into programming, and totally forgive and forget my previous working habits, and start fresh, to say the least. I have a few questions...

1) Which language should I start out with? The only language I know by heart is BBCode, and it ends there.
2) Which books, as well as authors would you recommend?
3) Is perfectionism (to an extent... well, a serious extent) a plus when programming?
4) Do you have any other relevant information for starting?

I've always been a strange person. I am a graphics designer (Photoshop) and a programmer AND a web designer. So not only am I talented with creative works, but I can also handle the logic puzzles.

Funnily enough, MOST developers can't create artwork worth crap. I can't draw... I mean, I can draw, but not amazingly. I can do a dagger or a tank or stuff, but not like my friend who can draw. I seem to be strange in that I am good at both programming and art design.

So, what language to start off in... personally, I started in HTML, but that was when I was young. Last month I opened the HL2 SDK and I taught myself C++ (still learning), bought a book, played with the code, started my mod...

I had programming experience for about... 4 years in ASP and ASP.NET. So I was very familiar and comfortable with VB.NET (which I still prefer over C++...). If you want, learn VB.NET because it's more "English"-y than C++. Then, you can also learn C# because it has the same commands that VB.NET has but in a more C style syntax. For example:

VB.NET
Code:
Dim str1 As String
Dim str2 As String
Dim i As Integer = 0

' Loop
For i < 7

' Set some variables
str1 = "A Horse"
str2 = "A Pig"

i += 1
Next

C++
Code:
char str1;
char str2;

// Loop
for(i = 0; i < 7; i++)
{

// Set some variables
str1 = "A Horse"
str2 = "A Pig"
}

See what I mean? For someone unfamilar with either language, VB is more appealing because it has traces of REAL words. That's why I chose to learn ASP (VBScript) instead of the emerging PHP, because it was easier to understand. After ASP, came ASP.NET and that used full-blown VB.NET. So I learned Object Oriented Programming and I learned syntax and programming practices.

So when I started C++, nothing was really "new" (except pointers... and that's still confusing) and it was easy to grasp. For desktop programs (not games) I prefer VB.NET just because I can make a small program in a few minutes with hardly any work (in fact, it's so robust, I made a search engine in ASP.NET and I wanted to see if all I had to do was copy over the code and make a desktop program version and it worked, I didn't have to change a thing).

Anyways... the bottom line:

If you want to start modmaking, learn C++ (not C, many people believe that C encourages bad programming practices that can carry over to C++ and that's not good... most say to learn C++ first and then learn C).

If you want to get "in the groove" of programming... get a book, I will vouch for Sam's Teach Yourself C++ in 24 Hours, cheap and it is a very very good read.

Hope that helps.

About perfectionism... I am a bit of a perfectionist. In fact, usually I will develop a whole big "idea" I have for my mod within 2 days because I want to see it in there. For example, I will say to myself, "Today I'm gonna put in a inventory system that will let me pick up and drop items." And so I will make it my goal for that day to do that (and I did). Then the next day, I told myself, "I want to be able to see what I have and have buttons to drop items." And so I did that. I work in parts... I always finish the structure first, then go back and add nice visuals and effects. I am constantly going back to older things I did and making them look better (that's the artsy side of me). I only stop working on something when I feel it's ready for a normal person to use without cursing the screen.

I am very much a "Dang it, if no one else does it right, I WILL." and so that leads me to learn a lot of things (sound mixing, recording, video editing, documentary creations, mod making, programming...)

Books:

Sam's Teach Yourself C++ in 24 Hours
Game Architecture and Design by Andrew Rollings, Dave Morris
 
SubKamran said:
I am very much a "Dang it, if no one else does it right, I WILL." and so that leads me to learn a lot of things (sound mixing, recording, video editing, documentary creations, mod making, programming...)

Now here's a regular hero. This guy's got exactly the same opinion on modding as I do. Honestly, if you want something done, if you want a mod made, learn how to do it yourself. Counterstrike was initially one guy. Almost everything with a high AWESOME quotient was started by one guy (or gal) with a big idea, and enough ambition to try and do it all by themselves.

SubKamran, you get my stamp of "person other people should look up to in regards to modding". :)

-Angry Lawyer
 
Back
Top