Author Topic: Current state.  (Read 107290 times)

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Current state.
« on: 2011-04-07 06:17:24 »
Project still not dead, and I still working on it.
Lately I tried few others Render Engines like crystal space and irrlicht to power up q-gears. Irrlicht seems more suitable. Now I try to port everything to it. Render looks like old http://sourceforge.net/projects/q-gears/files/qgears_ffvii/qgears_ffvii_0.13/ engine. It lacks of normal collada support but I implement it to be able to edit models in 3d editors like blender.

Now I work on GUI implementation. I found videos from Falsate who create very cool GUI remake of FFVII (http://www.youtube.com/user/Falsate#p/u/4/bKVKLPB8llo) and try to mate this things posible. This is very good Idea for Avalanche project too.

At the same time I reverse scripting system in FFIX. A lot of interesting Ideas there =)

obesebear

  • *
  • Posts: 1389
    • View Profile
Re: Current state.
« Reply #1 on: 2011-04-07 06:59:12 »
All I can really say is keep up the good work, man.  Your dedication to this is nothing short of amazing!

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #2 on: 2011-04-07 15:09:49 »
Since it is Irrlicht now, I can maybe start hacking it on my freetime too.
However It's not that hard to do own OGL renderer also, (I've come quite far with C/C++ and OpenGL since we last time talked)




But yeah, irrlicht seems like best bet to go, so don't need to fiddle head with renderer framework design and other things.
However Irrlicht has been also quite dead nowadays and seems to have some annoyances.
« Last Edit: 2011-04-07 15:16:23 by Cloudef »

SpooX

  • ah nothing really...
  • *
  • Posts: 344
  • Used to be errr...
    • View Profile
Re: Current state.
« Reply #3 on: 2011-04-08 16:00:45 »
Akari,
If I may ask, what is the reason for the switch from Ogre to Irrlicht?

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #4 on: 2011-04-08 16:37:16 »
Akari,
If I may ask, what is the reason for the switch from Ogre to Irrlicht?

I'm not switched. I just tried other render engines. After trying to port things to Irrlicht I still think that ogre is a best way to go.

Irrlicht lacks of supporting normal materials/animations/mesh formats and many many things. You can write all of them by yourself but it seems to be less efficient and more time consuming.
Ogre is harder to use but it has much more posibilities. You can really use it to normal game. There are build for PS3 =)
« Last Edit: 2011-04-08 16:42:29 by Akari »

Mako

  • *
  • Posts: 669
    • View Profile
Re: Current state.
« Reply #5 on: 2011-04-09 08:15:02 »
Akari

http://www.thegamecreators.com/?m=view_product&id=2030

Have you looked into darkbasic? It supports materials, animations, mesh, and even physics! The one downside to this is it is stuck to using Direct X8~ or higher :/. Just food for thought, it does have a pretty easy learning curb. Keep up the good work!

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #6 on: 2011-04-09 11:15:48 »
Darkbasic is language, it's OK for new programmers or hobbies, but It's going to lack in features Akari is going to need, and is going to be damn slow also. It isn't cross-platform either and you get the idea..

Others that I imagine being no-go are XNA and such, they suck and aren't cross-platform. There are quite few OSS rendering engines which is quite sad. Reason why I pick'd up raw OpenGL.

Mako

  • *
  • Posts: 669
    • View Profile
Re: Current state.
« Reply #7 on: 2011-04-09 14:28:07 »
Quote
but It's going to lack in features Akari is going to need,
Really what are those?

Quote
It isn't cross-platform either
Yes I believe that I mentioned that darkbasic is directX... :-\

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #8 on: 2011-04-09 17:27:39 »
Really what are those?
Yes I believe that I mentioned that darkbasic is directX... :-\

