Sometimes it's nice to be king. Just to make this clear, the thoughts expressed in this post are where I would like Dagger3D to go in the future. Of course being the only developer means that I can basically do what I like so consider this post for the most part as wishful speculation, perhaps with the exception of the section titled The Near Future.
The Near Future
Other Languages
Right now I'm playing around with different ways to use Dagger3D in other languages. Bindings for Java are very likely right now, and I've already created placeholders in the Subversion repository for them. Hopefully I can adapt Dagger3D to appeal to Object Oriented programmers!
Java is an Object Oriented programming language created by Sun Microsystems.

Being that Java and C# are very similar I don't really see too much of a problem in writing C# bindings as well. Before I can do that though I'll need to get Dagger to compile in Visual Studio and then I'll need to brush up on my nonexistent C# skills. If anyone would like to help with either of these tasks I would really appreciate it as I don't really use Microsoft's development tools very often.
I wouldn't really be against writing bindings for other languages, so if you would like bindings for language X please get in touch with me. If you [meaning any hypothetical person] would like to write the bindings yourself that would be even better, and of course I would fully put my support behind them!
Update 8/13/08: I came across a program called SWIG that apparently will generate wrapper code for a pretty long list of languages. I've been messing around with JNI and JNative, but it looks like this might be a better solution.
Update 8/13/08: SWIG is actually really cool. It sure ain't magic, but it does what it claims to do. Now if only I could figure out how to use it properly..
Engine Features
Here is basically a list of features that Dagger3D has right now.
* Static (non-animated) 3D model loading support
* Keyboard/mouse input support
* Basic dynamic lighting
* Basic 3D sound support
Two things of immediate concern are mesh animation and shadow projection. Most of the code for animated meshes is actually in place, but I haven't tested any of it. Shadow projection has me completely stumped. All of the examples and articles I can find on it use things from Linear Algebra that are way over my head right now.
A screenshot of one Open Source physics engine (ODE) in action.

Equally important I think is the implementation of a basic physics engine. This I can mostly do with my current knowledge, I just need to take the time to write and test it. I do think it's worth pointing out however that while the implementation of a physics engine is important for any modern game engine, the lack of a proper physics engine in Dagger right now isn't something that I consider that large of an issue. A couple of Open Source physics engines exist that probably offer more in the way of "realistic physics" than Dagger ever will. Basically I think it's something that I will work on eventually.
I would also like to add a pull down in-engine development console, similar to the one present in the Quake engine. Maybe I'll even throw in some scripting, who knows?
A screenshot of the Source engine's in-engine debug console.

Documentation
I am currently using a program called Doxygen to generate the API documentation for Dagger. I think the API docs are an excellent reference, but a poor substitute for a tutorial.
While I'm a little wary of writing too much in the line of documentation right now (mainly because of how rapidly the API is changing around), I would like to write a number of examples demonstrating how to use various engine features. I would also like to write a short ebook basically on using the engine. I think both of these are likely going to happen, but I couldn't tell you when.
Basically the documentation will be written when one or more of the following is true.
1) The API is a little more stable.
2) I feel like it!
3) I have the time.
The Slightly Distant Future
DirectX Support
I'm going to be very honest and just come out and say that I don't really like DirectX. My problem isn't with the API itself. I don't like DirectX for political reasons which I will not go into but you can probably infer.
Having said that I do acknowledge that many important people in this industry, notably John Carmack, feel that DirectX is a pretty decent graphics API. While I'm not really one to blindly accept the opinions of others as fact, I do think that Carmack has a pretty good history of knowing what he's talking about.
DirectX 9 would likely be the version I would target.

I also think it would be pretty cool if someone ported Dagger3D to XNA eventually. I'm not too sure how realistic something like that would be, but I think having Direct3D as an optional graphical back end would be a prerequisite.
XNA is a framework provided by Microsoft that among other things allows homebrew games to be written for the Xbox 360.

On a tangent my opinion on XNA is that it's a pretty cool idea that Microsoft has obviously put a lot of support and money behind. I do find myself disliking it however due to it's proprietary nature.
Mac OS X Support
I would like to port Dagger to OS X eventually. It should't take too much work and I doubt much code would have to be changed, I just don't have any way to test it!
The many versions of OS X. Hopefully they are binary compatible?

Stayscrisp, if you're reading this I could use your help. You're an OS X guy right?
Sooner or later I'm planning to buy one of the clamshell G3 iBooks being sold on eBay that come preloaded with OS X. I highly doubt Dagger3D will run amazingly on one, but I think if I could at least get it to start up that would be a plus. As long as you don't load any sound files the RAM usage actually hovers around 9 MiB.
A Clamshell G3 iBook.

