I am programming a game in java, and as the question title suggestions i am using public fields in my classes. (for the time being)
From what i have seen public fields a
In Java, using private fields with getters/setters is the recommend practice, provided external clients of your class really need access to those fields.
Otherwise keep them as private fields and simply don't provide a getter/setter.
There are various reasons why this is a best practice:
(p.s. unrelated to your question, but you'd better not declare backPack as an ArrayList. Declare as List; code to interface, not to implementation)