Also if I remember correctly jar files are really just zip files. You can "extract" the jar file and look at the class files inside of it... I don't know if you will be able to do much with the class files but if you extract the jar file to a temp directory and then iterate through the files you should be able to determine the names of things potentially.
I think a lot of games likely determine the position of the troops when you click to move them. Some games even have a little graphic to show where each of the units will be standing after you move them like:
If you know the start and end positions then you can have each unit do their pathfinding individually and use steering behaviors to keep units from running into each other.
I am not really sure there are any advantages to starting directly from DirectX or OpenGL unless you really want to know the guts of a game/game engine. If your goal is to make games then the existing engines (like Unreal) are a great place to start and will enable you to be productive very quickly. Using Unreal gives you many thousands of development hours worth of work for free and it allows you to start from a stable and well developed toolset. The initial release of the "Unreal Engine" was 17 years ago in 1998... It is on its fourth version... While I doubt much of the original code is still there, I think it speaks to the level of effort involved.
"On August 17, 2005, Mark Rein, the vice-president of Epic Games, revealed that Unreal Engine 4 had been in development since 2003." .
Unreal Engine 3 was around 2 million lines of code. I bet Unreal Engine 4 has more. Let's assume you can code 50 lines of code per day (which in some estimates is five times more than average). That would mean it would take 40,000 days or 109 years of your time to create something with 2 million lines of code if it took you wrote 50 lines of code a day (and every day at that). If you were some ultra talented programmer who could magically turn out 500 lines a day every single day it would still take 11 years of nonstop time.
The thing to remember is that games are software. I always think it is good to really understand the programming fundamentals. It can be good to focus on the basics of a language (make console applications, ect) to really understand how the language works.
Make sure you understand if statements, loop statements, arrays, data structures (lists, maps, sets, ...), file I/O, functions, and OOP concepts. These things will help you a lot when it comes to programming a game.