gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS homebrew announcements > Fandian

#160633 - ritz - Fri Jul 18, 2008 9:32 pm

Hi all,

I thought I'd post my stuff here and see what others think so far. Probably good to hear about problems and suggestions now rather than later :)

http://daftcode.net/

Thanks,
Jeff


Last edited by ritz on Sun Aug 23, 2009 1:20 am; edited 7 times in total

#160638 - Spike - Sat Jul 19, 2008 12:53 am

A simply stunning 3D engine.
Fantastic bit of coding. I look forward to future updates.

#160641 - ingramb - Sat Jul 19, 2008 1:28 am

Wow, not much to say except that this looks really really good. Planning on making a game out of it?

#160646 - nce - Sat Jul 19, 2008 2:49 am

awesome job on that 3d engine so far.... keep it up ^_^
_________________
-jerome-

#160647 - Fury - Sat Jul 19, 2008 3:08 am

Dude that looks sweet. Definitely potential for a game there. Good models, good bg, good movement. Seemed tight and fast. Keep it up

No problems encountered yet

Might want to work on the dialog tho ;)
_________________
Everything is better with cheese on it. Even cheese

#160650 - Cid2Mizard - Sat Jul 19, 2008 8:49 am

wahooooooo :)
_________________
www.nintendomax.com 100% Hack 0% Warez

#160652 - Markzilla - Sat Jul 19, 2008 2:30 pm

Wow. The graphics level is incredible. I've seen only a few rivals to it, even in the mainstream market games.

#160655 - simonjhall - Sat Jul 19, 2008 3:25 pm

Yo, just showed this to my housemate (scummvm's agentq) and we both think this is amazing. Really well done!
_________________
Big thanks to everyone who donated for Quake2

#160658 - SG1anubis007 - Sat Jul 19, 2008 6:16 pm

These graphics are amazing, Great work.

#160660 - ritz - Sat Jul 19, 2008 6:56 pm

Thank you very much to everyone with their very positive comments!

ingramb wrote:
Planning on making a game out of it?

Beer coloured glasses: Yes, as soon as possible!

Reality: That was the idea when I first started, and is still my goal for the future of this project. However, my second kid is due in a few months and I'll end up being even busier than I am now. I'll just keep plugging away at it in my spare time. If I have to, I'll even port it to Nintendo's next console if it takes that long!

Fury wrote:
Might want to work on the dialog tho ;)

All I can think of is the green dude running around screaming "Brains!" :)
I'll work on something more interesting in the future.

Cid2Mizard wrote:
wahooooooo :)

My little guy likes taking a dive off the edge of town too, guess I should've put up a fence or somethin' :)

Thanks again,
Jeff

EDIT: In case some of you didn't see it on the webpage, I just want to make sure everyone knows that the models I'm using are from Neverwinter Nights (converted to something completely different however) and are not my creation.


Last edited by ritz on Sat Jul 19, 2008 7:25 pm; edited 2 times in total

#160661 - Wraggster - Sat Jul 19, 2008 6:58 pm

i have to say to me its one of the best looking homebrew for the DS so far. Commercial programmers watch out :)
_________________
Webmaster of Nintendo DS Emulation News

http://nintendo-ds.dcemu.co.uk

#160673 - tondopie - Sun Jul 20, 2008 12:52 am

Wraggster wrote:
i have to say to me its one of the best looking homebrew for the DS so far. Commercial programmers watch out :)


you said it brutha

#160674 - DensitY - Sun Jul 20, 2008 1:17 am

Very impressive, awesome work ritz.

#160677 - Markzilla - Sun Jul 20, 2008 1:56 am

ritz wrote:
All I can think of is the green dude running around screaming "Brains!" :)


Actually, this would be pretty entertaining.

#160727 - chatterbug89 - Mon Jul 21, 2008 4:33 am

Well, the screenshots look awesome, but I can't seem to get it to work on my GBAMP. I applied the DLDI patch and tried to run it, but all I get is a black screen.

Also, the latest version of your demo seems to be a corrupt zip file (though, I haven't tried re downloading it). So, I ended up trying the second latest version.

#160728 - another world - Mon Jul 21, 2008 4:37 am

great job, really sweet. it is really fun to just run around and then get excited about the potential for this game. keep up the great work and good luck with your new baby =)

