Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8521257
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 11, 20262026-06-11T06:46:18+00:00 2026-06-11T06:46:18+00:00

I have a list of entities which implement an ICollidable interface. This interface is

  • 0

I have a list of entities which implement an ICollidable interface. This interface is used to resolve collisions between entities. My entities are thus:

  • Players
  • Enemies
  • Projectiles
  • Items
  • Tiles

On each game update (about 60 t/s), I am clearing the list and adding the current entities based on the game state. I am accomplishing this via:

collidableEntities.Clear();
collidableEntities.AddRange(players);
collidableEntities.AddRange(enemies);
collidableEntities.AddRange(projectiles);
collidableEntities.AddRange(items);
collidableEntities.AddRange(camera.VisibleTiles);

Everything works fine until I add the visible tiles to the list. The first ~1-2 seconds of running the game loop causes a visible hiccup that delays drawing (so I can see a jitter in the rendering). I can literally remove/add the line that adds the tiles and see the jitter occur and not occur, so I have narrowed it down to that line.

My question is, why? The list of VisibleTiles is about 450-500 tiles, so it’s really not that much data. Each tile contains a Texture2D (image) and a Vector2 (position) to determine what is rendered and where. I’m going to keep looking, but from the top of my head, I can’t understand why only the first 1-2 seconds hiccups but is then smooth from there on out.

Any advice is appreciated.

Update

I have tried increasing the initial capacity to an approximate amount of elements, but no difference was observed.

Update

As requested, here is the code for camera.VisibleTiles

public List<Tile>
{
    get { return this.visibleTiles; }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-11T06:46:20+00:00Added an answer on June 11, 2026 at 6:46 am

    Whenever you have a performance issue like this, the correct response is not to guess at what possible causes might be; the correct response is to profile the application. There are a number of options available; I’m sure you can find suggestions here on StackOverflow.

    However, I’m feeling lucky today, so I’m going to ignore the advice I just gave you and take a wild guess. I will explain my reasoning, which I hope will be helpful in diagnosing such problems in the future.

    The fact that the problem you describe only happens once and only at the beginning of gameplay leads me to believe that it’s not anything inherent to the functionality of the list itself, or of the collision logic. This is assuming, of course, that the number of objects in the list is basically constant across this period of time. If it was caused by either of these, I would expect it to happen every frame.

    Therefore I suspect the garbage collector. You’re likely to see GC happening right at the beginning of the game-in other words, right after you’ve loaded all of your massive assets into memory. You’re also likely to see it happen at seemingly random points in the code, because any object you allocate can theoretically push it over the edge into a collection.

    My guess is this: when you load your game, the assets you create are generating a large amount of collection pressure which is nonetheless not sufficient to trigger a collection. As you allocate objects during the course of gameplay (in this case, as a result of resizing the list), it is increasing the collection pressure to the point where the GC finally decides to activate, causing the jitter you observe. Once the GC has run, and all of the appropriate objects have been relegated to their correct generations, the jitter stops.

    As I said, this is just a guess, albeit an educated one. It is, however, simple to test. Add a call to GC.Collect(2) prior to entering your render loop. If I’m right, the jitter should go away.

    If you want to be more thorough than that-and I highly recommend it-Microsoft provides a tool which is useful for debugging memory issues, the CLR Profiler. This tool will show you exactly when collections are occurring and why. It’s very useful for XNA development.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a list of entities which contain some of it fields as other
Q: I have a list of objects like this: List<object> entities = GetallEntities(); The
In my Core Data model I have two entities: List and Patient. List has
I have a method that takes a list of entities ( Class es) and
I have to order a list of child entities by dates. Right now I
I have an entity that contains a list of other entities. The list of
in an app i have an entity that contains a list of other entities
I have a bunch of entities I'd like to list in a wiki-like manner,
I have a Core Data store which contains a number of MediaItem entities that
I want to write a class which provides basically a list of entries. This

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.