Our current idea for the game is to make it based on astronomy. The game will take place in outer space, with the goal being to align a planet and its moon’s orbits with a required path. The story idea is that an imaginary space agency wants to mine asteroids (shown as stars in the designs below) at particular places in space. They know where these asteroids will be in relation to the planet but they need the player to decide where they should position the moon and its lunar base so that they can reach and mine the asteroid. In different levels, the player will also need to adjust other parameters such as the moon’s mass and velocity to get the correct orbit path. Figure 1 shows a depiction of a possible level in the game. This would be a relatively simple level where the player needs to adjust the moon so that it collides with the stars on the opposite end of the planet’s orbit. At the end of the level, the player will be presented with a congratulatory screen that gives them their scores and stats as well as a “fun fact” about astronomy (figure 2). This will be a large part of the educational piece of the game.
Another thing we did this week was set up software on all of our computers. We all installed Android Studio, the interactive development environment (IDE) used for making Android Apps, and created accounts on GitHub. GitHub is basically an online file sharing website that uses Git to allow multiple people to work on the same project by all sharing files in a central online repository. It's basically like Google Docs for programming.
This week we also started actually programming the game. We first needed to follow a few tutorials to get our feet wet learning about libGDX and box2D (see the external resources page). After that, we were ready to dive in and start coding ourselves. We set up a basic physics model of a planet orbiting a central body that collides with an asteroid (see video below). Box2D is an extension to
libGDX (the game engine we're using) that simplifies the use of physics in
games by letting a developer create bodies. These bodies can have properties
(such as mass and volume) and can also feel forces. In this example, we gave
each solar body a "body" in box2D and assigned it a mass. We then
used Newton's formula for gravity to make the bodies interact realistically.
Setting up the physics is one of the first major steps for our project. Once we
get the physics working, we think it should be relatively easy to make a number
of levels that implement it.
That concludes our progress for the first week. Next week, we plan to continue working on the physics and start working on the first level. We also plan to explore R.U.B.E. to see if it could be useful tool for making levels in the future.
No comments:
Post a Comment