You can check out "handmade hero"[1] or "handmade quake"[2] on the software, game, c/c++ side. Then, you can try a port to java / android.
[1] https://handmadehero.org [2] http://philipbuuck.com/announcing-handmade-quake
[1] https://handmadehero.org [2] http://philipbuuck.com/announcing-handmade-quake