Game Programming

kirennia

Part of the furniture
Joined
Dec 26, 2003
Messages
3,857
Okay so I'm just about starting on my final year project, drawing up designs, starting on the theory etc and I am still unsure of which main programming language to use. It's intended to utilise directx as it's very AI heavy (ruling out java imo, have had big problems with it this year using graphics and although it's protable, it's not my preferred choice) so that leaves two base choices for me...c# or c++.

I have a little experience with c# having studied it for a year and none with c++, will be mainly doing this with the aid of tutorials, trial and error so I'm not so sure on whether I should be going into c++ as well as making a fresh start with directx.

So my choices:

Do I use c# or c++?
Do I use directx9 or directx10?

What I'm after really is has anyone here had experience with these things and could you give me some pointers on which would be better suited to a heavily AI/graphics based project from a newbie point of view. Have done the usual googling for c# vs c++ but to be honest, I'm not completely up to scratch on the advantages/disadvantages of things I've never worked with.

Also, would I be right in thinking that visual studio 2005 is the way forward? I know it's microsoft but tbh, it's a pretty solid program and if it contains all of the necessary libraries, I'm happy using it for now.

Thanks in advance :)
 

ST^

Can't get enough of FH
Joined
Dec 22, 2003
Messages
2,351
What's the course? If you're going into game development, you'll want to learn C++, although C#.NET will yield much quicker results if it's a one-off project.

Depending on what you're allowed to do, you could even use Microsoft's XNA framework with C#. That would make it really easy and fast to build a game.
 

kirennia

Part of the furniture
Joined
Dec 26, 2003
Messages
3,857
I'm doing what's listed as a 'computing' degree at plymouth uni. First year we had various modules in c#, second year we did java and I chose the AI based modules, for my final year I've chosen all of the programming modules including c++. The thing is, I'm wanting to get an early start on it (supposed to start in september) and knowing that I will be learning c++ is a bonus but I'm not so sure I should be doing too many new things over the summer when I want my first prototype done by september.

I'm looking more towards creating my own physics engine so don't really want to use developer kits as such. As for what we're allowed to do, it's basically anything but the project I've chosen has nigh on endless scope for development. The more I think about it, the more I'm leaning towards c# and directx10 as they're new technologies which will probably be easier to use to a higher level for me.
 

kirennia

Part of the furniture
Joined
Dec 26, 2003
Messages
3,857
Now leaning towards c# and openGL.../sigh. Give it another hour and I'll be thinking differently again I'm guessing. Is why I'm after pointers really :)
 

Milkshake

Loyal Freddie
Joined
Dec 22, 2003
Messages
496
My advice to you would be...

These last year projects take up more time than you can imagine, and although it looks as if you've got tons of time now, by the end of the year you'll have to be looking at final exams and job interviews and stuff like that.

Unless you are some sort of super-human, you'll not be able to create much beyond Asteroids MkII. I am assuming from the questions you are asking that you do not know the languages like the back of your hand, and thus the development will take forever.

Can I also ask why a computer game? I totally understand the interesting perspective on it, but many people underestimate the time and "other skills" you need to end up with a product you can be proud of i.e. artistry skills, understanding game theory and what makes a game good.

Another aspect I'd mention to you is the fact that when it comes to job hunting after this year (I'm assuming you are going into the computer industry and not the army or something) then you may want to create something with more business focus or geek potential. Perhaps create something for an open-source project?

Sorry to burst your bubble mate, but if you are asking Freddyshouse for advice on a language like OpenGL, C++ or C#, then I can't see you ending up with something that you can be proud of.

Course, you can always go and prove me wrong...
 

kirennia

Part of the furniture
Joined
Dec 26, 2003
Messages
3,857
Well this year I did a platform game mini project which also had battleships, tictactoe, a reactions game, mouse avoidance game and a little 2d rpg hence why I now understand just why java isn't such a good runtime enviornment for gaming. It ended up taking a long old time to do but the physics fundamentals and AI I don't think I'll have so much of a problem with even though the designed physics engine is relatively big. This is why I'm starting early. In terms of the project, the graphics aren't a huge issue, they just need to be there and seemless (I'm not a design student :)). Think that game took around 150 hours although this one is suggested to spend more like 1000 including research.

It's more just a case of which would be best and most evolvable for a 2d environment which may well end up incorporating 3d at a later date but that isn't the scope of my project. I think the title of the thread was a bit misleading as this is a project which I know I wont end and is more of a physics engine rather then a fully working game.

