Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 20 Jul 2007
Offline Last Active May 25 2014 02:41 PM

Topics I've Started

[Flocking] How to improve performance?

12 April 2014 - 04:18 PM

I'm doing a simulation of flying birds for my thesis.


I am using the usual steering behaviors: Cohesion, Separation, Velocity Match and Obstacle Avoidance (to avoid terrain).

The program is written in C# and uses Unity3D. I have disabled physics for the boids.


I'm also using alglib to calculate K-nearest neighbors using AKNN. alglib uses k-d trees for this.


So here are the fps I get:

100 boids = 60 fps

200 boids = 35 fps

300 boids = 23 fps

500 boids = 13 fps

1000 boids = 5 fps


As the number of boids increases, performance degrades rapidly. I'd like to do something to improve it, but sadly I am using the free version of unity3D, which does not have a profiler.


Is the performance I'm getting good? I haven't found results online for this.

Should I find another library instead of alglib?


By the way, you can see the program online here. Requires unity3d plugin.

[Flocking] Avoid many "sub-flocks" in Cohesion

05 April 2014 - 08:20 AM

Hi, I am developing a simulation of flocking for my thesis.


I am using Unity3D and C#.


For fast calculation of K-nearest neighbors I use the alglib library, which provides methods for it (uses a K-D tree). It also supports approximate knn for faster results, which is what I'm using since I don't need 100% accuracy.



In my tests I have 500 boids (birds) flying around. They are spawned near to each other so they form a swarm. However, after some seconds, this big swarm begins to break into smaller ones. I'm 99% certain that this is because for Cohesion's a-knn I use 30 for k, which means take into account the 30 "closest" (not really the 30 closest since I'm using aknn).


This has the effect that I described above - many small swarms of about 30 boids each, which is very logical since each boid considers a neighborhood of 30 closest boids for Cohesion).




When I change the k for Cohesion to bigger numbers (e.g 100) less swarms are formed. If I set k to 500 only one is formed. But this has a very big downside.

For k = 30, I get ~20 fps

For k = 500, I get ~3 fps

[a-knn epsilon is 50.0 for both)


Is there a solution to this? I'd like less swarms but better performance.

Is alglib slow? I couldn't find something else... I'm not doing anything special in my code, just the usual behaviors - Cohesion, Separation and Velocity Match. And one more, Cohesion to an anchor object so the flock will follow a path I want.


Thanks in advance.



Review my portfolio

15 March 2014 - 10:39 PM



In June I will be finishing my studies in University and I would like to work in the games industry.

So I made a portfolio site (not on my own, using another website that has the tools to do so) and put stuff I made in it.


I would appreciate your opinions, critiques or anything else I can improve :)




Thank you.

question regarding resume

06 January 2014 - 09:33 AM

1) In my resume am I supposed to describe projects that I have created / participated in?

By the way I have made a small website for my portfolio, in which I plan to list the games/applications I have made. Do I need to describe them in the resume as well? If yes, to what degree?


2) This is a sample one I saw to write mine: http://www.nova.edu/career/resources/forms/resume_computer_science.pdf

It lists "experience", but I guess that actually means "work experience", which I do not have, so I did not include that section in mine.


3) This is my resume for far:

Do I need to put more stuff into it?

Minas Mina


[email is here]


Computer Science Student







  • University: University Of Cyprus

  • Major: Computer Science

  • Current GPA: 8.38 (out of 10)

  • Expected graduation: June 2014

  • Languages: Greek, English



  • Programming Languages: C, C++, C#, D, Java

  • Platforms: Android, Play framework, XNA, Box2D, Unity3D, SDL, Haaf's Game Engine, irrklang

  • IDEs: Eclipse, MonoDevelop, Visual Studio

  • Operating systems: Windows (XP, Vista, 7), Android, Linux (Ubuntu)


Thank you and sorry for my English.

Mission system

26 September 2013 - 06:59 AM

In my game I want to have missions/quests for the player to complete.


So I am thinking how I should proceed into implementing it.

As I understand it, there will be a Mission base class, where the other missions/quests will derive from, and implement some methods.


Some missions will be similar though, and I don't want to copy-paste code everywhere. My idea is to have some classes that are the most basic missions, e.g:

1) Bring an item somewhere or to someone

2) Kill one or more enemy

3) Escape from one or more enemy

4) Go from location A to location B (in a given time or not)

5) Drive an enemy away from a location

6) Make an enemy go to some location

7) Follow an ally

8) Avoiding being spotted by someone or for some time


Then I can combine those basic missions to make some more complex ones. E.g a mission where the player must bring an item to someone (1) while at the same time avoiding being spotted (8).


What do you think of this approach?

How are mission systems usually implemented?