Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

116 Neutral

About Soaps79

  • Rank
  1. Soaps79

    Video Game Architecture

    I learned tons reading Game Coding Complete and the blog at http://gamearchitect.net/, then also digging through the XNA engine at http://xnafinalengine.codeplex.com/. Thank you for showing that diagram of C4, I'd love to read more about the high-level overview. Does anyone have more links to discussions or breakdowns of engine designs? I have implemented small ones in different school projects, but am now looking to really cement the same concept as the OP; the separation of graphics and game logic.
  2. Soaps79

    Need help Xna Xml Deserializing

    When you go to serialize, you would transfer the Dictionary into a List, then serialize the List instead. When you deserialize, you pull the data into a List, then move it into a Dictionary for your game object to use. I don't know your program setup, but this could either be done in the object that is going to be serialized, or in whichever object is handling your serialization.
  3. Soaps79

    Need help Xna Xml Deserializing

    The problem is with your Dictionary, which is not a serializable object. I had the same problem a while back, and ended up transferring the data into a List before serializing, much like this: http://www.dotnetperls.com/convert-dictionary-list This was not a problem for me because it was during a larger load time, but may hurt performance if it's a regular operation, you'd have to investigate that.
  4. Sounds like your jargon is a bit mixed up, but I think we get the point. You're looking to create game assets in 3DS Max for use in an XNA project? Yes. There may be other ways, but the one you see used most often is to export a Max model as a .x file, which XNA can easily read from. I use Pandasoft's exporter. You install it, then open your model in Max and go to Export and choose .x. http://www.andytather.co.uk/Panda/directxmax_downloads.aspx
  5. Soaps79

    creating a monster stats curve

    I did something similar on a project in the past, but what made it easier was a modifier in the middle denoting their "Rank". I had 4 Ranks: Minion, Lieutenant, Boss and EliteBoss (was a CoH fanatic). So I had their base stats, then ran them through the Rank modifier, then through the Level one. I was trying to recreate what you see in a lot of games, where the first time you fight something, it's pretty hard, then before you know it that same enemy is one you mow through in droves. To get this effect, you would spawn him the first time as a Level 1 Boss, then you can reuse him as say a Level 3 Minion. Don't forget, throwing a different color into your Draw routine can go a long way for variety too. For your specific case, you could probably get more effective answers your question if you gave some idea on what kind of stats you have and how they work.
  6. Soaps79

    shared_ptr in VS 2008

    I grabbed the Boost library and am working on extracting shared_ptr using the BCP tool. My teammate is a good guy and programmer, he's just a bit obsessed with work only counting when you do it from scratch. We're starting our Senior Project 6 months early, but I'd rather spend the time on architecture than troubleshooting a homemade smart pointer. It's my first stab at a large MVC project, so I've got my work cut out for me. Thanks for the input guys. I'm glad to know I shouldn't feel like I'm "cutting corners" using the library. If programming for a good sized game company, what's the likelihood that they'd be using smart pointers? Are they everywhere, or just quarantined to systems that make the most use of them? Also, are you guys using the use std/boost implementations, or in-house versions?
  7. Soaps79

    shared_ptr in VS 2008

    I thought the same thing, about it being AFTER VS2008, but then I read that it was included in a Feature Pack and a few sources say it should be included in SP1. I just wasn't sure if there was a header I needed to include in the IDE settings that it may not have added automatically. My problem is, this is a school project, and worked on on school desktops often. This kills any thoughts of Boost, since we don't have admin privileges to install anything. Could I download the library and just include the appropriate headers locally, or would this cause problems? Also, I have a teammate who is always trying to stay "pure", and after the barking about smart pointers. trying to talk him into using an outside library may be more trouble than it's worth. I'm just bummed because I love the system I wrote, but it is very dependent on smart pointers, and it would require a lot of (hackish) rewriting if it had to manage its own memory. Thanks for the input guys, I'll have to look into using Boost classes without installing it.
  8. Sorry for the lame question, but I can't find a definitive answer anywhere. I wrote a system that I really like using C++ in VS 2010. I #include'd <memory>, and had access to std::shared_ptr. I am now trying to bring the system into a team project I am working on in VS 2008. I read that shared_ptr and other classes/libraries were not originally in VS2008, but were added in SP1. My VS About window says: Version 9.0.21022.8 RTM Microsoft .NET Framework Version 3.5 SP1 Shouldn't I have access to shared_ptr's? I tried: [source lang="cpp"] #include <memory> using std::shared_ptr; [/source] and [source lang="cpp"] #include <memory> using std::tr1::shared_ptr; [/source] Both told me that shared_ptr is not a member of the namespace. Any help would be much appreciated, thank you.
  9. I am not familiar with the disease, so if is more crippling than I am seeing it, I apologize. I started programming about two years ago, after being out of high school and away from math (which I never shined in) for almost 15 years. For a lot of programmers around me, it seems like math is a reflex while I have to walk through it all step by step. It can slow you down, sure, but approaching code as problem/puzzle solving and just putting the time in has served me just fine. And, if you read these forums at all frequently, knowing Apoch has it should be inspiration, because that guy comes off like a guru in these parts.
  10. I've been on this mission for a long time as well. One can't argue with the suggestions to use other GUI libraries to get a handle on different API's. Once I did this, I found the GWEN UI. You can grab the entire codebase, I learned tons sifting through it. http://code.google.com/p/gwen/
  11. Great explanation of friend classes thank you. That is exactly what I thought they did, but I did not realize that you could get around variables being private through pointer use (as bad practice as it may be). Yes, the object itself will instantiate the Tween objects, add them into its vector, and delete them when they finish (and delete any remaining when the object's destructor is called). No other objects will have access to this vector or the individual Tweens. This was somewhat like an approach my partner and I discussed, where upon Tween instantiation you would pass it a function pointer that would later be used to pass the tween'd value back to the object every Update(). This approach would have worked, but I am trying hard to maintain the simple/clean interface for the Tween class, and felt that the function pointers made it feel sloppy and unnecessarily abstract. Thanks again for the assistance. Also, is this concept something that is done regularly but I just never ran across? It seems like a real handy class to have around, but I have never seen it before.
  12. The protected data that I was talking about would be members of an Object or Sprite class, like its (protected) position or scale variables. I was looking to give the Tween a reference to a member variable at the Tween's instantiation, and just let it run until it dies. Then on each render cycle, the object would be drawn using its member variables, which have been manipulated by the Tween in its Update() function. The idea of using the abstract base class is something I will explore when I go back to it tonight, thanks for your help.
  13. I have an idea for a Tween class that looks great on paper, but I am running into trouble trying to implement it. I want to be able to create Tween objects that take in a variable, and adjust it in different ways across a given time span. I then want to be able to have objects instantiate Tweens which will run automated. Essentially I want to be able to: [source cpp] // give object a Tween* vector vector<Tween*> tweenVec; // somewhere within the Object's code // to tween position from its current (1, 1) to (100, 100) over 1000ms Tween<float>* tempTween = new Tween<float>( &m_position.X, 100, 1000 ) tweenVec.add( tempTween ); tempTween = new Tween<float>( &m_position.Y, 100, 1000 ) tweenVec.add( tempTween ); // then in the Object's update code: if ( !tweenVec.empty() ) { for each tween t t->update( currentTime ) if t->isFinished // delete the object and remove the pointer from the vector } [/source] I thought, through my limited understanding of friends, that if I specified the Tween class as a friend in the Object's declaration code that it could access protected members. I tried making a Tween<T> a friend, but then it wanted me to also make Object a template, which is understandable but very undesirable. How would someone go about implementing this so object could have a vector of Tween pointers that have access to its protected data? Would knowing which data types it will work on be helpful? As in, explicitly making it friends with Tween<int>, Tween<float> etc? Also, will all of this be undone when I make derived Tweens with specific agorithms?
  14. Soaps79

    Ps2 game programming

    If this is the case, and the game is for personal use only, you could get an adapter: http://www.amazon.com/PS2-USB-Dual-Controller-Adapter-Converter/dp/B000F6BGXY/ref=sr_1_1?ie=UTF8&qid=1311372622&sr=8-1 Here is someone getting the controller to work under DirectX: http://www.gamedev.net/topic/552685-directx-input-with-ps3-controller/
  15. I understand that my approach could be brittle, I haven't worked on any huge projects. I guess what I don't understand about this approach is how you fill the "short list". Would you have the entities that want to continue updating make a call to say "Add me to the short list," before switching to updating just that one? I'm just thinking that you won't know at the start of the program who would be in there, because for instance, maybe the player has a party consisting of 4 characters that would need to be in there on their own when they level.
  • 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!