Plans to make a game; I need a place to start; a few questions I hope you can answer

Skip to the section labeled “Questions” if you want to see my questions in a concise form! Otherwise, if you don’t mind, you can read my introduction below.

This is my first thread at these forums, and I know my postcount may suggest I’m a noob. Well, I am a noob to the game engine and Python, but I do have plenty of knowledge on modeling and have been using Blender for over a year. I’m also not entirely new to BlenderArtists; many a Google search has turned me to threads here with the answers to my problems. But I’ve finally decided to register myself, since hoping someone else has already asked a particular question can only get me so far :stuck_out_tongue:

Anyways, I intend to create a massive role-playing game with nice graphics, fun gameplay, and interesting storyline. But I’m no fool who thinks that’s going to be easy. I intend to work on this project for several years, and have no idea if I’ll ever even come close to finishing it. I also do not intend to start the project any time soon. First I wish to become better acquainted with the game engine, Python, and Blender as a whole. I’ve already done a few small incomplete “games” to try out the GE.

I won’t describe in too much detail the nature of the game I wish to create. I’ve already done a lot of planning for areas, characters, enemies, a little plot, and some ideas for the appearances of things in the game. However, I have nothing to show for all this - no sketches, text, models, documentation, etc… So far, it’s really been a thing I like to daydream about, and although I have seldom written any of my ideas down, I remember most of them very clearly. Rather than spending ages describing all the intricacies of my planned game, I will try to only focus on game mechanics and graphics. Unfortunately (or maybe fortunately for you guys :p) my post is limited to 10000 characters, so I will explain my planned gameplay mechanics in another post.


Questions

I’ll try to start with the easier/simpler questions first.

Text in the game engine - I noticed that text in the game engine seems to be done using a special texture on a plane. I don’t need help setting this up; I’ve seen tutorials. But I wanted to know - is it possible to use this technique with text formatting, such as bold, or different font colors, or different characters that aren’t in the default set. I know I can use whatever image I like as the character set, but I’m asking if I can have multiple of these at once (e.g. can I use bold to put emphasis on words, or have key words in a different color?), all in the same text block.

Animations for moving detailed skies - I want to know how to make a nicely animated sky, similar to how skies were very animated in Legend of Zelda: Twilight Princess. The clouds weren’t static; the sun and moon (which had phases) moved through the sky. Now, what would be my best bet for doing something like that in Blender? Surely Nintendo didn’t have a massive, high-res, animated texture with thousands of frames playing in the sky. Would it be possible to have images of clouds UV mapped to the sky, and them move them around in-game along the surface of the hemispherical sky? And the sun and moon could thus also be UV textures similarly mapped flat onto different “layers” of hemisphere and animated accordingly? And how would I go about changing the color of the sky itself? Are there any better ways to implement Twilight Princess-style skies in Blender?

Servo Motion Actuation problems
I’ve been having problems with the Servo Motion actuator in a simple (unrelated) test game I’m working on. Its parameters are: -5 Linear Velocity in the local Y direction, Proportional Coefficient: 30, Integral Coefficient: .5, Derivative Coefficient: 0. The X, Y, and Z limits are on, with min and max set to 0 for X and Z. For Y, min is 0, and I don’t know what to do for max. If it’s anything less than -152.5, the character will not move at all. If it’s any greater, the character shoots ahead at lightspeed. If I turn limiting of Y off, the character seems to slide around a little after moving. Also, I can easily ride along a wall and “stick” to it, and if I try hard enough, I can easily pass through walls. If it helps, the character’s hit area is a box of size is 2 units Z, ~.5 units Y, ~1 unit X.

Saving files - I need to know, is it possible to save files to a user’s computer, from Blender, using Python? Specifically, without asking the user “save this file?” and asking them where to put it. Also, would this behavior create problems with systems such as Windows’ User Account Control (which blocks many programs from making unwanted changes)? Or would such systems simply ask the user “Allow this program to make changes to your computer?” and then merrily let it save the file if the user accepts?
Also, what would be the best place to put game save files? In a subdirectory of the folder with the game in it? And what format/specifications would I use? Create my own “format” that’s just a thinly-veiled text file? Or is there some more advanced way to create a format for saving game files with many variables?
Also, no, I don’t need to worry about encrypting the save file. I could care less if a player really wants to cheat. I will, however, obfuscate it a little if I can, just to spite cheaters :stuck_out_tongue:

How much of the game engine is logic bricks, and how much is Python? I guess I should admit right here; I don’t know Python at all yet. I do, however, know (Java) programming well enough to get a 5 on the AP Computer Science exam, for what it’s worth :p. I know Python’s nothing like Java, but that won’t stop me from learning it. But I wanted to know how much of a game (and what aspects) would be done via Python, and what would be done via logic bricks? I know how Python can be used in Controllers, but can Python also be used in an actuator? I haven’t found a brick for that (except for a custom Filter 2D script). And how/where are variables stored? I know there are “game properties”, but are these the only variables we can have, besides temporary variables created for the duration of a Python script? If so, where would player stats, experience, etc. be stored? And where would an inventory be stored? And how would I take all these variables from gameplay and save them to a file which can later be re-opened?

Where to start? (Please read my next post below to get a grasp of how my gameplay will work). How would I start making a game with such a massive scope as what I have planned? Should I start by first modeling a testing environment and character, and then build ground-up, with motion, some combat, and a little of the interface? And then, once I have most the interface and stats and file saving working, I can start actually creating the story? Going by what I say in my next post, what do you think would be my top priorities, and what should I put the least focus on?

Graphics - as far as graphics goes, I don’t intend to do anything much more complicated than Legend of Zelda: Twilight Princess. I’ve paid close attention to the game’s graphics, and see many things I can do. Most of the special effects seem to be particles with transparency and billboarding. But there are some things I don’t know how I would do. I already mentioned the sky issue above. I’m also wondering, however, how I would go about creating water. I want it to have an animated surface (can displacement mapping of textures work in Blender GE? Just normal mapping simply won’t cut it, I think.), and I want it to “refract” objects below the surface. It doesn’t have to be a realistic refraction; the stylized “wavy” refraction seen in Twilight Princess’s water is good enough. Similar to that effect, I’d like to have a distorting effect around fires, where it makes it look like the heat refracts the air as it would in the real world. I know the compositing nodes can do something like that with the displace/distort node, but I don’t know how to limit that to a particular area on-screen, and nodes don’t work in the game engine anyways. Also, back to the topic of water - I vaguely understand how textures and animated shapes could create a splash effect, but how would I make ripples that trail the character through water? I don’t see how on earth Twilight Princess pulled that effect off… Lastly, if I wanted Bloom effects, would I have to write a custom Filter 2D script?

Honestly, I’m sure I will have thousands of more questions along the way, but these are just to help me get started. I’m looking forward to your help! :eyebrowlift:

It will be a 3D RPG where you pick a character at the start of the game. If time permits, I will have more than one playable character. Each character would have a unique storyline. I will not work on any other characters’ storylines until I have finished the first storyline, because I think I’ll be lucky to even get that done. Otherwise, if I do make multiple storylines, they will intersect in many ways. The first four storylines, in this case, would all be very similar, because the four main characters stay together for most of the game. There will, however, be a variety of differences that will still make it worthwhile to play the game again on a different character.

For the most part, after you’ve picked your character, you will only play as them. You will not see cutscenes that they would not be present to see; you will not acquire knowledge that they would not acquire (with the exception of a few on-screen prompts). The only real exception to this is the fact that you can give party members orders, even if your character has (temporarily) died. Needless to say, if your character permanently dies (which only occurs in storyline, and will probably only happen on one particular character anyhow), it’s game over. Game over can also be caused by having your entire party die in-combat, or failing to prevent something really bad from happening in the storyline. There will be no points where the game will be rendered unwinnable; if you do manage to get to a part like that, a backup will automatically be saved allowing the player to return to a part when the game is still winnable (I don’t think this will be common, and likely won’t happen at all on the first storyline).

