Where Things Will Go From Here

This commit doesn't actually update anything. It's just a record
showing when my GameFrame project was finished as a Computer Science
class project and became a free time project of mine as part of my
hobby as a game programmer. I've finished everything I intended to have
in my finished Computer Science project. I think that, for the most
part, the project was a success. The only thing that didn't come out
exactly right and that needs more work is probably simulating physical
collisions between objects. Collisions between objects and tiles seem
fairly realistic and behave exactly as I thought they would, but
object-object collisions seem a little wonky and unrealistic. I did not
think that colliding objects would be able to overlap each other, but
the objects seem to do that a lot when they collide. It's also a little
strange how objects sometimes stick together after collisions or go
flying around all over the place, ignoring the elasticity of the
collision between them (elasticity controls how fast one object is
moving away from the other). Certain attributes like the masses of the
objects seem to have an appropriate affect on collisions, so there are
some things about object-object collisions that work. Also, it is not
as if the elasticity of the collision has no affect, lower elasticity
collisions result in generally slower objects, just the objects
sometimes stick together when they shouldn't (that should only happen
when the elasticity is zero). I feel like to make the collisions more
realistic and behave more how I had imagined they would, I have to come
up with an entirely new method for simulating the collisions than the
one that I already have. That probably means coming up with a more
complex solution, and that is not something I wanted to spend a ton of
time trying to solve and figure out when I had more pressing bugs to
fix (like objects passing through walls).

As I continue to work on this framework as a hobby, the first thing I
want to do is definitely work on a better solution for simulating
object-object physical collisions. Aside from that, I think that the
GameFrame framework needs a few more features that would likely be very
helpful to anyone trying to make any kind of 2D game. For starters, I
can think of several types of classes that many people might commonly
find themselves creating by extending the ForceField class. Electric
fields, magnetic fields, gravitational fields, and fluid resistance all
seem like common applications of the ForceField class, and I don't
think people should be forced to figure out how to create those classes
themselves. I might include these general applications of the
ForceField class in GameFrame. I not only think they will be useful,
but they will give others a better idea of what the applications of the
ForceField class are. In addition to applications of the ForceField
class, I also think that there should be a class extended from the
Surface class designed to work for tiles that represent Surfaces in the
foreground that are slanted on one side. Such tiles are common in most
2D games, usually side scrollers where they allow object to move up
slanted slopes instead of having to jump all the time to gain
elevation. I think it would be helpful to have a class for simulating
such slanted Surfaces. In terms of other new classes and features, I
have several ideas. I think that classes for creating different types
of camera objects that control how the view moves across the play field
might be useful. I also think classes for creating and making menus
appear would be helpful, whether these menus are in game or active
during another state such as the title screen. Another useful feature
might be a class for creating dialogue boxes and printing out text.
This would be useful for games with dialogue or that need to print
information to the screen that blends with the HUD of the game.
Finally, I think a class for creating different rooms or tile
arrangements for the play field might be useful. This class would be
called the Room class, and it would change the appearance of the play
field when the Room was entered. It would also have methods for
checking when the user exited the room and entered another one. Rooms
would also be able to spawn objects that were found in the room and
would have a certain camera associated with the room. I would also
create another class called World to organize rooms by the sprites and
other media they used in common. This way, new media would not have to
be loaded when transitioning between Rooms, only when transitioning
between Worlds. Worlds, when exited, would release whatever sprites or
other media they loaded when activated.

After I add these other ideas to the GameFrame framework, I think it
would then be time to start creating games with it. For this purpose, I
think it would be a good idea for me to create another version of the
GameFrame framework that is compatible with Android. That way, since I
have an Android device, it would be really easy to test and then
publish any games I made to the Android market.