Jump to content
  • Advertisement

darookie

Member
  • Content count

    2544
  • Joined

  • Last visited

Community Reputation

1441 Excellent

About darookie

  • Rank
    Contributor
  1. Just to nitpick a little - trees are graphs. Acyclic directed graphs to be specific  Regarding your question, it is probably not a good idea to stuff every kind of information you need into a single data structure. Rendering requires a different graph (tree) structure and data to be efficient than path finding or collision detection. Your initial scene graph may contain all the required data, but for real time use it's best to split that data up into separate layers (render nodes, path finding nodes, collision information, objects, etc.) and data structures that are optmised with regards to their respective usage.   Yet another thing to consider is the way your data will be used in general. A streaming file format and data structure has different requirements from a static graph that is loaded once (like using zones for larger patches of terrain). A http://en.wikipedia.org/wiki/Quadtree might provide a relatively simple way of subdividing larger scenes into smaller parts. It can be pre-calculated in an offline step so your heightmap can initially be quite large. By storing the tree in a linear fashion to a file and using an index into each level of the tree you can then easily locate and deserialise the data you need at runtime if you need to.   HTH
  2. I would also recommend looking at Unity3D. It has a free edition that lets you try out and get comfortable with its development environment. Another plus of Unity 3D is that is has a wide variety of supported platforms. You should seriously consider 3D models for your characters, though. Depending on the number of characters/enemies needed, the effort of creating animations and different versions can be significantly lower than for 2D artwork (animations and models can be reused and easily modified).   On the hardware side of things nothing special is required. Pretty much any PC (not older than say 5 years) with a dedicated mid-range graphics card and a bit of RAM will do. The amount of money required depends on the number of and payment for the team members. The amount of time required depends on the experience of the team and the amount of time your and your team members are willing or able to put into into the project. A total playtime of roughly fifty hours sounds pretty ambitious, though. Experienced professional full time teams take on the order of two to five years for such a project - just to give you a sense of scale here.   You might want to consider starting with a demo first - like a quest plus an optional small side quest with less than 30 minutes of gameplay, but with some of the major elements and features of the game implemented. Tracking your efforts in doing so will give you an estimate on how your team performs and how much time and money would be required to actually finish it. Making a demo will also provide you with a sense of how to structure your workflow and how labour intensive the various aspects of the project might turn out to be. 
  3. The remaining errors are a result of interface changes in the ID3DX library between your installed version and the one the core_graphics implementation was built upon. UpdateSkinnedMesh() should take 3 parameters and be used like this: UpdateSkinnedMesh(matrix, NULL, mesh), where matrix points to your bone transform matrix and mesh is your mesh pointer.   I don't know the parameters for GenerateSkinnedMesh(). As a rule of thumb, however, you should never just throw in NULL parameters at random. Instead, take a look at the parameter types the function expects and match the variables that are used by the old code against them. Any parameter of the function that is not used by the existing code can be NULL (if it's a pointer).
  4. darookie

    Blender units to directx units?

    There is no such thing as "directx units". If you model a unit cube the exported cube should be a unit cube as well. Any perceived difference in scale is therefore a result of either scaling by the exporter or simply different camera settings in Blender and your application. The former can easily be checked by examining the vertices of the loaded model.
  5. Start by actually reading what the linker is trying to tell you: The last error for example tells you about a missing implementation of the Run()-Method in the class cApp. A quick look at your main code confirms this - you need to implement cApp::Run() there. The other linker errors have nothing to do with DX8 or DX9 either - you simply seem to have forgotten to include a bunch of cpp files in your project. All those missing methods the linker is telling you about are implemented in source files that are not part of your build. That's what you need to fix. You should also just include either dx8 or dx9 libs - not both (e.g. get rid of the #pragma comment(lib, "d3dx9.lib"), #pragma comment(lib, "d3dx9d.lib") and #pragma comment(lib, "d3d9.lib")).
  6. darookie

    Inline assembly

    Since string literals in C are not marked as executable it's much more likely that DEP is simply not enabled for all programs.
  7. darookie

    SFINAE equivalent in C#?

    One must also keep in mind that generics are not at all equivalent to C++ templates or even Java generics (type erasure!). Some of the major annoyances with the platform have just recently (.NET 4) been fixed (like co- and contravariance issues with generic collections and enumerations).
  8. darookie

    Warp drive may become more science than science fiction.

    So I guess Dark Matter has negative mass. Since in theory, it's pushing the universe outward. [/quote] That would be Dark Energy - Dark Matter - as the name implies - exerts the same gravitational effects on fabric of space time as ordinary matter. The only difference is that it seems to only interact with the rest of universe via gravitation.
  9. Just a side note on your ramblings. At the end of the day, all that counts is productivity and getting things done. Programming software is difficult enough as it is and there is no reason to burden the programmer with implementation details when an alternative programming language (tool!) allows him or her to focus on the actual problem at hand. You seem to have a very skewed idea of "progress". Progress is not adding library xyz to programming language foo just to be able to achieve the same that another language features natively (either as part of the core language or its baseline runtime environment). Progress is to explore and discover means of being more productive, less error-prone and able to cope with the increasing complexity that software requires today and perhaps even more so tomorrow. Ideology is nothing but a hindrance for true progress. A programming language is nothing but a tool. Knowing and promoting only one tool not only limits your choices on approaching a problem (both mentally and technically), and makes you inflexible when it comes to being to productive (i.e. regarding prototyping). Innovation needs room for new ideas and living in a one-programming-language-box doesn't provide much of that. Finally, just to counter your argument from ignorance that C# has nothing to offer that Java had for years - one word: LINQ, oh - and DllImport, hm, maybe the unchecked and unsafe blocks, lambda expressions, etc. etc. Bottom line: Learning more than one programming language is not a waste of time and statements like "language/platform xyz has to die because it hinders progress" are simply both untrue and quite offensive to the hard working, dedicated and bright people that created them. There is no silver bullet. Period.
  • 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!