<Insert Game Engine> Means BGE is dead. Not.

It would be quite hard to make a “visual programming framework” that is both engine agnostic (i.e. plays into your Blender-as-shell concept) and is sufficiently useful it is worth using over directly coding/scripting the logic.

I think this was the goal of Hive nodes, but they are facing some sort of speed bottlenecks,

Agoose is working on it in his spare time, but works and is in uni.

and btolput , I hope kupoman is able to consolodate the ideas from harmony part 2,

and give the bge a shot in the arm,

I trust the developers when they say they have ideas on moving forward.

Like the great zombie jesus,

we shall rise…again.

HIVE has been stuck in the rut for years now.

Unless the BGE community can find a way to turn the volunteer developers into paid developers, there’s no chance at all for the engine to get close to the power of Unity 5 and Unreal 4.

Historically, you may not give it much of a chance of happening since the 5+ years since 2.49b saw many areas of the BGE barely change at all (I believe the sound system rewrite was the last major new piece of functionality to get committed with all newer changes being a bit smaller in scope). Meanwhile you had nearly every other up and coming game engine advance by leaps and bounds.

Right now it seems, the best that the BGE will soon have in terms of community would be a small group of die-hard users (like those who still try to create playable games in the original Doom engine). It can make games that work (and are fun to boot), but don’t expect the quality of them to get better. It would seem to me that games like Krum and one or two others on Steam represent the absolute cap on what the BGE can do.

I am not comparing the bge to anything but the bge, what will make the bge render more polygons faster?

I don’t care about the other engines performance, (most of them won’t even run on my pc).

I am going for steam. With my current game. Fin.

Krum - > steam
Arctic alive -> good chance
Torts Terminator game -> on steam

I think there are others as well.

How does that work?? You can’t compare something to itself for comparison reasons…? lol

Current BGE vs future bge

You don’t win a race by competing with the fastest runner

You win by competing against your old times. over and over

You win by getting better.

The thing people are trying to say, which you don’t seem to want to get, it that it will take far more than a few lines of code and some patches to really get the BGE going again. You need to look at the situation from a coder’s perspective and people who have actually touched the code have given their’s.

I think it would be great if the 4 people with commit rights now can really get the engine going again, but there’s no guarantee on the idea that they can end up modernizing the code and the graphics pipeline.

No one seems to be with my on this, but with the exception of a few bugs I ran into, I can do ANYTHING I try.

Those bugs are fixed now btw !

also, there are some issues with LibLoad/LibNew/LibFree that need love.

However I can make my game as is right now, I just want to have wiggle room with graphical fidelity,

when I upgrade my gpu next week Wrectified will undoubtedly look better,
however I still want the engine improved for future users.

I don’t care if all the blender users in the world don’t get it,
BGE users do, we like it. it has a future.

Out of passing curiosity, have you actually decided to build anything bigger than a small game? You can probably get around bugs for games like Snake, but you won’t build the next Unreal Tournament in Blender Game Engine because the minor problems you’ve mentioned here will be multiplied as the game itself gets bigger. There’ll be technical limitations in there as well as the code-base is antiquated (as others have mentioned.)

yes. Right now my only limitation is polygons per draw call,

cascaded sun shadows would be nice as well.

It’s a cute start, but I would class that as a ‘small game’ personally (so far, at least.)

yeah, I have been working on a level assembly kit, and LOD and a dynamic lighting manager, so a bigger scene is on the way,

there is nothing stopping me right now, except I am lazy and want to maximize my return on time…

I restarted 3 times now, do to problems with my code, not the engine.

now I am just about ready to throw it all together, but have been concerning myself with having it scale huge.

Well I ain’t gonna try discouraging you, if you think you can make it work then go for it by all means, but I do think you should be listening to the countless people who’ve brought up issues with the engine in this thread. The problem you’ll face though is turning an old horse and cart into a sports car. If you manage to successfully do that, make sure you patent your designs!

lol, no, I am releasing it Mit 3.0 cc.

I am going the donations for innovations route.

I want to make the engine approachable to indies,
and maybe make some scratch.

I am going to have development goals that are micro kickstarters after the demo.
I plan on contributing back to pay for developments,

but I had to learn to be a coder, and artist,
I have others helping with art, but it’s hard to wait.
I started the game as the director/crappy artist. :stuck_out_tongue:

I think the bge could be great,

The problem with ‘learning to code’ is that it falls under ‘easy to learn, difficult to master.’ People spend years mastering the art of coding and getting it up to a level of professionalism that’d pass by most other serious coders. Are you realistically ready and willing to invest that amount of time in just that one endevour? With that in mind, where’s the assurance that the Game Engine will be available when you’re ready?

The engine is already there, my game is as well, the only difference It could make is how large the draw distance, and if the game is underground or not. :smiley:

Working on all of this each night.

I have a fulltime gig otherwise, I do this as a hobby.

I think my design is pretty efficient,

Controller(sends keypresses as 2 lists and MouseMovement to target actor)

Actor(does stuff based on lists and mouse movement)Only when receiving a command*

actors are placed in a empty state when not in use, or ai?

This makes the engine so you could drag and drop in a “empty” actor, and program them…

my system is like a state machine/animation controller.


import bge
from mathutils import Vector


def main():


    cont = bge.logic.getCurrentController()
    own = cont.owner
    ## start header
   
    walk = cont.actuators['Walk'] 
    walkRightArm = cont.actuators['WalkRight'] 
    idel = cont.actuators['ID']
    WalkRightForward = cont.actuators['WalkRightForward'] 
    WalkRightForwardArm = cont.actuators['WalkRightForwardArm']
    WalkForwardLeft = cont.actuators['walkForwardLeft']
    WalkForwardLeftArm = cont.actuators['WalkForwardLeftArm']
    IdelingArm= cont.actuators['IdelingArm']
    Left = cont.actuators['Left']
    LeftArm = cont.actuators['LeftArm']
    Right = cont.actuators['Right']
    RightArm= cont.actuators['RightArm']
    own['MoveStr']=str(own['Move'])
    ## end header
    
    
    
    
    ##sensors
    offset = Vector([0,0,-1.8])
    offset = own.worldPosition+(own.worldOrientation*offset)
    Ground = own.rayCast(offset,own.worldPosition,0,'',1,0,0)
    
    if Ground[0]!=None:
        
        
        if own['Move']==['Forward']:
            
            ##Carving system for sideways motion prevention
            own.localLinearVelocity.x+=abs(own.localLinearVelocity.y*.1)
            own.localLinearVelocity.y*=.1 
            
            ##force application system   
            if own.localLinearVelocity.x&lt;3:
                own.applyForce((30,0,0),1)
            
            
            ##animation control section
            cont.activate(walk)
            cont.activate(walkRightArm)
            
            cont.deactivate(idel)
            cont.deactivate(IdelingArm)
            cont.deactivate(WalkRightForward)
            cont.deactivate(WalkRightForwardArm)
            cont.deactivate(WalkForwardLeft)
            cont.deactivate(WalkForwardLeftArm)
            cont.deactivate(Left)
            cont.deactivate(LeftArm)
            cont.deactivate(Right)
            cont.deactivate(RightArm)
            
        if own['Move']==['Forward','Right']:
           
            if own.localLinearVelocity.x&lt;1.5:
                own.applyForce((30,0,0),1)
            if own.localLinearVelocity.y&gt;-1.5:
                own.applyForce((0,-30,0),1)
                    
            cont.activate(WalkRightForward)
            cont.activate(WalkRightForwardArm)
            cont.deactivate(idel)
            cont.deactivate(IdelingArm)
            cont.deactivate(walk)
            cont.deactivate(walkRightArm)
            cont.deactivate(WalkForwardLeft)
            cont.deactivate(WalkForwardLeftArm)
            cont.deactivate(Left)
            cont.deactivate(LeftArm)
            cont.deactivate(Right)
            cont.deactivate(RightArm)
            
        if own['Move']==['Forward','Left']:
           
            if own.localLinearVelocity.x&lt;1.5:
                own.applyForce((30,0,0),1)
            if own.localLinearVelocity.y&lt;1.5:
                own.applyForce((0,30,0),1)
                    
            cont.activate(WalkForwardLeft)
            cont.activate(WalkForwardLeftArm)
            cont.deactivate(idel)
            cont.deactivate(IdelingArm)
            cont.deactivate(walk)
            cont.deactivate(walkRightArm)
            cont.deactivate(WalkRightForward)
            cont.deactivate(WalkRightForwardArm)
            cont.deactivate(Left)
            cont.deactivate(LeftArm) 
            cont.deactivate(Right)
            cont.deactivate(RightArm)
                   
        if own['Move']==['Left']:
           
            own.localLinearVelocity.y-=abs(own.localLinearVelocity.x*.1)
            own.localLinearVelocity.x*=.1
            
            if own.localLinearVelocity.y&lt;3:
                own.applyForce((0,30,0),1)
            
            cont.activate(Left)
            cont.activate(LeftArm)        
            cont.deactivate(WalkForwardLeft)
            cont.deactivate(WalkForwardLeftArm)
            cont.deactivate(idel)
            cont.deactivate(IdelingArm)
            cont.deactivate(walk)
            cont.deactivate(walkRightArm)
            cont.deactivate(WalkRightForward)
            cont.deactivate(WalkRightForwardArm) 
            cont.deactivate(Right)
            cont.deactivate(RightArm)
             
        if own['Move']==['Right']:
            
            #Carving system for sideways motion
            own.localLinearVelocity.y+=abs(own.localLinearVelocity.x*.1)
            own.localLinearVelocity.x*=.1
           
            
            if own.localLinearVelocity.y&gt;-3:
                own.applyForce((0,-30,0),1)
            
            cont.activate(Right)
            cont.activate(RightArm)
            cont.deactivate(Left)
            cont.deactivate(LeftArm)        
            cont.deactivate(WalkForwardLeft)
            cont.deactivate(WalkForwardLeftArm)
            cont.deactivate(idel)
            cont.deactivate(IdelingArm)
            cont.deactivate(walk)
            cont.deactivate(walkRightArm)
            cont.deactivate(WalkRightForward)
            cont.deactivate(WalkRightForwardArm)
        if own['Move']=="Empty":
            
            own.worldLinearVelocity*=.9
            cont.activate(idel)
            cont.activate(IdelingArm)
            cont.deactivate(WalkRightForward)
            cont.deactivate(walkRightArm)
            cont.deactivate(WalkRightForwardArm)
            cont.deactivate(walk)
            cont.deactivate(WalkForwardLeft)
            cont.deactivate(WalkForwardLeftArm)
            cont.deactivate(Left)
            cont.deactivate(LeftArm)
            cont.deactivate(Right)
            cont.deactivate(RightArm)
            
    own['Move']="Empty"
main()



And that leads us to another problem; a person is their own worst critic.

I’m a little confused at your intentions, truth be told. Are you trying to build a game in Blender Game Engine, or develop the engine itself?

Controller(sends keypresses as 2 lists and MouseMovement to target actor)

Actor(does stuff based on lists and mouse movement)Only when receiving a command*

actors are placed in a empty state when not in use, or ai?

This makes the engine so you could drag and drop in a “empty” actor, and program them…

my system is like a state machine/animation controller.

Someone else would have to chip in here cos I only know web-based coding.

Its designed this way, so a Car uses the same input as a person, as a helicopter,

each vehicle or actor then applies animations, actions, and motions based on it’s own local filter.

this way, your entire team can make a vehicle, and none break each other.

I wrote my own script based lod,

uses about .06 ms no matter how many it’s processing, catch is way too many = fails to update as fast

it will also handle lighting and states of enemies and systems.

“light hooks” and “Level of logic”

it started off this way, because how do you snipe with a LOD that is only using the active camera distance…?

I am going to be selling upgrades to a game,
to a community that does not yet exist,
to pay for developing the game, and the engine.

I love the bge.