Marble Roads (level 6 complete, Endless mode WIP)

http://www.mediafire.com/?iix67rqd7s17iof
http://img338.imageshack.us/img338/9050/mroadscreen1.th.jpghttp://img195.imageshack.us/img195/7469/mroadscreen2.th.jpghttp://img805.imageshack.us/img805/4526/mroadscreen3.th.jpghttp://img718.imageshack.us/img718/4594/mroadscreen5.th.jpg

The strange looking resolution is due to clipping out the Blender interface, not the actual game resolution

Currently six levels (plus an endless mode), and was made possible through the culmination of experience gained after years of off and on work and several playable games or game demos in the BGE. Marble Roads is the latest playable game concept of mine that is currently fully playable and in full working condition.

The main point within the game is that you control a marble that is constantly moving, and you have to get it through the course to the finish without falling off, if you run into a wall you will often receive a kickback which may not have much of an effect on how you do to pushing you off the edge.

Now you may wonder if looking through the .blend file on why the logic seems more complex than it needs to be if all you’re doing is moving forward, part of it is planning ahead for the idea that later levels may see you start to constantly move forward in other directions rather than just the Y-axis, and thus any logic will have to be written to take that eventual possibility into account.

You might also wonder why it appears to have smoothing applied to parts of the course where the grass meets the rock, I thought about deciding just not to have that as that could easily be dealt with but I actually kind-of like the look it gives to the course here and there, and thus it stayed.

Other mechanics of interest is the fact you may speed up to keep a more constant speed on steep gradients, the sound effects that get louder as your speed gets higher, and the fact you’ll come to a stop when finishing. This game may not be recommended for old computers due to the usage of Martinsh’s SSAO filter (which may include generations older than the geForce 8 series if you have an Nvidia GPU).

Since there is only two levels, the levels will simply cycle through, so completing level 6 will bring you back to level 1 again, game elements such as going to the next level and the level name is also controlled at runtime by Python to streamline the creation process, avoid repetitive work, and make it easier to do changes, same with the interface being in an overlay scene which is probably something I should’ve done the whole time but didn’t until recently.

Enjoy…:cool:

New update, took longer than one would expect due to my interest in the Cycles engine.

CHANGES::

  • Level 3 is now complete (with the first use of the objects that would change the player’s speed and/or direction throughout the level, right now it’s only the speed that would change)

  • Fix for the pushback mechanism being unreliable, the math order was wrong meaning that the coordinates for the ray being cast to trigger it was wrong (it would move further and further from where the player was), pushback when hitting a static barrier or object is now much more reliable and adds challenge as it should)

  • INTERNAL: The rotation for the diamonds is now controlled by a new script attached to an empty that will probably control the basic logic for simple objects by checking if their object.name strings start with a certain keyword (like ‘Gem’). This streamlines the process of setting up logic for simple objects as you do not have to check through the objects to make sure they have the correct logic brick setup and copy it around if some of those objects don’t. Like the central script that controls the title object in the scenes, it can really reduce the amount of time to change something for an object across the entire game (every scene at once) if you want to tweak the logic for an object type.

Again here with a new update.

CHANGES::

  • Level 4 complete

  • Main Menu complete

  • The start of a new endless mode, you will notice the track build in front of you which you will keep rolling on until you fall off, also noticing that it’s different each time. I personally think there’s still room for improvement and is by no means complete, but there’s already code that jitters the pieces, match new pieces according to the height at the end of the previous one, and the start of making piece types that will generate up to a few smaller attachments (only one piece does this for now generating one attachment type). It also includes an initial mechanism that moves everything back after a certain point to avoid going past the edge of the level which also ties to a mechanic where you speed up after a while.

  • Tweaked the movement code to allow for the new game mechanic seen in Level 4 (which are objects that change your direction), needed to ensure that everything would work regardless of your direction such as the pushback mechanism (the abs() function helped greatly in preventing the need for a lot more code)

  • Jumping is now a bit more reliable than it used to be, now it’s almost certain that you will jump properly when needing to make one instead of sometimes getting a small bounce and falling into the water.

  • Level 5 WIP, very early and not complete yet, so regular gameplay will not take you to that level yet.

Downloaded. Keep working on it, man! Endless Mode sounds cool - I’m going to check this out.

Keyboard not working, using blender 2.61

Can’t get it to do something either… I want to try it!

I’m not sure what could be causing that, at first I thought it was the fact that I was using one of the later trunk builds after the official release, but then tested in an older build and found it working at it should.

I wonder if any of the BGE veterans are aware of any cases where things as simple as keyboard sensors give different results on different systems?

Its because you didn’t distribute the sounds, or at least I dont have them. This causes an error that interferes with the keyboard.

Ex.

I heards some music but I get:

Python script error - object ‘Player’, controller ‘And’:
Traceback (most recent call last):
File “Text”, line 16, in <module>
AttributeError: ‘module’ object has no attribute ‘hList’

I double-checked the datablock viewer and it says the sounds are packed with the file, do I have to do something else to ensure the sounds are distributed when the game is downloaded other than using the ‘pack all’ operator?

I’m using Audaspace for all the sound effects.

Does audaspace work with packed sounds? I thought that it only worked with external files, but I may be mistaken.

The problem originates in this area: - it looks like you are still trying to load external sounds.

rollSound = aud.Factory.file(bge.logic.expandPath(“//…\WAVE\Rolling_clipped.wav”))
dingSound = aud.Factory.file(bge.logic.expandPath(“//…\WAVE\Ding.wav”))
donkSound = aud.Factory.file(bge.logic.expandPath(“//…\WAVE\Donk.wav”))
donkSound2 = aud.Factory.file(bge.logic.expandPath(“//…\WAVE\Donk2.wav”))
jumpSound = aud.Factory.file(bge.logic.expandPath(“//…\WAVE\Marble_jump.wav”))

Ex

Yeah, I don’t think that Audaspace works with packed sounds, since it takes a filepath.

I think I see what you mean, I now have the game re-uploaded as a new file archive packed with .7zip.

From my tests, this should (hopefully) fix the issue as the folder contains the game along with a folder containing the sound files, the script has also been updated to account for the new filepath. As a bonus, endless mode was given a few minor changes in the form of a new piece, two new attachment types, and jumps.

Great game, I really liked the game congratulations ace dragon!

New version out:

CHANGES::

  • Level 5 is now complete, involving pushers and going in several different directions.

  • The pushback mechanism is now a bit more robust, done by creating a set of new variables storing speed and vector information, as a result you will now get a pushback in areas that should’ve been activating it, but wasn’t. As a result the mechanism will work in all directions and so will the camera retreat, took a while to get working (perhaps because the amount of change needed and the amount of new information needed was larger than anticipated)

  • Jumping has been tweaked again in an attempt to make it more reliable (I don’t think it’s perfect yet but they were needed to make it reliable enough to be able to complete level 5). Do note this is through using a way that is smarter than simply splitting the level geometry into floor and wall objects.

  • Trees and wood cylinders have been added to endless mode, there’s also new pieces that may generate attachments.

  • The water shader has been tweaked by adding a new textures set to reflection coordinates, making a better (though fake) impression of reflectivity (Applying Martinsh’s shader would not work because it would need to survive scene restarts)

A new set of changes and additions have been done.


  • Level 6 has been completed, introducing springs.

  • A few new pieces have been added to the endless mode, including the first non-square attachment.

  • The water shader has gotten a major tweak, it is now a node material and has been reworked to look good from all angles, not just shallow ones.

  • The move-back mechanism has been removed from endless mode due to it causing more issues than solving, I think I need to work out a new approach to prevent the player and the course from going past the edge of the scene.

EDIT: What was here is no longer relevant, I was able to get a gmail account today which allowed me to start using imageshack again.

Cool Ace dragon, this game iis graphically awesome!, I would add some filters but it s looking nice, you ll make a Demo of it or something?