Programming + BGE

I am a self-taught programmer ---- I will share my experiences & give advice on the best practices.

Let me begin, by saying programming can be very useful (if you are extremely competent) … but it is also very difficult & time consuming. There are many trade-offs. But like any skilled trade, nothing is easy. For example, opening a restaurant requires tremendous skills, experience, labor, assets, etc. Even the “oldest profession” (ie sex worker), there is the “emotional trauma” (essentially you are selling a piece of your soul).

In life, there are seldom “”“easy, get rich quick”"" schemes (that does not involve exploitation or theft). -------------> So, you need to think hard if “COMPUTER PROGRAMMING” is for you. Only 1 out of 10,000 people have what it takes to be a truly skilled programmer. It requires:

(1) VERY HIGH INTELLIGENCE
(2) LOTS OF TIME & EFFORT

=======================================================================

Here is something important that you seldom hear / read about ==> Often it is not only what you “SHOULD DO”, but also what you “SHOULD NOT DO”. My philosophy in life, applies to learning as well. You need to recognize what is:

(1) ESSENTIAL
(2) USEFUL
(3) WASTEFUL
(4) HARMFUL

A lot of people not only get “”“burned out”"" from Computer Programming, but they WASTE THEIR LIVES AWAY … and this is very bad, because life is precious. Time is precious. So in this thread I will not only share with you what I am doing … but also, advise on what NOT TO DO. :slight_smile:

I will list 8 programming languages that I am specializing in. I will also explain WHY you would not want to waste your time with other programming languages (with very good reasons). :slight_smile:

(1) GDSCRIPT
(2) GLSL
(3) Python
(4) Haxe
(5) C
(6) Assembly
(7) C++
(8) Shell scripting


(1) Godot is very useful b/c it is self-contained executable, that can EASILY export to GNU, Windows, Mobile & Web. It is much better than GTK or QT for creating applications besides games. You can do a lot with just gdscript, and it works across all 4 platforms with no or minimal modifications. :slight_smile:

(2) OpenGL Shading Language (GLSL) provides for 3 types of shaders (vertex, fragment, light). This will greatly enhance the performance & look of your graphics. Also, by using “uniform” variables, you can pass & share data b/w the GPU & CPU -----> You can then program very fast parallel computations. :slight_smile:

(3) I just use Python for BGE (and sometimes Blender itself). I don’t bother with the many extra “libraries”, but rather only program what I need. A common mistake by many, is they rely too much on external “frameworks”, “classes”, & “libraries”. :slight_smile:

(4) I just use Haxe for Armory ----------> Again, I don’t waste time with cumbersome new age paradigms. Just focus on the basics & build your own networking, OS system utils, etc. :slight_smile:

(5) C is the most USEFUL b/c nearly all useful code is in C. :slight_smile:

(6) Assembly is basically words that represent actual Machine Instructions. This is essential for understanding & creating tools, firmware & binaries. :slight_smile:

(7) I hate C++. It is stupid. OOP is stupid. The person who created it is stupid. But some files in Blender, Godot, Armory is in C++. I do plan on translating it all to C one day… :slight_smile:

(8) Shell scripting allows you to easily create programs (ie scripts) that can call other programs. Very useful. :slight_smile:

1 Like

You might be slightly biased on that topic :wink: . There are for sure issues with both C++ and OOP. At the same time they have strengths as well and can be very powerful if they are appropriately used. After all, that’s the reason why they are being used!

1 Like

Believe it or not, I am opening up a VOCATION TRAINING SCHOOL to help “needy street folks”.

It is not just real-life training, but I am developing the entire course whose goal is to make it possible (if they put effort in) to:

(1) First 3 months to get acquainted with concepts, tools & ideas.
(2) Next 3 months to finish their own commercially viable BASIC project (using a template project).
(3) Next 6 months to finish their own INTERMEDIATE project


The idea is to actually produce something in that time frame. A common mistake is dragging out the project ------ As you may know from experience, the longer something takes, the chance of (a) abandonment, (b) “feature creep”, © BLOAT, or (d) derailment increases. :frowning:

Thus, focus on finishing what you can within the time limit.


So what will I be teaching & helping them to create???

(1) Working GAME
(2) Feature length MOVIE

Both of these go together. :slight_smile:

The way I solve the challenge of extremely looooooooooooooooooooooong render times, is by using screen + audio capture (using OBS) of my GAME to make my MOVIE.

For a few select scenes, I will custom animate & render using Blender Internal. :slight_smile:

I fail to see why you are starting a thread where you make a huge list with your opinions about game development and programming languages and then mention the training school and then some technical details about using Blender Internal for some cutscenes.
What is this thread supposed to be about? Is the goal to spread your wisdom?

I don’t mean to be inflammatory but some of your ideas are unusual.

Why are these languages bad to learn? So many things are written in C#, Java, and Javascript.

Then to touch back on your opinion of OOP and C++, why? OOP is used everywhere. You’re not gonna develop an app functionally. You will use objects.

You make no sense at all. Are you trying to start a fight and get your thread locked?

1 Like

I have the hardware to test & develop for 4 different platforms (GNU + linux, MS windows, Android or Harmony OS, HTML 5 & Webgl) with the following various configurations ==

(1) CPU ------> x86_64 & ARM.
(2) Form factor -------> Desktop, Laptop, Tablet, Mobile phone
(3) Input --------> Keyboard only, Mouse only, KB + Mouse, Touch screen
(4) GPU -------> AMD, Nvidia, Intel, various mobiles (qualcomm, huawei, samsung, mediatek)
(5) “Power” -------> from very low end to high end machines

If you want to learn just 1 language -------------------> GDscript.

With Godot + GDscript + export templates (also JDK 8 if you want to sign *.apk) everything is self-contained. You do not a complicated setup. :slight_smile: In fact, I stripped most of JDK, leaving just the jarsigner & keytool to sign my *.apk. My whole setup up, takes less than 100 mb compressed.

With this, I can develop for GNU, Windows, Mobile, & Web. Easy & fast.
Along with a lighweight “webfsd” web server, I host my own website on my IP address.
After thinking long & hard, how I can help “street folks” (whom most likely will get easily frustrated in front of a computer) ==================> How can I teach them real-life practical skills. :slight_smile:

There a too many “web developer” training schools, such as boot camps, colleges / universities, etc. However, most of these are very EXPENSIVE, and to be honest, they do NOT teach you much.

In addition to being over-saturated supply market, we need to be able to produce something self-contained that has value for others.

if you want to learn 1 language: pick either python, java, or C++

Solution :white_check_mark:

1 Like

Quick question: What does all this have to do with the BGE? Why do you create a topic containing a rhetorical question to seemingly answer it on your own?
If you are not interested in any kind of discussion, it might be better to write a book or blog post (maybe disable the comments).

The problem is the 3 you mention, is that it is too over-complicated (for most people). Too much syntax & coding rules, whereby small typos would leave people frustrated.

I’m thinking in terms of folks like my elderly father (who mainly uses streaming videos for entertainment), or my mother (who is tech-adverse), or my sister and her friends (who I discovered nowadays, people aren’t keen be delve deeply into trouble-shooting).

====================================================

After several projects (game, photo app, communication app, modeable game) ----- I will find the bare essentials needed. For example, which nodes & fns are essential, and which are not used (or barely).

From that experience, I can effectively develop my Training Curriculum. :slight_smile:

First you want results.
Then you want control.

Hence why some technologies appear more complex, it’s always a trade-off.

Simplicity comes at a price :slight_smile:

Since the OpenGL -vs- Metal on Mac OS,

thread was locked. I’d like to chime in something interesting. ----- It’s no secret that Apple has been planning to move their entire ecosystem over to ARM.

Thus, the current Mac Pros are just stop-gap measures to relase “something”, while they continue working on making the Laptops & Deskops run on ARM. Thus, they are also unifying the OS, so it runs on phone, tablet, & laptop. It makes sense to just support Metal (since it is a proven solution on ARM mobile).

As a developer, I know the headaches of supporting numerous targets. Likewise, the chance of Blender running on ARM or Metal … Since 2012, Ton Roosendaal has taken more of a mangerial role. He is the man who single-handedly created most of Blender. I have been slowly & steadily studying the Python API (so I can understand the C/C++ source code later) … because I want to revive the 2.6.

Why???

Because for 2 main reasons: (1) 2.6 can compile BGE, (2) no unnecessary bloat of external library dependencies.

But there is a problem with graphical glitches ------> I am suspecting since the upgrades in GPU drivers about 1 1/2 years ago, it “broke” the old OpenGL 1.4.

It’s not an immediate goal, but if I do have time I may get to fixing it.

But if you revive 2.6 + BGE, then you will have learned GDScript for nothing! It’s all Python!

/s

Not “for nothing”, since I use Python for BGE, GDscript for Godot & Haxe for Armory.

There are plans (at least used internally) for 3 custom “forks”: (1) Blender 2.6, (2) Godot 3.0, (3) Armory 0.4 to work using BI instead of Cycle materials on Blender 2.6. :slight_smile:

There are good reason for doing so.

(1) Blender 2.8+ no longer has BI & BGE, also I cannot get it to compile, nor do I like the many external library dependencies.

(2) Godot 4.0 is moving towards Vulkan … which breaks my GLSL code.

(3) Newer versions of Armory is only on Blender 2.8+

You should join the upbge team instead of reviving 2.6. Upbge uses 2.8 and bge, so you have bge with evee.

This thread is grossly inappropriate. If it was just flaming about languages because the OP can’t get his head around different methodologies then I could ignore it and move on, but the idea that he’s going to promote professional training scares me. That kind of arrogance tends to make some people believe that he’s a visionary and knows what he’s talking about, and I’m actually concerned that some people will spend their time and money on this.

In my opinion, this entire thread should be removed.

1 Like

At least this thread is about BGE unlike other similar threads.

You started a whole thread about Networking that you knew would get out of hand.
Let it be.