Question for scripters

Moderator: Event DM

Post Reply
Grizpin
Prince of Bloated Discourse
Posts: 229
Joined: Sun Apr 25, 2004 3:08 am
Location: Delaware, USA

Question for scripters

Post by Grizpin » Wed Nov 01, 2006 4:37 pm

I am going back to school for a degree program in 3d game and simulation programming. I have a choice of vb or c#. So far I've heard that it won't matter which I choose but it was recommended to start with c#. I'd like to hear your advice :)

Also, when NWN originally came out I wanted to get into scripting and module creation but rl took over and I never did. I now have the time to get into it and would like to start with NWN2. Do you think scripting with the NWN2 toolset will help reenforce what I will be learning at school when I start my programming classes or will it confuse me more than it's worth?

Thanks for any advice you can give!
Cleric of Vorin
Organizer of A.B.L.E.
A.T.U. Apprentice Sage
----------------------------------------------------
There is no such thing as failure. There is only time to learn!
User avatar
Silverdragonams
Prince of Bloated Discourse
Posts: 189
Joined: Sat Jun 05, 2004 3:45 am

Post by Silverdragonams » Wed Nov 01, 2006 5:06 pm

Disclaimer: I am not a professional game designer, scripter, 3d modeller..etc (in fact I'm not a professional anything ) But I have been scripting and building in the NWN1 toolset almost since it's release, and I've been playing with the presale toolset for the last month.

I don't know how close the NWN script is to C# or VB or any other scripting language, but it certainly couldn't hurt to learn it. The worst it could do is improve your problem solving skills.

As for the rest of the toolset, it's great for developing artistic skills, and creativity. Also remember that both toolsets are the same as what the developers used to make the OCs with. So learning them will give you a feel for what the professionals use. Heck, I know a few NWN mods that were so good Bioware hired their designers. If you learn NWN2 toolset, the same just might happen to you. :)
User avatar
Tesh
Scholar
Posts: 1421
Joined: Thu Jan 13, 2005 10:58 am
Timezone: GMT +12
Location: Auckland, New Zealand
Contact:

Post by Tesh » Wed Nov 01, 2006 7:44 pm

As a developer who has come from a C/Java background and now works in C#

LEARN C#


VB is an ugly beast at best.

NWN Script is very C like.
Roland of Gilead wrote: I told you we deal in lead, and so we do. But that doesn't make us hired guns.
Belkar wrote: One order of gluttony with a side of coriuption, please.
User avatar
Psyco
Elder Sage
Posts: 3288
Joined: Mon Jun 30, 2003 10:05 pm
Location: New Zealand (NZDT, +12 GMT)
Contact:

Post by Psyco » Wed Nov 01, 2006 7:59 pm

Looking at the job market for java and c# programmers, they are almost the same, so there is no financial reason to choose one over the other.

If I had to guess I would say longer term I would say java is going to run its course, it is alrady starting to lose favour a bit, so for starting a new career I would say c# is a better bet.

vb is a pile of ...., well it is fine, but as a career choice it is a very very bad one, and it's skills are not too transferable to other languages.

NWScript will help your programming in the sense that it gets your thinking in the right mindset, however as it is a very limited it is not a wya to learn to program all by itself. You will not be able to grasp ideas like memory management, pointers, classes, and numerous other things as they do not exist in nwscript.
User avatar
Tesh
Scholar
Posts: 1421
Joined: Thu Jan 13, 2005 10:58 am
Timezone: GMT +12
Location: Auckland, New Zealand
Contact:

Post by Tesh » Wed Nov 01, 2006 8:27 pm

In fairness you'l might never really need to get a handle on memory management and some of the lower level concepts in C#, or any modern OO language, as they tend to be handled by the framework and were concepts that were essential knowledge in C
Roland of Gilead wrote: I told you we deal in lead, and so we do. But that doesn't make us hired guns.
Belkar wrote: One order of gluttony with a side of coriuption, please.
Grizpin
Prince of Bloated Discourse
Posts: 229
Joined: Sun Apr 25, 2004 3:08 am
Location: Delaware, USA

Post by Grizpin » Wed Nov 01, 2006 8:38 pm

Thanks for the replies. You confirmed my choice to take the C# focus. I can't wait to get started. I know it will be a challenging degree program but I am focused on seeing it through. It will take me a while to complete since I am doing it part time but that will let me really sink my teeth into it.

The NWN2 toolset is coming along at the right time. It will help me get my mind right for the classes to come. By the time I have those classes I hope to have a better understanding of the language structure.

I have my NWN2 on hold at the store. They also have the world builder guide on hold for me. I didn't like the world builder guide with NWN. I hope this one is organized a bit better. Do you think it's worth getting?
Cleric of Vorin
Organizer of A.B.L.E.
A.T.U. Apprentice Sage
----------------------------------------------------
There is no such thing as failure. There is only time to learn!
User avatar
Psyco
Elder Sage
Posts: 3288
Joined: Mon Jun 30, 2003 10:05 pm
Location: New Zealand (NZDT, +12 GMT)
Contact:

Post by Psyco » Wed Nov 01, 2006 8:53 pm

Tesh wrote:In fairness you'l might never really need to get a handle on memory management and some of the lower level concepts in C#, or any modern OO language, as they tend to be handled by the framework and were concepts that were essential knowledge in C
True, and imo that is one of the weaknesses of the language. Sometimes you really do need to control that aspect of things. When you are talking about programs that take 12+ hours running on 150+ processors of a Cray, then 1% performance difference makes a huge difference. That is why I don't detest being given Fortran stuff to work on as much as I should. It may be an ugly old language, but it is very controllable and you can make a Cray sing with it.

But on the other hand, 99.999% of programs written these days don't need that level of control.
User avatar
Kooshy
Newbie
Posts: 9
Joined: Sun Oct 22, 2006 8:43 pm
Location: Right here! ^^
Contact:

Post by Kooshy » Mon Nov 13, 2006 1:22 pm

My two cents.. Are that memory managment and low level access, especially with ILASM are -very- important in heavily optimized applications. Which.. You will be doing a lot in simulation programming.

I would suggest either C++ or D, and the latest ASM sets for -both- Intel and AMD, as well as the OpenGL shading language. And.. You should also be reasonably comfortable with Direct3D.

But.. If your choices are limited to .NET (which makes NO sense to me, due to the ridiculously resource-intensive runtime libraries (We're talking 20MB of RAM for "Hello World!" here.) and lack of low level access, not to mention non-existent portability), C# is definitely the way to go, because the syntax is fairly similar to other C-style languages, which almost all serious programming languages are, and DirectX -does- have a .NET extension.
Image
Kooshidigipawprint!
User avatar
Manuel the White
Team Member; Retired with Honors
Posts: 7567
Joined: Wed Mar 05, 2003 6:45 pm
Timezone: CST
DM Avatar: Ra-Ghul

Post by Manuel the White » Mon Nov 13, 2006 3:13 pm

Kooshy is on the money. If you want to enter the (highly competitive) 3D game programming market, the closer to C++ you can get the better off you'll be. Be preared for autrocious hours and shite conditions. Pursue only if you're still a bachelor. Speed. Speed! SPEEED!
User avatar
Kooshy
Newbie
Posts: 9
Joined: Sun Oct 22, 2006 8:43 pm
Location: Right here! ^^
Contact:

Post by Kooshy » Mon Nov 13, 2006 4:40 pm

Well.. It's not so bad, really. If you're with a good crowd.

But.. At the same time.. I'm also a bit of a masochist when it comes to working on a computer.. So I'm probably not the best person to listen to about careers. *Has this unusual fantasy of spending the last two weeks before a deadline, in an office with a bunch of extreme programmers, living off of Dr. Pepper, pizza, and Starbucks, while working insane hours on an overdue project.* ..Yeah, I'm not the one to listen to.

The thingie that you mentioned, though, about whether NWScript would be useful to reinforce what you learn or not..

The short answer is, 'Yes.'

NWScript is highly procedural and uses ~mostly canon C syntax. In the modern age, the advent of Try..Catch..Finally statements and the class have mostly nudged away some of the finer points of procedural programming. However! Lean and mean C libraries, like OpenGL, are still in C, a procedural language, and therefore don't have any of those new features; which is fine, because it lets them be more streamlined, and lean/mean is the way to gleam!

Like Manny-person said, "Speed. Speed! SPEEED!"

But.. What I'm getting at.. Procedural programming has its own unique challenges, which are collectively a bit of a trade-off of using it, but it gets rid of a lot of overhead, and therefore can be faster, so using NWScript could be helpful, because it shares some of those challenges. Beyond that, though, it really wouldn't be much help, but can still be fun!

Oh, and by the way, I'd suggest checking out http://www.digitalmars.com/d/ and reading about the D programming language, even if it's not an option for school. It's not used much, commercially, yet, but it's -very- nice. And.. If you do decide to use pursue it further, I have the OpenGL header files converted into D modules, should you want them. =)
Image
Kooshidigipawprint!
User avatar
PlasmaJohn
CCC / Release Admin
CCC / Release Admin
Posts: 9010
Joined: Fri Dec 26, 2003 10:37 pm
Timezone: US/Eastern
Location: Negaria
Contact:

Re: Question for scripters

Post by PlasmaJohn » Mon Nov 13, 2006 5:19 pm

Grizpin wrote:I am going back to school for a degree program in 3d game and simulation programming. I have a choice of vb or c#.
:shock:

If those are the only choices, I seriously question the curriculum unless all they wish to do is illustrate the concepts. You'll be able to make some cute little toys or at best "casual games" (Orsinal FTW!).

But if you're serious about game development, you want a good solid engineering background, period. The games industry is filled to the brim with rip-it-and-ship-it shops. Any code that gets the product out the door and on the shelves is good with them, the unwashed consumers can just suck it and buy hardware that'll put NASA's mission control to shame. That's unacceptible.

Games development is one of the double-diamonds of the programming world. Best to get a general programming degree, one that covers data structures and algorithms. Once you have a good grounding in the basics, then go onto the advanced stuff.

You want to learn C++ (or even C). ASM is not required anymore, but it is also highly recommended because then you know WTF is going on in a CPU so that you don't do something stupid in a higher level language. Yes pointers are confusing, but they are absolutely vital. Don't let the garbage collection crowd snow you, managing your own memory gives you so much more control.

The new "pointer" is threading. Processors are no longer getting faster, therefore Intel and AMD are going multicore until some new clockspeed breakthrough is discovered. Multi-cores means you must thread or you're leaving resources on the table.

Wipes spittle off face, whips out walker and shuffles on back to the Old Programmers' Home.
Calvin: This is so cool!
Hobbes: This is so stupid.
User avatar
Kooshy
Newbie
Posts: 9
Joined: Sun Oct 22, 2006 8:43 pm
Location: Right here! ^^
Contact:

Re: Question for scripters

Post by Kooshy » Mon Nov 13, 2006 6:53 pm

PlasmaJohn wrote:If those are the only choices, I seriously question the curriculum unless all they wish to do is illustrate the concepts. You'll be able to make some cute little toys or at best "casual games" (Orsinal FTW!).
I didn't wanna say that.. But.. Since you already did.. I'll just quietly concur. *Noddles.*

I disagree about ASM, though. It may not be vital anymore, but I can't be convinced that there's a more powerful way to hard-tune a routine than to write it in explicit, inline, machine code. Well, symbols for machine code. >.>

High performance code is all about control, and careful tweaking, after all. =)
Image
Kooshidigipawprint!
User avatar
Tesh
Scholar
Posts: 1421
Joined: Thu Jan 13, 2005 10:58 am
Timezone: GMT +12
Location: Auckland, New Zealand
Contact:

Re: Question for scripters

Post by Tesh » Mon Nov 13, 2006 8:38 pm

PlasmaJohn wrote: You want to learn C++ (or even C). ASM is not required anymore, but it is also highly recommended because then you know WTF is going on in a CPU so that you don't do something stupid in a higher level language. Yes pointers are confusing, but they are absolutely vital. Don't let the garbage collection crowd snow you, managing your own memory gives you so much more control.

The new "pointer" is threading. Processors are no longer getting faster, therefore Intel and AMD are going multicore until some new clockspeed breakthrough is discovered. Multi-cores means you must thread or you're leaving resources on the table.

Wipes spittle off face, whips out walker and shuffles on back to the Old Programmers' Home.
I could not agree more with what PJ has said here, as per usual he's right on the money.

The only thing I'll say for the garbage collection route is that sometimes it's the right thing to do as it requires less programming time and this reduces the cost of developement, which in some instances you want to do for whatever reason.

Oh, and in C# there is this great thing called a using clause, it allows you to have certain object gabage collected to you schedule.
Roland of Gilead wrote: I told you we deal in lead, and so we do. But that doesn't make us hired guns.
Belkar wrote: One order of gluttony with a side of coriuption, please.
dougnoel
Team Member; Retired with Honors
Posts: 6261
Joined: Fri May 14, 2004 4:59 pm
Location: VA (GMT -4)
Contact:

Post by dougnoel » Tue Nov 14, 2006 8:49 pm

NWN2 uses C#.
User avatar
PlasmaJohn
CCC / Release Admin
CCC / Release Admin
Posts: 9010
Joined: Fri Dec 26, 2003 10:37 pm
Timezone: US/Eastern
Location: Negaria
Contact:

Post by PlasmaJohn » Tue Nov 14, 2006 9:24 pm

dougnoel wrote:NWN2 uses C#.
You sure that's not just the Toolset?

OTOH, that would explain why the performance is so abysmal on something less than a screaming machine ;)
Calvin: This is so cool!
Hobbes: This is so stupid.
User avatar
Kooshy
Newbie
Posts: 9
Joined: Sun Oct 22, 2006 8:43 pm
Location: Right here! ^^
Contact:

Re: Question for scripters

Post by Kooshy » Wed Jan 02, 2008 2:58 am

It -could- be C# all the way through. Microsoft has this new toy out for game development that uses .NET, called XNA. I've heard some okay things about it, too, but I haven't sat down and tried it out yet, and am not really planning to. Anyway, though, NWN2 very well might use it, and that would explain both the poor performance and the fact that it only has a Windows version.
Image
Kooshidigipawprint!
User avatar
PlasmaJohn
CCC / Release Admin
CCC / Release Admin
Posts: 9010
Joined: Fri Dec 26, 2003 10:37 pm
Timezone: US/Eastern
Location: Negaria
Contact:

Re: Question for scripters

Post by PlasmaJohn » Wed Jan 02, 2008 4:06 am

The NWN2 toolset was written in C#, the engine and client were heavily adapted from the Aurora engine used by NWN1 which was written in C++. Sadly the 3D toolkit used was DirectX making porting to other platforms very difficult. I have heard that there is a MacOSX port underway.
Calvin: This is so cool!
Hobbes: This is so stupid.
User avatar
Barbarossa
Lord of Blithering Idiots
Posts: 87
Joined: Wed Mar 03, 2004 1:55 pm
Timezone: GMT +2 (EET)
Location: Sofia
Contact:

Re: Question for scripters

Post by Barbarossa » Wed Jan 02, 2008 5:05 pm

PlasmaJohn wrote:Sadly the 3D toolkit used was DirectX making porting to other platforms very difficult. I have heard that there is a MacOSX port underway.
http://insidemacgames.com/features/view.php?ID=536

http://www.aspyr.com/product/info/84
The King used to say: Little less [OOC]conversation, little more [IG]action, please!
Post Reply