Preliminaries: My tools of choice, and pre-created components

Published September 17, 2014
Advertisement
Greetings all, and welcome to my "Week of Awesome II" blog! happy.png

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.
2 likes 3 comments

Comments

Orymus3

I think you're off to a good start!

That looks amazing!

September 18, 2014 12:59 PM
Thaumaturge

Thank you, on both counts! ^_^

Saving and loading has long been a bit of a bugbear of mine: I would lay out a file format and implement it; there would likely be bugs in that, which of course call for fixing; then any changes incur re-writes and likely more bug-hunting. On top of that, it's simply not an interesting part of the game to build. GameSaver obviates much of that: it handles the format and all of the actual reading and writing, and while it is still quite possible to make mistakes, I've found them to generally be relatively easy to deal with.

As you can see in that thread, there was some debate about whether Pickle obviates my module; for what it's worth, I've found GameSaver to be very useful. Admittedly, this is perhaps in part simply because having made it, I understand it particularly well, and that it conforms well to the way that I approach saving and loading (in particular that it saves nothing but what the user specifies, where Pickle seems to save everything except what it's told to exclude).

In the end GameSaver has proven rather useful to me, at the least: KeyMapper uses it, and I've found it to be a significant help elsewhere, too, whether in saving out "test-levels" or building in-game editors of one scale or another.

September 18, 2014 03:32 PM
Orymus3

I'll admit that for a limited-duration contest, I wasn't necessarily hoping to see any save whatsoever, but I'm happily surprised by that. More power to you!

September 19, 2014 03:27 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement