3rd person exploration

Hello.
This summer I started working on this project. The idea was to make a small game where you just… run around and climb stuff.

The main character is a curious little girl. I don’t have a story planned out yet, but I do have one thing in mind: that the girl has an over-active imagination. I was thinking maybe having imaginary friends and enemies.

Actually, the reason I wanted to make a game in the first place is so that I could make music to it :o. Here’s a very short loop I made when I imagined her daydreaming in class.

So far, I’ve been looking closely at the third person adventure template here on blenderartists (thanks a lot for the help!). Instead of making a jump key, I’m trying to make one context-sensitive button for everything. I made a small test map where she can jump across gaps, climb on top of large steps and climb up walls that are as tall as she is, all three done with the space bar. There is also a landing animation that plays only when she falls a distance of 5 blender units (she’s 2 blender units tall). You can’t move around while the animations play, so they’re not interrupted.

Here’s the blend file. Hopefully I’ll make a proper level with textures soon. :slight_smile:

Map test
http://mejiatryti.com/Ivar2/blenderstuff/chibistylestuff/maptest.png

I tried to link three blend files together, so that you can travel between them. It’s pretty much the only thing you can do (aside from running, jumping and climbing), but here’s the zip if you want to try it out.

Log Updated September 13th -09
I’m writing a log for this game. The .doc file can be downloaded here or viewed online here (although the format isn’t 100% correct).

Attachments




Perhaps you could make imaginary things partially see through? Like imaginary friends, enemies, and the like. Just a little idea. I love the loop by the way!!! And yes I think you deserve those 5 exclamation marks. :smiley:

Hey, congratulations! :wink:

Just tried out the demo, and it’s great so far. The movement works as expcted, the animation and poses are fluid and the only “bug” I was able to find it’s that the character gets “stuck” at the stairs if I’m not careful.

Keep up th great work!

wow, the way you do the climb is very interesting! Good job on the python, it’s very good! Wow, you can easy make this game like Prototype because you almost have everything set-up!

In prototype, what I find the hardest to do is the wall running thing, but other then that, for the car jumping over thing, do the same thing you do with the climbing except faster and in a free-running kind of way… But then again, it looks like more like a puzzle game then free-running one, but you gave me many ideas

Keep on working on it, and I’m looking forward to playing the game when your done,
Linkxgl

Hi Dummyplug,

It’s great that you could learn a bit of something with the template.
The character reminds me of (the lovely) Boku No Natsu Yasumi.

Actually, the reason I wanted to make a game in the first place is so that I could make music to it
I’m surprised nobody noticed that quote. After listening to that (short) music sample I must say that I’m very curious to know what you will come up with. This is promising.

Your project is something to keep an eye on.
This is a great start, and I am looking forward to seeing more :slight_smile:

Looks very polished so far- my only complaint is that there’s a bit of a pop when you start an action, it you smooth out the camera movement it’ll be a bit less jarring.

Also, since space doesn’t jump unless you’re at a ledge or gap, you may as well make it procedural like in zelda- if you run off a ledge, link automatically jumps (whereas if you walk, he drops) and you could apply the same to ledge climbing (if you push against a ledge for X time, the character climbs)

Very nice and very original! I always like to see people trying out more unusual concepts.

Thanks for all the replies!

What Name?, I’m glad you like the loop =). Partially see-through imaginary friends and foes is a cool idea. I’m also thinking maybe making some of the people and animals she sees look like they couldn’t possibly be real, like a man with a teapot for a head, or a flying cow with no legs.

Vexelius, thanks! I’ve seen what you explained, and I think I know how to fix it. On Cray’s third person template, he has four(?) empties, each with a ray sensor that looks for ground property. I haven’t seen exactly how it works, but I’m gonna take a closer look and try to understand it.

Linkxgl, I spent a lot of time trying to figure out how to make her climb stuff =P. I got help asking around on the game engine support board. About Prototype, I’ve tried it out. Awesome feeling of freedom, holding down space while running to jump over any obstacles that are in the way! I’m almost tempted to try to do something similar, but we’ll see how things turn out.

Cray, thanks again for the template! I want to make maps/environments that I can make music for. It would be awesome if I could add dynamic music too, different instruments for different parts of the map, or maybe change from ‘normal’ version to ‘excited’ version of a song. I could try to work the other way around, though; make a song, then try to make a map that fits the music.

Captain Oblivion, thanks for the feedback =). I tried to fix the popping problem by animating the camera_pivot object (which the camera is parented to) so that it follows the girl as she moves. It helped… a little. There is still some popping, but then I get a different problem: the camera moves forwards and upwards no matter what angle the camera is at. I’m gonna try to fix this problem eventually. As for the auto-jump and auto-climb, I’m gonna wait and see how the game turns out.

Thanks, PlantPerson. I have a lot of inspiration from the Monster Hunter games, of all things =P.

Oh, if you’re interested, I keeping a log on this game. Here’s a link to the .doc file, and here you can view it online. The website is basically the .doc file uploaded onto Google Documents, but the text doesn’t wrap around the pictures. (I’ll edit the first post to include these links)

If you’re still hunting for good ground collision, with the inclusion of sensor objects in 2.49 a very good method has become possible- parent a box to the physics bounds, set to detect the ground via collision sensor. This box should be very short, slightly smaller in width and depth than the character’s physics bounds (so it doesn’t accidentally hit walls she’s standing next too, or ground that’s too far away) and it should be positioned on the bottom of the physics bounds.
Basically, think of it as the sort of rubber or felt “footies” people put on table legs, only instead of preventing scuffing on floors this detects them.

Personally I avoid the rays method because there are cases where objects will line up between rays and the character will get stuck- and adding even more rays is a waste of resources.

Also, in regards to the camera, have you tried slow parenting the camera to another object? that usually does the trick (a count of 5-10 is usually a good amount, in my experience) just be aware that there can be some distortion during very rapid rotation.

Thanks for the tips, Captain Oblivion. I tried doing what you suggested, but I’m having a hard time with the ground collision.

Here’s the trouble I’m having with it:

The groundsensor just won’t be found! I tried changing the sensor from collision to near, and Blender doesn’t give me error messages. I also tried switching it out with an always, radar and random sensors, and I still don’t get any error messages. What am I doing wrong? =<

The slow parenting works great, it’s a lot smoother now! The problem I get now is that the camera collision won’t work properly when I’m parenting the camera (or rather, the object the camera is parented to). I’m using a ray sensor that points backwards from the camera_pivot object, and when it hits something, the camera’s position is set to the hit position. If I have parenting and the collision detection script enabled, then the camera acts very weird. Are there any other ways to have camera collision and slow parenting at the same time?

Overall this looks great! The only thing I dont like, as Captain Oblivion has stated, is the ‘pop’ whenever an action is started. It seems like the girl jumps up for a very very short amount of time, probubly only 1 frame, but it makes it seem very clunky.
Get that worked out and youll be well on your way to something awesome.

I love the way she climbs btw, its very cool and smooth.

hi Dummyplug,

I like the way the actions match the look of your character. It makes for a very likable character. I hope you finish this. This is something that young kids (and their parents) would really like.

About not being able to find the ground sensor. I’ve had the same thing happen to me. Check the spelling of the groundsensor in the sensor itself. Make sure you didn’t add a space at the end of the name.

Clark

I can’t see any reason that it wouldn’t work, maybe it’s because you’re using the old API?
Try using the new API method, cont.sensors[‘groundsensor’]

Once 2.5 rolls around, the old API won’t be available, so if you plan on upgrading to 2.5 I recommend starting to use the new API as soon as possible. (using the find and replace dialogue it’s actually not too painful to convert old API scripts to new)