Combat will primarily be focused on magic, which can be used in one of two ways. The main way, for combat purposes, is to draw symbols on the screen (ranging from as simple as a line, to as complicated as a seven-pointed star). You get to choose which symbol uses which spell, and more complicated symbols will cast the spell more powerfully. You can take damage while drawing a symbol, but your drawing will not be interrupted. The other way to cast spells is to select them from a menu, but this is not a good idea in-combat because the menu won’t pause the game, and spells cast via menu will be weaker.

Combat via weapons will also be possible, where attacks are various keyboard keys, and special attacks can be series of keys.

Movement will be via walking/running using the arrow keys and jumping via spacebar, but these options can be customized. Certain spells and weapons, as well as some items, can aid in movement. In most cases, movement will be as simple as just running to where you need to go, but in some cases you will need to avoid obstacles and pits, or move creatively to avoid enemies.

Combat will occur in the same environment as regular gameplay; there is no “combat scene” and you can usually run or teleport away as a means of escape. Combat moves can also usually be used even in areas such as towns, although your character will try to resist attacking innocent townspeople (yes, there are consequences for doing so). Combat spells and weapons can also damage parts of the environment, but most things (such as the ground and large rocks) won’t take damage. But a general example is that using fire spells in a forest can (and likely will) result in a wildfire :eek:. However, as with most games, minor destructible scenery will respawn after re-entering an area (although if you manage to burn down an entire forest and nobody stopped it, don’t expect that to respawn… Fortunately most places will have someone to stop things like that.)

The game will have a time system, many status effects, and a few interesting things.

One such interesting thing will be that sleep is mandatory: your character will get tired if they stay up too long. Also, your party members will probably go to sleep without you. Fortunately, the upside to sleep is that you visit your character’s dreams. These may sometimes be simple cutscenes, revisitings of things from earlier that day, and sometimes unique interactive playable parts. Dreams (particularly the interactive ones, if you accomplish something in them) can have various rewards, such as experience or even new spells (which may otherwise be impossible to learn and only learned by your character).

Another interesting thing is the idea that your party members aren’t with you 24/7. They’re with you most of the time, but may temporarily leave when they have something to do, you want them to explore some place, or you choose to stay up late when they want sleep. You will have the option to call them to you using magic, but depending on the reason they aren’t with you, they may only come when it is urgent. If you are near death, you will automatically bring them back to you. Even when they aren’t with you, they are still considered party members, and you can still have access to their inventories (though not their equipped items!). This idea will help me make each character’s storyline unique even when some of the characters are in the same party for most of the game.

Learning spells and attacks will also be somewhat unique - as I mentioned above, some abilities may be realized when dreaming. But most will be learned either from teachers or enemies. Obviously it’s easier to learn something from a teacher. Learning from an enemy consists of witnessing them using a spell or attack a few times, and being of a sufficient skill level to learn it. Even if you are not the right skill level before seeing it used, you will “remember” it for a while, slowly forgetting it. How well you remember it (and how many times you’ve seen it used) can lower the skill level needed to actually learn it. Even once you’ve “learned” it, you only have the ability to try it out; practice will make you better at actually using it.

Skill levels would consist of a character’s skill at using a certain element in magic (e.g. fire), or type of weapon (e.g. sword), or type of attack (e.g. an attack that involves jumping). For some characters, learning one skill will be easier than another. Using abilities that are considered related to that skill will give experience in that skill, and in turn, being more experienced in a skill will make it easier to learn abilities related to it, as well as being more effective at using such abilities. Different skills may be correlated and abilities may be related to multiple skills (e.g. your ice and water skill levels can both increase from using ice spells).

