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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  5. 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.

 

  1.  //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;
    
     }