Jump to content
  • Advertisement

justdanyul

Member
  • Content Count

    16
  • Joined

  • Last visited

Community Reputation

102 Neutral

About justdanyul

  • Rank
    Member
  1. justdanyul

    Can i handle it

    What's wrong with looking to expand your skill set? [/quote] Nothing at all. OP just seems to be in a rush to create what sounds to me like a rather complex game. And it sounds like he already have the skills to be able to be part of a team effort. Rather than spending X amount of years expanding his skill-set to a level that will enable him to build a 3D RPG game all by him self.
  2. justdanyul

    Scene graph suggestions?

    Hello I'm trying to create a re-usable scene graph (nothing too complex), to replace a quite purpose specific one I did for a pet game project I'm working on. Basically, I figured since i'm only doing this for fun I might as well try and build one which might be useful for me in the future as well. So here's my question. I want to be able to have the ability to reuse objects(ie. not having duplicate data). Which I did with a purpose specific "factory" node in my purpose specific one. I'm currently playing around with a implementation which have: * vector space node * geometry node * renderable node (these nodes holds positional data) So, for example, if I have RoomSpace -> ObjectGeometry -> Object1 AND Object2 (the renderables) The problem is, if i simply want one object I would need (since the Geometry node in itself doesn't keep positional data and doesn't render): RoomSpace -> ObjectGeometry -> Object1 While this works, it seems a bit stupid. But i'm really struggling to come up with a better alternative. So, I thought I would try and throw the question out to some experienced people (you lot! ). How do you all implement this? * Note, I'm using C++ , but I don't want to use virtual functions for this set of classes(im using void pointers, type identifiers and some helper classes with static member functions to emulate polymorphism). So if you could keep that in mind when/if giving me suggestions
  3. justdanyul

    Can i handle it

    Just out of curiosity. If you are a expert 3D modeller/animator, why not stick to where your expertise lies? Your post reads a bit like this: You have zero programming experience and are in a rush to read though a book or a couple of tutorials off the internet to enable you to create a game. Graphics programming is hard, and is both seriously CS and Math intensive. You need to have a steady hand doing both before you can hope to create anything decent(and it sounds like you have big plans about 3d rpgs and god knows what).. And I'm not even going to mention the physic aspect. Any ways, others have already pointed out this is a massive massive undertaking to master. Here's my tip for you though. You kick bum in 3D studio (or whatever app), here's a dirty little secret. Most programmers dont. Team up with people who has similar goals.
  4. justdanyul

    Setting Vertex Buffers

    thank you very much for your input, much appreciated
  5. justdanyul

    Setting Vertex Buffers

    Probably not enough to matter for a board game. [/quote] Thanks for the reply I didn't answer the question in the context of the current project only though. It would be rather pointless of me to put thought into the OO design of the components of this project unless I wanted to re use them for other things in the future. If that makes sense.
  6. justdanyul

    Setting Vertex Buffers

    Right, I got a little hobby project going, with the purpose of me learning some more about DirectX. I've successfully created a very simple base framework, and a alias wavefront OBJ parser (and a .MTL parser which basically only grabs a few bits and pieces per material, such as diffuse color and specularity). Now I'm playing around with rendering the different components which, hopefully, will turn into a board game where the game pieces are continuously moving around the board following a set of rules, and the game purpose will be to apply certain actions to them to beat the board. Very simple stuff. But i'm straying off on a tangent here Back to my questions. Since there are only really a couple of different elements in my game, and they are all visible at any given time, I wont worry too much about trying to determine if they lay within the view frustum. I have basically 3 types of objects which are rendered to screen. * the board pieces * the actual board * ui elements I've split this up into three types of a classes: *a "Element" which basically contains everything i need to render the element (vertex buffer, index buffer, normals, texturecoord, shaders) and position and transformation info. *a "SimpleElementFactory" which again contains everything i need for rendering (vertex buffer, index buffer, normals, texturecoord, shaders) , but no position or transformation info * a "SimpleElement" which contains position and transformation info and a pointer to the SimpleElementFactory instance that created it. The classes all also have a children pointer which contains a array of all children, so i have a graph structure i can iterate through ala: ROOT Board | UI Pieces - Blocks - Portals | Time left - Pieces left piece 1 .. piece n The idea with the SimpleElement and SimpleElementFactory is that all the pieces share exactly the same model. So I wanted to be able to just set constant buffers for the position and fire the rendering method in the factory. Right, finally, this leads me to my question. How heavy is the call to set the index and vertex buffers? The factory idea was basically to keep it to a minimum, and it made sense since all the pieces are the same so there's no idea in having n amount of duplicate data. BUT, this is where i get confused. How far should i take this? theoretically I should be able to calculate only have ONE vertex buffer and ONE index buffer, and then never have to switch it. Basically, combining all the vertex, index data into the root instance (and make that for of a factory, obviously it will need a different logic that what it currently have) and then when the child instances call the render function of the ROOT instance, it tell it what segment of the index buffer it needs to use. This however, is not as natural as the first "optimization", since i will not get any less vertex data, ill just set the vertex buffer and index buffer less. The question is, is there any point? I seen lots of examples and tuturials on the net which sets the vertex buffers every single time a frame is rendered, and doesn't even care to check if the vertex buffer being set is actually already set. So, im thinking, maybe the overhead in this function call is minimal? Is there any idea spending time on implementing the proposed "one vertex, one index buffer" scheme? Additional question. How much overhead does abstract classes add? I currently have a really ugly hack to avoid using abstract classes because i'm uncertain of the overhead involved. Basically all the above mentioned classes have extends BaseNode , which has a NodeType property. So when i iterate though the graph structure, I can cast to BaseNode first get the typeID, and cast to the appropriate type (using a switch statement). This could be handled a lot more elegant using abstract classes, but at what performance cost?
  7. justdanyul

    Where should I start?

    Well, you must be good to go then. A C++ and Direct X book it is. It was just friendly advice ps. I did get the fact you wasn't completely new to programming. The book I linked is not for complete beginners, far from it, I know of at-least one university teaching it in its introduction to algorithms course. It is however, quite different from a C++ book or a book teaching you to use MFC components or whatever.
  8. justdanyul

    Where should I start?

    Hi, First, I really don't think you should worry too much about what language you are going to use and what APIs you will be using. A lot of very successful developers started out coding in very basic languages. Such as well, BASIC. A programming language is a tool, learning how to use that tool is not the challenging bit. Sure, some languages are harder than other. But for a decent, experienced real developer, going from one language to another isn't a big deal. Sure, some languages are harder than other, such as C++ and the more experience you got with it, the better. But, back to my point, the really important bit isn't the language. Its how to solve problems with a programming language. As a example, one of the most highly regarded series of books are donald knuth's "the art of computer programming" (http://en.wikipedia....ter_Programming) . He created a language simply for the purpose of communicating the material of these books in the manner he saw most appropriate. Still, they are among the best CS books out there. Even though nobody uses the bloody language for anything else than running examples off his book. Another common thing in algorithms and data-structure books, are pseudo-code. Which is basically a form of programming language independent syntax which just communicates what is actually being done, not what language it is done within. What you will find, is that solving problems is what's going to make you scratch your head. Not how to write your solution in any given language. Its not if your going to render your newly generated tristrip in either OpenGL or DirectX. The issue is how do you convert the triangle lists that make up your object into tristrips. I appreciate that your keen to get started with your game programming, but I think you, as many many other young people that likes computer games, are a little blinded by your desire to want to start producing games. Also, try and understand, knowing any language wont make you, and I quote, "be able to walk into the place and get the job easily". Languages, in the greater scheme are trivial and are the last thing you need to worry about at this stage if you want to be a developer of any kind. What you need to understand is you are at least the time of a degree away from being closer to what it is you want to accomplish, and most likely longer than that as well. And that's cool! you need to find you peace with the fact that everything worth doing, takes time. Personally, I think grabbing a good book on algorithms and data-structures, is a good idea. Personally, I really liked this one http://www.amazon.co...04468596&sr=8-1 (the art of computer programming ones are H-A-R-D, and I wouldn't want to pick them up until later in the game if I was you, unless you like torturing yourself).. read it, solve exercises. Sure, use C++ for it if you want. Personally I think something like Python perfectly fit for purpose, but again. The choice yours. Best of luck
  9. justdanyul

    Question about constant buffers

    Sorry, I didn't make that very clear in my original post that i meant colour data which was the same for a large group, of vertices For example, I got a object which only uses 3 different colours, when i do the parsing of the obj+mtl i obviously keep track of which faces uses which materials, and I also keep track of the start and end positions of faces with different materials (i got one big array with all the vertex indices that make up the faces). So i can easily loop though this array and do DrawIndexedPrimitive() for each section. What I am wondering, is i heard statements like yours about they should be updated as little as possible quite often. I just trying to figure out how much, is too much. In the model im talking about for example, it would seem like it would make better sense to just use a constant buffer instead of sending the same data though with ever n amount of vertices in each triangle group. But, im not sure if thats the case cause of all the warnings not to use them too often hope that makes sence
  10. justdanyul

    How to create heightmaps/terrain?

    Hi, it could be done procedurally. Try giving this a look: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
  11. justdanyul

    home learning courses UK

    On the other hand, the universities will give you a lot of experience that that course wont Call me old fashioned, but personally I would go for a "real" degree any day. I do interviews with new candidates at the company I work for, not game developers, but developers never the less. And its my responsibility to ensure that the people coming though are of a certain quality so obviously the candidates have to do various little tests (which have been made up by a group of people, including me). The pitfall with some of these "tailor made" courses are usually that they tend to spend time on building something that the candidate can show once done. And have a tendency to skip some very basic stuff. Like, reading though this: http://www.train2game.com/wp-content/uploads/PDFs/T2G-Plan-ofthe-Course-Developer.pdf it comes off as a advanced C++ course, with a lot of added goodies about the technology being used to produces games. It actually looks quite nice. But, and this is a massive but, Math is covered in one lesson. So is state machines. Is that really a good substitute for the amount of math and computer science modelling a average CS degree offer? Then there's the algorithms and data structures bits and bobs. Combine this with a BSc in CS or Mathematics, then your talking I'm not saying this type of courses are bad, not at all. I'm just saying courses like that usually have the potential of producing students who can only really do what they have been showed to do. And lacks the foundry to actually make them able to produce mathematical models, algorithms etc on their own them-self. Real life example, I seen candidates who who held quite a lot of certifications, but couldn't produce a algorithm that converted a string (or a list of characters if you wish) into a integer with out using the functions build into the language. I never seen anybody with a CS or a Math degree not being able do it in the matter of minutes (which is obviously how it should be). On the other hand, one of the best programmers I have ever met only has A level education. BUT, and this is the but. He have self studied all the basics, maths, algorithms, you name it.. and he has a obsessive personality in regards of "fully understanding" everything he works with. The amount of books that dude have read is insane, and he's personality and the way he self studies makes it work for him. So basically, I'm not saying there's a right way, or a wrong way of doing anything. In the end of the day, it depends on the person. But, as a rule of thumb, I would choose a degree rather than a "insert specific product training here" type course. That's just my two cents though
  12. justdanyul

    home learning courses UK

    If it have to be home learning, why not a open university degree? http://www3.open.ac.uk/study/undergraduate/mathematics-and-statistics/index.htm http://www3.open.ac.uk/study/undergraduate/computing-and-ict/index.htm -Daniel
  13. justdanyul

    Blank.cpp

    If you can't understand a simple program, why do you think you can successfully create such a large project? The tutorial on this website is fantastic; but I think what I am in need of is an actual mentor. As for the books: [/quote] You've got a mix of extremely beginner books and advanced books, completely skipping the steps in between. It's like jumping from books like "See Spot" straight to collegiate level books. Read Accelerated C++ by Koenig and Moo. Read it. Love it. Embrace it. It is one of the best books at that level. That should help you make the leap in understanding. [/quote] To answer your first question. Determination. As for the book of choice? Thanks, i'll pick it up. [/quote] Determination is a two sided coin mate. Trying to climb Everest on pure determination, would be a bad life choice. However, if that determination is used to train for the trek, plan everything out in obsessive detail and learn the route and to have you fighting on when it gets nasty. In the latter case, determination is your friend, however, in the former case its would be what got you killed. Your starting from square, and want to learn everything at once. Sound, Graphics (and obviously the maths needed for this), programming, algorithms, data-structures... Everything all at once.. This following statement might come off as a bit blunt, but this is only meant as a friendly piece of advice. Its simply not going to happen, not within a foreseeable future. The path to what you want to accomplish is very long. If you don't realize that, and comes to term with it, the determination will most likely turn into frustration. What you need to find your peace with, is that's it going to take a fair amount time until you will be able to produce a whole, simple 2d game by your self. If you find your peace with that, you'll be a lot less frustrated along the road. Having a first project be something complex, is setting your self up for failure. And you are likely not really learn the important things you need to pick up along the way. You found out what you want to do with your professional life, that's great. Keep the goal in mind and work from there. I'm guessing your quite young, so remember, maths, physics or computer science is good majors. And start by creating simple projects. Learn C++, and do lots of stuff with it to really understand it. Not using all sorts of libraries, until you have a solid understanding of the language it self. Make little programs, maybe a text only adventure game, in pure C++ no additional libs. Then when that's checked of the list, move on. And remember, if your serious about becoming a game developer, get a degree. And study lots and lots of linear algebra. Hope that makes sense, and best of luck with everything
  14. justdanyul

    3rd Texture Ordinate

    Hi, I think the last component is w. Its part of the OBJ specification as a optional component for texture maps. I googled around a bit for UVW mapping and it seems 3D studio does this. Try googling a bit and maybe you'll find something more useful
  15. justdanyul

    Advice needed!

    First off, i dont really know that much about the game industry. But that question is relevant for a lot of tech industries. If you have the skills required, I cant see why not. But, and this is a massive but. You say "the long run". Think about it like this, 3d graphics is quite maths intensive. I have completely lost track of how many math courses I done though both pre-university and during university. Its literally years of studying, in a environment where you can bounce off other students, professors etc. I think the question you should ask is, would it be worth teaching your self it all. Trust me, it will not be faster to self study. You'll have to invest more time, and you will face the same problem any autodidact person does, the first job will be hard to land. Very very hard, until you can write a couple of years experience with a game company on there it should start getting easier. If i was you, and you are serious about this, I would study.
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!