DaveWH

Member
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

108 Neutral

About DaveWH

  • Rank
    Newbie
  1. SDL.Net Questions

    Well you can draw onto any surface, but that I know of you only have one screen (unless you can somehow use more for buffering purposes). I'm realy not happy with the "follow the leaders" idiology here though. The reason I started doing it that way is because it was easier than what I was trying to do by passing a reference to the screen object into all the classes that needed access to it. I realize now that I could have just implimented the screen as public static for that reason though.
  2. [2D Game] C# Xna or C++ SFML

    If you decide to stick with C++ you might want to consider usind SDL. I haven't used SFML, but SDL is pretty simple. It might be getting outdated, but you will find a massive amount of documentation and tutorials available, while SFML seems to have little more explained about it than it's API reference. There is also SDL.Net if you go with C#, but XNA seems pretty popular in that area.
  3. SDL.Net Questions

    Well +1 for being the only person to bother answering me. [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img] The first question earned me the Tumbleweed award on Stack Overflow. It appears that either: a) no one knows or b) no one cares. *sigh*
  4. SDL.Net Questions

    I have a couple noobish questions about SDL.Net. The first is this: Every SDL or SdlDotNet tutorial I have seen has used a defined Surface as the main screen. For example [source lang="csharp"]private static Surface videoscreen; videoscreen = SetVideoMode(800, 600, 16, false, false, false, true); videoscreen.Fill(Color.Black); videoscreen.Blit(sprite); videoscreen.Update();[/source] However, while trying to build a game with SdlDotNet I noticed that I can simply use Video.Screen for any action I normally would have preformed on the Surface screen. For example: [source lang="csharp"]Video.SetVideoMode(800, 600, 16, false, false, false, true); Video.Screen.Fill(Color.Black); Video.Screen.Blit(sprite); Video.Screen.Update();[/source] Is there a reason why everyone still uses a defined Surface? I'm assuming there is some sort of performance or stability issue that I haven't encountered within the scope of my little game, but I would like to know in case I might run into trouble later on. My next question is about freeing unused surfaces. I understand that it is good practice to free any surfaces that are no longer in use while the program is running to free up memory space, but is it necessary to free all surfaces when the program closes? Can Windows (or other OSs) tell that the program associated with that memory space is no longer running and allow other programs to use it? If the program using SDL crashes what happens with the allocated memory?
  5. It would help if you specified whether you are refering to 2d or 3d games. Ashaman has already given a basic explaination of how different equipment is done in 3d games (which I know nothing about), so I will attempt to offer some insight on the 2d way of doing it. Keeping seperate images of for each character with each equipment variation would require a rediculous number of files and hard drive space, not to mention managing them all in your code. I would say overlays are the way to go. However, if you are going to be rendering a lot of characters with variable equipment, especially at higher resolution, it could start to slow down your game. I think the solution in this case is to perfrom the overlays only at load time or when equipment is changed then store the resulting image so that it can be drawn at render time without dealing with the overlays. Idealy you would have an entire sprite sheet for the character and for each item you would have a sprite sheet that would overlay onto the character's. After overlaying all of the equipment and storing the resulting image, your game would only have to draw the character's sprite like it normally would.