Results 1 to 10 of 23

Thread: PGDmC: Knight Fever

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    There's two images, the drawn background image, and another which is transparent with black pixels over it which is the collision mask. The game loads up the mask, extracts every fourth pixel for the alpha value, and then the player and other game objects use that array of values to check whether it's solid or not.

    Since OpenGL can't hold textures larger than 1024x1024 (or so I've heard), I've had to split each level into multiple collision masks. Having a little trouble getting collision to flow seamlessly from one mask to the adjacent ones, but It's coming together.

    Edit: I only decided to use (what I assume is) a needlessly complex way of doing it because a) I wanted my artist and myself to have freedom making the levels however we wanted, which when using a tile system can be limiting, and b) I may as well learn how to do something new if I get the chance

  2. #2
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    Quote Originally Posted by Winwardo View Post
    Since OpenGL can't hold textures larger than 1024x1024 (or so I've heard), I've had to split each level into multiple collision masks. Having a little trouble getting collision to flow seamlessly from one mask to the adjacent ones, but It's coming together.
    On this... the 1024x1024 texture size limit depends on your computer's hardware. Newer more powerful cards can go higher than this, just be sure to choose a texture size that will match those generation of systems which you want your game to run on. 1024x1024 is a good size for most systems there days, however many would be able to do higher such as 2048 and even 4096 for the higher end video cards.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  3. #3
    Considering that the computers at my school where I want this to be able to play can barely run OpenGL and require all textures to be a power of 2 in size, I thought I'd put it down to 512x512 just incase. It would be using practically the same amount of memory either way, but this way I can be definite that it will run on older machines.
    (We're talking horrible beige clacky keyboards and towers here in some cases, not a pretty sight)

    Thanks for the info though, was not aware of 4096^2 textures being supported at all

  4. #4
    Quote Originally Posted by Winwardo View Post
    Considering that the computers at my school where I want this to be able to play can barely run OpenGL and require all textures to be a power of 2 in size, I thought I'd put it down to 512x512 just incase. It would be using practically the same amount of memory either way, but this way I can be definite that it will run on older machines.
    (We're talking horrible beige clacky keyboards and towers here in some cases, not a pretty sight)
    You mean really old computers? Sounds like 10+ years old. Not that an old computer is useless but it is getting a bit hard to accept computers without at least half-decent GPUs.

  5. #5
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    Also most newer cards, even the fairly older ones mind you, don't nessiccarily need to be 1:1 scale (square). They can be rectangular in size as long as both dimensions are each power of 2. So for example a 'modern day' card should support 512x1024 sized textures, but it never hurts to test this.

    There is a tool that used to be hosted on Delphi3D.com before when the site was still online. It was a great resource from way back that has since turned into a ghost site and eventually inactive. It was called glinfo and when ran, it would tell you exactly what maximum size your textures could be on that system. Great for testing systems and your development system to set yourself a target minimum/maximum for OpenGL version and specs.

    There is this other one now that should work for most platforms that you can develop for using Object Pascal. It's called GLview 3.0 and it'll work on win32/64 and Mac OS X as well as iOS and Android devices too. Maybe see if they'll let you run this program on your school? It was approved for the iPhone/iPad by Apple so that kinda says something. Worked alright when I ran in on my devices.
    Jason McMillen
    Pascal Game Development
    Co-Founder





  6. #6
    Considering that the computers at my school where I want this to be able to play can barely run OpenGL and require all textures to be a power of 2 in size, I thought I'd put it down to 512x512 just incase. It would be using practically the same amount of memory either way, but this way I can be definite that it will run on older machines.
    (We're talking horrible beige clacky keyboards and towers here in some cases, not a pretty sight)

    Thanks for the info though, was not aware of 4096^2 textures being supported at all
    TIP:
    you can determine at runtime the maximum texture size that is allowed using the following code:

    Code:
    var
    max_texturesize: integer;
    
    ....
    
    ....
    glGetIntegerv(GL_MAX_TEXTURE_SIZE, @max_texturesize);
    
    if max_texturesize >= 1024 then
    (code to load 1024X1024 texture)
    else
    (code to handle lower texture sizes)
    Last edited by Jimmy Valavanis; 30-03-2012 at 04:07 PM.

  7. #7
    PGD Staff code_glitch's Avatar
    Join Date
    Oct 2009
    Location
    UK (England, the bigger bit)
    Posts
    933
    Blog Entries
    45
    Wait, theres a limit on tex size? I have a practice of loading everything to textures etc and Ive done 12 megapixels on my Radeon 4330 and GMA 4500MHD no problems at all (the gma was a little sluggish) but other than that no hitches... I would say 2048x2048 is pretty clean nowadays - most screens exceed at least one dimension of that 1024x1024 limit after all

    Now, that is an elegant solution there jimmy - noted for prometheus
    I once tried to change the world. But they wouldn't give me the source code. Damned evil cunning.

  8. #8
    Quote Originally Posted by code_glitch View Post
    Wait, theres a limit on tex size? I have a practice of loading everything to textures etc and Ive done 12 megapixels on my Radeon 4330 and GMA 4500MHD no problems at all (the gma was a little sluggish) but other than that no hitches... I would say 2048x2048 is pretty clean nowadays - most screens exceed at least one dimension of that 1024x1024 limit after all

    Now, that is an elegant solution there jimmy - noted for prometheus
    Yes there is definitely a limit to texture sizes, even on latest video cards If you try and load too many textures, or too large ones, then the card will swap in/out textures and other data to fit and your program will drop FPS like nothing else if you are not careful...

    cheers,
    Paul

  9. #9
    Co-Founder / PGD Elder WILL's Avatar
    Join Date
    Apr 2003
    Location
    Canada
    Posts
    6,107
    Blog Entries
    25
    glGetIntegerv is a very handy function for getting whatever piece of information from your system supports from OpenGL and other non-OpenGL values.

    My system coincidentally can support 2D and 3D textures at 8196x8196 and 8196x8196x8196 respectively. And after trying it on my Mac, I'd highly recommend try out GLview. Tells you a lot of useful information should you get deep into OpenGL and 3D programming.

    GLview webpage
    Jason McMillen
    Pascal Game Development
    Co-Founder





  10. #10
    Another medieval game for the contest! We have 3, right?

    The current graphics looks cool. It reminds me the good old ZX and MSX games.
    No signature provided yet.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •