'Jumper'. Game inspired by Portal. Windows and Linux Demo Now Available!

Also, I’ve realised that somebody has re-uploaded my video on youtube :confused: Not sure how I feel about that. They have put a link to here in the description so I guess I can’t complain too much.

Have you considered turning down the gravity and reducing the power of the jump pads?
Right now the vertical movement seems too fast, I fly up, hit my head on the ceiling and then slam back down to ground. There’s no time to experience the sensation of jumping.

I see the character is about 1.4 blender units tall. That would make them about 140cm tall. That adds to the feeling I think as the gravity is not well scaled to the player.

As you are using a custom script for mouse movement you would have to dig around in there to manually set gravity. I think it’s the bit in the in_air state:

### Custom Velocity ###
        self.own.applyForce([0, 0, -30], False) #global force
        

You need to comment that line out, since you already have normal gravity in your scene.

Interestingly if you remove gravity from the world settings tab (set it to zero) but leave the above code in place You can have a fun wall walking mechanic, where as long as you say in contact with a wall you don’t fall down.

Talking of game mechanics, I think the mid jump boost needs to be redesigned. Either it could have a recharge time, or it should work only while held. I think it would be interesting trying to gauge your flight time correctly so you can fall down on to a small platform.

What do you think of level design so far?

I think you made it portalish enough. Simple and straight forward. It is obvious what needs to be done to get through the demo. All the player has to do is figure out how to use the jump pads. I think that is mission accomplished

Hey smoking_mirror. A lot of interesting points there. Thank you very much, I’ll make sure to give each of those some thought. To be honest, the boost was bit of an after thought, and so as suggested will need polishing!

Thank you! :slight_smile:

The game is getting there!

Currently redesigning the map modular pieces in a more efficient way. I’m still sticking to the same kind of theme. Trying to stick to a chosen colour palette to keep good aesthetics. I’ll release some pictures soon.

Looking good so far!

Thank you! Glad you like the look of it! The video here shows the updated level design. Instead of using all solid objects, walls etc are mainly flat planes. I’ve added some subtle props such as the cameras and ventilation shafts. I might add some more props but I’m being careful to try and add detail without adding too much clutter.

Good to see you’re still keeping at this! The update vid shows it, too. This looks 100% better than what you started with. Good job.

From what I see in the video, you are doing this effectively! Your details are flowing with the players path, and providing focus points to lead them forward with that ‘sub-conscious carrot on a stick’. Keep that up.

I agree with smoking_mirror that the jumping looks like it needs to be more floaty. If this is the focal mechanic of your game, you should make it as enjoyable for the player as possible. Having good control (but not too good of control!) over your mid-air movement would add to that enjoyment, and allow for more interesting jump-based challenges. This will probably be something you’ll have to spend a lot of time getting the balance of just right though, so don’t feel bad if it’s not easy getting this to the point where it feels right.

Also, I suggest adding some sort of sound effect to trigger when you hit a jump pad. Even a cheap Mario ‘boing’ as a placeholder will add to the experience. Affirm to the player that they’ve triggered a pad, and help train them to get into the ‘jumpy’ mode of thinking when they hit the thing.

Hey Nines. Thank you for the feedback! :slight_smile: I’ll see what I can do to try and improve the jump mechanic. …You’re right about the level design. It could be quite challenging to make a lot of challenging stages with such a simple mechanic.

I totally agree with the sounds. I was thinking that when I was playing through the game. I always put sound off because I absolutely loath hunting for and adding sound to the game. I find it very boring. Has to be done though! :slight_smile:

Here is the code I have for the jump mech. Could somebody recommend a better way to do this? With a better feel.

Just bear in mind that the player is using the mouse look script with the dynamic movement set up.


from bge import logic
cont = logic.getCurrentController()


Ray = cont.sensors['DownRay']
JumpForce = 0


if Ray.positive:
    if Ray.hitObject['size'] == 'small':
        print('Small pad')
        JumpForce = 750   
        
    elif Ray.hitObject['size'] == 'medium':
        print('Medium pad')
        JumpForce = 1250
         
    elif Ray.hitObject['size'] == 'large':
        print('Large pad')  
        JumpForce = 1500
        
    own = cont.owner
    own.applyForce((0,0,JumpForce),True)

I’ve updated the lighting to give a bit more atmosphere. I will continue to tweak it. I’ve also started added animated platforms to add some dimension to new chambers. See photos.

Attachments




Updated demo. I havnt changed/removed the boost feature yet.

Attachments

JumpingGame_Update_1.zip (6.28 MB)

Unfortunately, the sound in this video seems a little bit out of sync (Might just be my computer). Jump pad sounds are normally at a more natural timing of being launched.

I’ve made a very brief start on the itch page for this game. That’s a good motivator to finish the game!

The game now has fully functioning Main/Pause menu screens and Auto-save/Continue-game feature.

So, whenever you enter a new chamber the game auto-saves. Then from the main menu, you can choose to start a new game, or continue where you left off. Its working really nicely :slight_smile:

Although, if somebody could help me optimise the following code I would really appreciate it. I had trouble saving the player position/orientation directly in to the global dictionary as vectors/matrix and had to split all the bits down (See code). Is there a better way of doing this? Is there no way to save complex types in the global dictionary?


from bge import logic


#Get a handle to the controller
cont = logic.getCurrentController()


#Get a handle to the scene
scene = logic.getCurrentScene()


#Get a handle to the player object
Obj_Player = scene.objects['Player']


#Get player's position
vPlayerPos = Obj_Player.worldPosition


#Get player's orientation
vPlayerOrient = Obj_Player.worldOrientation


#Start save player position
logic.globalDict["vPlayerPos_X"] = vPlayerPos.x
logic.globalDict["vPlayerPos_Y"] = vPlayerPos.y
logic.globalDict["vPlayerPos_Z"] = vPlayerPos.z


#Start save player orientation
logic.globalDict["vPlayerOrient_00"] = vPlayerOrient[0][0]
logic.globalDict["vPlayerOrient_01"] = vPlayerOrient[0][1]
logic.globalDict["vPlayerOrient_02"] = vPlayerOrient[0][2]
logic.globalDict["vPlayerOrient_10"] = vPlayerOrient[1][0]
logic.globalDict["vPlayerOrient_11"] = vPlayerOrient[1][1]
logic.globalDict["vPlayerOrient_12"] = vPlayerOrient[1][2]
logic.globalDict["vPlayerOrient_20"] = vPlayerOrient[2][0]
logic.globalDict["vPlayerOrient_21"] = vPlayerOrient[2][1]
logic.globalDict["vPlayerOrient_22"] = vPlayerOrient[2][2]


#Save global dict
logic.saveGlobalDict()

Latest blend download: https://drive.google.com/file/d/0B3fNHFFEy8SKNF9oWTY3eV9GWkk/view?usp=sharing

Wow! I never really looked at your post, because of what you started with, so I missed all your updates. Until now!
Very nice project now, this has really evolved, and as I love portal, I can’t wait to see more. The jumping mechanic seems to be nicely balanced now, so you can enjoy your jump. Only problem is that the head sometimes goes through the roof.
Nice to see how quickly you add new levels and how the difficulty evolves. Hope you have some good ideas in your head on how to make this more puzzling and what features you can add.
What about gravity flipping? Would propably work good.
Oh and you could do things with cubes and pressure plates, as everybody loves them.

Nice game:yes:
You can use this to make a gravity gun https://www.youtube.com/watch?v=fuk7tE9rx1U

Hey guys, thanks for the feedback! :slight_smile:

Yeah, I’m pretty happy with the jump pads now. I can’t really tweak them too much now as the levels have been designed around them.

In regards to the quick level creation, I created a whole load of modular objects that all snap to the blender grid. This has made it easy to very quickly create new levels. Also, I’ve created the game in such a way that all interactive objects, such as jump pads, platforms etc can be simply duplicated and positioned without having to change any logic.

I’m hoping I can think of some challenge stages. I would really like to make this a product worthy of selling, so I need to make sure there is a substantial amount of good levels.

Love the pressure plates idea, but we’ll see. I don’t want to deviate too much from the jump mechanic. So I would like any interactive objects be there to enhance the jump mechanic in some way. :slight_smile:

Thankfully, now that I’ve got the menu/saving logic in place, Ive now got the brunt of the heavy work out of the way. Now it’s just all the creative stuff. :slight_smile:

I hope you’ll enjoy the final game whenever it’s ready! :slight_smile: