Написание мода было бы хорошей отправной точкой.
Начало на обозначенной территории: ванильная игра. Изменить вещи. Посмотрите на код отказов гранаты. Заставь его подпрыгивать дальше. Добавьте прогноз на стороне клиента (который уже есть у не прыгучих снарядов).
Добавить телепортационное оружие. Он расскажет вам больше об обнаружении столкновений, чем вы хотели бы знать.
Есть несколько ключевых функций, которые обрабатывают большую часть игры: движок экспорта, вызов trap_ *. Может быть очень полезно узнать, что именно с ними делают моды, прежде чем открывать код движка и смотреть на их реализацию.
Например, он может рассказать вам больше о движке, чтобы знать, что вам нужно вызывать LinkEntity каждый раз, когда сущность перемещается, или иначе его позиция в дереве BSP игры не обновляется, и последующие вызовы движка могут его игнорировать, чем знать как именно хранится дерево и как к нему осуществляется доступ.