Page 1 of 1
Question for scripters
Posted: Wed Nov 01, 2006 4:37 pm
by Grizpin
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!
Posted: Wed Nov 01, 2006 5:06 pm
by Silverdragonams
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.

Posted: Wed Nov 01, 2006 7:44 pm
by Tesh
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.
Posted: Wed Nov 01, 2006 7:59 pm
by Psyco
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.
Posted: Wed Nov 01, 2006 8:27 pm
by Tesh
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
Posted: Wed Nov 01, 2006 8:38 pm
by Grizpin
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?
Posted: Wed Nov 01, 2006 8:53 pm
by Psyco
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.
Posted: Mon Nov 13, 2006 1:22 pm
by Kooshy
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.
Posted: Mon Nov 13, 2006 3:13 pm
by Manuel the White
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!
Posted: Mon Nov 13, 2006 4:40 pm
by Kooshy
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.

Re: Question for scripters
Posted: Mon Nov 13, 2006 5:19 pm
by PlasmaJohn
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#.
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.
Re: Question for scripters
Posted: Mon Nov 13, 2006 6:53 pm
by Kooshy
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.

Re: Question for scripters
Posted: Mon Nov 13, 2006 8:38 pm
by Tesh
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.
Posted: Tue Nov 14, 2006 8:49 pm
by dougnoel
NWN2 uses C#.
Posted: Tue Nov 14, 2006 9:24 pm
by PlasmaJohn
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

Re: Question for scripters
Posted: Wed Jan 02, 2008 2:58 am
by Kooshy
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.
Re: Question for scripters
Posted: Wed Jan 02, 2008 4:06 am
by PlasmaJohn
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.
Re: Question for scripters
Posted: Wed Jan 02, 2008 5:05 pm
by Barbarossa
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