-another world

#160744 - KillerMapper - Mon Jul 21, 2008 12:14 pm

I can't dl it or see the screens because the site has reached the limit of the bandwitch. Some mirrors can be good!
_________________
www.mariokartsource.com

#160745 - silent_code - Mon Jul 21, 2008 12:36 pm

Hereby I offer limited (to my conditions) mirroring. Details can be exchanged via PM. So, please contact me, if you want me to mirror your stuff. :^)
_________________
July 5th 08: "Volumetric Shadow Demo" 1.6.0 (final) source released
June 5th 08: "Zombie NDS" WIP released!
It's all on my page, just click WWW below.

#160775 - Wraggster - Mon Jul 21, 2008 10:03 pm

http://nintendo-ds.dcemu.co.uk/sonic-r255-released-best-looking-ds-homebrew-game-yet--122367.html

its uploaded on my news page link above and downloadable without joining dcemu too. (usually uploaded to forums)
_________________
Webmaster of Nintendo DS Emulation News

http://nintendo-ds.dcemu.co.uk

#160787 - KillerMapper - Tue Jul 22, 2008 10:59 am

Ok thanks.
I thought it was Sonic the hedgehog ^^
_________________
www.mariokartsource.com

#160838 - KillerMapper - Wed Jul 23, 2008 9:54 am

Tested.

Really impressive! How many shadows can have a player at the same time?
Too much players at the same place make some player vanishing. So I suppose we won't have lot of characters at the same time.
When I put start I see some boxes. Those boxes are the collisions?

I love the animations, the map is really good to. Also which program do you use to create it?
_________________
www.mariokartsource.com

#160845 - Zed0 - Wed Jul 23, 2008 1:38 pm

All the models and animations appear to be from Neverwinter Nights.
I think that if you look around a bit there are some fairly easy to use tools to export models from the game.
_________________
__Zed0__
FlasheMe'd Silver DS - GBAMP-CF - 512MB CF Card - R4DS - 2GB Micro SD Card

#160847 - ritz - Wed Jul 23, 2008 2:52 pm

chatterbug89 wrote:
I can't seem to get it to work on my GBAMP. I applied the DLDI patch and tried to run it, but all I get is a black screen

I'm really not sure how to help you here as I don't have a GBAMP thingy. Maybe someone here in the forums could point us in the right direction?

another world wrote:
good luck with your new baby =)

Thanks a bunch :)

silent_code wrote:
I offer limited (to my conditions) mirroring

I appreciate the offer silent_code. I'll see what I can dig up on my own before I bother you with this silly bandwidth stuff.

Wraggster wrote:
its uploaded on my news page

Thanks for helping with the bandwidth Wraggster :)

KillerMapper wrote:
How many shadows can have a player at the same time? Too much players at the same place make some player vanishing. So I suppose we won't have lot of characters at the same time. When I push start I see some boxes. Those boxes are the collisions? I love the animations, the map is really good to. Also which program do you use to create it?

- my lighting stuff uses just the hardware lights only, so up to 4 shadows per object (not in the tiles yet though)
- yea, NWN models are a tad high in vertex/poly count for the DS (IMO), but I don't possess the skill to "down-sample" them. The shadows are actually the last thing sent to the geometry engine, so if I go above the 2048 threshold you start seeing missing/flicking shadows. when I'm ready for a change in content, the models I'll use will be a tad lower in vertex count and everything will speed up, more creatures on screen, push out the far clip plane, etc, etc. NWN models are just for testing, really
- i forgot about that box button, it was there to help test initial AABB code, that's all... they're the AABBs around objects and mesh groups

Zed0 wrote:
All the models and animations appear to be from Neverwinter Nights. I think that if you look around a bit there are some fairly easy to use tools to export models from the game.

You're right. I use NWNExplorer to get the model then I use Unwrap3D with the NWN plugin to import, clean it up, export it out, and it's finally packed into my own silly little binary format

#160860 - KillerMapper - Wed Jul 23, 2008 6:52 pm

Yes shadows are the first things which disappear. Also I picked up all the characters of the map and put them around a lamp. Some characters aren't visible after ^^

For the poly count, yes I thought polys was high too, especially for the big monster in the house. (also maybe you can disable the fog in little rooms like in the house).

But I really like the 3D engine.
This game will be a rpg?
_________________
www.mariokartsource.com

#160864 - ritz - Wed Jul 23, 2008 7:43 pm

KillerMapper wrote:
Some characters aren't visible after

yea, that's a lot of polys in one area and they'll be the next to be not drawn by the hardware after it's over the limit

KillerMapper wrote:
maybe you can disable the fog in little rooms like in the house

That's a good idea... I could dynamically adjust the far plane based on the number of polys in the scene or something. The fog is only there to hide the clip plane (which looks ugly as it chops stuff up :) I'll look into that in the future

KillerMapper wrote:
This game will be a rpg?

I haven't really thought about it much. An RPG would be a ridiculous amount of work, but I certainly am a fan of the genre. Maybe it makes more sense for me to just build things into the engine to allow others to create (if I even get this far). You know, scripting, map editor, release some kind of model converter to use in the engine/map editor. I dunno. I guess if someone really wanted to fiddle with it now with what's already in there they only have to unpack the rom with ndstool, play around with the .map files, and then repack it up with ndstool. I haven't actually done that but I don't see why it wouldn't work. I'm sure all kinds of horrible ugly bugs and other funny weirdness would surface too ;)

#162724 - ritz - Wed Sep 10, 2008 11:17 pm

I've put up a new version of sonic for those interested in playing around and making their own content to run inside the engine. There's a readme included that should hopefully explain everything required.

http://www.daftcode.net/

EDIT: The initial zip file I uploaded was missing the credits.txt file. Fixed now.

#163039 - KillerMapper - Fri Sep 19, 2008 8:00 pm

When playing on the map, it's the same map than before, nothing new.
It's normal?
_________________
www.mariokartsource.com

#163041 - ritz - Fri Sep 19, 2008 11:27 pm

yea, it's the same map. i've been coding internal stuff mostly. i'll need some custom content before the levels are different. actually, the last couple releases (including one just today) are all about making custom content for the engine.

#165603 - ritz - Mon Dec 29, 2008 8:34 pm

Outrageous request:

Does anyone have a DSi (and a compatible flashcart like Acekard 2i or EZ-Flash Vi) yet? If so, I was hoping they would be willing to give my rom a quick test run to find out if it's gonna work. I'm most curious about the stats on my debug screen (the top screen) and a camera snapshot of it would be awesome and appreciated (if it even works at all).

sonic_r294.zip
Fandian_r303.zip (deleted, bug found related to this)

The sonic rom was built on devkitARM 23b and the Fandian one was built using devkitARM 24 with the updated libfat, arm7, etc.

P.S. If nobody can help me, that's cool... I'll just wait until summer for the NA release :P


Last edited by ritz on Sat Jan 03, 2009 9:01 pm; edited 2 times in total

#165604 - iainprice - Mon Dec 29, 2008 9:09 pm

poo... made me give up on renegade now....

absolutely brilliant engine, well done!

#165605 - ritz - Mon Dec 29, 2008 9:44 pm

Thank you :)

But don't stop working on your project, I've tried it and it's very cool. Keep going dude!

#165622 - Sektor - Tue Dec 30, 2008 10:04 am

I wouldn't expect performance stats to be any different on Acekard2i etc since they just boot the DSi in DS mode.

Fandian_r303 doesn't work on my DS-X (garbage on top screen), nothing on bottom screen, no response to buttons. I did DLDI patch it but the DS-X loader is dodgy. It's time for me to get another slot-1 device.

Fandian_r303 works fine on my Supercard Lite.

sonic_r294 seems to work fine on DS-X.
_________________
GTAMP.com/DS


Last edited by Sektor on Mon Jan 05, 2009 1:26 pm; edited 1 time in total

#165639 - ritz - Wed Dec 31, 2008 4:24 pm

It seems the Fandian build gives a black screen with R4 cards on the very first load. If you power off and load again, it'll work. I've so far been able to determine that the bug seems to lie within the EFS lib during the init stage. It goes to la-la land on attempting to return from SearchDirectory(). And when I say "doesn't return" I don't mean the SearchDirectory() function failed because of some FAT/no-file thing... it actually doesn't return at all to SearchDirectory()'s caller. Some kind of stack thing I assume. Anyway, once the rom path is written it doesn't need to call SearchDirectory() anymore... hence why it works the second time around.

Do other flashcarts have this same problem (black screen first load, fine on the second)? Anyone wish to report their results?

Any results (positive or negative) on the DSi yet, anyone?

#165645 - cornaljoe - Thu Jan 01, 2009 5:56 am

I've tested the Fandian build on a M3Real. It shows a black bottom screen and the top screen is all corrupted. It seems to be frozen here because nothing changes, even after trying to reboot it.

#165667 - ritz - Fri Jan 02, 2009 2:48 pm

Looks like I got a bug in that build... and I can't seem to pinpoint it. I'll try and figure it out on my lunch hour. Thanks.

EDIT: It's related to this.


Last edited by ritz on Sat Jan 03, 2009 8:59 pm; edited 1 time in total

#165668 - KillerMapper - Fri Jan 02, 2009 2:53 pm

For me (supercard SD) works fine. I see you added a new room with a big monster ^^
_________________
www.mariokartsource.com

#169971 - ritz - Wed Aug 19, 2009 8:02 pm

Well, I finally got around to coding the very basics of a map builder. It's still missing things like a light colour chooser and linking maps together, but it's a start. There's issues I should probably note (like the clumsy interface), but my lunch hour is almost up here. Anyway, you can download it from my sig below.

Oh, and I got some sound in there too, finally. Thanks eKid, maxmod rules!

#172106 - Father_Enclave - Fri Jan 15, 2010 5:34 pm

What's your at home set-up like?

do you have an official nitro device? or just many software programs?

please go into details =)

#172107 - ritz - Fri Jan 15, 2010 8:48 pm

Father_Enclave wrote:
do you have an official nitro device?

No, I don't have anything like that (I don't even know what that is). I basically just have devkitPro on a USB drive. I use Notepad to code and an Acekard to run it on my DS. There really isn't any more details than that :)

#173770 - duencil - Thu Apr 29, 2010 10:35 pm

I just checked out your project for the first time (Fandian_r475). Nice work!

How are you doing dynamic point lights, since the hardware only supports simple directional lights? Or are you using the position just for your shadow casting?

#173774 - ritz - Fri Apr 30, 2010 4:35 am

duencil wrote:
I just checked out your project for the first time (Fandian_r475). Nice work!

Cool, thanks :)

duencil wrote:
How are you doing dynamic point lights, since the hardware only supports simple directional lights? Or are you using the position just for your shadow casting?


The point lights are done with the hardware. I basically just set the light direction (and colour) of the light(s) on every vertex. The light direction is slightly different on every vertex because it's a point light and the colour/shading is different also because of the attenuation function (and other factors). Dynamic point lights are the same thing, except they're updated live :)

There's a few static point lights set up in the regular Fandian maps but I never set up any dynamic ones yet. If you want to see them just go into the builder (you may already know the following, but I'll jot it down for others if they're interested):

- Tap on the tile icon (top right) and use the d-pad to go through the different ones. Push A to choose one. Push A again to set it.
- Maybe put a dude in there too... tap the creature icon, push A, push A
- by default, I have a simple white directional light already set. It's the little white cone you see at the beginning of building a new map (if you can't really see it, just zoom with L or R). Anyway, delete it so that the point light will be easier to see when you create it: tap on the white cone to select it and push X.
- So, now that things are nice and dark, tap on the candle icon. Use the d-pad to scroll through the different lights (directional is the cone, point light is the sphere). Push A when on the sphere to choose the point light, but don't push A again to set it yet. Now just move it around with the d-pad. You can hold Y and press up or down on the d-pad for Y-axis movement. You can move all the objects around like this, not just the lights. Also, you can rotate objects/tiles with L/R while in selected/highlighted mode.

The light colour is just chosen randomly. If you can't really see it try making another one and hope for something brighter :)

As for the shadows, they're drawn based on the positions of the lights (directional or point light).

That's all I can think of right now.


(Hmm, I seem to like using parentheses. I need to work on that :P)

#173779 - MrSkiz - Fri Apr 30, 2010 12:52 pm

Impressive engine that worked fine on M3simply but doesn't seem to work on M3 Real.

Is there any way to implement our model/anims/textures ourselves and make level ?

#173783 - ritz - Fri Apr 30, 2010 4:43 pm

MrSkiz wrote:
Is there any way to implement our model/anims/textures ourselves and make level ?

A while back I released a model compiler and wrote up some notes about what to do in regards to this. The compiler now is somewhat different since then as is the model format. If this is really something you want to play with then let me know and I'll re-build the compiler and try to find some notes on models/tiles/etc (don't hold your breath tho). The next couple of things I wanted to do was to change the model source format to XSI 3.6 and read custom files off of the FAT drive. Currently you can (kinda) build and save maps using existing models, tiles, etc. located in the rom. The idea I was/am going for is to build (and play) your own adventures/modules on the DS: create maps and link them together, add monsters, etc, etc. and it would save all of it in a sub-directory on your SD card. And, if you wanted to, you could put your own custom built model files, textures, scripts, etc. inside those so-called directories and Fandian would just read them in (just like it does for the resources inside the rom - the code is there I just haven't tested it fully) and allow you to use them in the builder or game. I just thought it'd be cool to drag'n'drop adventures onto your SD card that were built by others. And that you could make a full module/adventure (or even just a cool map) on the DS itself. On the bus. On my way to work. 'Cause the bus is soooo long and boring.

#173833 - duencil - Tue May 04, 2010 12:58 am

I had no idea that the hardware lights (direction and colour) could be changed like that in the middle of a single primitive. In fact I thought that they needed to be fixed the same throughout the whole frame, like the fog tables. That is really interesting... though calculating the directions and intenstities on the fly for each vertex per frame sounds like it could be a heavy cpu burden.

You could do it once and save the results for static lights vs static geometry, but if either move, especially for densely polygonal stuff like your characters, it sounds prohibitive. Do you have to transform all their vertices into world space on the cpu to be able to properly calculate this info?

#173841 - ritz - Tue May 04, 2010 5:24 am

duencil wrote:
I had no idea that the hardware lights (direction and colour) could be changed like that in the middle of a single primitive. In fact I thought that they needed to be fixed the same throughout the whole frame, like the fog tables.

Yea, the 3D hardware is actually quite cool IMO. To me, it actually seems smarter and makes more sense then if you were thinking vanilla OpenGL API coding. I think Nintendo did a bang up job on this 3D hardware implementation considering the console that it is. Funny thing actually, when I first did positional lights it was looking pretty good on the DS but simply did not work with no$ at all. I discussed this with Martin at the time and the OpenGL code in his emulator was the reason he said (too limiting, couldn't emulate the console's 3D exactly). It must have bugged him too because not too long afterward he released software-lights without OpenGL (v2.5) followed by his nocash 3d software renderer (v2.6) and everything worked awesome.

duencil wrote:
calculating the directions and intenstities on the fly for each vertex per frame sounds like it could be a heavy cpu burden

Sounds like it, but it's actually not too bad. I do some things in parallel. I mean, there's seperate math and matrix hardware. I dump things on them and let the CPU do something else. I do this heavily with the quat animation stuff too, I come back for the results later :)

duencil wrote:
You could do it once and save the results for static lights vs static geometry, but if either move, especially for densely polygonal stuff like your characters, it sounds prohibitive.

With some decent data structures and a bit of optimization where it makes sense helps a ton. Did you try moving a positional light source around in the builder with some tiles and couple creatures set out? It does pretty good considering the poly limit will be max'd out. This is, however, just a tech demo. I'm sure a real game would never sacrifice CPU for such a feature :)

duencil wrote:
Do you have to transform all their vertices into world space on the cpu to be able to properly calculate this info?

Yes, using pos_test. The matrix/math hardware is great. I also store a bunch of very select and useful matrices in the matrix stack and only use matrix_restore when needed. I do little pushing and popping, waste of time.

EDIT: I didn't really answer that last question correctly, I was thinking of something else. Updated.


Last edited by ritz on Tue May 04, 2010 7:06 pm; edited 1 time in total

#173852 - duencil - Tue May 04, 2010 7:03 pm

ritz wrote:
duencil wrote:
calculating the directions and intenstities on the fly for each vertex per frame sounds like it could be a heavy cpu burden

Sounds like it, but it's actually not too bad. I do some things in parallel. I mean, there's seperate math and matrix hardware. I dump things on them and let the CPU do something else. I do this heavily with the quat animation stuff too, I come back for the results later :)

duencil wrote:
You could do it once and save the results for static lights vs static geometry, but if either move, especially for densely polygonal stuff like your characters, it sounds prohibitive.

With some decent data structures and a bit of optimization where it makes sense helps a ton. Did you try moving a positional light source around in the builder with some tiles and couple creatures set out? It does pretty good considering the poly limit will be max'd out. This is, however, just a tech demo. I'm sure a real game would never sacrifice CPU for such a feature :)


Yeah I followed your instructions to move lights in the builder.. its an impressive setup. I tried to spot if the lighting changes on enemies during their animations, it seems like it does, which suggests its completely dynamic. I'd love to hear more about the kinds of data structures and optimizations you use to make the recalculation cheap. And I can definitely see a use for this in games with not much more going on.

ritz wrote:
duencil wrote:
Do you have to transform all their vertices into world space on the cpu to be able to properly calculate this info?

Yes and no. But this isn't a slowdown for me anyway. The matrix/math hardware is great. I store a bunch of very select and useful matrices in the matrix stack and only use matrix_restore when needed. I do little pushing and popping, waste of time.


I knew about that matrix restore method for rendering.. but if I got this right you're saying that you use the matrix transform hardware to transform vertices into world space, grab the result and dump them (minus the light positions) onto the math hardware ready to normalize for you as lighting vectors. And you interleave both the matrix and math hw operations with cpu calculations to offset the cost.

That is really cool stuff, and I'm doubly amazed you're figuring all this out from the homebrew side.

#173853 - ritz - Tue May 04, 2010 7:13 pm

oops, wrong button... ignore this post :)
mods can delete if they want


Last edited by ritz on Tue May 04, 2010 8:24 pm; edited 3 times in total

#173854 - ritz - Tue May 04, 2010 7:18 pm

I editted my last post about the last question. Looks like I missed you by 3 minutes :)
I was thinking of something slightly different when I was typing it out.

duencil wrote:
That is really cool stuff, and I'm doubly amazed you're figuring all this out from the homebrew side.

Sometimes APIs muddy the water and assumptions are made when coding. I just made an attempt to really understand what the hardware was doing and built from there. Thanks GBATEK :)[/url]

#173858 - mortys - Tue May 04, 2010 9:21 pm

Hi ritz
I've read your idea of a game made by a train of adventures/rooms design by the players . That's great ! It could be so fun !
I just hope you will stay on your idea and pray for a final release a day or another.
Cheers

#173917 - relminator - Sat May 08, 2010 3:34 am

Whooa!!! Jaw drops...

Man, that's easily the best looking DS homebrew I've seen!

Do you use some spatial partitioning on those models? You know for collision and rendering speed.

Hope you make a game out of this.
_________________
http://rel.betterwebber.com

#173924 - ritz - Sat May 08, 2010 5:12 pm

Thanks for your comments :)
No, not spatial partitioning or anything. I use the hardware box_test a little bit in parallel with some CPU based stuff to determine what to draw.
In regards to making a game out of it, I would need to acquire the skill of making games first :) This was just the result of me learning the DS hardware over time. For an actual game, I should make pong first before anything else!

#174073 - dheart88 - Mon May 17, 2010 12:17 am

to the creator of fandian:

do you have a development blog?? I want to learn some tricks from you.. I really appreciate your 3D skill.. do you have lighting tutorial or modelling tutorial?

#174089 - ritz - Mon May 17, 2010 4:26 pm

Sorry, no blog or anything and I've never written any kind of tutorial about anything in my life (I'm terrible at explaining stuff). I don't know modelling but you might find some lighting info posted previously in this thread. You may even possibly find something in my posting history... I don't really remember.

#174092 - renatobs - Mon May 17, 2010 11:47 pm

Thanks to share your knowledge with us. I?m a NDS 2D programmer and I?m remaking a Sega Genesis game ( http://forums.shiningforcecentral.com/index.php?showtopic=12564 ) to DS.
Let me explain: I?d like to put 3D animations in battle scenes, like Shining Force 3 ( on Youtube you can see movies about this ) and I know that it?s possible on NDS easily, but I don?t know how to do cuz I never got good examples of coding 3D characters animations on DS to learn it myself. I know creating 3D in Blender and I already did some characters from SF2 there, but I don?t know how to put and animate them on DS. If more ahead you could help me, I?ll be grateful !

PS.: I?m a portuguese speaker, sorry for my poor english skills.

#174093 - dheart88 - Tue May 18, 2010 5:09 am

I read there are 2 kind animation, i hope the terms are right, they are:
1. skeletal animation...
you must have a good math,so in animation you can rotate, translate or do anyhing to the vertices of the model to animate it. but I don't recommend this animation because in libnds, there is a huge difference in rendering delay between using display list and drawing each faces into a mode

2. keyframe animation
I love this kind of animation, you just need to create the model of every frame possible.. so if your character in the game is attacking a monster, try to make 4-5 frames of character slashing and 3-4 frames of monster getting hit..
after modelling them, just export them from 3DSmax to 3ds format. You can use NDS model exporter to convert them into binary display list. You Just need to call them in your code.. give delay to each frame.. you can use timer or whatever to give delay...
This modelling take more spaces...

If you have problem with basic modelling, I suggest you to learn from youtube.. It helps me alot..

sorry for my bad english,
dheart88
http://cupu2cupu.drunkencoders.com/

#174094 - elwing - Tue May 18, 2010 6:06 am

renatobs wrote:
Thanks to share your knowledge with us. I?m a NDS 2D programmer and I?m remaking a Sega Genesis game ( http://forums.shiningforcecentral.com/index.php?showtopic=12564 )
...
PS.: I?m a portuguese speaker, sorry for my poor english skills.


sorry for the offtopic on ritz's fandian, but your project looks great renatobs, will there be a "poor english" version? (or a better one with someone to translate?)

#174096 - renatobs - Tue May 18, 2010 7:41 am

Thanks by the words. I?m work hard in the development of game, but I don?t have much time to it, but no problem. The game will have a correct english language, don?t worried about this, hehehe...
Come back to 3D: for me no problem if the game use keyframe animation. But I have doubts about this: in the "fandian", what kind of animation have been used ? Cuz I like very much. If it?s keyframe animation, is excelent and I need something like it !!! Can I move the camera about the character, even in key frame.. ? So, excelent. If you see the movie on youtube, I use keyframe animations with sprites, but I can?t change the view, camera, or other thing. I think that Shining Force 3 use keyframe animation on Sega Saturn, that have a hardware more simple than DS.
What I need: make a simple scene (depend on situation, a town, a river, a camp, but simple, like SF3, etc... ), put 2 characters animeted that will fight and can move the camera on this action (with thack of view pre-definite), in other words, change my 2D battle scene in a pre-definite 3D battle action scene, like SF3. Where and how can I do this ? Tutorial helps ?
Did you understand ? hehehe...
Sorry "ritz" if this boring you and If you want I can delete my texts here !!! No problem !!!!

#174099 - MrSkiz - Tue May 18, 2010 10:29 am

Keyframe in 3D animation just means having as much 3D models with different poses as the frames composing the animation and the engine morphs between model to create the movement. So yes you can turn around a 3D object with keyframe animation.

#174117 - ritz - Wed May 19, 2010 6:04 am

elwing wrote:
sorry for the offtopic on ritz's fandian
renatobs wrote:
Sorry "ritz" if this boring you

No problem, talk about whatever you want :)

renatobs wrote:
in the "fandian", what kind of animation have been used?

I use skeletal animation for everything.

#174124 - dheart88 - Wed May 19, 2010 10:32 am

@ritz:
can you pls give us example how to do skeletal animation? I'm just curious, because I use display list and keyframe animation.

If I use skeleton animation, my method is to load object from a text file converted from .ASE file definition, So I can get coordinate from each vertex and I can modify it. But with it, rendering will be really slow.

Or maybe your method is using display list and you split the object (like human) into several limbs and then move them separately?

dheart88

#174131 - ritz - Wed May 19, 2010 4:09 pm

Your best bet is to look for a simple example or tutorial about skeletal animation on the net. I don't know anything about your .ase format but the idea is that every vertex is associated with a joint/bone which have position and rotation represented by quaternions. As each frame goes by, you interpolate between the key frames and your concatenated matrices from parent to children get applied to the vertex. I hope I explained that somewhat correctly. Also, I don't use display/call lists so I can't shed any light on that.

Hope that helps :)

