List of 6 things that can get you started with Game Design
Getting started with game design is at best confusing. Should you learn XNA? Yes. Should you learn XAML? Yes Should you learn DirectX? Yes
Well that wasn’t very confusing was it? Let’s take a look at the list of technology and information sources:
DirectX 9, 10 or 11?
- With the lack of good tutorials around the DirectX 11 which is included in the Win8 tools, you should focus on DirectX 10 or 9, then expect to figure out how to port your work to DirectX 11. This is a good idea not only from a let’s get started point of view, but know how to do the transfer or “porting” of the code to DirectX 11 is a good idea.
If you are starting now should you learn Java, C# or C++?
- Likely, except for the required classes in college, you can skip Java in the real world of Game Design, unless you focusing on Android, then have at it, but if Google has another language learn it. C# or C++, learn C++ first and then understand C#, both of which, unlike Java, are controlled by international specifications, so these languages will last. Java is controlled by Oracle.
Find a book that you like on game design, then figure out how to get it to work on Windows 8 Consumer review.
- You can keep an eye out on the remaining remainder tables at bookstores, or watch for a sale on Amazon.com. For some of these books, make sure you get the CD.
- I am using Frank Luna’s book 3D Game Programming with DirectX 11, but it does require a little tweaking, not much so far, to get started with DirectX 11. I am also working through some other books as well, but they are older, etc. These older books often have great ideas, games, etc. but the way that graphics are used are not recommended for new or upgrades.
If you dislike printed books, here are some links that I like:
- A good start, and if you going to take game design at one of the Socal Uninversities this game is often a homework problem: https://www.codeproject.com/Articles/21337/DirectX-Board-Game-Engine
- DirectX Graphics and Gaming
- DirectXMath
The XNAMath in earlier version of DirectX and xBox 360 XDK will not be fully supported, to get the full story see these blogs or articles:
- DirectXMath, see this blog at: https://blogs.msdn.com/b/chuckw/archive/2012/03/27/introducing-directxmath.aspx
- As of April 19, 2012, the material on how to use the DirectXMath is pretty small. Ok, if you are still trying to figure out DirectX, then there is really nothing. If you are more advanced: https://msdn.microsoft.com/en-us/library/windows/desktop/hh437833.aspx might help.
- Bottom line: See this site for the changes (which allow you to use the Frank Luna book):
- Bear in mind that the documentation is trying keep caught up. However there is the use of “pseudocode” that is a little weird, but I am certain that there was pretty intense pressure to produce these documents.
Now some code on using DirectX 11 in Windows 8, using the “No Class” Method
Of course there are classes, that is why there is namespaces, etc. Rather it is no class because I wrote it. Just ask my fellow teammates, I have no class.
Code only checked with Visual Studio Ultimate Beta running on Windows 8, let me know if it doesn’t run for you. Open the Visual Studio 11 Ultimate Beta, select the category: General (to make it easier) and then select the Empty Project, change the name. Add a “Source” file (that is a file with the extension cpp), it will be a blank sheet. Then add the code below, you should see a matrix operation on the two vectors.
-
//Tested on Windows 8 with VS 11 Beta
#include <algorithm>
#include <iostream>
#include <vector>
#include "DirectXMath.h"
#include "DirectXPackedVector.h"
using namespace DirectX;
using namespace DirectX::PackedVector;
using namespace std;
// Consider buying Frank Luna's book: 3D Game Programming with DirectX 11
// You will need to do some tweaking to use the book
// Overload the "<<" operators use cout to
// output XMVECTOR objects
ostream& operator<<(ostream& os, FXMVECTOR v)
{
XMFLOAT4 dest;
XMStoreFloat4(&dest, v);
os << "(" << dest.x<< ", " << dest.y << ", " << dest.z << ", " << dest.w << ")";
return os;
}
int main()
{
XMVECTOR aVector = XMVectorSet(3.0f, 3.0f, 2.0f, 2.0f);
XMVECTOR bVector = XMVectorSet(1.0f, 1.0f, 3.0f, 7.0f);
cout<<"Left vector (aVector) contains (3,3,2,2) " <<endl;
cout<<"Right vector (bVector) contains (1,1,3,7)" <<endl;
cout << "XMVectorPow(aVector, bVector) = " << XMVectorPow(aVector, bVector) << endl;
system("PAUSE");
return 0;
}
Comments
Anonymous
April 19, 2012
I dun see why c# is not controlled by m$ lol. RolfAnonymous
April 19, 2012
Hey F, C# isn't controlled by Microsoft, but Microsoft is still heavily involved. If you want to create your own IDE you could.Anonymous
April 22, 2012
@Surf4Fun - and in Java you couldn't? Sure you could! Everyone seems to be doing a little Java IDE. I don't get that comparison.Anonymous
April 22, 2012
Fact of the matter, Microsoft created the language, are still heavily invested into the language, but don't actually control the language and what goes into it - ISO does that. If YOU want, you can submit an idea to the ISO C# specification board, and perhaps have it implemented for the next version of C#, same as Microsoft. Not so with JAVA, it's a language owned by Oracle. They're entirely within their rights to sue your behind off if you use it in a way they feel might reflect poorly upon them.Anonymous
April 22, 2012
And you should use OpenGL, since DirectX is controlled by microsoft... !?Anonymous
April 22, 2012
and DX only runs on Windows.. too bad.. ms has the resources to build great APIs for all platforms, but it doesn't just to sell its operating system.. this is monopoly.. sorry!Anonymous
April 22, 2012
Who cares who controls the spec. The real problem is Java is a sh*t language running on a slow, fragmented and extremely buggy VM.Anonymous
April 23, 2012
The comment has been removedAnonymous
April 23, 2012
There are some very good links here providing basic information on getting started with DirectX design and games, however there is one thing that I've been having trouble finding references for. I've found references for basic model creation, lighting, HLSL, and movement/translation/scaling. What I'd like to see are some more in-depth references about model animation in DX. My biggest questions in this area are: How should a model object be structured?
- A list of frames with all data for each frame?
- Different lists of frames based on different animation squences?
- Should all animation frames be saved within the model or should just key frames be saved and use interpolation between keys? What is the most efficient way of doing animations within a 3D model?
- Does each frame in the animation require the exact same number of vertices/faces?
- Do you replace the position/texture data for each vertex in the model to animate?
- Should each frame be pre-loaded and just display the appropriate frame within the animation sequence?
Anonymous
April 24, 2012
Game design using microsoft products, that is a better title.Anonymous
April 26, 2012
What does this article have to do with "Game Design"?Anonymous
May 04, 2012
The comment has been removedAnonymous
May 10, 2012
I think this guy needs to maybe WRITE some games before giving advice to anyone. He clearly knows very little about the game development community.Anonymous
May 11, 2012
The comment has been removed