1 mars 2010

Path finding: One for all and more for me

Somewhere between New Year and School start, I and my friend realized that our plans for building and programming two robots with path finding and simultaneously work with the final project to make a game were waaaay too unrealistic due to time press and resources. So we've been trying to find a new subject, that is more related to our project, to write about.

In the final project, my part right now is taking care of the NPC's AI (non player character's artificial intelligence) (say that five times!). It's very difficult, that's one thing I've learnt so far. I have huge problems finding good resources and tutorials, so I've been struggling like hell with it. We're doing the scripting in C#, I use the VC# Express to edit, since Visual Studio is awesome aaaand you can integrate it with the Unity3D game engine, which we use for the game development as I've mentioned before. (If you happen to know good AI tuts, or can point me at the right direction, please share the information!)

I've been waiting for help and some tutoring for like two months now and I keep asking the teacher who's responsible for our course when to get us a tutor, but everyone's so busy and everything is so chaotic, there's no one to ask for help yet. I can't imagine why the teacher didn't find tutors during the previous semester, it really bothers me.

But enough about complaining!

Individual Project
To get an A or a B in the final project, we're supposed to focus on something specific and write/blog about the process of learning more about that specific thing, making an individual project out of it. I've decided to focus on the NPC's path finding, and I want to implement the A* algorithm to our NPCs, which will behave differently while chasing the player. Quite a task for me, imo!
The good thing is, I've implemented the Dijkstra's algorithm some year ago, in Java, so I have a clue on what it should look like and what to expect.

... so to wrap it up, we've been thinking about what to write about for our thesis, and at last I had enough and told my friend that we should write about path finding. She was worried about me doing all the work, since I'm the one responsible for the AI in the game, but that's the thing - I'm going to do all the work anyway, she could help me research and write the thesis, I've come to dislike such academic writing for some reason. So I've written a promemoria and sent it to the teacher and he thinks it's a great subject to write about!
And now, the real battle begins!

3 kommentarer:

  1. I have a working implementation of A* in C++ that is easily portable to C# if you are interested. Let me know and I will wrap it up with some hopefully easy to follow instructions...

    A* is not very simple... I will give you that, and to get it to work in C# you will have to read through the code. Nothing is better than looking at how someone did something and trying to reproduce it in another language for good education.

    Let me know.

    SvaraRadera
  2. That would be awesome! Thanks man, I appreciate your help, this will indeed be good for me to learn :D I've been trying to find good tutorials on that but have failed, and the code I've found on the net tend to be incomprehensable. This is one of the reasons I wanted to write about path finding, so that I can make a pedagogic tutorial about it later. Again, thanks!

    SvaraRadera
  3. Just send me a private email at crsteinb@gmail.com so I know where to send the files to.
    Hey its not a problem at all, A* is a bit complicated so the best way to learn it is to look at raw implementations. I hope that the implementation that I have is also not too complicated for you. If you run into problems you can shoot me an email or find me on twitter.

    SvaraRadera