Well, it should not be much difficult. You need only slug in categories, topics and posts table. Slug is generated on the basis of title, and check if slug already exists (if so just add "+1" in link.
For example, title is: "how to build website?", slug will be "how-to-build-website" (also you can skip short words (2-3 char length). If this slug already exists, just add +1, like "how-to-build-website-2".
I don't see purpose of links like:
index.php?u=/topic/{TOPIC_ID}/{TOPIC_TITLE/SLUG}
It should be simply:
topic/{TOPIC_ID}/slug/
forum/{FORUM_ID}/slug/
Or make slugs to be unique and remove topic/TOPIC_ID/ in links. 
Well, it should not be much difficult. You need only slug in categories, topics and posts table. Slug is generated on the basis of title, and check if slug already exists (if so just add "+1" in link.
For example, title is: "how to build website?", slug will be "how-to-build-website" (also you can skip short words (2-3 char length). If this slug already exists, just add +1, like "how-to-build-website-2".
I don't see purpose of links like:
index.php?u=/topic/{TOPIC_ID}/{TOPIC_TITLE/SLUG}
It should be simply:
topic/{TOPIC_ID}/slug/
forum/{FORUM_ID}/slug/
Or make slugs to be unique and remove topic/TOPIC_ID/ in links. :)