Noob: Stick with logic bricks for now, or go to python/upbge?

I’m a noob in all aspects of blender, and my main intererest is using it to develop some simple games, working up toward putting together a more complex game. Should I stick with trying to make sense of the various logic bricks for now, or should I just jump into python with a mind for using upbge?

I ask because some aspects of logic bricks feel like I’m going against the grain. When I connect up various sensors and actuators, sometimes things just don’t work or getting things to work is unintuitive. I haven’t spent much time with logic bricks yet, and maybe I’m jumping the gun in assuming that some things are non-functional and unintuitive.

First get the hang of the flow of logic by using logic bricks. Then apply that to Python. A lot of people say you should learn Python outside of Blender before you learn UPBGE Python, which isn’t a bad idea. I learned Python just from dissecting game code, and I learned just fine. If you ever want to make a good game, you will have to learn Python, so why don’t you go ahead and give it a try.

Logic brick good for simple arcade games. More complex games will need Python. I think it’s beter to know both methods.

Do you know of any good resources for learning logic bricks? The Blender manual seems vague on logic bricks. I would love to find some simple examples of the various logic bricks being used in various ways. For example, I’m trying to limit the rotation of an object using logic bricks. I have read the manual page on the constraint actuator, but there are no examples provided to see it in use.

Here is my blender file: turn-limits.blend (470 KB)

I’m running into all sorts of little issues like this, but without some examples to see logic bricks in use, I feel like I’m just hitting a wall.

Simple is good for now. But I’m having issues with even doing simple things with logic bricks. I end up spending alot of time tryig to figure out how a brick is supposed to work, often just hitting a wall and endlessly searching for examples on youtube and elsewhere which might cover my specific issue.

don’t be afraid to do both…just keep it simple when using python at first…I think it is highly improbable to make a good game without any python…not impossible though…

also…the sooner you start to pick up python the better off you will be in the long run…I do not mean to get frustrated with python…I mean try to use both…if python is kicking your butt…go back to bricks…and keep at it…it will come to you trust me…I’ve been using the BGE for about 7 months now…and trust me it does get easier.

I assume that when using logic bricks some python code is generated. Is there a way in blender to see that code? Edit: I see code being generated in the info panel. That is helpful.

I did learn some basic programming with python long ago, but I have since forgotten python, although I do still remember much of those basic programming concepts. I think I could pick it back up pretty easily.

Something that I haven’t done before is work with an api. Both the api documentation and the logic bricks documentation seems to be a reference only. I guess what I’m looking for is simple examples for getting started.

How did you guys learn this stuff? Alot of headbanging?

There are few tutorials on youtube teaching how to create simple arcade game or even basic FPS from scratch. Usually they begin with simple logic brick setups (movement control, camera etc) and ending with Python scripting things like enemy AI. I think this is what you need.

Those kinds of tutorials are a big help, and noobs like myself are very lucky to have such resources available. But at the same time, those kinds of tutorials are very specific in nature and cover little of logic bricks in general. What I would like to find is something that is more general in nature, covering usage of all of the available logic bricks.

For example, in the blend file which I posted above, I have no idea why the constraint actuator isn’t doing what I expect. I don’t have a general knowledge of how to use it. I only know what the manual says about it, which is what it is, without any examples of how to use it, even if only on a very simple level.

I have gone through a bunch of BornCG’s tutorials on the blender game engine basics, and I have picked up some useful stuff along the way. But those tutorials tend to only touch on using a little bit of each of a handful of logic bricks. A person could spend a week or two going through those tutorials and still have lots of very basic questions about using logic bricks, because the tutorials aren’t general and comprehensive in nature.

Doing little and simple things you will learn better. I am noob aswell at BGE and Python, but already able to make some simple arcade game, I folowed lot of youtube tutorials and learned a lot about BGE logic and it’s functionality, lot of help i got from BA community. So you can always create thread and ask for help. None of my questions left unanswered. You should keep in mind that creating even simple game is lot of work and learning, you always will meet troubles but more you learn more abilities you will have. Anyway i suggest to you not to hurry to make big game - just follow some youtube tutorial from beggining to end and when you finish your first basic project like maze game or something, you will get basic knowleges about logic bricks and then you get move further to Python. It’s always hard to dive in new environment and not to get lost, but best way to find the way is practice. It’s my opinion. There are few books aviable (free) in internet which explains basics of BGE. You can always find and read them.

The problem of how to do documentation is present all through the software world. The python API is very generic and tells you what inputs and outputs a function has, but it doesn’t contain all the details that a user would want to know. And hence a developer has to make lots of small experiments to discover how they work and when to use them. After a while, the developer gets a bit of an idea about how the internals work and can make guesses without having to do so many experiments.

