Jump to content
  • Advertisement

TiredofSleep

Member
  • Content Count

    41
  • Joined

  • Last visited

Community Reputation

156 Neutral

About TiredofSleep

  • Rank
    Member
  1. TiredofSleep

    engine ideas please?

    I'm not a fan of people linking the scientific ninja post about engines... People come here to get help, advice and brainstorm with other great minds. There's no need to slap a link on someone's face. So I'm going to actually answer your question. I'm a huge fan of system architecture, and I love coming up with different ways for engine modules to be pieced together. I've written a few engines now, from a PC-OpenGL/DirectX based engine to an IPhone Engine. I've also worked on a Wii/360/PS2/PSP multi Platform engine. First off, What platforms are going to be supporting? If you plan to only support one platform with this engine, then that simplifies things a lot. Try to think about how the important modules are going to be accessed. (i.e You have a Texture manager, that stores/creates/loads textures. How is the Entity that you're making going to get to the Texture manager, is it going to be a singleton that can be accessed by anyone? Does the Texture manager just hold a bunch of static functions that do what you need? ). Really it all boils down to...if you're making this engine ( collection of libraries, whatever you wanna call it ) for yourself. Try to think about how you're gonna make this easy on YOU to make a game. The article is sorta right in some aspects.. try to think of SOMETHING anything that you can make with this... its the only way to test a module and see if that's exactly how you want a module to work, perform, be accessed etc. etc. Cause you can write a Sound Module, have it have every accessor function in the book, but it might not be whats best when you hook it up to the Bullet's explosion. If you don't want to make a game, try to create a Demo Engine that has a quake style console, lets you load models, shaders, that sorta stuff. If ya have any specific questions, don't be afraid to ask.
  2. TiredofSleep

    Help! Skinning Problem

    Yeah i tried switching the Z and the Y around.. but still didn't seem like it was working correctly. Plus, i'm using the IGame Interface, and i set the coordinate mode to use the OpenGL Coordinate system. and everything else that i've exported has been Y up and Z forward. [Edit]: Actually i take that back.. i switched around the Y and Z on the animation side, but not the Reference side... i'll let know know how that goes.
  3. Ok, so heres my problem... I'm trying to get my models to have skinned animation. I have my own model format that i export from an exporter i created myself. The model is exported with the reference skeleton (T-Pose). and Animations are stored in their own files. Currently, if i export the Mesh with the reference bones all straight, and export an animation that has the tube in the same orientation ( all straight up bones ), it looks fine.. the Reference bone transform and the animation bone transform multiply cancels each other out, leaving the vertices where they are. but when i do a little bit of bending its not bending like it should. In the case below, i exported with 1 bone bent downward, and it drew as it was twisted. The code below isnt optimised i know.. i just want the pose of the tube to look correct first and ill go back and optimise later. What am i doing wrong? Max Animation export: IGameKeyTab keyTabRot, keyTabPos; bool bRelative = true; controler->GetFullSampledKeys(keyTabRot,1,IGAME_TM,bRelative); int keyCount = keyTabRot.Count(); AnimObj* newObject = NULL; if(keyCount > 0) { newObject = new AnimObj; newObject->ObjectNameHash = AsciiHash(curNode->GetName()); IGameKey TranslationKey,RotationKey, KeySampled; for(int i = 0; i < keyCount; i++) { // Get the Transform Keys. RotationKey = keyTabRot; // Create an Animation Key For this Object. AnimKey* newKey = new AnimKey; Quat thisQuat = RotationKey.sampleKey.gval.Rotation(); Point3 thisTrans = RotationKey.sampleKey.gval.Translation(); newKey->Rotation = Quaternion(thisQuat.x,thisQuat.y,thisQuat.z,thisQuat.w); newKey->Position = Vector3(thisTrans.x,thisTrans.y,thisTrans.z); // Add the Key. newObject->AddKeyFrame(newKey); } } Vertex Skinning Code: // Invert the Reference Bone's Quaternion. RefBone->GetRotation().Conjugate(); Quaternion QDeltaTransform = RefBone->GetRotation() * AnimBone->GetRotation(); Matrix3 MtxDeltaTransform = QDeltaTransform.ToMatrix(); vVert = vert->Weights[0] * MtxDeltaTransform * vVert; vert->Vertex[0] = vVert.x; vert->Vertex[1] = vVert.y; vert->Vertex[2] = vVert.z; How it should be deformed. How it is deformed.
  4. Quote: But I could be a "horrible goto-using programmer", but still manage to clean up and polish one of my messy codes. In my experience, if ya do something just to get it to work, and not write cleanly... it'll be a snowball's chance in hell to go back and clean it up. Also poorly written code builds up and makes it harder on yourself, since you have to go back and modify it later to make it do different things or fix bugs. Once you go back to fix a bug or add something to it, it'll be so hard to work on because of all of the hacks. Trust me, if ya do it write it nicely the first time you save yourself a whole heck of a lot of trouble. P.S dont use goto.
  5. TiredofSleep

    Peices of a Game Engine

    Thanks sox, Atleast someone "tried" to answer my question :) yea thats exactly what i did. i started making a list of items that are atomic, and have been working on those. yet i did make a goal of having a game, which is has been steering me in the right direction on some things.
  6. TiredofSleep

    Peices of a Game Engine

    Quote:The point that is being made here is not that "You don't need the basic set of tools". Suppose that you want to screw in a board: you don't go to the drug store and buy every screw, nail, screwdriver, hammer, thumbtack, soldering iron and glue bottle you can get your hands on. You decide that you need a screw, a screw-driver, and a board, go fetch these, and use them. Ok. Good point. But i still think that making a game is a two way street, you can either build an engine around your game, or build your game around the engine. But i do see your point. I might be getting ahead of myself on what i actually want to do with what im trying to create. At work the first thing i ask the scripters when they come to me with "i need a function to do this" , is " what are you trying to do" . i suppose making everything you could possibly need for a game wouldnt help make better designs, just simple designs. Thanks for showing me the light.
  7. TiredofSleep

    Peices of a Game Engine

    Even with the design goal of making a game, you still need a basic set of tools. You cant screw in a board without the board the screw and the screw-driver. Ok well maybe an engine is not what im making, lets call it something else. a group of modular tested subsystems I know what goes into a game. I've never made a game at home, just groups of subsystems, and i do have a few groups of modular systems that i've made in the past that i've peiced into my new group of subsystems. Sooner or later im sure that i'll create a game, but until then, making a little system that draws 2d sprites or a 3d math library CANT be that bad of a primise.
  8. TiredofSleep

    Peices of a Game Engine

    Quote: The way you can escape this cycle is to stop programming, and instead think about your existing solutions: why are they bad? What would have been a better solution to a problem you have already solved? Why didn't you choose the good solution right away? How could have you detected the bad solution in order to avoid it? I totally agree with you, i never said to think of bad solutions to problems. thats why earlier i said i was trying to pick up better habits. Better ways of going about finding elegant, correct, solutions to problems. My situation as stated "ADD", is that i want to go about problems 1 at a time. instead of throwing myself all over the code-base. to solve 1 problem. I don't actually have a problem with bad designs, i just want to think more thoroughly. which brings me back to the initial reason of this post.. just a brain storm session of cool basic systems that would be neat to make.
  9. TiredofSleep

    Peices of a Game Engine

    The whole reason for the initial post was just to get some smart intellectual ideas from a large group of people of some things that might be pretty cool, initially, to put in a group of well thought out basic systems, that "might" be used in some sort of "Engine". I dunno maybe we had some miscommunication.
  10. TiredofSleep

    Peices of a Game Engine

    As far as the link ya sent me... Quote:No matter what your reasons are — it doesn’t matter if you’re writing an engine so you can write your dream game, or if you’re writing an engine because you think it will be a good learning experience, or any number of similar reasons. They’re all wastes of time. I'm not looking to accomplish anything with my engine. For the simple fact that i'm just programming to program. Also i think that "They're all wastes of time" is an absurd thing to say. If you wrote a "Hello World" Application over and over, trying to make your "Hello World" better in some way. You are getting a lot out of it. Actually Re-Reading over that link... I actually think that was pretty "cold-hearted" of you of just throwing that in my face, or anyone's for that fact. Quote:Most hobby developers who “finish” an “engine” that was designed and built in isolation (with the goal of having an engine, not a game, upon completion) can’t ever actually use it, and neither can anybody else. Since the project didn’t have any goals, any boundaries, or any tangible applications, it essentially attempted to solve aspect of the chosen problem space and consequently failed miserably. These “engines” tend to be little more than an inconsistent and messy amalgamation of random functionality that isn’t terribly practical, robust or reusable. Furthermore, the actual viewable end product of these “engines” tend to be a cute little map (loaded from one of the popular BSP formats) you can run around in and observe some cute little models (also loaded from a popular model format) rendered with some fairly basic lighting effects (maybe some per-pixel normal mapping or parallax mapping). Maybe you might even see some collision detection or animation. These projects are just tech demos, and not particularly compelling ones at that. There is nothing to them, and they feel rather flimsy and inflexible. Who ever wrote this sounds weathered to a lot of people asking him questions. It doesn't matter that it not useable or someone else cant use it. Who cares that they used a popular format, maybe the next one they're write.. they'll write their own format. Programming is Programming the more ya do, the better ya get.
  11. TiredofSleep

    Peices of a Game Engine

    Well here's the thing, I'm not creating a game. I'm creating an Engine. I know the next thing out of a lot of people's lips are "Dont create an Engine, create a game" but I dont want to create a game. I'm making an Engine on the pure fact of trying to pick up better habits, teaching myself different ways of doing things, and different types of architectures. The ADD isnt from creating something i dont need, its from needing a lot to create a component, and only making what i need at the moment for that component, which makes me not think about a well designed plan for the thing that im making that i need for that component haha even that confused me and im writing it. Let me explain. Say i'm creating a Shader Manager of some sort from scratch. I make the manager that stores shaders.. so now i need a shader object, so i create the Shader object. (only making what i need for the manager). so i go back to work on my shader manager getting what it needs in there. so i move back to the shader object. The Shader needs to be loaded from a file, so i need to create a file loader. I go make a quick file loader and get back to the shader... I could go on... but the point of that is now my Shader Manager is beefy, works elegantly but now since i hopped around, my shader object and my file loader are crap, and wont work for everything, they arent good design... where as if i would have sat down and created each peice with a decent design i'd be better off. hope that doesnt confuse ya
  12. I was wondering what you guys think the basic subsystems of an engine should be. I'm not talking about anything graphics-wise, or Input or Collision so on and so forth... So think as far as: File I/O , Math Library, Clock, Memory Manager. Like as if you were starting out and wanted to make solid bullet proof subsystems to build an engine architecture off of. Reason i'm asking is I've wrote a couple 3d Engines and i always seem to catch "ADD" when creating them, jumping from engine peice to engine peice, not finishing / polishing the last peice i made. So i'm making a new engine, and i wanted to have a solid set of goodies before i jump into graphics( where ADD usually catches me ). Thanks!
  13. TiredofSleep

    C++ infile help

    Look up ofstream. It's the "sister" class of ifstream. That should get ya started.
  14. TiredofSleep

    Texture Mapping prob in OpenGL

    glEnable(GL_TEXTURE_2D) maybe texturing isnt turned on? Do you all your UV Coordinates set correctly? Texture is the correctly loaded in?
  15. TiredofSleep

    D3DX for actual game use?

    Thanks for the information guys, Yea im not actually making a commerical game or anything, nor do i care about load times and what not, so my guess is D3dX is for me. I'm just trying to learn all that DirectX has to offer, and if it gives me a good math library, model loader, texture loader, animation, and all that good stuff, that's even better.
  • 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!