Jump to content
  • Advertisement

yoshscout

Member
  • Content Count

    116
  • Joined

  • Last visited

Community Reputation

116 Neutral

About yoshscout

  • Rank
    Member
  1. I'll throw in a little pointer that helps me a lot. The best way to see results is to make incremental small changes. Make a goal that you can accomplish quickly. For me, this is usually a target of 1 hour or so. I like to accomplish a few of these small task, and that is very rewarding. It will make you happy to see how quickly you are achieving things. If you bite off too much in one go, it can be frustrating. Here are some examples of incremental changes in what you mentioned: Get a catapult on the screen Get the castle on the screen Add a button to fire the catapult which pops up a message saying the catapult has been fired Make the catapult fire a projectile Add a buttons to spin the catapult left / right (projectile is possibly unaffected depending on how you coded it) Make projectile fire based off of direction catapult is facing After a bunch of these small items, you will eventually get to a point you will want to call done. I hope this helps.
  2. yoshscout

    Best Game Engine for Indie Game?

    Hey guys just wanted to say that I have played around with panda and done hobby development off and on for a long time. Stumbled across this thread and noticed it was recent and actually stickied. Anyways to the point, doing development in python is insanely productive. There is a reason some shops do most of the scripted behavior in languages like python. There is a really good article called Why Python? by Eric S. Raymond that sums up why to use python. High performance code has to be written in c/c++, but the model panda used is perfect. Another big thing is the event driven programming model. Panda has a very nice event driven programming model. Python works well with it because you can just throw functions around like nobody's business. I have yet to complete a project, but here is a recap of what has happened in my projects. - Multiple projects attempted with no skills, knowledge, additional help, assets, money. The outcome was poorly written code and a lot of gained knowledge and debugging skills with a lot of waisted time and a kinda cool version of pong... - A 2D project was attempted where I used art that was ripped from Shining Force 2 and actually had title screen, login, and a simple zone that had a single mob that you could kill and he repopped on a timer. Other players could login and see you move around and kill the mob together. I consider this one mildly successful. - Various projects attempted that I tried to roll everything. All ended up as a tech demo with just some candy. - Panda project where I just focused on the actual game and ended up with killable monster a world some basic game mechanics and music manager. This was probably the most productive project, but took way less input than the others. The final nail in the coffin was when my sys admin type friend actually wrote the music manager with minimal help. All in all, I have come to realize that it is unrealistic to expect to shell out a game that would normally take an entire studio from your home in your freetime. I think the OP sees that too and that is why he is asking here. EDIT: OMGZ UDK!!! UnrealScript is very python looking too! [Edited by - yoshscout on December 22, 2009 2:17:23 AM]
  3. i just wanna post as a convert to getters/setters and dropping hungarian notation. first about hungarian notation: if you look at this g_World.m_GraphicsEngine.m_SceneGraph.m_CharacterManager and now this... World.GraphicsEngine.SceneGraph.CharacterManager that sort of seals it for me ... especially vs. this g_pWorld->m_pGraphicsEngine->m_pSceneGraph->m_pCharacterManager please take this with a grain of salt as i understand this line of code is a sign of a much bigger issue(which usually happens in this case anyways) second about getters/setters: i really thought they were pointless as hell for the longest time. until i saw this... [source language=c++] void setName(string name) { this->name = name; } string getName() { return name; } // and one day... void setName(string name) { /* code to break name apart */ } string getName() { return firstName + lastName; } if we dont have that in place now we would normally remove the name variable and fix all the errors? this is a better standard for this reason. im willing to throw out a far fetched (no im not a satist) idea.... look to java for good standards? =0) (please no flames lol!) p.s. A + B = really ugly World.getGraphicsEngine().get...etc and thus y i said take it with a grain of salt
  4. yoshscout

    Stuttering

    Profiling can get nasty. Hiccups are worse. Best thing to do is to drop in profiling calls inside your main loop. Then, section it off to a particular function call. This may take a few iterative passes to locate the issue. Here are a few things to check for starters. The 2-4Mb texture on the skydome is prolly the issue if you aren't using mip maps(it can cache thrash pretty randomly). CPU issues: (multi-threaded apps)Thread synchronization issues. Frequently File I/O calls Networking code(this usually varies a lot frame to frame) Too many batches(usually not hiccups) GPU issues: Usually fill limited issues. Frequently cache thrashing Big Textures without mip maps in the distance. Nasty pixel shaders esp. with dynamic branching In any event, you have a question to ask yourself. Is this something that is a bug that needs to be addressed right now or would it be better addressed after you finish your project(in an optimization pass)? If now is the time, (I'd opt for game logic instead ) then you need to select some sort of profiling tool or roll your own. You need to be able to tell aggregately how much time a code block is taking each fram so that you can section off your app's code and you will see where the problem really lies.
  5. yoshscout

    Getting to Senior Lead level

    I really want to say how much I appreciate the good responses here. I think most of what I have learned for project management has been from collaboration. I frequent local meet-ups. I do want to point out that you can manage a project with 1 developer, and failing to do so will almost inevitably lead to a snowball of spaghetti that is impossible to maintain. I think that was an important thing to realize for me. I treat my own projects as though I am a team of 1. Obviously, surrounding yourself with experts really does help. I don't have a particular mentor per say, but talking to a few people with 10-30 years sure does help. They almost always have the most brilliant insight(and yes its usually a lot simpler than what it seems).
  6. yoshscout

    C++: API for GUI

    I think (if I read you correctly) your saying you want a form that you can fill out and change an embedded viewport. Just check out the MFC / DirectX tutorials. Generate yourself a new dialog based application and embed DirectX into it. Lay your form out with the resource editor and VS will even generate handlers for when things happen on your form if you want. This is only a quick simulation/tool type project correct? P.S. I think he means simplicity over configurability/customizability.
  7. How do you get to that level? Most people are going to say experience, time hacking out software, etc. I just don't buy it because, I could write engine code for 10 years and never progress. Let me give some background. I have been programming hobby style for a while now. I want to get the required reading, etc. to get to the next level. I can manage myself. I am doing it on a contract basis in web design right now. I am familiar with a lot of design patterns and more importantly why to use them. I know how to deal with subversion( I like planning in TRAC ). I guess it's dumb for me to be asking this question when, I am not even in the industry, and the contract web development I am doing is all solo. The big things that developers recently mentioned here is the way they struggle with deadlines. Then, there are graduates coming out that can work solo that have no idea what subversion is. I think I am beyond that point. I can plan out the development and I have to estimate(competitively) the web software I am doing now. I usually do that budgeting based on hours I believe a task will take. I just want to be the best programmer I can when I transition so that I can put bread on the table.
  8. yoshscout

    GLUT's glutMainLoop()

    AFAIK all of the source should have came with the download you received if your trying to remove the fact that glutMainLoop doesnt return, i would just recommend SDL
  9. yoshscout

    Lunar Lander in OpenGl

    Video tutorials I wish they had that when i started learning Direct X. It's hilarious when he is like... and u put a 1 here because well just do it for now
  10. this is really fascinating stuff. im thinking about applying this to my models before i save them into my custom format. tom says that going over 32 isnt recommended because it takes longer and doesnt produce better results, but couldnt that be from his card not being able to caches a larger section of vertices.(although i doubt he doesnt have a beast of a card lol) i was kind of thinking about exporting models into a ready for cache method and running some test on the client machine to determine best cache size and reconfiguring meshes for their machine. its kinda wild but everything to get that extra push. i remember reading in here somewhere that pre-T&L cache could hold a whole mesh if you stayed in the < 65535 ie. 16 bit indexes. that would be around the order of 2-4Mbs im guessing i dont know haha what kind of crazy tangent am i on?
  11. yoshscout

    Porting camera from DirectX

    And the fix, =0) needed to change the row(col?) of translation, i am about as happy as president bush when he gets something right at this moment [source lang=cpp] mView.at(0,0) = vXAxis.x; mView.at(1,0) = vXAxis.y; mView.at(2,0) = vXAxis.z; mView.at(3,0) = m_vPlayer.dotProduct(vXAxis); mView.at(0,1) = vYAxis.x; mView.at(1,1) = vYAxis.y; mView.at(2,1) = vYAxis.z; mView.at(3,1) = -m_vPlayer.dotProduct(vYAxis); mView.at(0,2) = vZAxis.x; mView.at(1,2) = vZAxis.y; mView.at(2,2) = vZAxis.z; mView.at(3,2) = m_vPlayer.dotProduct(vZAxis); mView.at(0,3) = 0.0f; mView.at(1,3) = 0.0f; mView.at(2,3) = 0.0f; mView.at(3,3) = 1.0f; Edit: had row order wrong as well Could anyone help me to understand why i should take the dot product of the translation and the axises? its done in the microsoft documentation on all the look at functions but it doesnt make sense. [Edited by - yoshscout on October 6, 2007 11:43:18 PM]
  12. yoshscout

    Urgent Question/Riddle

    wow thanks mate u helped me solved my ogl camera port code no one wanted to help with lol ahhh the sweet feeling of success....
  13. yoshscout

    Porting camera from DirectX

    the camera is doing something funny with z-depth
  14. my camera has a pitch and a yaw. i take a forward vector and an up vector, i apply pitch then yaw to both and take cross product to get the 3rd vector forming all the 3 Axises. I had this code working in Direct3D but i dont think i ported it correctly. I can look up down left right but MoveForward is not working. The vector translates appropriately but it doesn't create the right matrix. It has to be something i am doing with the dotProduct. here is the problem code void CDOCamera::MoveForward(GLfloat distance) { m_vPlayer.x += m_vHeading.x*distance; m_vPlayer.z += m_vHeading.z*distance; m_bDirty = true; } void CDOCamera::UpdateMatrix() { if(!m_bDirty) return; m_vHeading.x = (GLfloat)cos(m_fYaw+(M_PI*0.5f)); m_vHeading.z = (GLfloat)sin(m_fYaw+(M_PI*0.5f)); m_vHeading.y = 0.0f; Vec3f vZAxis, vXAxis, vYAxis; vZAxis.y = (GLfloat)sin(m_fPitch); vZAxis.z = (GLfloat)cos(m_fPitch); vZAxis.x = m_vHeading.x*vZAxis.z; vZAxis.z = m_vHeading.z*vZAxis.z; vYAxis.y = (GLfloat)sin(m_fPitch+(M_PI*0.50f)); vYAxis.z = (GLfloat)cos(m_fPitch+(M_PI*0.50f)); vYAxis.x = m_vHeading.x*vYAxis.z; vYAxis.z = m_vHeading.z*vYAxis.z; vXAxis = vZAxis.crossProduct(vYAxis); mView.at(0,0) = vXAxis.x; mView.at(0,1) = vXAxis.y; mView.at(0,2) = vXAxis.z; mView.at(0,3) = -m_vPlayer.dotProduct(vXAxis); mView.at(1,0) = vYAxis.x; mView.at(1,1) = vYAxis.y; mView.at(1,2) = vYAxis.z; mView.at(1,3) = -m_vPlayer.dotProduct(vYAxis); mView.at(2,0) = vZAxis.x; mView.at(2,1) = vZAxis.y; mView.at(2,2) = vZAxis.z; mView.at(2,3) = -m_vPlayer.dotProduct(vZAxis); mView.at(3,0) = 0.0f; mView.at(3,1) = 0.0f; mView.at(3,2) = 0.0f; mView.at(3,3) = 1.0f; mViewProj = mProj*mView; m_bDirty = false; }
  15. yoshscout

    Programming is literally KILLING me

    i think im going to recommend coldacid's advice as the best thing that you could do. whats killing you is that your not getting anything accomplished and you have a huge desire and you are putting in lots of effort and its not coming very easily at all. bothers me sometimes as well. do this. plan your game and when you find something exciting that you know you can implement do it. take out some pen and paper and draw out your system. then implement it in code. its really not that bad when you try it this way. if you sit at the PC and try to just write code u will get nowhere almost every time. if you cant work out the maths on paper what makes you think that you can do it in c++ =) let me give example, your game needs a resource manager, a 3d camera, networking messages... you start thinking about it and you really dont know what to do about networking messages. you do, however, got a basic grasp of 3d now but not enough to know how your gonna manage your resources. the 3d camera will be best part to start on so you start there because it seems like a challenge you can handle and theres some maths your excited about working out you start there and you work out the whole camera on paper. but u need something to look at so you render a basic basic triangle at the origin. really easy render. then u get ur camera class working pretty good and now u can start playing around with loading some models in. it will be a lot easier with a working camera =) and once u played around enough you are ready to manage those puppies. thats how i work, it works pretty good
  • 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!