Things I Want to Implement

  • Fonts and alignment with Text Objects
  • Setting Property values via Action frames (and triggering Property Actuators accordingly)
  • Lights on dynamically loaded maps
  • Netcode (the usual fare and GGPO specifically)

I’m just throwing this out there, eh. I’ve put all Blender projects of mine on hold 'til these features are implemented, and I’m willing to set aside time every now and again to code 'em myself.

If anyone’s got any feedback, I’m more than happy to hear it, obviously. Sorry if this whole thing seems snarky, by the way: it’s late, and I knew that if I didn’t publicize this right now that I probably never would. ^^;

  1. Can easily be done with BGUIand some python. BGUI lets you load in any font you want and use it within the BGUI widgets. Alignment isn’t implemented in bgui but you can handle this by extending the bgui widget to what ever you want.

  2. I think I understand what you are looking for. A property on an object that depends on the current frame of an action? Again this can be done using python.

  3. Yea this is something which I have been looking for, but if Kupoman is implementing inferred lighting in the harmony branch of blender which ( I think ) allows lights to be added from LibLoad() or how ever you are dynamically loading your assets.

  4. PYTHON!!! python is more than capable of handling network sockets, which is what you are looking for. The problem with a ‘netcode’ module being implemented in blender is that it would need to be generalized to handle many different scenarios of networking. You are much better building up your netcode from the ground up, allowing you to optimise and fit it perfectly to your project. handling multiplayer games is not an easy ‘click to make my game multiplayer’ process. The best tutorial for getting going with multiplayer in blender is http://www.youtube.com/watch?v=4xZRfzOtxzA.

Basically… use python.

Actually number the three is already possible in logic bricks

Sent from my Nexus 7 using Tapatalk HD

Here you Go for #2Edit**

check out Gamelogic python chunk and logic brick setup

I change “mass” using a property and python, and edit the property using logic,
when I turn “Trig” to 1 it initiates the change at the same time it sets the property

you can most likely have A*LOT of uses from this…

this is done with key presses but colliding with a body can initiate things as well, like changing actuators etc, this makes for VERY easy production of moving systems,

Attachments

ChangeMAss.blend (564 KB)

q key and A key
change mass

I guess #2 is the frame property of an ActionActuator.

BTW. I recommend to open a thread for each of this points. Explain what you mean and what your ideas are. This will focus at one topic at the time.

@BluePrintRandom: I told you multiple times to edit your last post for updates if there is no other post in-between.

[Edit]
@BluePrintRandom:
Please explain the relation between
“Setting Property values via Action frames (and triggering Property Actuators accordingly)”
and
“…I change “mass” using a property and python, and edit the property using logic…”

Currently it looks like another off-topic post.
[/Edit]

this is changing a property, and having it impact a scene, I guess I was thinking a little differently, but having a variable progress and using it to advance a action, and using the same variable to trigger the property change seems easy enough,

I am trying not to be off topic, I just misunderstood I guess, this is changing a property, and applying it,

you could do what he is asking by doing the action like this

Trigger animation--------------------and--------------------property Assign ->Anim =1
if anim=1-(end frame)---------------and--------------------property (add) Anim=Anim+1
___________________________-----------------------Action by frame (Anim as frame)

if Anim=TARGET FRAME--------------and-------------------Property change you wish
property----------------------------------and----------------Do thing

I guess AlfonsoCrawford is the only one that can tell us if that is what he meant.

“On Frame X, set Game Property Y to value Z.” In a punch-animation, for example, a hitbox attached to the attacker’s fist could have a damage-value that would be set to some value during the “hitting” frames of the action. In a stronger punch, that same value could be set to a higher value (and at a different point, set by the developer).

I’ll heed your advice, Monster, but please allow me to at least respond to what’s been said so far.

  • As for BGUI, I will say openly that I do not like it. I personally feel that the built-in Text Object ought to be in charge of this, as it rather clearly is presented as being intended to do.
  • I understand that Logic Bricks can emulate the effect of a dynamic object having its own lights, but that oughtn’t even be necessary.
  • I will confess a weakness in networking protocol, so I shall neither wholly accept nor reject the advice given to give the matter of netcode over to Python: it makes sense, and I may well do that, but I am not confident enough in my ability to say anything to any effect.

Sorry for such a mess of a thread, but I knew that I had to kick-start this campaign with anything, regardless of how well it was put together, if I was to progress. ^^;

(Also, you can just call me Al or the like.)

Addressing number 3.

As for Dynamic lights on maps, you do mean level maps and not texture maps anyways im going to assume the first.

LibLoading may not be able to import lights but you can attach a script the the light that copy’s most of the settings to variables, Add another light to the same position and orientation from an inactive layer, copy the values stored in the variables to the Newly placed light.

This is how i get around being able to dynamically load my levels and lighting too.

