To start with, the tools that I intend to use:
(This list should be much the same as that which I posted in the competition thread, save that I've settled on a source for game music.)
Language: Python
SDK/Engine: Panda3D
Pre-created Components: This depends on what game I end up making; I have several bits and pieces that might prove useful.
Graphics: To some degree this depends on the art style that I settle on, but my main raster-art program is GIMP, my 3D modeller is Blender, and, should I want vector art, possibly Inkscape.
Hosting: Dropbox
Sound: Sound Recorder (either Windows or Ubuntu) and Audacity, most likely.
Music: I'll most likely use music taken from Sound Image (which provides music under a Creative Commons Attribution licence, I believe).
Now, as mentioned under "Pre-created components" above, I have a number of modules and pieces of code that I might make use of in the competition, but that, without knowing what game I'm going to make, it's difficult to say which might end up being used. However, this early post makes, I think, for a good opportunity to talk about these components, and to give the community opportunity to object to any that they feel stray beyond the province of reasonable reuse.
So then, my components:
(It's possible that I've forgotten something in the below; if so, then my apologies; hopefully any such will be mentioned as it is discovered.)
The Template: This is perhaps the most fundamental and least important component: it is simply the skeleton of a project, allowing me to get started that much more quickly, without worrying about getting the basics working.
This includes:
- Importation of various Panda3D and basic Python modules.
- A "framework" class; this handles the overall flow of the game, controlling key-events, game-state, updates to the "world" class (below), menus, etc.
- A "world" class; in template form this is merely an outline. Part of the process of making the game would be fleshing out this class with the actual game-logic.
- An abstract global "common" class; this provides varous services that I want to have available at any given point in the program, such as access to the "framework" and "world", a simple fade effect, and a few more functions.
- Importation and initialisation of the KeyMapper class (below).
KeyMapper: This is a module that handles both basic key-event initialisation and key-remapping, including a basic (customisable) GUI for the latter. If you use Panda3D, you should find it here.
GameSaver: A module that handles saving and loading, including a base class from which classes that are intended to be saveable should derive in order to specify what data is to be saved, and how to restore it on loading. If you use Panda3D, you should find it here.
TabbedFrame: A GUI class that provides a tabbed gui that can hold other gui items in its "pages". This has not yet been released anywhere.
SoftActor: A class that extends Panda's "Actor" class (which handled animated models) in order to provide automated blending between successive animations. As with TabbedFrame, I don't believe that I've released this anywhere.
My menu system: A combination of an abstract "controller" class that maintains a stack of menus, and a base "menu" class that can be handled by the "controller".
A pencil-sketch shader: This is a shader that I've been tinkering with of late, originally intended for an game expansion that may well not happen now; it renders geometry in a manner intended to emulate a shaded pencil sketch. This is, of course, pretty specific--it may very well not be used. But I'd like to make use of it at some stage, and may decide that my competition entry is the right opportunity.
I think you're off to a good start!
That looks amazing!