Game development diary: Day 1
Day 1Settling on a game idea was quickly done this time. Probably because of the theme "Moon". I had the idea of making a game that takes place on the surface of the moon. Maybe something where one has to go around and collect some materials / samples from the moon and bring it back to earth?
The words "vehicle" and "expedition" came into my mind. I looked up how the vehicles that are used to do space exploration on other planets or moons are called or have been called. They are called "Lunar Rover's" or "Moon Rover's" (English is not my first language).
I then decided to develop a game based on my idea.
Game overview ( Note: This is just what I am aiming at. Things might still change )
In this game, the player, who controls the Lunar Rover 47 has to collect samples in different areas of the moon. Each area has different scenery and samples. After all samples of an area have been collected, the player moves on to the next area. (Sidenote: An "Area" is a level).
But the player has to be aware of obstacles, such as "aliens", walls or other things. Each area is decorated by beautiful scenery usually found on the moon (or related places).
Luckily, the Lunar Rover 47 is equipped with the GREPLAC (GREen Proton LAser Cannon), the newest invention, with which it can defend itself.
The Lunar Rover 47 is equipped with a radar, solar-panels, a board computer and a few super-bright LED's.
The Radar helps finding samples and other objects. In fact, every object in a specified tracking area can be found. But using it needs a lot of energy. Luckily, the solar-panel provides energy, so the batteries can be charged up again.
Anyways, I do not want to go on and on telling fairy tales; so here is a list of what I have accomplished on day 1:
Graphics
Moon Ground / Terrain
Since the game takes place on the moon, I needed to have some sort of terrain that 'might' resemble, or at least, remind somebody of deserted places. So I decided to draw a Moon Terrain. I couldn't have done that without the help of this video:
How to make rock texture in GIMP - YouTube
As one can see, I used GIMP for that. I was satisfied with the results. I learned something new =).
Lunar Rover
I drew the "Lunar Rover 47" in Inkscape. It took me a long time to get it the way I would like it at least a bit. I am happy with the results. It has solar panels, a computer, a sensor 2 lights, aswell as a few super-bright LED's.
I produced many .PNG files with the LED's on and off, as I wanted it to be animated in the game, to give the game some "life".
Control Panel
Well, it was getting late when I started working on the control panel. But I just wanted to get a pre-version of the control panel done, so I could implement a simple "Radar System" into the game, which was what I was aiming for on day 1.
After about 1 hour it was done. I knew I had to add stuff to it, but it was okay for what I originally intended to do. I created 4 images, as the control panel of the Lunar Rover 47 will be animated, too.
Lunar Rover GREPLAC Projectile
Made with Inkscape: A shimmering green projectile that can be fired by the Lunar Rover 47. After doing that I went to bed at 4.00 AM and slept until 8.30 AM.
Programming
I created the following class and files for the game:
- main.py - Contans the game-loop. Starting point of the game.
- Animated_Sprite.py - A class that supports animation.
- Lunar_Rover.py - The class for the Lunar Rover 47
- Lunar_Rover_Control_Panel.py - The control panel of the Lunar Rover 47
- Lunar_Rover_Shot.py - The class for the projectiles, which can be fired by the Lunar Rover 47
- Radar.py - The class for the radar of the Lunar Rover 47
- Scrolling_Ground.py - The class for the scrolled background. This represents the terrain of the different moon areas.
- Test_Object.py - A simple pygame Sprite class, used for testing the class Radar.py
- constants.py - Contains the settings and preferences of the game which are not likely to change.
- helpers.py - Contains global functions that find use in many different code-files.
Okay, that is it for now. Thanks for reading =).