How do you make a customizable game in Blender? I’m trying to achieve something similar to Zoo Tycoon 2, or Spore.
In a menu of some sorts, you make a system that either sets object properties or stores properties in a Python dictionary.
Then you just have to have game objects some how access those properties and act accordingly.
Just a tip:
Making something like this is hard work and you shouldn’t expect to achieve spore in one go. If you do want to go after something like that, I suggest (if you haven’t already) for you to go and learn Python.
A great source is the book Mastering Blender.
Its a great book and its how I got started.
You’re going to have to be more specific, procedural game design is a huge, wide, area to cover and basically all games today and in the past have some customizable and or procedurally generated aspects to them.
You can use pseudo random functions to control the initial set for an environment or other things within it, that seem (to the player) like its giving random unique designs or behaviors, but the nth term in the functions output is always the same when using the same seed, like a fractal, its determinant, and seed numbers for the variables in those functions can be controlled by the user.
Also you need to develop an interactive GUI for your game that supports the variables you have in mind and their manipulation, look at Sunjay Varma’stutorial on making controls for changing color of an object in game as a good start. You should also take a look at his BAP or BANANA.py for examples on how to do more complicated things, like create radial buttons, scroll bars, +many other vital functions in python, etc. in his script section.
Look at Monsters scripts too for good ideas on how to effectively create an environment wherein you can use a mouse to manipulate game objects. You need to create one or many dictionaries for you game in python, you need to define before you start all those global and local properties you think will be required to keep track of, in order to read off of to get the effect or behavior you’re looking for. Also make a list of def you’ll need to make… etc.
Without first laying out an idea of what you want the user to be able to create and control, and how what they create\control interacts with other properties/objects in it’s environment, it’s going to be extremely hard to make anything ‘on the fly’ that’s successful. Additionally it’s pretty hard to tell you anything useful beyond some very basic stuff because your question is pretty open ended, and tycoon games and spore are pretty tough acts to follow covering quite a bit.
Like spore did and many other less known games have did before spore - A LONG time ago I tried to make a procedural planet game in C#, it was a mess, but worked to the extent that I could zoom in and fly around in greater and greater detail though I didn’t get much past that point and the planet had 4 color terrain and was covered in an ever snaking mountain terrain. Anyway it’s pretty complex stuff if you’re not familiar with LOD, fractals and noise, how to get the code to read them to tell it to create additional things or show a different texture, if it’s doing this or that, making a height map from it and assigning color #s in an array to the gray-scale values, heavy use of opengl and GLSL, or then HLSL with C# well be a must. Also you need to know a bit about LOD too, and using float for accuracy over great distances. Etc etc. It’s no easy task. But if you wanna learn conceptually how its done you can start here.
Anyway lesson is, start off simple, start off manipulating simple things in simple ways. But don’t start without an idea in mind for what you want to create.