Where to start learning to develop BGE?

Hello! I have built Blender from source and installed Qt editor 3.4.1 in my Linux machine and I feel ready to start learning process of BGE development, but I am not sure at all where to start learning. Basicly what I need is someone experienced to teach me.
What I know so far:
I found where gameengine folder is located in the files(blender/…/blender/source/gameengine).
I know that I have to know C++ at least a bit, but as @lordloki76 mentioned I can learn a lot also during the proccess of development.

So - who wish to teach me developing it?:slight_smile:

Here’s what I did

  1. Bought a $20 C++ book
  2. Look up how to use tools like find, grep, and gdb
  3. Experiment
  4. Pop in IRC if you have a specific question

But let me tell you, developing bge is like operating on a conjoined twin.
Good luck.

I just tried experimenting around, some simple stuff. I tried implementing another 2D filter to the actuator. For some reason, I don’t see it there.
What I did:
Added #include with the filter location at the RAS_2DFilterManager.cpp.
Added the case with the filter at switch in 2D filter manager.
Added RAS_2DFILTER_… to Ras_2DFilterManager.h at public: enum.

Which step did I miss here?:slight_smile:

Would also like to join.
I have enough experience in c++ and have access to Microsoft Visual thingy.

But have not gotten over the initial wall of creating a simple function for bge and converting source back to blender.

Do you think trying to make some simple project together will help? I guess so. Maybe we should try implementing something basic in BGE in team?

By the way - is it possible to use IRC in Linux?
I tried this:
irc://irc.freenode.net/bgecoders
When it asked to do nothing or run program I pressed run program, but it did nothing.

If you join IRC, I advise not to spam trivial questions that could be resolved with a 5 minute search. People will start ignoring.
Getting IRC to work on Linux is a prime example. Just google it.
Consider this your entrance exam, lol.

I guess XChat is the thing I need for IRC, right? Will test tomorrow. However, what’s the problem with my try of implementing the 2D filter in actuator?

Little tricks to introduce you in the BGE development:

Use the gui as your guide. I mean:

  • Right click over text -> Edit Source
  • Visualize archive selected in the text editor -> the archive will be opened by the line related to the right click item
  • Select rna property and use it in the search of the IDE.
  • From rna property find the sdna property which is linked.
  • Use the sdna property to find which functions are used to achieve the feature pointed with the right click.

Thanks, lordloki.

I want to tell my first idea I wanna try to accomplish:
Adding variables to 2D filter actuators, like blur strength for blur etc. In 2D filter actuator they should be visible in variables section(so that you can simply close and open the properties again if you should reduce the used space of actuator, but you don’t want to close it). This would require to modify the actuator and the filters too so that they use variables(I guess that was using uniform var_type var_name).
Next step would be adding theese variables to python(cont.actuators[“2D Filter”].strength = 0.5 etc.).
I am pretty sure I can’t do this alone, so who want to help me?

P.S. This is meant for me to learn the BGE development a bit, but it may also be useful thing in Blender Game Engine.

This is a bit off-topic, but if you didn’t already know, it is planned to phase out the BGE in 2.8X.:frowning: According to the blender development road map (https://code.blender.org/2013/06/blender-roadmap-2-7-2-8-and-beyond/) It is planned to be deprecated and a new “Interaction Mode” embedded in core blender to take its place. So you may want to learn about core blender code rather than BGE code.

That plan isn’t particularly concrete, and isn’t necessarily on the roadmap anymore. Either way, the BGE will stick around, so there’s no reason to stop looking over code.

Blender already pass uniform variable to the custom 2D filter. The Property and uniform variable only need to have the same name.

For the motion bur filter there is no uniform you can change the blur value with like this.

bge.render.enableMotionBlur(0.5)

or

cont.actuators["Filter 2D"].value= 0.5

It would be so much better to have a plan laid down. Like “this part is going to change like that, we will remove this and replace it with that, this new one will come in”. More or less, nothing really precise. I’d like to track down an issue with the physics environment (speed of things depends on the framerate) but I don’t know if, by the time I have a patch for it, there will still be something to apply the patch to.
Hey guys, I’ve got this!
Nahh, that system has been replaced :stuck_out_tongue:

Do you mean you fixed the physics problem? I though TristanPorteries posted something that uses physics tics for physics instead of logic tics. Or this is something else?

TristanPorteries did the Filter2D strength variable for built in filters, I hope that it gets added to BGE. Yeah, this time all I did was learn a bit of structure(OK, I decided that using mix() in filters will do the thing of strength). Now I got question for other newbies, for example, youle(;)): Who wants to make something for BGE together with me? Something simple, but useful. Maybe a way to use cubemaps that there is no need for script. I guess it is not very difficult. But I still haven’t decided.

I didn’t fix anything. I was thinking about thinking about… which is a great way to never start anything.

Update. I found it in the bug tracker.

https://developer.blender.org/T34510