Blender Game Logic Nodes (UPBGE-Compatible)

I tried it, it works for me :thinking:

This is my setup:
setPos

sets the world position of Sphere.001 to that of Sphere

Here you can read about the difference between local and global transformation:

EDIT: I’m gonna set the default option to “World Position”, that should make it more intuitive to work with

Back again, Sounds proove to be quite the difficulty, so for now I made all Logic Bricks accessable through nodes :+1:

This way you can just hook any Actuator up to the Controller of the tree and it will recognize those Actuators - the same goes for Sensors, but they don’t even have to be hooked up to the controller :partying_face:

I’ll see if I can make it any more intuitive, but basically that should bring full functionality to Logic Nodes, at least by proxy :thinking: a bit wacky maybe, but it works!

Here’s how it’s done:

2 Likes

You’re the man, congrats ! Keep on doing your best my friend ! Can wait to use this functions inside upbge with eevee

1 Like

just wanted say thanks to you for logic nodes :vulcan_salute:

1 Like

Heads Up:

There are some Sensors that need to be connected to a controller to be recognized (Collision for example, can’t really be done with python), so now when applying a tree, a new “OR” controller will be added to the object. Link the sensors to that and you can access them :+1:

Also I added the possibility to search for Actuators by name, which should cover the issue of multiple objects using the same tree :thinking:

Currently adding “Done” Sockets to all relevant Nodes so it’s possible to chain events :hammer:

For News on the GPL - Steam thing:
(See Discussion Below)

I highly recommend reading through the Steamworks SDK Docs here if you plan on releasing something:
https://partner.steamgames.com/doc/sdk/uploading/distributing_opensource

1 Like

You dont really need the steamworks SDK to publish something in Steam. You will need for statistics and trade cards only.

“The Steamworks SDK is only required to upload your content to Steam, everything else provided through the SDK is optional.”

https://partner.steamgames.com/doc/sdk

Did I get this wrong then? :thinking:

For example, Krum or Tomato Jones games dont use the Steam API due to GPL issues but @haidme can upload the game without problem.
I mean, you can use their platform to sell your game but you wont can use all their available features as you cant use its API (well i think it is possible to create a server that use the Steam API and connect to that server through the sockets from blender game)

Then to sum up this topic:
Steam accepts Blender made games when

  • NOT using Steamworks SDK

OR

  • using Steamworks SDK only for communication between Steam and a seperate, non-Steam, non-GPL service that picks the relevant information from the game

Bottom Line:
UPBGE and BGE Games can be sold via Steam :+1:

I think this time I got everything right…

1 Like

Steam accepts every kind of game. You can make it on flash if you want. There is absolutely no restrictions, when it comes to engines or technology.
GPL stuff is perfectly fine, Steam doesn’t care about that.
The Steam SDK is a bunch of tools that you can integrate with C# or C++ in your project. The only reason BGE games can’t use SDK full functionality is because BGE uses Python for the game logic instead of C/C#.
But if someone create a small separate C++ program(.exe) that runs, when the game runs and “talks” with Steam SDK and then sends the info to bge python and vice versa, it will be possible to use all the SDK functionality in a bge game.
For now I use only one tool in Steam SDK, the one for uploading content(builds/betas/DLCs to my Steam space). Which is just enough to publish your game on Steam. You create a random .exe file with a random software - like a game engine. Then upload it to Steam and name it a “game” and it works, you can publish it on their page or do whatever you want with it…you can make branches, backups–etc. it’s like an SVN …that’s it.
But without full SDK functionality a bge game can’t have Steam achievements,Steam cloud and Steam leaderboards and also it is not possible to log into a bge game with your steam account. That’s fine with my games and if it is fine with you, then there is no problem to publish your game on Steam.
GPL restrictions are restrictions no matter if you publish on Steam or on your own site or anywhere else.

7 Likes

Hi Iza_Zed, the “rotate to” node still reports errors in the console, I think the “speed” parameter is missing…

…and don’t forget a node to save variables on the disk. :wink:
Thank you.

Uuh, it’s got the wrong socket color, too :thinking: I’m on it :+1:

Good idea, a first step towards data persistance :smiley:

Ultimately I would like to implement a full save/load system, but alas, I fear that’s not for now :roll_eyes:

EDIT:
The “Rotate To” Node itself works for me… the “Track To” Node will likely be removed anyway, that’s still there from testing, could you maybe send me your node setup and the error message? Then I can take a closer look at it

When I just added this node, the console returned this error:
self.inputs.new(NLSocketPositiveFloat.bl_idname, “Speed”)
NameError: name ‘NLSocketPositiveFloat’ is not defined

but the node works fine anyway… sorry…

I just saw the correction on github… :+1:

New Update:

Saving and Loading v1 is here!

salo

Although there is the ability to enter a custom path, I highly recommend keeping it on User/Documents, then you’re on the safe side :+1:

The “Save” Node creates a .json file with information in the given folder, the “Load” File reads from it

Make sure the Game Title is the same in both Nodes, as that is the Folder name in “C:\Users\Zedikon\Documents\My Games\ 2.8Game \Saves” for example, will try to make this more bullet-proof in the future

You can create an unlimited amount of saves, just remember which slot you want to load :thinking:

3 Likes

wow thats very cool i already forgot importance about load/save games XD
thanks @Iza_Zed :vulcan_salute:

Fast and easy as I like… :ok_hand: Just 2 words: thank you!

There’s some things that the system can’t handle right now:

  • It only saves Objects currently available in the scene, so if you delete an object or add one, that object will cause problems (untested)

  • It only saves the current Scene

  • It can’t load up into another .blend file at a specific state, but I plan on enabling that, too

  • Animation states are not saved

This is first and foremost a starting ground for now, I do plan on implementing full generic Save/Load functionality over time :+1:
Just know that it’s still in baby shoes

EDIT:
I needed updated functionality for an old project of mine, so now the updated nodes are also available for UPBGE 0.2.4 :dancer:

2 Likes

One question, but the new logic nodes doesn.t work in standalone mode?Thanks!

what do you mean by standalone exactly? In general:

  • It’s an Add-On for the UPBGE blender fork, so the nodes themselves are just plain python

  • Each created Node Tree needs to be attached to an object to run

  • (Almost) every Node performing an action needs to have a condition linked to it

First of all thanks for the reply, the logical nodes work in “embedded mode”. do not work in “standalone start”