File Format Support
Dagger only supports my custom mesh formats at the moment, but I don't really have any problem adding support for popular ones like MD2. It's not too big of a concern right now though because I've put together a procedure to convert most mesh formats to my custom DMF format using Blender 3D.
The only audio format currently supported is Wave. I'm planning on adding support for Ogg Vorbis, but I can't promise anything else.
I most definitely will not be support MP3 unless someone would care to fork over the fee to license it.
Development Tools
Scene Editor
Not too much on this yet but basically I would like to create some kind of way to edit 'scenes' graphically. It would basically be a map editor with support for things like entities and light sources.
Various Utilities
Again not much on this but some nice GUI tools for doing things like creating entities would be pretty handy I think
---------------------------------------------
Questions/comments/suggestions are welcome as always!
The Near Future
Other Languages
Right now I'm playing around with different ways to use Dagger3D in other languages. Bindings for Java are very likely right now, and I've already created placeholders in the Subversion repository for them. Hopefully I can adapt Dagger3D to appeal to Object Oriented programmers!
Java is an Object Oriented programming language created by Sun Microsystems.
Being that Java and C# are very similar I don't really see too much of a problem in writing C# bindings as well. Before I can do that though I'll need to get Dagger to compile in Visual Studio and then I'll need to brush up on my nonexistent C# skills. If anyone would like to help with either of these tasks I would really appreciate it as I don't really use Microsoft's development tools very often.
I wouldn't really be against writing bindings for other languages, so if you would like bindings for language X please get in touch with me. If you [meaning any hypothetical person] would like to write the bindings yourself that would be even better, and of course I would fully put my support behind them!
Update 8/13/08: I came across a program called SWIG that apparently will generate wrapper code for a pretty long list of languages. I've been messing around with JNI and JNative, but it looks like this might be a better solution.
Update 8/13/08: SWIG is actually really cool. It sure ain't magic, but it does what it claims to do. Now if only I could figure out how to use it properly..
Engine Features
Here is basically a list of features that Dagger3D has right now.
* Static (non-animated) 3D model loading support
* Keyboard/mouse input support
* Basic dynamic lighting
* Basic 3D sound support
Two things of immediate concern are mesh animation and shadow projection. Most of the code for animated meshes is actually in place, but I haven't tested any of it. Shadow projection has me completely stumped. All of the examples and articles I can find on it use things from Linear Algebra that are way over my head right now.
A screenshot of one Open Source physics engine (ODE) in action.
Equally important I think is the implementation of a basic physics engine. This I can mostly do with my current knowledge, I just need to take the time to write and test it. I do think it's worth pointing out however that while the implementation of a physics engine is important for any modern game engine, the lack of a proper physics engine in Dagger right now isn't something that I consider that large of an issue. A couple of Open Source physics engines exist that probably offer more in the way of "realistic physics" than Dagger ever will. Basically I think it's something that I will work on eventually.
I would also like to add a pull down in-engine development console, similar to the one present in the Quake engine. Maybe I'll even throw in some scripting, who knows?
A screenshot of the Source engine's in-engine debug console.
Documentation
I am currently using a program called Doxygen to generate the API documentation for Dagger. I think the API docs are an excellent reference, but a poor substitute for a tutorial.
While I'm a little wary of writing too much in the line of documentation right now (mainly because of how rapidly the API is changing around), I would like to write a number of examples demonstrating how to use various engine features. I would also like to write a short ebook basically on using the engine. I think both of these are likely going to happen, but I couldn't tell you when.
Basically the documentation will be written when one or more of the following is true.
1) The API is a little more stable.
2) I feel like it!
3) I have the time.
The Slightly Distant Future
DirectX Support
I'm going to be very honest and just come out and say that I don't really like DirectX. My problem isn't with the API itself. I don't like DirectX for political reasons which I will not go into but you can probably infer.
Having said that I do acknowledge that many important people in this industry, notably John Carmack, feel that DirectX is a pretty decent graphics API. While I'm not really one to blindly accept the opinions of others as fact, I do think that Carmack has a pretty good history of knowing what he's talking about.
DirectX 9 would likely be the version I would target.

I also think it would be pretty cool if someone ported Dagger3D to XNA eventually. I'm not too sure how realistic something like that would be, but I think having Direct3D as an optional graphical back end would be a prerequisite.
XNA is a framework provided by Microsoft that among other things allows homebrew games to be written for the Xbox 360.
On a tangent my opinion on XNA is that it's a pretty cool idea that Microsoft has obviously put a lot of support and money behind. I do find myself disliking it however due to it's proprietary nature.
Mac OS X Support
I would like to port Dagger to OS X eventually. It should't take too much work and I doubt much code would have to be changed, I just don't have any way to test it!
The many versions of OS X. Hopefully they are binary compatible?
Stayscrisp, if you're reading this I could use your help. You're an OS X guy right?
Sooner or later I'm planning to buy one of the clamshell G3 iBooks being sold on eBay that come preloaded with OS X. I highly doubt Dagger3D will run amazingly on one, but I think if I could at least get it to start up that would be a plus. As long as you don't load any sound files the RAM usage actually hovers around 9 MiB.
A Clamshell G3 iBook.
File Format Support
Dagger only supports my custom mesh formats at the moment, but I don't really have any problem adding support for popular ones like MD2. It's not too big of a concern right now though because I've put together a procedure to convert most mesh formats to my custom DMF format using Blender 3D.
The only audio format currently supported is Wave. I'm planning on adding support for Ogg Vorbis, but I can't promise anything else.
I most definitely will not be support MP3 unless someone would care to fork over the fee to license it.
Development Tools
Scene Editor
Not too much on this yet but basically I would like to create some kind of way to edit 'scenes' graphically. It would basically be a map editor with support for things like entities and light sources.
Various Utilities
Again not much on this but some nice GUI tools for doing things like creating entities would be pretty handy I think
---------------------------------------------
Questions/comments/suggestions are welcome as always!
2 Comments On This Entry
Page 1 of 1
Page 1 of 1
Search My Blog
Tags
My Blog Links
0 user(s) viewing
0 Guests
0 member(s)
0 anonymous member(s)
0 member(s)
0 anonymous member(s)
|
|



2 Comments









|