#174132 - dheart88 - Wed May 19, 2010 4:40 pm

If you don't use callist, how to load 3D model into DS? Please tell me. Thanks for your suggestion, I'll try to find some tutorial
_________________
my DS development blog:
http://cupu2cupu.drunkencoders.com

#174134 - elhobbs - Wed May 19, 2010 5:31 pm

dheart88 wrote:
If you don't use callist, how to load 3D model into DS? Please tell me. Thanks for your suggestion, I'll try to find some tutorial
did you look at the 3d ds examples? you can use the pseudo gl api - glBegin,glVertex3v16/glVertex3f,glEnd

#174135 - dheart88 - Wed May 19, 2010 5:34 pm

I tried to use it last year. Last year, I tried to draw 5 cars using simple glBegin(GL_TRIANGLE) bla bla bla from textfile (I convert it from ASE).. but it's really slow... btw, vertex RAM is only about 1000..

And after that, I export my model into 3ds format and use NDS model exporter (written in java) to create .bin list. And the result after using display list is much faster..

Ritz said he didn't use display list, so I want to know ritz's trick to load those model without display list..
_________________
my DS development blog:
http://cupu2cupu.drunkencoders.com

#174136 - elhobbs - Wed May 19, 2010 8:31 pm

dheart88 wrote:
I tried to use it last year. Last year, I tried to draw 5 cars using simple glBegin(GL_TRIANGLE) bla bla bla from textfile (I convert it from ASE).. but it's really slow... btw, vertex RAM is only about 1000..

And after that, I export my model into 3ds format and use NDS model exporter (written in java) to create .bin list. And the result after using display list is much faster..

Ritz said he didn't use display list, so I want to know ritz's trick to load those model without display list..
make sure you are not converting your vertexes from float to ds format. if the data is stored in the native format then glBegin and glVertex are not slow. Not sure what you mean by "vertex RAM is only about 1000.. ", but the ds can display about 2000 triangles per frame - it does not matter if it is using display lists or not.

edit: things can get slow and a little wonky if you try to send too much each frame - for instance sending 3000 triangles each frame.

#174137 - ritz - Wed May 19, 2010 9:47 pm

dheart88 wrote:
Ritz said he didn't use display list, so I want to know ritz's trick to load those model without display list..

I essentially do what elhobbs said earlier about glVertex calls.

I use an external ascii file that defines the model similar to your ASE format, I assume. Offline, I have a program that parses, converts from float, triangle strips, vertex packs, does joint/bone stuff, etc, etc, and then is finally written to a my own little binary format. These "compiled" files just sit in the rom's Nitro filesystem and get loaded straight into RAM, ready to go. It's a simple matter of sending the packed vertex to the DS. Well, there's normals and other crap too... but that's the idea.

#174151 - renatobs - Thu May 20, 2010 3:44 pm

I?m crazy with all that people are writing here... hehehe... I?d like a kind of "engine" to help me, a way more simple that I can get my 3D models from Blender and show than in sub-screen on DS, even by keyframe animation, but with play, pause and camera controls and together my 2D engine, with 4 elements; ground scene, 2 characters and some times 3D fight/magic effects. I know make this with animation lowpoly on Blender. Is really necessary that I "learn" about how to do 3D on DS to show this there? For example, I mixed the lib "thSound and thMp3" with my 2D engine and worked perfectly. Isn?t there a similar easy way ( already made, free ) for 3D ?

#174152 - ritz - Thu May 20, 2010 4:45 pm

If I understand your post correctly, I think you may be looking for something like this: http://forum.gbadev.org/viewtopic.php?t=16066