Enemy AI will likely be rather simple (most enemies you encounter are meant to be literally mindless), with basic targeting ability and use of various abilities. Some enemies (specifically, the ones that are sentient) will actually employ strategy, however, and bosses will have a large variety of moves. Some bosses will require a specific strategy to beat, while others will require standard combat and simply be more dangerous and harder to kill.

You will earn money and items from enemies (and experience for the abilities you used in defeating them), and can use money to get items and services (such as being taught a skill) from NPCs. So for the most part, pretty standard RPG stuff there.

Files would be saved to the player’s computer, although I haven’t decided where…
Players could create and copy as many files as their computer can fit. I won’t bother encrypting the game files; I won’t go crazy about preventing people from cheating.


And yes, if you were wondering, I intend to make this game pretty much entirely on my own. Hence why I doubt I’ll get it done even in 20 years :eek:
But honestly, I need something to do in my spare time that makes me feel productive, so even if I never get it done, I can’t say I’ll have regrets :stuck_out_tongue:

For text, select your text and press ‘Alt’+‘C’ and select the text to mesh option.

For the sky, maybe make a sky dome and rotate it? And for different phases, well, say you go out of a battle scene (that looks exactly the same as the normal scene, sort of like: ‘If you step on this plane go into the ‘battle’ scene’, but the battle scene looks exaclty the same, or something), could you change the scene right there to say ‘So-and-so-city Night’, where before the battle scene it was ‘So-and-so-city Day’. It’s not that good but I can’t think of any other non-lag suggestions at the moment. Also notice that nintendo a. probably have the sky as a background like they do in Unity 3D, and b. probably make models and then use them in a programming language like C++.

As for the servo motors, I don’t use them.

For saving, I can’t remember who did it, but someone did ‘Enemy culling and save/load system’, but that saved in the exact position where you left off. Is that what you’re looking for or are you thinking like Nintendo?

Python/Logic blocks. It really depends on what you’re trying to do. I’d say it’s about 60% python and 40% logic. But if you start recruiting, you might get someone else to do python.

Where to start, well, the beginning’s always good. Start modelling everything in your level and then work on your character.

Graphics - well, I’m sorry, but you can’t use particles in the GE. It’d have to be a plane with an animated texture I’m afraid. For water, I don’t know, but the people who made Existence do. PM who you think is the most friendly. :slight_smile:

Unity 3D is perfect for most of your problems, such as water, particles and skyboxes, but I personally hate it. I’d say possibly model all you can in Blender and try the rest in Unity 3D.

Hope this helps,

Matthew.

For the text, I have to be able to change it in-game. I don’t want to make text meshes for every single box of dialogue in the game. Keep in mind it’s an RPG.

And I said I explicitly don’t want a “battle scene”; combat will occur in the normal environment. And if you’ve seen how dynamic the sky is in Twilight Princess, you’d know it’s not just an image. If it were, it would have to be very high res, and consist of millions of frames. That’s just plain impractical. Anyways, I was asking - is it possible to animate UV maps in the game engine? Because then it would be possible to animate transparent image clouds moving across the sky’s surface, which would probably be good enough for me.

And how do I move a character without a Servo Motion actuator? Simple Motion makes it ridiculously easy to walk straight through walls, regardless of collision settings and how thick I make the walls. I’ve read in many places that Servo Motion doesn’t have these difficulties; I just can’t seem to set it up right.

When you say their system saved in the exact position, do you mean basically it’s a RAM dump? I suppose, if I can change where the player spawns after starting up a file, that may work. But I still really need to know where/how to store variables, and which ones will be treated as temporary. I don’t think I want literally everything to be the same when reloading a save file; stuff like destructible scenery should respawn, etc.

I know GE can’t do particles like regular Blender can. But I’ve seen most people make do with the Add Object actuator, which would be fine for most my purposes. And I’ll look in to Existence later :stuck_out_tongue:

