I can not say anything about commercial tools, but I can give you a brief overview of a couple of free cross platform tools I've used in the past for project planning.
For simple projects, you can try GanttProject, which is a very easy to use local application but has limited support for planning and scheduling. It supports editable Gantt charts, tasks with dependencies and assigning resources.
It requires a working Java environment.
ProjectLibre is similar to GanttProject, but has additional features like task network diagrams and better reporting.
Redmine is a web application, that could also be used for project tracking, but it is more suitable for issue tracking than for project planning. Redmine can be hosted on a local server.
For more advanced projects you can try TaskJuggler, which has a very powerful scheduler and customizable reports.
It is a command line tool that processes project definitions from a text file.
Due to it's domain specific language, it has a steep learning curve and tracking projects can become quite difficult.
It requires a working Ruby environment.
Disclosure: I'm the author of TaskFalcon.
TaskFalcon is a project/task scheduler, similar to TaskJuggler. It uses project definitions from text files, but has a simpler syntax and better support for tracking projects. It has still a steeper learning curve than graphical applications like GanttProject.
There is a Visual Studio Code extension to support editing the project files.