• Content count

  • Joined

  • Last visited

Community Reputation

113 Neutral


  • Rank
  1. Hello good people   I am currently finishing a bachelor of science degree in game development in Malaysia. My nationality is Syrian, and I basically want to find work as a game programmer. In Malaysia, there aren't a lot of game companies (mostly flash developers, which I don't really want), and I am already a foreigner here in Malaysia.   I know it won't be applicable if I just apply for a job in Canada, USA, or Australia from my current location. They won't spend money to make a visa for a fresh graduate.   I was thinking about attending a masters degree in one of those countries as my entry point, and then from there I can search for a job in the industry while attending a masters degree.   My question is, Do you think it is reasonable to do that, or is there an easier way to enter the game industry from my position??   One last thing, I was hoping you might suggest what masters degree should i go into(math, physics, psychology, .....) because I don't think there are a lot of masters degrees dedicated to game development.   Thanks for the help in advance :)
  2. Hey I am still new to UDK(started out yesterday). I have two questions though. Why use UnrealScript?? Meaning what can be programmed in UDK Ed that doesn't already exist in the toolbars?? And, where can someone learn UnrealScript?? The syntax seems easy, but how can you modify something with UnrealScript??
  3. LockRect() in D3D10?

    [quote name='Nik02' timestamp='1330799637' post='4918924'] For equivalent functions in D3D10, see Map and Unmap. The format of the texture here is A8R8G8B8; therefore, one texel can be represented as either one 32-bit integer (uint32_t) or four 8-bit integers (uint8_t). The pointer arithmetic in the code first establishes the address of the first texel on the texture; then, it finds the address of the current pixel given the i, j, pitch (number of bytes on a line, including cache and padding) and number of bytes per pixel; finally, the current pixel address is cast to a pointer of 8-bit integers to conveniently access the individual bytes (or color components) within as an array of bytes. In this case, the red channel is filled with random noise and the rest of the channels are left to zero. Note that since the random integer is established with a modulus of 1000, the random value distribution is uneven (even though the random function would be even) because the maximum value of a byte (aka 8-bit integer in this context) is 255. [/quote] very nice, but since we are trying to access all the texels, why are accessing the texels using a uint8_t structure in the beginning. Meaning, why is it that "Pixels" is a uint8_t structure and not a uint32_t structure??
  4. Unity Which engine to choose?

    Also, what are the books/tutorials/sites that helped you start with Unity?? One more thing. I don't just want to do small indie projects(which is what Unity is about). So then, is UDK the answer??
  5. Unity Which engine to choose?

    Great. so C4Engine is out of the way. Any thoughts on UDK?? a LOT of great games use Unreal technology for a reason.
  6. Hey Ok. I have been using pure D3D10 for making my demos for quite sometime(about 2.5 years now). I think it is time for me to get into known engines, instead of using my own framework, because, till now, i can't do any kind of indie projects with anyone because they all use existing engines, and no one uses pure D3D10 anymore.... I have done some research, and i think the top free, mostly used, engines out there are: UDK, Unity3D, C4Engine. Please correct me if i am wrong. I was looking for an easy-to-use engine, with a lot of functionality ranging from smart AI's to a good variation of Post-Processing effects. If there are any books to recommend for me to start with the corresponding engine, please refer me to them. Let the engine wars begin
  7. Hey people So i had this old piece of code that creates a noise texture by using LockRect(). I was wondering how can i transfer it to D3D10 because i didn't find a LockRect() function in ID3D10Texture2D structure. here is the code: [code] V(gd3dDev->CreateTexture(256, 256, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &mNoiseTexture, 0)); D3DLOCKED_RECT rect; V(mNoiseTexture->LockRect(0, &rect, 0, 0)); for(int i = 0; i < 256; i++) for(int j = 0; j < 256; j++) { int Random = GetRandomInt()&1000; uint8_t* Pixels = (uint8_t*)rect.pBits; uint32_t* CurrentPixel = (uint32_t*)&Pixels[rect.Pitch*i + 4*j]; uint8_t* Components = (uint8_t*)CurrentPixel; Components[0] = 0; Components[1] = Random; Components[2] = 0; Components[3] = 0; } V(mNoiseTexture->UnlockRect(0)); [/code] To be fair, i don't really quite understand the different types of uint and how to deal with them, So please be thorough.
  8. Hey guys So basically, how do you move the camera?? I used to just basically use WM_LBUTTONDOWN to invoke SetCapture() and save the current mouse position, and then, in WM_MOUSEMOVE, i just capture the new mouse position and get the difference as dx and dy for the movement. But i just want to move the camera without the need to press LMB every time(like in a real FPS shooter). So what is wrong with my current code?? [code] case WM_CREATE: SetCapture(mMainWnd); return 0; case WM_DESTROY: PostQuitMessage(0); ReleaseCapture(); return 0; case WM_MOUSEMOVE: mOldMousePos = mMousePos; mMousePos.x = (int)LOWORD(lparam); mMousePos.y = (int)HIWORD(lparam); mCameraDx = mMousePos.x - mOldMousePos.x; mCameraDy = mMousePos.y - mOldMousePos.y; return 0; [/code] mMousePos is initially initialized as (0,0) and both it and mOldMousePos are ::POINT members. my current problem with this code is that it is moving SO SLOWLY every two seconds or so. It is not in real-time
  9. thanks for the help, man
  10. Hey guys I was wondering why do i get an error when i try to initialize an array in HLSL like this: [code] struct Wall { float3 Pos; float2 Normal; float3 TexC; }; void Generate() { Wall w[3]; w[0] = { float3(-1.0f,-1.0f,-1.0f), float3(0.0f,0.0f,-1.0f), float2(0.0f,1.0f) }; w[1] = { float3(-1.0f, 1.0f,-1.0f), float3(0.0f,0.0f,-1.0f), float2(0.0f,0.0f) }; w[2] = { float3( 1.0f, 1.0f,-1.0f), float3(0.0f,0.0f,-1.0f), float2(1.0f,0.0f) }; }[/code] or having constructors in structures like this: [code] struct Vec { Vec(float X, float Y, float Z) { x = X; y = Y; z = Z; } float x; float y; float z; }; [/code] Thanks
  11. [quote name='Kristoffer Lindström' timestamp='1328360243' post='4909503'] Hey Is it possible to use a line intersection for the laser? if so you could simplify the intersection test to [b]sphere vs ray[/b] and just limit the intersection to the length of the line. if you transform the ray by the inverse of the sphere matrix you can test for ellipsoid aswell. Intersection between sphere and ray can be googled and its a very simple test. [/quote] I thought of this, but my lazer is more like cylindrical shape with a radius of 0.5 rather than a ray... Just one thing, by the sphere matrix you mean the matrix consisting of the right,up,look vectors(x,y,z), right??
  12. Hey So, in my project, the AI are shooting lazers to the player(an ellipsoid). What is the way to know if the lazer is actually shooting at the player?? I thought of making an AABB for the lazer but the didn't go well because it showed collisions when the lazer wasn't near the player. Should i make a cylindrical Bounding Shape instead?? if so, what is the intersection test between a cylinder and an ellipsoid??
  13. ellipsoid intersections

    damn, that was easy.. didn't even think about that thanks
  14. Hey people so i was browsing the web to find a "tested" ray-ellipsoid intersection test, and i did, but i really didn't get the math behind it. here it is: [code] bool IT_RayEllipsoid(D3DXVECTOR3 RayPos, D3DXVECTOR3 RayDir, D3DXVECTOR3 EllPos, D3DXVECTOR3 EllRadius, D3DXVECTOR3* DistToEll) { D3DXVECTOR3 m = RayPos - EllPos; D3DXVec3Normalize(&RayDir, &RayDir); float a = ((RayDir.x * RayDir.x) / (EllRadius.x * EllRadius.x)) + ((RayDir.y * RayDir.y) / (EllRadius.y * EllRadius.y)) + ((RayDir.z * RayDir.z) / (EllRadius.z * EllRadius.z)); float b = ((2.0f * m.x * RayDir.x) / (EllRadius.x * EllRadius.x)) + ((2.0f * m.y * RayDir.y) / (EllRadius.y * EllRadius.y)) + ((2.0f * m.z * RayDir.z) / (EllRadius.z * EllRadius.z)); float c = ((m.x * m.x) / (EllRadius.x * EllRadius.x)) + ((m.y * m.y) / (EllRadius.y * EllRadius.y)) + ((m.z * m.z) / (EllRadius.z * EllRadius.z)) - 1.0f; float d = ((b * b) - (4.0f * a * c)); if (d < 0) { return false; } else { d = sqrt(d); } float hit = (-b + d) / (2.0f * a); float hitsecond = (-b - d) / (2.0f * a); float t; if (hit < hitsecond) t = hit; else t = hitsecond; D3DXVECTOR3 Q = RayPos + t*RayDir; *DistToEll = Q - RayPos; return true; [/code] i get the part about solving the quadratic equation, i just couldn't figure out how did a,b,c come in to place. What is the quadratic equation behind it?? last i checked, the ray-sphere equation is: (p+td-C)(p+td-C) = r2 p = ray's position d = normalized direction vector for the ray C = sphere's center r = sphere's radius and then you just expand it, and solve for the two solutions(or no solution if it didn't intersect) P.S: i tested it and it is working perfectly, the question is how???