Well first of all it is basic language, so you need to do everything the hard way (Even if it's simpler) It lacks some features in language what even C has.

Next, even if it has lots of stuff like physics and so on, they are all slow. Heck I'd know since I started programming with dark basic professional :P

Mako

  • *
  • Posts: 669
    • View Profile
Re: Current state.
« Reply #9 on: 2011-04-09 20:52:14 »
Though I haven't made a huge project, there are plenty of tech demo's out there that showcase 60fps on thousands of spites and well as 3D models. I have never seen a frame rate hit below that...unless I was not doing something properly.

But then again I do have a very fast PC perhaps this is why I don't detect slowdown...   

Quote
Well first of all it is basic language, so you need to do everything the hard way (Even if it's simpler) It lacks some features in language what even C has.

You may be correct, but I think it could handle FF7 just fine... What are these features you say? I haven't noticed anything besides the aforementioned of course.

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #10 on: 2011-04-26 08:42:07 »
Restored system from massive virus attack and ready for action =)

I restored walkmesh load from ffvii. Though still don't know is it convinient to use... maybe simple mesh will be better. Maybe it's good to implement recast navigation.

By the way ready for programming character controller. And question once again.. which is better: xenogears ffvii or ffix. They are different. xenogears and ffvii are similar (though xenogears has walkmesh material). FFIX works differently. Which is to implement?

nope

  • *
  • Posts: 56
  • nope
    • View Profile
Re: Current state.
« Reply #11 on: 2011-04-26 09:05:09 »
I'd say start with FF7, since that has the most documentation on everything.

Do you still have a todo list of what's done, and what isn't? I'm interested in contributing but I'm not sure which part I should start on

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #12 on: 2011-04-26 12:25:05 »
I'd say start with FF7, since that has the most documentation on everything.

FFVII was already implemented earlier. Problem that FFIX and FFVII has almost compleatly different collision and walkmesh move detection system. FFVII a lot easier. But FFIX more advanced... it seems.

FFVII work almost directly. Itf you press forward came calculates all collision and if it can do the movement it do it. FFIX has separated walkmesh movement and entity collision system. Still don't know why they need such thing.

Do you still have a todo list of what's done, and what isn't? I'm interested in contributing but I'm not sure which part I should start on

I have one. Don't know if it is up to date.

Mainly things that needs to be done almost from scratch:
Camera system (implement 2d and 3d camera, add exporters for dat dumper and battle).
Sound system (implement sound in qgears engine and write dumpers for sounds and music in FFVII).
Movie system (implement system, implement camera for movies).
2D Background (i'm working on understanding how FFIX backgrounds work and implement it in game. Shader based depth sort).
Scripting system (delayed until LUA 5.2 is out)
Entity system (character controller and scene load)
Effect system (particle system and dumper for battle particles)
UI system (implement effect based UI, add exporter for blender, recreate ffvii UI)
« Last Edit: 2011-04-26 12:27:41 by Akari »

nope

  • *
  • Posts: 56
  • nope
    • View Profile
Re: Current state.
« Reply #13 on: 2011-04-26 13:05:52 »
Well I guess the UI/Sound stuff would be a good start, is the code in src_new what you're working with at the moment?

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #14 on: 2011-04-26 13:21:09 »
Well I guess the UI/Sound stuff would be a good start, is the code in src_new what you're working with at the moment?

Yes, UI and Sound both are not very hard. Sound maybe most easy, because don't require Ogre knowledge.

For sound we deside to use openal. you can look at src\core\media\ folder. there are G implementation. Create separate thread on forum to discuss it.

UI is harder. For ui I want to use effect system like one in our company. It's pack of 3d quads with vertex animations (maybe bone animations will be great too). Blender is needed to create it. It must be possible to create this kind of ui with it http://www.youtube.com/user/Falsate#p/u/3/bKVKLPB8llo
I can explain idea for ui in more detailes if needed.


And yes. All code in src_new. Untill I recreate all functionality from src =)
« Last Edit: 2011-04-26 13:23:33 by Akari »

nope

  • *
  • Posts: 56
  • nope
    • View Profile
Re: Current state.
« Reply #15 on: 2011-04-26 22:36:14 »
aha okay, so you're trying to base the UI off of 3D? I can see the merit for animations and stuff, but can't this all be done in 2D too? The only thing I'm wondering about for Sound is the scripting used to play the music, since it was all unique to that game

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #16 on: 2011-04-27 03:52:47 »
aha okay, so you're trying to base the UI off of 3D? I can see the merit for animations and stuff, but can't this all be done in 2D too? The only thing I'm wondering about for Sound is the scripting used to play the music, since it was all unique to that game

3d is an artist choise. If you want it 2d just create UI effects with Z == 0. Then all UI will be rendered without scaling and distortion. But if you want to create nice effect like 3d appearence of window or list with nice 3d transitions use of 3d is very convinient. Other point is that for fully change visual of windows and it's elements you don't need programing at all. Models incapsulate all positions. Programmer just run appropriate animation, if artist want change window it simply change what this animation hold. It's harder to use usual xml or some other markup for UI like simple engines. Scaleform are the good library to look at.

As for sound I don't really understand what are you talking about. Music in FFVII and other square games uses AKAO sequencer, sound effects uses same engine. But we don't need this thing in our engine. Simply because we dont have limitations from PSone. We are going to use music and sound convertet to ogg (or mp3) with small description file for them (to set loop points for example). Everything that can be preprocessed must be preprocessed. And adding new sound will be easy. So ffvii to ogg sound and music converter is needed. For now we can use FFVII OST as well =)

nope

  • *
  • Posts: 56
  • nope
    • View Profile
Re: Current state.
« Reply #17 on: 2011-04-27 09:03:18 »
Aha sorry I forgot the new aim for the project is to just convert everything to new formats, instead of creating loaders for the originals. I mean I've taken a look at OpenAL and creating an AKAO sequencer is feasible, but yeah it'd be less work to just have it loop an OGG file.

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #18 on: 2011-04-27 09:34:06 »
So, what are the libs you are going with Akari? Ogre, OpenAL?
I have experience with OpenAL (Well, with a wrapper from Penumbra), but I've avoided Ogre to speak the truth.

The UI in 3D benefits from GPU too, well this can be done with sprites too... But like Akari said they could cause distortion when scaled and so, meaning same 2d elements for different resolutions. Unless you construct the UI from parts.
« Last Edit: 2011-04-27 09:36:14 by Cloudef »

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #19 on: 2011-04-27 10:23:36 »
Aha sorry I forgot the new aim for the project is to just convert everything to new formats, instead of creating loaders for the originals. I mean I've taken a look at OpenAL and creating an AKAO sequencer is feasible, but yeah it'd be less work to just have it loop an OGG file.

I think you still need to create AKAO sequencer, because you need to export music from game. But write player for QGears itself maybe very good start.
I already started write dumper, but paused halfway.
http://q-gears.svn.sourceforge.net/viewvc/q-gears/trunk/utilites/ffvii_sound_dumper/
G wanted to create dumper with psf player and modified playstation executable
http://q-gears.svn.sourceforge.net/viewvc/q-gears/trunk/utilites/ffvii_sound_dumper_psf/

And you can see his player which plays music from FFVII very good. it cant load second sample bank though.
http://q-gears.svn.sourceforge.net/viewvc/q-gears/branches/old_sources/src/utils/akaoplayer/


Quote
So, what are the libs you are going with Akari? Ogre, OpenAL?
I have experience with OpenAL (Well, with a wrapper from Penumbra), but I've avoided Ogre to speak the truth.

The UI in 3D benefits from GPU too, well this can be done with sprites too... But like Akari said they could cause distortion when scaled and so, meaning same 2d elements for different resolutions. Unless you construct the UI from parts.

Library are: Ogre, OpenAL, Lua, LuaBind, TinyXML.
Why are you afraid of ogre? It's not that hard, but it is the most powerful opensource render engine. As for now I understand it pretty well and can do almost everything with it (it requires time though).

2D UI vs 3D ui is just adding one more dimension of freedom. You can not use it and render everything without perspective transformation. One of the main point is separate logic from graphic. Photoshop doesn't have 2d animation formats, while 3d editors have, and ogre already supports it. You just need to play specific animation in specific time and everything will works.
« Last Edit: 2011-04-27 10:40:31 by Akari »

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #20 on: 2011-04-27 11:15:57 »
Those libs sound good, about ogre.. I've never really liked it much, it depends on it's core parts too much, and it makes code look bit ugly.. Well the reason for this might be since I've quite strayed away from C++ to C.

Have you tried Javascript instead of lua btw? Those have blazingly fast VM's.

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #21 on: 2011-04-27 12:49:34 »
Have you tried Javascript instead of lua btw? Those have blazingly fast VM's.

I read some articles about Javascript VS Lua. And I really don't sure about results. Sometimes Lua faster, sometimes javascript. But Lua is language heavy used by game industry. It uses very little space, has no dependancies on other library and quite fast while has really lot of power. I think we stick with it. Just want to wait until they release 5.2 )
Though I can use 5.1 with bitlib right away.

Cloudef

  • *
  • Posts: 83
    • View Profile
Re: Current state.
« Reply #22 on: 2011-04-27 14:31:47 »
I read some articles about Javascript VS Lua. And I really don't sure about results. Sometimes Lua faster, sometimes javascript. But Lua is language heavy used by game industry. It uses very little space, has no dependancies on other library and quite fast while has really lot of power. I think we stick with it. Just want to wait until they release 5.2 )
Though I can use 5.1 with bitlib right away.

Yeah, better with familiar than odd one.

nope

  • *
  • Posts: 56
  • nope
    • View Profile
Re: Current state.
« Reply #23 on: 2011-04-27 22:36:49 »
Well I'll build a loopable OGG player in OpenAL for the engine, it shouldn't be too difficult but from what I've read there's no standard way of storing loops in OGG files, as it's stored in the metadata which can have different formats, so I'll probably just support one and we can make the converter use that format.

Akari

  • Moderator
  • *
  • Posts: 766
    • View Profile
Re: Current state.
« Reply #24 on: 2011-04-28 03:29:49 »
Well I'll build a loopable OGG player in OpenAL for the engine, it shouldn't be too difficult but from what I've read there's no standard way of storing loops in OGG files, as it's stored in the metadata which can have different formats, so I'll probably just support one and we can make the converter use that format.

No, don't use metadata, use description xml. When we thought about sound system we deside with this format
Code: [Select]
<musics>
    <music name="opening" file_name="music/opening.ogg" loop="10.5" />
</musics>
name - name of music to play from engine or script.
file_name - real file name of this music. Full path from data directory.
loop - time in seconds. Optional. If specified sound engine will jump to loop time after music finish playing.

From engine you can play music only by name.
music.xml stored in game_data directory.

With this format modders can easyly add their own looped music.

I added file and directory to project, use it to test.
« Last Edit: 2011-04-28 04:02:51 by Akari »