We're using cookies to ensure you get the best experience on our website. More info
Understood
@jorgecheRegistered March 15, 2006Active 2 weeks, 4 days ago
207 Replies made

akumie wrote:
maybe no source code at all, just menu where u can add blocks, characters and choose from what the character should do at each part of the game (jump, run and so on) and so on….something like that would be easier for me

all the options to make the game is in the programs menu and u dont need to know source code at all

jmm I suppose you are talking about editors like Game Maker or the like, which allows for easy object drag and drop. Well my engine does not do anything about that, and I doubt there would ever be something like that for the VB, it could be possible to create a level editor, but I’m not up for that.

BTW, it would be very difficult to ever display something on screen on the VB, and even worse to make it interactive without coding. That’s something we will never see to happen.

jorgeche

If you are not a programmer ( or don’t like to program for that matter) no matter how much easy the code looks. But I hope my engine will make things a lot easier for a programmer not familiar with setting graphic memory, etc.

If you like to program, why don’t you take a look at the wiki, Krisse and I have begun to write the tutorial to use the engine.

jorgeche

Italian Boy wrote:
I was quite sure about the winning of this game… but it didn’t.
For me is absolutely the best one!

Hey thanks Italian Boy, I suppose my project lost some track because the other ones were shown at last minute… but anyway, I really wanted the T-shirt since I already have a FlashBoy and Mario tennis 🙂

The good news is that the engine is almost done, I’m completing the documentation and will release it really soon so hopefully other people will use it to create some great games, which was my objective from the beginning.

jorgeche

BTW… what about a profiler? I don’t have any experience with them so I don’t know if there is one already, but I suppose it’s not that simple.

jorgeche

Well even having just 1 breakpoint, and being able to make a trace from there would be ages ahead of what we have to do now (program blindly), and about the 1-2 seconds delay.. well it maybe takes me 10-20 to change a print instruction, compile again and reach the problem execution point, so I don’t think that will bother me.

Hope you have time to give this feature a go.

jorgche

Yup, the debugger, it would be great to being able to make debugging without having to print on screen each variable.

jorgeche

Cool thanks!, I plan to have different methods for rotating/scaling/skew, etc, to make my Sprite interface very simple:

void Sprite_scale(Sprite this);

void Sprite_rotate(Sprite this, int angle);

and doing the heavy stuff there.

jorgeche

Do you mean something like this?

void affineScale(u16 param, fix7_9 zoomX, fix7_9 zoomY,
····································s16 bg_x, s16 bg_y, s16 fg_x, s16 fg_y) {
········PDx_ST pdx;

········CACHE_ENABLE;

········if(zoomX < 0){ ··················fg_x *= (-1); ········} ········pdx.pa = FIX7_9_DIV(ITOFIX7_9(1), zoomX); ········pdx.pb = ITOFIX13_3(0); ········pdx.pc = ITOFIX7_9(0); ········pdx.pd = FIX7_9TOFIX13_3(FIX7_9_DIV(ITOFIX7_9(1), zoomY)); ········pdx.dx = ITOFIX13_3(bg_x - (fg_x)); ········pdx.dy = ITOFIX13_3(bg_y-(fg_y)); ········pdx.paralax = 0x0000; ········{ ················AFFINE_ST *affine = (AFFINE_ST*)PARAM(param); ················AFFINE_ST source = { ································pdx.dx, ································pdx.paralax, ································pdx.dy, ································pdx.pa, ································pdx.pc ···············}; ················int max = FIX7_9TOI(FIX7_9_MULT(ITOFIX7_9(fg_y << 1), zoomY)); ················int i = 1; ················affine[0] = source; ················for (; i < max; i++) { ························fix13_3 iFix = ITOFIX13_3(i); ························source.pb_y = FIX13_3_MULT(iFix, pdx.pb) + pdx.dx; ························source.pd_y = FIX13_3_MULT(iFix, pdx.pd) + pdx.dy; ························affine = source;
················}
········}
········CACHE_DISABLE;
}

jorgeche

Thanks dasi.

jorgeche

Hey DogP, I’m really curious about what kind of tricks are you putting off to made all those affine calculations.

I’ve changed the code provided in libgccvb to use always fixed point math:

typedef struct PDx_ST {
fix7_9 pa;
fix13_3 pb;
fix7_9 pc;
fix13_3 pd;
fix13_3 dx;
fix13_3 dy;
s16 paralax;
} PDx_ST ;

and using the following code to write the param table:

void affineSetAll(u16 param, PDx_ST * pdx, s16 max) {
s16 i ;
AFFINE_ST *affine;
affine = (AFFINE_ST*)PARAM(param);
CACHE_ENABLE;
for (i = 0; i < max; i++) { fix13_3 iFix = ITOFIX13_3(i); affine.pb_y = FIX13_3_MULT(iFix, pdx->pb) + pdx->dx;
affine
.paralax = pdx->paralax;
affine
.pd_y = FIX13_3_MULT(iFix , pdx->pd) + pdx->dy;
affine
.pa = pdx->pa;
affine
.pc = pdx->pc;
}
CACHE_DISABLE;
}

but I suspect it is still too slow, are you writing your functions in asm?

jorgeche

Thanks for the compliments Akumie, glad to hear you are liking it.

jorgeche

Thanks DogP, it will be a really cool competition, all the entries are looking really good so far..

jorgeche

Ok here is the last build.

Some instructions:

Now the game can be paused with START.

I’ve include some debug functionality to show off some of the engine capabilities:

Press SELECT to change between the following modes:

· Playing
· Moving screen
· Moving perspective

While on “Moving screen” mode, use the left directional pad left and right buttons to move the screen and see the whole level.

While on “Moving perspective” mode, use the left directional pad to move the user’s view point, and use the right directional pad to affect the parallax effect.

jorgeche

Attachments:

I will be posting a last one… it is 8pm here in Ecuador… so I hope to not break the rules if I submit my last build before 12am (Ecuador time) … Krisse?

jorgeche

WOW really impressive…

jorgeche

Very cleaver, thanks for sharing.

jorgeche

It would be great to have that kind of functionality in my engine… If you don’t mind to share your code 😛

jorgeche

BTW, I’m curious about how do you implement collision detection and how do you define the circuit? If is not a problem to ask 🙂

jorgeche

WOW :-O I’m impressed DogP!, great work!.

jorgeche

On the emulator on the other hand the enemies becomes invisible and when u walk back u become invisible

I suppose you are using rdragon, the engine is designed to work with the latest version of rboy.

Glad to hear it works fine on hardware.

To many times I landed on the enemy but did not jump high enough

You’re supposed to hold A button like in other Mario games to bounce higher.

jorgeche