uhfath

Member
  • Content count

    39
  • Joined

  • Last visited

Community Reputation

100 Neutral

About uhfath

  • Rank
    Member
  1. Hi all ! We ([url=http://www.trazzy.com/]Trazzy Entertainment[/url]) recently released one of our first games, [url=http://www.gamedev.net/topic/623399-revenge-of-roger-rouge/]Revenge of Roger Rouge[/url]. Its a pirate-themed scroll-shooter. We are very like to hear your suggestions about our idea and final realisation ([url=http://dl.dropbox.com/u/49471808/Roger_Rouge_Revenge_Design_Document_Ver_3_3.pdf]here's design document[/url]). Surely, many things were not implemented as designed, you can see what was planned and what is actually done. We would be glad for all comments. Thank you.
  2. Revenge of Roger Rouge

    New iOS version added!
  3. Revenge of Roger Rouge

    Sale! We have a 50% discount right now! Hurry up!
  4. Hi everybody! We would like to announce one of our first games released! [b]Title:[/b] Revenge of Roger Rouge [b]Genre:[/b] Arcade, Shooter [b]API:[/b] XNA 4.0 [b]Platforms:[/b] PC, WP7, iOS, Android (coming soon) [b]Release date:[/b] April 2012 [b]Developer:[/b] [url=http://www.trazzy.com]Trazzy Entertainment[/url] [b]Distribution:[/b] currently Desura and Windows Marketplace [b]PC Demo:[/b] [url="https://shared.trazzy.com/ProductDownload/RRR_demo_setup.exe"]https://shared.trazz..._demo_setup.exe[/url] [b]Desura link:[/b] [url="http://www.desura.com/games/revenge-of-roger-rouge"]http://www.desura.co...-of-roger-rouge[/url] [b]WP7 version:[/b] [url="http://www.windowsphone.com/en-us/apps/18fd8425-35f8-4f99-bf62-847d0e1907aa"]http://www.windowsph...62-847d0e1907aa[/url] [b]iOS version:[/b] [url="http://itunes.apple.com/app/revenge-of-roger-rouge/id522622636?mt=8"]http://itunes.apple.com/app/revenge-of-roger-rouge/id522622636?mt=8[/url] [ROLLUP="Screenshots"][IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_Menu.jpg[/IMG][IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_01.jpg[/IMG] [IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_02.jpg[/IMG][IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_06.jpg[/IMG] [IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_07.png[/IMG][IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_08.png[/IMG] [IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/RRR_prtScr_09.png[/IMG][IMG]http://media.desura.com/cache/images/games/1/17/16429/thumb_620x2000/Clipboard08.jpg[/IMG][/ROLLUP] [b]Gameplay video:[/b] [MEDIA]http://www.youtube.com/watch?v=jNhkTvgLopA[/MEDIA] [b]Description:[/b] Revenge of Roger Rouge is an attempt to bring new life to an oldschool arcade shooter by brand new graphic and dynamic immersive story. We tried to stay close to "realistic" visual approach but you better prepare to something unexpected! [b]Key features:[/b] [list] [*]Dynamic gameplay – shoot’em, loot’em and don’t forget to keep maneuvering! [*]Simple control – just movement and fire, no complicated combinations and menus. [*]Vivid storyline with unexpected turns. [*]Lots of various enemies - from whaleboats to turtle ships, from tiny junks to most massive sailing warships ever built! [*]4 completely different “bosses”. [*]12 wonderful seas in 3 regions – from the azure Caribbean waves to harsh northern waters, from the Asian thunderstorms to deceptive calm of the Sargasso Sea. [/list] [b]Controls:[/b] arrows + space + adjustable Enjoy the game and leave comments!
  5. Hello, everyone. Recently i tried to understand the process of creation OpenGL 3.3 context. So if i understand it right, i need to create a dummy window, set it's pixel format, create a dummy context, fetch the function addresses (WGL), create new window and context with them, destroy the dummy context, destroy the old window. Is this the correct steps? If so, then there must something that i'm missing. I've attached a small sample (no dependencies, just the VS2010 project). What i don't understand is that this sample works correctly (it just outputs the glGetString() info in the console) as it is. But if i check it under gDebugger or GLIntercept, they both show an error right after the first glGetString, which is not captured by the app itself (there is a check in it). More then that, gDebugger shows an access vialotion. I've tested this in ATI AMD 5400 (mobility) and ATI AMD 6870. I've tested already 3 driver versions starting from the newest one. If someone could please take a look at this, it would be greatly appreciated. Thank you. P.S. Just in case, this is what GLIntercept 1.0.2 shows: [quote]GL Intercept Log. Version : 1.02 Compile Date: Nov 5 2011 Run on: Tue Nov 08 11:46:38 2011 =================================================== GL ERROR - Function glGetString(GL_VENDOR) generated error GL_INVALID_ENUM =================================================== Log End.[/quote] And the full log: [quote]=============================================================================== GLIntercept version 1.02 Log generated on: Tue Nov 08 11:46:38 2011 =============================================================================== wglChoosePixelFormat(58012B14,0019FC08)=2 wglSetPixelFormat(58012B14,2,0019FC08)=true wglCreateContext(58012B14)=00010000 wglMakeCurrent(58012B14,00010000)=true wglGetProcAddress("wglChoosePixelFormatARB")=10025340 wglGetProcAddress("wglCreateContextAttribsAR...")=10025370 wglChoosePixelFormatARB(1C012D15,0019FABC,00000000,1,0019FAB0,0019FAA4)=true wglSetPixelFormat(1C012D15,2,0019FA74)=true wglCreateContextAttribsARB(1C012D15,00000000,0019FA48) ----->wglCreateLayerContext(1C012D15,0)=00010001 =00010001 wglMakeCurrent(1C012D15,00010001)=true wglDeleteContext(00010000)=true glGetString(GL_VENDOR)="ATI Technologies Inc." glGetError() = GL_INVALID_ENUM glGetError()=GL_INVALID_ENUM glGetString(GL_RENDERER)="AMD Radeon HD 6800 Series" glGetError()=GL_NO_ERROR glGetString(GL_VERSION)="3.3.11079 Core Profile Fo..." glGetError()=GL_NO_ERROR glGetString(GL_SHADING_LANGUAGE_VERSION)="4.10" glGetError()=GL_NO_ERROR wglMakeCurrent(1C012D15,00000000)=true wglDeleteContext(00010001)=true [/quote] What is really strange is that the app itself doesn't receive that error when launched separately. Only when under GLIntercept.
  6. Well... i thought that Render Monkey does that on it's own. But i just don't understand why the results in it differ that much. But never mind... thank you both for your answers. Perhaps it's just a bug.
  7. Yes. The coordinate systems are different. But does it mean that DX and OGL must use different formulas for calculating lighting from a point source?
  8. Hi! Recently i've been strugling with my LPP realisation and firstly tried some shader stuff in Render Monkey. The strangest thing is that i haven't done anything complicated and got different results in OGL and DX versions of effect (attached it). Here are the screens: DX Version: [attachment=2146:DX.jpg] OGL Version: [attachment=2147:OGL.jpg] What was done is just simple rendering of world normals and world positions (they are "world", because local matrices are identity) into RGBA32F textures. Then a simple full screen shader with a very simple code to calculate a point light source with infinite radius: DX Version:[code] float3 fragmentNormal = tex2D(normalsSampler, In.TexCoord).rgb; float3 fragmentPosition = tex2D(positionsSampler, In.TexCoord).rgb; float3 lightDirection = normalize(float3(0.0, 0.0, 50.0) - fragmentPosition); float diffuseIntensity = dot(lightDirection, fragmentNormal);[/code] OGL Version:[code] vec3 fragmentNormal = texture2D(normalsSampler, texCoord).rgb; vec3 fragmentPosition = texture2D(positionsSampler, texCoord).rgb; vec3 lightDirection = normalize(vec3(0.0, 0.0, 50.0) - fragmentPosition); float diffuseIntensity = dot(lightDirection, fragmentNormal);[/code] As you can see the code is the same. But why do the results differ that much? From my point of view, DX version gives correct picture.
  9. Particle engine with editor

    Maybe anyone else?
  10. Particle engine with editor

    Thanks. Looks nice, but unfortunately it seems OGRE only.
  11. Hi! Forgive me if this was already brought up but i haven't found any threads regarding this subject. Can anyone suggest a particle engine with an editor? So it could be attached to any engine... That means there should be only "virtual" renderer without real render functions, so they could be changed to my functions. The main problem is the editor. Particle engines i found were without editors or editors were kind of... weak. So i'm asking if anyone had any experience with good, "attachable" particle engines. Thank you. P.S. Already checked: Pyro Spark, MagicParticles and some others (can't remember the names right now).
  12. LookAt and position [SOLVED]

    And again! Thank you and thank you very and very much! You have solved all the problems i had. Now i can continue to conquer this world with my engine!
  13. LookAt and position [SOLVED]

    [quote name='jyk' timestamp='1301762729' post='4793527'] Are you asking why in this code: [code]data[3].x = -(side & cameraPos); // 0.0 data[3].y = -(up & cameraPos); // 0.0 data[3].z = (view & cameraPos); // -200.0[/code] The values are coming out as (0, 0, -200)? If so, the values look right to me. (Remember, the matrix is inverted, so the translation vector of the resultant matrix isn't going to be the same as the input translation vector.)[/quote]Well... they are right. What is strange and i just can't get it, is that why i see a rotating camera when it's position is not changing? I can't sleep for already few days because of this fact - position is fixed but the camera is moving (orbiting). Why? How? [quote name='jyk' timestamp='1301762729' post='4793527']On a side note, I would strongly encourage you not to use operator overloads (& and %, in this case) for the dot and cross products; use named functions instead. Yes, you will find code (even production code) where this is done, but IMHO there is no good reason to do it that way and many good reasons not to. (I can elaborate if needed, but I'll leave it at that for now.) [/quote]Thanks. This was just a quick prototyping. I don't like overloadings myself and have my own good reasons against it, but thank you for the tip.
  14. LookAt and position [SOLVED]

    This is what i came with. I have checked and rechecked everything. Step by step. I have a (0.0; 0.0; -200.0) vector which is rotated 45 degrees around Y and put into cameraPos: [code]Vector3f view(lookPoint - cameraPos); //lookPoint is (0.0; 0.0; 0.0) and cameraPos is (141.42136; 0.0; -141.42136) view.Normalize(); // view is (-0.70710677; 0.0; 0.70710677) Vector3f up(VECTOR3F_Y); // up is (0.0; 1.0; 0.0) Vector3f side(view % up); side.Normalize(); // side is (-0.70710683; 0.0; -0.70710683) up = side % view; // up is (0.0; 1.0; 0.0) data[0] = side; // (-0.70710683; 0.0; -0.70710683) data[1] = up; // (0.0; 1.0; 0.0) data[2] = -view; // (-0.70710677; 0.0; 0.70710677) data[3].x = -(side & cameraPos); // 0.0 data[3].y = -(up & cameraPos); // 0.0 data[3].z = (view & cameraPos); // -200.0 data[0].w = data[1].w = data[2].w = 0.0f; data[3].w = 1.0f;[/code] These are my maths: [code]inline void Normalize() { float sqr = 1.0f / Sqrt(x * x + y * y + z * z); x *= sqr; y *= sqr; z *= sqr; };[/code] [code]inline float operator &(const Vector3f &vector) const { return(x * vector.x + y * vector.y + z * vector.z); };[/code] [code]inline Vector3f operator %(const Vector3f &vector) const { return(Vector3f(y * vector.z - z * vector.y, z * vector.x - x * vector.z, x * vector.y - y * vector.x)); };[/code] My eyes can't see the error if it's here. I have spent for already a week on all this. Basically what i don't understand is how to get results back from LookAt matrix. It setups everything visually correct. But numbers are look wrong. How can this be? All matrices seems correct. All mathematics too. But that only seems. Thank you very much for your help.
  15. LookAt and position [SOLVED]

    I have stepped right in the SetView function and checked what is written into data[3]. And it is (0;0;-200). The dot product returns 0 for X, 0 for Y and -200 for Z. But i just wanted to be sure, that position HAS to change. If that's so, then i will keep looking.