I tried to do the ground box with logic bricks, but for some reason it would hardly ever detect the ground, and I have no idea what was wrong with it.

I love it. The graphic design is perfect for the type of game it is. I definitely look forward to it’s completion. :slight_smile:

Thanks, AD-Edge and cthames. The slow-parenting that Captain Oblivion suggested works, but I have to find out how to get it to work along with the camera collision script. Haha, I spent 4 or 5 hours animating that 3.26 seconds long climbing animation =P.

Captain Oblivion, I haven’t given any thought to what API I’m using… Is this something I should worry about? So far I’ve been trying to do things like the tutorials I’m following do it, even if I get a “That’s the old way, use this instead:” message from python. But! I did manage to get the collision cube to work after all, I just had to give it its own script:

What I tried to do at first was to have the charbox object’s script (the box around the girl) use the cube’s collision sensor. This didn’t work, so what I did instead was to give the cube its own boolean property and its own script telling it whether the boolean is true or false. In order to get the cube to react to the ground property, I had to change it from a static object to a sensor object, and enable the detect actor option. When I enabled the actor option on the ground, it worked as expected! I did the same with a second cube which is 4 blender units tall, which is used to check if the “landing” animation is to be played or not.

Thunder Angel, glad to hear you like the design =). I wanted to have a childish “crayon”-ish look for three reasons:

  1. I don’t -have- to make very complex or even realistic models. I can only imagine how much time I’d have to spend modeling if I wanted to make a more realistic-looking game.
  2. Making textures will be a bit easier (I hope). I can use lower resolutions without losing all that much detail, because it’s all going to have a crayon-ish look. This also lets me spend more time on the UV mapping. With low-poly models and low-res textures, I can make props and models faster, and it’ll all be consistent with the art style =D!
  3. I like these kinds of graphics =).

Hey, very nice work in progress, shows potential :slight_smile: Also really nice animations.

I saw your progress document and read about some method to prevent the girl from sliding down the slopes. This could also be achieved using the friction settings which you can find in the materials panel. These settings are hidden so to speak, they affect the BGE physics but are in a completely different place than you’d imagine them to be.

There are some other settings there and you can read about them at this old guide, which appears to be still relevant http://www.blender.org/documentation/intranet/docs/develop/physics-faq.html

Attachments


Wow this is really great! I love the style and movement of the character! The movement is very convinving and looks very professional!!! Well Done.

Speaking of imaginary friends etc I once read a Stephen King book where certain things out of a child’s imagination came to life and they looked like a child’s drawings. ie out of proportion and squiggly. I have no idea how to achieve that but it might make for an interesting graphical style.

I’m having problems with my climb animations. For some reason I also get a little jerk/glitch when the character starts the climb animation. If you have a solution please help! It seems to happen because my characters IPO starts slightly faster than the armature animation?

Thanks for the comments, Lamoot and jaechild! I’m hoping to make a separate animation for when she climbs 1-unit high blocks. Right now I’m just using the last few frames from the climb animation. It works, but I want to do it better =).

I’m surprised someone read through the log! Thanks for he link, Lamoot. The sliding is something I’ve been wanting to fix for a while, but it was such a minor thing that I put it on my to-do(-whenever-I-feel-like-it) list. There is another problem I want to fix too, but I don’t know how. I want her to run down the slopes, not bounce like this:
http://mejiatryti.com/Ivar2/blenderstuff/chibistylestuff/bounce-bounce.png
I’m guessing it’s because she’s being pushed forwards, so she leaves the ground if there isn’t any just under her feet.

jaechild, what I did was to make a climb animation from when she starts climbing to when she’s on the top. Instead of having her literally climb up, I instantly move her to the top just as the animation plays. I also set up a timer: it lasts for 3 seconds (as long as it takes for her to climb), and during this time, you can’t move around, so the animation isn’t interrupted.

I thought that it would be very hard to make a looping climb animation that looks good while she is moving, which I why I did it this way instead.

looks good, love to see it finished