• 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

126 Neutral

About Spencer

  • Rank
  1. here is another good reference i think. --Spencer EDIT: had som problems with the link thingy
  2. [quote]Original post by cwhite Quote:Original post by uutee 1) In multilayer networks, does EVERY neuron (excluding input neurons) have a link to the bias neuron, whose values is always -1? No, topology can be arbitrary. Bias neurons are recommended though. Quote: For most nontrivial problems they are neede. NNs without can only learn problems that are linearly separable. For example the XOR function cant be approximated without bias neurons...
  3. If there would be such a thing as free will (which i personally am very sceptic to) i definitely would go for 3. But due to my scepticism i cant argue baout it :)
  4. dude...thanks :) And thanks to all who replied!
  5. Hi! I thought the LUT for the normals where located in an external file that had to be downloaded from ID or something...are they actually provided in the file? If so, where in the file? If they are, all my problems are solved ;) I will test your suggestion for optimization as soon as i get the normals right. And as for the "doesnt work like i want it to". It is only the normals that ends upp wrong. Everything else is fine... Thanks for the replies.
  6. Quote:Original post by Samurai Jack Indeed, STL may make your code huge if you use it. As for myself i use STL whenever I have to, but it is far better to avoid it whenever possible. What I mean is, if you know the number of entires (vertices), you don't need a resizable buffer. So if you're sure that your mesh has 1200 vertices and 500 faces you don't need a dynamic buffer. D3DXVECTOR3 pVertices = new D3DXVECTOR3[numVertices]; When using OpenGL i suppose, on the end you will have: NumVertices = NumFaces*3; NumNormals = NumVertices; Sure thing, however Optimization will be done _After_ the stuff works... Quote: Like a debug approach, i would suggest, that you compute normals before duplicating the vertices, and render. Then try to compute normals after your whole mesh is generated. Then you will be able to compare the visual results. Maybe they aren't so dramatic? I'm only guessing. I did that before i decided to use glDrawArrays, and it looked right. The difference is huge... Quote: A good place for algebra (matrices, vectors, flat/smooth normals, quaternion) is euclidian space by Martin Baker. Try to enter martin baker math into goolge and check some results. I'm sure it will help you out! Thanks for the tips...but i am sure the math is not the problem. Quote: As for math libraries, you could use directx math libraries for math, they are awesome - and besides, they are in the 9nth release, they are tested and approved. An alternative is the nvidia math library on developer.nvidia.com. I am deeveloping on a linux box so the directx lib is not an option ;)
  7. Hi! Hope this is the right forum for my question. Anyhow, in my .md2 model loader i want to convert the datastructure to be able to use glDrawArrays. This involves duplicating the vertices and the texture coordinates. So far no problems. But when i want to calculate the normals it doesnt work like i want it to. What i do is that first i create all the vertices like you would probably normaly do by reading the vertex indices from the .md2 file and then i go through the triangle list and just duplicate it to the positions where it is used. I also do the same thing when i calculate the normals. In my mind this would give the same normals for duplicated points, but this does not seem to be the case. In order to explain furhter i will paste the relevant part of my code Point *p; vector<Point*> tmpPoints; vector<Vector*> tmpNormals; //build the actual vertices for(int i = 0; i < m->nrOfFrames; i++){ for(int j = 0; j < header->numVertices; j++){ y = frame->vertices[j].vertex[2] * frame->scale[2] + frame->translate[2]; x = frame->vertices[j].vertex[0] * frame->scale[0] + frame->translate[0]; z = frame->vertices[j].vertex[1] * frame->scale[1] + frame->translate[1]; p = new Point(x, y,z); //store the points temporarily tmpPoints.push_back(p); } Vector *triNorm,*uv,*vv; int cnt = 0; //calculate a normal for each triangle surface for(int tris = 0; tris < header->numTriangles; tris++){ uv = new Vector(tmpPoints[triangles[tris].vrtxIndices[0]], tmpPoints[triangles[tris].vrtxIndices[1]]); vv = new Vector(tmpPoints[triangles[tris].vrtxIndices[0]], tmpPoints[triangles[tris].vrtxIndices[2]]); m->frames[i].setTriangleNormal(uv->crossProduct(*vv),tris); delete uv; delete vv; } //use surface normals to calculate vertex normals for(int v = 0; v < header->numVertices; v++){ triNorm = new Vector(0,0,0); for(int v2 = 0; v2 < header->numTriangles; v2++){ if((triangles[v2].vrtxIndices[0] == v) || (triangles[v2].vrtxIndices[1] == v) || (triangles[v2].vrtxIndices[2] == v)){ (*triNorm) += *(m->frames[i].getTriangleNormal(v2)); cnt++; } } triNorm->divideByScalar((float)cnt); triNorm->normalize(); cnt = 0; //store normals tem. tmpNormals.push_back(triNorm); } //duplicate the vertices and normals for(int tr = 0; tr < header->numTriangles; tr++) { m->frames[i].setPoint(*tmpPoints[triangles[tr].vrtxIndices[0]],tr*3+0); m->frames[i].setPoint(*tmpPoints[triangles[tr].vrtxIndices[1]],tr*3+1); m->frames[i].setPoint(*tmpPoints[triangles[tr].vrtxIndices[2]],tr*3+2); m->frames[i].setNormal(*tmpNormals[triangles[tr].vrtxIndices[0]],tr*3+0); m->frames[i].setNormal(*tmpNormals[triangles[tr].vrtxIndices[1]],tr*3+1); m->frames[i].setNormal(*tmpNormals[triangles[tr].vrtxIndices[2]],tr*3+2); } tmpPoints.clear(); tmpNormals.clear(); ((char*)frame) += sizeOfFrame; } Is my problem just a bug somewhere or "is my logic flawed"? Peace :) --Spencer
  8. hi...actually i think you are being a bit unfair to ATI. I have a radeon 9600 and ever since i first installed the drivers (ver 3.10.something iirc) i have had no problems other than the one time I didnt RTFM good enough. As a matter of fact i hade some problems installing NVIDIA drivers on one computer. As with stability, i have had no issues whatsoever with my card or drivers. What i am trying to say here is that i _think_ peaople only hear that ATI drivers will mess up both your head and computer and decide that ATI sucks without trying for themselves. And, with the new drivers coming soon (yeah i know we heard it before ;)) with xorg 6.8 suppart and GLSL and stuff i really think ATI is back in the linux "market". Just my 2 coins to the discussion peace --Spencer
  9. Yes, i was thinking about that, and perhaps skipping the octree and use some other grid like structure of some sort..maybe...and cull the grids.... Thanks a bunch you
  10. Hello, i am currently implementing some map and terrain classes in my game. But i have troubles with efficient renering of the landscape. What i have is a very simple map format wich only states the height and width och the map, in number of tiles (sort of quads split in two to make triangles), the size of the quads and an image name containing the heightmap....not good but works for now. Further more my thoughts now is to build all the "tiles" in my map and insert them in my octree so i can cull them against the view frustum. Then i get a list of tiles that are visible each frame and i use glDrawArrays (sorry for the specifics, but you get the idea) to render the triangles. However, the results i get now is crappy and although i think very much overhead comes from my datastructures right now, i was wondering if there are any good other ways of doing this? That is, store the map smartly and being able to decide what tiles are visibla quickly each frame.. thanks a bunch
  11. Hi all. Long time since my last post here...but i guess that doesnt matter..hmm ;) Anyhow, i am working on a small soccer simulation where two teams are supposed to learn how to play soccer against each other. Right now they are learning low level functions like passing, shooting, intercepting etc. However, i have _big_ problems with this. What i do is that for the passing skills, i will train a neural network to output and angle and and a force, both in the interval [0,1]. The angle will be the modification in which to shoot the ball relative the ballholder (will be used as -PI+nnAngle*2PI). The force is a multiplier for the balls maximun speed...quite simple really. The input i use for this is a 2 tuple with the relative angle to the receiver, the distance to the receiver, the change in angle in next time step and the change in distance in the next time step. This way i get rotationally invariant data and the collection of training examples is simplified. This seems to me like there would be a strong correlation between the input and the output and thus no problem for a NN to approximate such a function. But no, my results are really crappy and the output is almost "random".... I have tried various implementations of neural nets so i dont think its in the code either.... EDIT: I am using a feedforward network and train it with backprop.. Any and all suggestions, questions and feedback is very appreciated :) thank you