From novice, to a game like wolfenstein

Started by
25 comments, last by hawk2k3 18 years, 1 month ago
Yes, you should try them both.

Download C++ DirectX sample, and C# DirectX sample and see the diferents.
And also download C++ Console Sample, and C# Console Sample ;)

C++==============================================================

#include <iostream>

string me;

cout::std << "Hello user, please input your name: "<< endl;
cin >> me;

cout::std << "Your name is " <<" Me "<< "..." << endl;
(maybe there are some mistakes, i forget c++)

-Output:

Hello user, please input your name: xxxxxxxx
Your name is xxxxxxx ...
=================================================================
C#===============================================================

string Me;

Console.write("Enter your name: ");
me = console.readline();

Console.writeline("Your Name is: {0}", me);
Console.readline();

-Output:

Enter your name: xxxxxx
Your Name is: xxxxxx
=================================================================

That are some of difference, between C++ & C#.
Advertisement
I'd stick with C++ since it is universial. It will benefit your games and your career in the future since in C# you need to pinvoke from C++/Win32 to get things done. There is a new C++.NET 05 which .NET-enables your preexisting C++ applications meaning there's less need to switch to an entire different environment for one project. When you need .NET, you can attach it much like a seperate library.

C# is specificallly for Windows, officially. Its graphics APIs are still in its early development stages with constant updating in a two-month basis, so I'd stay clear and use C++/DirectX. By the way, Wolfenstein used software rasterization. So, if you're religious about doing it "their way," (and it's a great educational goal to do so), I'd suggest picking up Andre' Lamothe's book "Tricks of the Windows Game Programming Gurus," volume 1 & 2, and you'll understand how to do these techniques which I bet 3% of the people here know how to do it. It simply makes you stand out for the job position. No, you won't be doing software rasterization on the job, but you would be more interesting to me than some 3d-gurus who still can't show me a simple Asteroids clone.

Don't take my word for it, check out the reviews. People say it's old, but nothing from the book has really changed over the years. DirectDraw 7 is still the latest. The Win32 API barely changes, and if so, easy to migrate. It's just overall the best bottom-up book I know of.

http://www.amazon.com/gp/product/0672323699/ref=pd_bxgy_img_b/104-5403905-5133568?%5Fencoding=UTF8
To Suedish, knowing C is the only requirement before reading the book.

My last word of advice: you'll have to use C++/DirectX anyway because there's unlimited resources for that and software rasterization using C++, and there's barely nothing in the book stores for C# and gaming. In fact, if anyone makes a successful game right now with C#/Managed DirectX, it's because they came from a C++/DirectX background. They knew how to get it done. There's absolutely nothing on .NET gaming besides two books that just teach you how to throw a 3d teapot on the screen. That does not make you a game programmer. So, just learn C and start reading Tricks. You'll be glad you did later :)
@Anonymous Poster

I understand that you like C++, but why do heck you laying this guy?!

If you didnt know, there are around 15-20 books on C#, and there are around 10 sites about it, and you can learn everything from book, because i am doing it right now!

I dont have anything bad with c++, i still love it, but man, let Suedish make desision.
Quote:Original post by Anonymous Poster
DirectDraw 7 is still the latest.

But DirectX is now in version 9, with 10 due out soon with the Vista OS. DirectDraw 7 is only still the latest DirectDraw version because it isn't included anymore.

I'm not saying don't learn it, feel free if you'd like to, and it certainly won't really hurt you in any way, but it is a very dated technology.

- Jason Astle-Adams

I disagree with everyone saying learn directx 3d. Wolf3d was essentially 3d, but simulated using 2d. The first game to be considered 'true 3d' to my knowledge was actually Quake. Wolf3d and Doom, and many many early fps games used what is called raycasting. This is the method I suggest:
1. learn a programming language (C++ is a goodie)
2. choose an api. I recommend SDL or Allegro, better for smaller games and beginners.
3. make a couple of small games like pong, breakout, tetris, card games, etc.
4. read this neat tutorial on raycasting I found at http://www.permadi.com/tutorial/raycast/
5. make your game.

remember he only wanted to make a 'simple' game. why go after a fly with a bazooka?
Here's sample code for a simple wolfenstein like ray caster win ray
"I thought what I'd do was, I'd pretend I was one of those deaf-mutes." - the Laughing Man
You could probably do much better than Wolfenstein for your game nowadays. There are demos on Nehe on how to get a simple 3d level walking around, and GameTutorials has some tutorials on how to load a quake 3 level, complete will collisions, gravity, and lighting.
Mike Popoloski | Journal | SlimDX
Quote:Original post by Iftah
just a side note, wolfenstein was a 2d game,
its follow up "wolfenstein 3d" was a pseudo 3d game (illusion of 3d space, but everything was actually on a 2d plane)


Don't mean to be picky but it all comes down to the same thing. All 3D games give the illusion of 3D space, after all it is all rendered on a 2D framebuffer.

My 2 cents :)


Thanks to everyone, again =)
I never meant that i was going to do a clone of Wolfenstein, it was simply an example of the kind of game i wished i could make. I don't know anything about the different techniques that works in the background, and I'm not out to make an authentic version of Wolfenstein myself. My original idea was to make an FPS game, the graphics will of course pretty much suck as i see myself as a programmer, not a designer/gfx artist. Thats why Wolfenstein came to mind =)
I have no desire to learn some old technique (?) just because Wolfenstein had it, what i want is to learn the most up to date things, but I'm not aiming to my own Doom 3 =)

This topic is closed to new replies.

Advertisement