Now, I’ve seen a thread which makes Unity seem far more ideal for what I want to accomplish. Of course I’d still do modeling and textures in Blender. But my main issue with Unity is the price. Can the free version do all I want it to do, and export a playable version of my game? I see I’d need to pay $400 just to export to Macs, and I don’t see anything about Linux exporting. I’m a Windows user, but I’d still like my game to be accessible :stuck_out_tongue:

as far as graphics goes, you may want to use LOD(level of detail, this is a simple and effective way to boost the look of a game while enabling lower-end machines to run it. Also, if you implement an LOD system, you can also add graphics options. EXAMPLE: the player can open an options menu and choose a detail level, such as low mid and high. heres a video of a simle LOD template that ive made: http://www.youtube.com/watch?v=2HaaoQYNzWw

Here’s my 2 cents.

The bge is not the best solution for creating an mmo game. You could potentially achieve a game along the lines of diablo 2 (8 player co-op), with some good coding. That being said, the bge is great for prototyping games and demonstrating ideas. Getting a working demo in the bge could go a long way to getting you some help on your project.

On to your questions:

1: The method of displaying text you are discussing has no way of supporting text formatting that I know of, but some developers are working on a new solution to convert blender text objects into proper opengl text in the bge, this could potentially allow text formatting, as well as much smoother more scalable text.

2: You could make your draw distance in the bge very far, and just ensure users cannot see the edges of the map. Then all you have to do is use IPOs to move the objects in your sky. I believe martinsh (A talented user on these forums) created a shader that creates very good looking atmosphere effects including sunrises. You should look at some of his work, he often releases it to the community.

3: I don’t use servo motion, I usually create proper damping using python in my games. Can’t help you here sorry…

4: Saving files in the bge is quite easy. You can save them in any directory you want, but I usually keep saved files within the folders containing the game. You will have to create your save files yourself as regular text, although I’m sure you can find some sort of encoding module in python to prevent cheaters from editing the file.

5: With every new release of blender python becomes more useful within the game engine. For example I have worked on a multiplayer fps that only contains 2 logic bricks, an always sensor and a python controller.

You cannot use python outside of a python controller (yet), there are no python sensors or actuators. Once you start to use python inside the bge, you’ll understand why.

If you know Java, you shouldn’t have too much trouble learning python. I think python is easier than java, and most of the main concepts carry over (everything in python is an object).

6: This is up to you. I know it sounds daunting and you really want an answer, but my answer would be a little beyond your grasp. If you stick with this project you will restart multiple times, but your work will be better every time. I suggest you just do what interests you most, even if it’s planning and writing the story, as any work you get done will keep you motivated to work on your project, and the more work you have done, the more you’ll want to finish the project.

7: Some nodes do work in the bge, I believe every material node works now. For fire, I believe martinsh made a very good looking fire effect using shaders (again), as well as some very convincing water effects. Ripples caused by the player however are a little more complicated. It may be possible to pull off well, but it would be hard even for a very experienced user. Splashes though are easy.

I know fast fake reflection is possible using cube maps. I’m not sure if any examples are available for you to look at. Again martinsh is your best bet…

8: As to your interest in particles, I think a dev is working on opencl based particles which would be much, much faster than any current methods of producing particles within the bge. (opencl uses the gpu to crunch numbers instead of the cpu).

You have a long way to go. Make sure you have fun working on your game, and don’t expect too much of yourself.
Good luck on your project.

-Gomer

Thanks - the X-Emitter’s pretty much as fast as it can get right now. As for the sky problem, I would use an overlay scene, rather than a large draw distance with a large skybox / sky sphere. You can do the fake ripples and water particles pretty simply - some games have water waving dynamically. That’s a bit difficult, though.

Oh sorry, I read massive role playing game as massive multiplayer role playing game. My apologies. A single player rpg is much more achievable in the bge. Good luck.

Btw I believe there is a setting that allows you to give one face preference over others in the materials options somewhere. That would allow you to place your ripples very close to the water’s surface without having to worry about z-fighting.