• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.


  • Content count

  • Joined

  • Last visited

Community Reputation

100 Neutral

About uhfath

  • Rank
  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. New iOS version added!
  3. 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. Maybe anyone else?
  10. 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. 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. [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. 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. 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.