For instance I now know what “damping” means - and it appears in lots of logic bricks. I couldn’t really tell you what it does. Well, sure I can say “it is the percentage closer to the target per frame” but that doesn’t really tell you how it will respond in your situation. Only experiments and experience will allow you to make those guesses.

So keep trying, and keep looking at examples. That’s how you learn. I suggest taking part in the upcoming BGMC, contests and challenges are a good way to get motivation to practice.

working up toward putting together a more complex game. Should I stick with trying to make sense of the various logic bricks for now, or should I just jump into python

my personal experience is:

Jump right into python, skip the bricks.
bricks can be a mess, will be a mess, it’s a mess.

Python…(blender)python is very easy to learn, Its even one of the easiest programming languages around.

you will learn the bricks along the way, because you still need/use a few bricks if you are using python, but bricks is not something you wanna jump in and learn. You want to make complex games later, so python is the only way to go.

Played a bit with your example - i think i found solution. You can see yourself:

Attachments

turn-limits.blend (417 KB)

It’s all about how much complex game one want to make. Complex game need huge amount of knowleges, skills, and time. Most of people doesn’t have this, not to mention one have to learn Python language, from my perspective it’s not easy task and VERY time consuming. Logic bricks can be mess but at least they are easy to learn (for art-oriented people). I dream that BGE someday will switching to viusal programming like logic nodes for people like me.

Spend less time on the forum and more towards learning python, you got plenty of time. Don’t make excuses to get chewed food instead of having to chew for yourself.

Python is not hard, use google/youtube and this forum as a resource and you will learn python for blender within a few days(within a week for sure, 1 hour a day). Yes to become a pro in python it will take your whole life because it changes every day (sort of speak).

A game made in blender without python is a simple game, you cant make anything complex without python.

Tell me how to:… without python.

  • Libload, yes you can link from blends but it’s not the same.
  • save game and loading game, you simply can’t, bricks don’t have acces to globaldict, yet it has the save and load brick, ain’t that funny.
  • Ai, sure simple ai can be made without, but he want to learn towards complex so simple ain’t enough.
  • loading screens, maybe possible i dunno but i guess not.
  • settings menu

just to name a few

So simply said without python no complex game.

Libload, yes you can link from blends but it’s not the same

I spent years with LibLoad, and now I use linking some 99% of the time. They’re not the same, but they fill a similar role. Libload takes many times longer to get set up and working properly, and offers very few advantages over linking. That said, there are a few cases where it is the only solution.

If you’re making games just for fun, logic bricks are great! I made games with nothing but logic bricks for a couple of years. Python tends to be a bit of a rabbit hole. It promises much, but can add so much complexity to the game that it will never get finished. As Cotaks said: a game without python is a simple one. This is completely true, and often not a bad thing.

Time learning python will not be wasted, as it shares programming concepts with many many other languages (anything based on C really), and knowing it will allow you to program a huge number of things. Logic bricks aren’t as portable as they are only used within blender.

I am not building any illusions about myself and others. Complex projects are complex. I see lot of complex BGE projects with lot of features with lot of coding, but they are dead. Why they are dead, because they are complex. Too complex to be finished by one man or even group of amateurs. Making good game even for professionals is chalenging task, and what about simply user who wants to mess up with some game engine? One barely can finish basic project from scratch. Building complex game needs complex knowleges and not only in programming, but also modeling, texturing, animating, compositing, creating sounds, music and bunch other things. That’s why there is lack of complex games made by enthusiasts. There are lot of nice and small finished games made in BGE i enjoyed to play but they are barely complex, Name me really games made with BGE except Krum (wich i loved to play). I will play with pleasure if there are such complex games made by one man,
As for me, i never planned to make complex games with BGE (or any other game engines), just small arcade games for fun, not more. So i don’t need deeply learning Python. Just basic things.

I agreed with most the opinions to go with python, with slight additions that brick(collision/mouse/keyboard)sensors are still more efficient then running an always sensor with your python code polling, it can be a pain to balance the harmonics between them

Thanks. It works, but I have no idea how it works. I mean, there doesn’t seem to be anything logical about it. The rotation is along the z axis, but the Direction and Reference Direction (whatever those terms actually mean) of the constraint are to do with the y axis. It seems arbitrary. The manual says this about Direction and Reference Direction:

Direction: Game axis to be modified (X, Y, Z or none)

Reference Direction: Reference direction (global coordinates) for the specified game axis.

What does it mean that an axis is to be modified?