• 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

238 Neutral

About XXOXX123456

  • Rank

Personal Information

  • Location
  1. Woa, seems that you got a lot of stories to tell :)
  2. Those 3 unicode chars seems too hard to find= =. But yeah, looking up color is implemented by finding the nearest color point in terms of Euclidean distance, as you said.
  3. yeah sure, I would love to share.
  4. Recently I have been working on a little game project to partake in a competition in my college, then I decided to develop a 3D game from scratch without any refercence to external libraries.   I finally Name it 'Shoot the Chicken 3D'   And I use C++ console to output (not with std::cout, but with Windows API WriteConsoleOutputCharacterA() and WriteConsoleOutputAttribute() which means the project will contain 3 layer:   1, soft renderer (3D render pipieline) 2, game engine layer (Scene management, interfaces of renderer and pictures, etc.) 3,game logic   'Cos I have prior expericence on developing Game Engine, So I only have to develop layer 1 and 3 (which are still not easy= =).   I think the most challenging part of the my project is the soft renderer, a new module that I have never written. So It eventually took me 2 weeks to develop a soft renderer based on Rasterization, another 2 weeks for game logic.   Here are some of its screenshots:   [attachment=31842:19.JPG]   [attachment=31841:21.jpg]   [attachment=31847:23.jpg]   [attachment=31848:26.jpg]   [attachment=31843:26.jpg]   [attachment=31844:31.JPG]   [attachment=31845:32.JPG]   [attachment=31846:33.JPG]   Actually the Menus are presented with .PPM format bitmap picture which can be easily modified by PhotoShop.   project on github: https://github.com/CHINA-JIGE/Shoot-The-Chicken-3D   here I'm gonna share some developing experience.       --Extension of Color Space   [attachment=31854:color.jpg]   Output characters to "draw" picture will definitely cause inferiority of graphic quality, especially when I knew that console only support 15 colors. No, It would be really a disaster that a colorful scene would be rendered into an awful-looking image. So I took pains to come up with an algorithm that generate a palette with hundreds of colors. I abstract a console character as a PIXEL, thus I am capable of controlling the pixel color we saw by modifying FOREGROUND COLOR/ BACKGROUND COLOR and the CHARACTER.   [attachment=31851:8.jpg]   My idea: Foreground color stands for the color of character. An ASCII character can occupy several pixels of a rectangle, and different percent of area of coverage could be seen an operation of BLENDING. For example, If Font size is 3x5, a char '=' takes up 40% of total pixels, Foreground=RED, Background= BLACK, then we got an equivalent color of (0.4,0,0) here. Actually, between 15 preset colors, I can perform Linear Interpolation to generate new color for the palette,   color = Lerp(Background,Foreground,percent of coverage)   [attachment=31853:color_space_Original.jpg] picture:15 preset colors in color space       --Soft Renderer I had developped a fixed render pipeline whose API design is modelled after D3D9 -- A configurable state machine ('shaders' can be directly written with c++ in a soft renderer).If you have the experience in writing SHADERS, then Vertex Shader/Pixel Shader can be easily re-written into c++ language as a function.I might share some soft renderer developing experience as a learner~   So Let's review the basic stages a render pipeline have:   1?Vertex Transformation (Lighting can be performed here) 2?Polygon clipping 3?Rasterization 4?Per-pixel processing 5?Present to screen   Because after analysis of project needs and considering the limited time, I decided not to implement some complex graphic techniques.     1,Vertex Transformation     eh,Just do what you do when you are writing Vertex Shader. Transformation, vertex lighting ,etc. BUT, it seems that DirectX and openGL like to map the Z coordinate to a non-linearly distributed [0,1] homogeneous clipping space, I always wonder the reason why the designer did it like this, I GUESS that the resolution of Z coordinates could be enhanced near the camera position using this method. I mean, D3DX generates a perspective projection matrix will make 1/z linearly distributed on [0,1].   This is the D3DX version perspective project matrix according to 'Introduction to Game Programming with DirectX11' float term11 = 1.0f / (aspectRatio*tanf(ViewAngleY / 2.0f)); float term22 = 1.0f / tanf(ViewAngleY / 2.0f)); float term33 = FarPlaneZ / (FarPlaneZ - NearPlaneZ); float term34 = -NearPlaneZ*FarPlaneZ / (FarPlaneZ - NearPlaneZ); MATRIX4x4 outMatrix; outMatrix.SetRow(0, { term11,0,0,0 }); outMatrix.SetRow(1, { 0,term22,0,0 }); outMatrix.SetRow(2, { 0,0,term33,term34 }); outMatrix.SetRow(3, { 0,0,1,0 }); But I make an experiment to write my own version of perspective projection matrix which map view space Z to a linearly distributed region [0,1].And I didn't store a Z coord in W coord, in soft renderer I can declare another temporary variable to store the view space Z coord before multiply the projection matrix. At last, x,y coordinate will be divided by their own view space Z coord. float term11 = 1.0f / (aspectRatio*tanf(ViewAngleY / 2.0f)); float term22 = 1.0f / tanf(ViewAngleY / 2.0f); float term33 = 1.0f / (FarPlaneZ - NearPlaneZ); float term34 = -NearPlaneZ / (FarPlaneZ - NearPlaneZ); MATRIX4x4 outMatrix; outMatrix.SetRow(0, { term11,0,0,0 }); outMatrix.SetRow(1, { 0,term22, 0,0 }); outMatrix.SetRow(2, { 0,0,term33,term34 }); outMatrix.SetRow(3, { 0,0,1,0 });   2,Polygon Clipping     At first, I directly skip the step!!! In the first place I think that clipping triangles is just an optimization--- invisible parts of triangles can be quickly dumped before more detailed processing. But later I realize that this stage is CRUCIAL to get correct result, not only for optimizing purpose.   [attachment=31860:1.png]   This is a top-view picture, red line represent a triangle, especially under such circumstances I always encounter big problem that the triangle is twisted and STRETCH ACROSS the screen. I don't know the cause of this problem analytically, but It seems that this problem can be resolved by triangles clipping.   [attachment=31861:3.jpg]   But intersection between triangle and box could be complicated. So I violently discard the triangle if 3 vertices are all out of boundary. It's really  a rough method...     3,Rasterization until now, I have got many triangles in homogeneous space. I haven't read any books about developing soft renderer, so my own method of rasterization may not be good enough, but it did work.   [attachment=31862:4.jpg]   First, homo space coordinate will be transformed into pixel space coord, then I will apply Line-Triangle intersection where the line has Y coordinate with integer value. Such intersection might yield 0/1/2 intersect point. If I got 2 points, whose X coordinates are X1 and X2, a row of pixels can be drawn within region [floor(x1),floor(x2)] . Someone hint me that use Bresenham's method to rasterize edges first, then to fill the region could be better,  maybe= =.    For every pixel rasterized, I will compute the bilinear interpolation coordinate (s,t) for them by solving a 2-unknowns linear equation.   [attachment=31864:5.jpg]   then don't forget perspective correct interpolation using (s,t) and depth of 3 vertices of triangle. Remember to use perspective correct interpolation to compute the depth of current pixel , and then, perform depth-test(z-test).     4,per-pixel processing     Right now, we got a bunch of pixels. Texture mapping is performed at this stage. Texture Coordinate had been interpolated, color can be extracted using various filter mode.   5,Present to screen    ...yeah, present to screen.  
  5. DX11

    Oh, I think the effect framework(.fx) gains complexity as the shader code size grows,so it may be more convenient to use API= =?(maybe)  BTW, making shaders as well as interfacing them with C++ is so unconvenient ,do you have some advice?
  6. DX11

      Yes, you should use Direct3D to draw on screen, but you can also combine it with other APIs like the old and legacy GDI/GDI+ or Direct2D.   DirectDraw was deprecated since DirectX 9... You can read more about here: Whither DirectDraw? http://blogs.msdn.com/b/chuckw/archive/2010/06/16/wither-directdraw.aspx   you mean= =VS & PS??So I should draw 2D images with no 3D transformation in shaders?
  7. including 3D Mesh or 2D lines ,primitives or image or sth else?. In dx11 , is that directdraw was abandonded???
  8. it's detailed and good for getting started!
  9. maybe it is reasonable for the console vendor that the development is restricted, for a better quality of games. But whatever?i'll still stick to the pc game development
  10. I dont understand some stuffs about making a console game .   Is that like making a game on PC??DEVELOP on PC and RUN on Xbox(let's say)?   What should be downloaded to get started with console game developing??
  11. After installing the VS2012 on WIN7(And also had the lastest Windows Update),   When i compile, WARNING C4005 Occurs,which never happened before.   And the repeated  definitions are in D3D11.H and WINSDK8.0.H,   how to fix this problem???Help!!   Just use the #pragma disabled? (That's some kind of irresponsibility= =)
  12. eh alright,i think.i have figured it out...alt+f5 to start debigging with graphic pipeline viewer, you can look into the pipeline stage like IA,VS,PS,GS,OM etc.press printscreen at program running time can start an graphic log,which marked down a D3D events list. hope this can help me and others..
  13. VS2012 Ultimate,free for 30 days, if the debugger is powerful i'll buy it but i don't even know how to use it= =