As for my plans after this, I'm aiming to do a masters in computer applications and management whereby I'll play with 3d modelling, bioinformatics, further my applications knowledge and work more on the project management side of things. After that, the second year is an industrial placement which I'll be aiming to get into a company where I can stay on after the year and get my experience that way. I'm intent on broadening my horizons into both fields of graphical developments and application development as part of where I want to go with my degree.

That's why I'm extremely motivated to get two good projects which I'll spend a hell of a lot of time doing to show in the industry. 4 years of 12 hour nightshift factory work is my incentive to do this very well....there's no way in hell I'm gonna end up doing that again. :D

Thanks for your advice, you're obviously being realistic about the whole thing which is exactly what I need but the idea and scope of the project are something I don't think I'll be backing down from as such.

I'm just asking this now as I really wish I had of been told before christmas of javas downfalls in j2d so now I'm making damn sure I'm not going to make the same mistakes again.


Maybe a better question would be, what are the main downfalls of openGL and c# when creating graphics based physics?

Ooh and cheers, repped :)
 

Milkshake

Loyal Freddie
Joined
Dec 22, 2003
Messages
496
Yeah, J2D and Java3D are interesting tools, but not so great for games dev. I personally learned about graphics design using Java3D, and that was a good stepping stone for me as I already had a good base in Java, and it meant I could concentrate on things like the maths behind the models.

I've heard seriously good things about the XNA framework, but by the looks of things you want to be more involved with the technical side rather than actually launching a product.

Wish I could give you more help other than stick as closely to something you know, rather than launching yourself into a new technology. OpenGL isn't too different than Java3D, so that might be a good way to go.

That, and keep us up to date with how you get on. Hell, I don't think anyone on these forums actually does any work, so there's a myriad of beta testers waiting!

Good luck!
 

kirennia

Part of the furniture
Joined
Dec 26, 2003
Messages
3,857
Cheers mate, will update in a month or so with progress although I think It's going to be a little slow starting, needing to sort out a job etc first :(

I think it's pretty much settled I'll stick with c# and openGL for now then; I mean quake3, counterstrike etc were all done in that so I know it's got the firepower to go places (even though I didn't play those games and this isn't related to them :D).

Beta testing might be a fair idea actually as part of project management; getting feedback on what needs to be improved, whatelse should be included etc. But I guess that's for another time, cheers.
 

GReaper

Part of the furniture
Joined
Dec 22, 2003
Messages
1,983
Check the marking criteria for the project you're doing before you even consider spending many hours on coding. Chances are you'll get far more points for the documentation, the decision making, the analysing, etc than the code itself.

Whilst it might sound great that you want to do some grand project, something smaller and easy to achieve so you don't spend an insane number of hours coding might be better.
 

Lethul

FH is my second home
Joined
Jan 25, 2004
Messages
8,433
Check the marking criteria for the project you're doing before you even consider spending many hours on coding. Chances are you'll get far more points for the documentation, the decision making, the analysing, etc than the code itself.

Whilst it might sound great that you want to do some grand project, something smaller and easy to achieve so you don't spend an insane number of hours coding might be better.

Have to agree with this. Having just done my "Bachelors Thesis" (?) our marking was based on 60% on the report, 20% on the oral presentation and 20% on the code/program itself :eek6:
 

GReaper

Part of the furniture
Joined
Dec 22, 2003
Messages
1,983
Yeah, and most people (myself included) end up rushing the project report in the last few weeks instead of spending the majority of the time on it.
 

Chilly

Balls of steel
Joined
Dec 22, 2003
Messages
9,046
Indeed, but getting a 1st will only get you so far. I got my current job as the least qualified applicant in the final pool of people, academically speaking. I did, however, have a lot of experience with a lot of relevant stuff and could show them running, working examples. Make the right balance between ticking the boxes and getting the skills.
 

Cromcruaich

Can't get enough of FH
Joined
Nov 29, 2004
Messages
2,767
C++ is the serious gaming development language. You wont find any 'proper' games written using the dotnet framework - it simply isnt fast enough. Also the standard now is directx for windows. opengl is dead as far as gaming on the windows platform.

However - thats just a black and white statement that makes no account of issue previous posters have made regards balancing time and reaching the main goal - which is just to get as many marks as you can for the project! When it comes down to it make it as comfortable as possible for yourself - an easy project done well will allow you to spend more time on other areas. I cant see doing the project in either C++ or C# closing any doors for you.

Good luck!

PS. I know the guy who wrote this Hoxs64 C64 Emulator (in C++ and directx - and the most accurate 64 emulator in the world) - he sits next to me at work. Could put you in contact if you wanted some advice.
 

Users who are viewing this thread

Top Bottom