kind of like having my cake and eating it too lol http://blenderartists.org/forum/images/smilies/sago/biggrin.gif

You set up templates like a couple of shadow casting spots, regular spots, hemi’s, points. i stick them on the last layer out of the way. These should be placed in your starting blend’s that are responsible for the LibLoading of the Maps.

Just make sure they are not in casting range of your level while being on the inactive layer or you may get some performance drops, i don’t know why.

I hope i guessed correctly what you meant.

CTBM

As I said before, such measures oughtn’t even be necessary. Settling for workarounds is only going to stunt the growth of the engine and the community.

actually lights are initialized on GLSL start not during. what you are asking is impossible in the current state.

Its a GL issue not Blender GE.

Can you seamlessly “switch” scenes? like load a room by transferring all the object data to a new scene and start the scene and when it is ready “switch” over?

I knew that it was a GLSL-related problem, but I did not know that it was entirely without the scope of the BGE. My apologies. ^^;

Is there a way to make blender auto select GSL vs multi texture textures based on the Computer?

I am not sure my openGL even works right,

So my solution for 2 does not apply?

I was thinking, the same thing that advances the animation frame by frame could also be a property, so the "Hand"ik target could use always-> copy property “animation Count”
so if Count =X then spawn hit box “Punch”

??

Why do you think that the built in text object should be in charge of it? BGUI is pretty much as simple as it gets … it’d really help you out in the long run to just go ahead and use it.

  1. Not sure why nobody likes text objects - BGUI is great for GUI and text display in games, but takes a bit of work to set up. If you want to make a GUI for a game, BGUI is great, but if you just want to slap some text up somewhere, or if you need 3D text, then Blender’s built-in text objects would be good. Alignment would be a nice feature to add, for sure.

  2. That could be useful. It’s easy to do with Python, but it might be a nice feature to add for logic brick users. However, you could just use a frame property with the sensor set to check for the property lying within a range already.

  3. I’m not sure what you mean by this - do you mean lights affecting objects dynamically added in-game (supported), or dynamically adding lights in-game that affect objects (not supported, but in Kupoman’s Cucumber branch that hopefully will be ported)?

  4. As has been mentioned, Python can do this, but it might be more efficient in C++ as opposed to Python. However, I’m not sure of how much GGPO or another netcode library (which would have to be GPL compatible) handles of the game state, or how easy it would be to implement, since it would have to be configured to send the default data (positioning, scale, orientation, visibility, adding objects and deleting objects), as well as send custom Python variables set in the objects.

I’ve built a frame-by-frame sensor, but it’s both insufficient for my own purposes (a fighting-game, which requires an extreme amount of frame-data) and a great convenience for others; so everybody wins. :heart:

If I import, say, an arena for a shooter, any lamps I put in the arena’s blend-file will not load. What I’m thinking to do is just add a “simple” layer of automation that cycles through and does what makers can do themselves already, using hidden lights will be loaded by default will the GLSL shader. I… am betting this will be a lot harder than I think it’ll be!

Networking’s a big weakness of mine, so I’m not saying what I’m gonna do here at all. I know GGPO does weird things with the gamestate—something about remembering frames or skipping animations ahead by a few frames—that I may be able to pull off with Logic Bricks and a decent generic setup that people already use. Anything can happen with this one~!

My stance is simple: I’m looking at the engine from a consumer’s perspective. Why do I have to import this outside bundle of scripts (explicitly designed to not interact with the engine) to do something that the program itself plainly states it can do itself; things BGUI itself cannot do (by this I mean align text)? Frankly, that’s absurd; and I’m tired of waiting for someone else to address it. This is the last thing I will say on the matter.

If the BGE was able to make full-use of all of the font options Blender provides, that would make it much easier to create GUI’s while minimizing the amount of programming required. The font-object method also is a lot more visual because you can see it in the 3D view.

It’s like arguing why we have a GLSL mode when we have access to the GLSL API, again, things like graphics and text are very important to have in a WYSIWYG environment, because you can focus on building the components of your GUI and world without having to repeatedly start the engine and do guesswork to see what it looks like.

BGUI can align text… pretty easily… but I can see that getting you to use it is a lost cause :stuck_out_tongue:

def alignText(str1, widgetWidth, flag):
#     Flags        (widgetWidth is passed as the max. allowed length of text on the label/etc)
#     0 = center
#     1 = right
    if flag is 0:
        if len(str1) < widgetWidth:
            length = widgetWidth - len(str1)
            for x in range(0, int(length / 2)):
                str1 = " " + str1 #Align to aprox. center
    elif flag is 1:
        if len(str1) < widgetWidth:
            while len(str1) < widgetWidth:
                str1 = " " + str1 #Align to right side
    else:
        print("In method[alignText] error: invalid flag(" + str(flag) + ")")
    return str1