This page will both provide tutorials and highlight my
work on my game that uses Blender Game Engine, written in the Python
programming language. The game I am writing will be similar to the
dungeon-crawling rogue-style game, but in 3D, and it will teach the player
languages as the player progresses. It is about the coolest way I could
possibly have dreamt up to learn languages! This information is for
developers, who are interested in Blender or Python programming, and, generating
Нажмите здесь для перевода Google этой страницы на русский язык.
RANDOM LEVEL GENERATOR
The Random Level Generator is the first part of the game build.
My target was Python code running in Blender, creating a random game level,
which for example looks like the picture below:
This was all done using Blender 2.72. This photo
has the ceiling removed, so it gives you a better idea of what
a level may look like. When you run it, a camera view comes up with the view
inside the dungeon, if you are running it inside of Blender, you just hit the
"p" on your keyboard while your mouse is over the 3D-view window. So far, there
is 38 kb of code, in eight files.
Be advised, this is for developers, and still runs only in
Python, you may need to start with a completely empty
file, no lights, cameras or geometry, or you may get some wacky results. You
will also have to copy the texture files to a folder and edit the paths to
them. The paths are located in the Archeus.py file, which is listed last.
Note that because this game is in construction, I will simply include
instructions on how to run it, it has not been compiled into
one slick interface yet. I will include a download zip file.
I am planning on thinking up a way to scam the system a little, so to speak,
to make rooms that are towers, have arches, bridges, etc., so they fall outside
of the bounds of what you would normally expect in a dungeon crawler. If you
want to use this code, modify it, play with it in Blender, or even use it for a
commercial game, feel free to do so. My only request is that if you
give me credit for my work, and if you come up
with a good modification or optomization, let me know about it.
The goals of this game are to make a dungeon-crawler, start with creatures that
wander around the upper levels, with each creature vocalizing a letter in the
target language I want the player to learn. (I say "target language" because I want this game to be
adaptable to more than one language.) Initially, I am planning on starting
with Russian, though. When the player hears a creature approaching,
vocalizing a letter in the Russian alphabet, the player must press the right
letter on the blaster gun, or it will not kill the creature, and if the creature
is allowed to get to close, the player will get slimed or suffer damage, die or something of
that nature. After the player has mastered the letters, I may
throw in some letter combinations, but not to linger to long on that, I want to
get the player into purchasing weapons, learning the numbers in the other
language, going into lower levels, meeting new creatures, finding potions, magic
books, and all of the traditional dungeon crawler things, but at the same time
include language learning. I have even considered the possibility
that the player can hire out an interpreter, who occasionally gets killed, so
the player cannot just rely on the interpreter, although more of that is allowed
in the beginning. That is the gist of what I want to do, I have other
ideas too, but I think this page is sufficient to outline the main goal, and,
provide the tutorial that I wanted to present.
Game Start Page
This presents the idea for the game, and
starts the process of discussing the code of the random level generator.
Rooms Data File
- dgnRooms.py - stores the room configurations.
Level Creation File
- dgnLevel.py - creates a faux matrix, (it is really just a
list), creates tunnels with random places designated as rooms, inserts the
rooms, then places the matrix into the dungeon.
Tile Creation File
- dgnTiles.py - This file creates the panels used as walls,
ceilings, floors. Both ceilings and floors are just one big piece, which
optomizes performance. This file works with dgnDungeon.py to create the
Dungeon Creation File
- dgnDungeon.py - Creates the dungeon using the
dgnTiles.py file, each wall is created based on its orientation, which speeds up
the building of the dungeon.
Player Creation File
- dgnPlayer.py - Creates the collision box, camera and
spotlight. The camera and spotlight are parented to the collision box.
The player is placed at a random position in the dungeon.
Player Logic File
- dgnLogic.py - Creates the controls for the movement of the
character within the dungeon. These are logic bricks, but are created via
The Main File
- Archeus.py - This is the
main file that runs all the other modules; this page also contains the file
- This is just a general purpose file I created, it is required, but I
consider it to be an all-around utility file rather than part of the game, but
you will find some usefull functions here.
This code Copyright 2014 by Shawn Irwin. Anyone may use this code for any purpose as long as you give the author credit for his work.