Horde3D

Next-Generation Graphics Engine
It is currently 18.05.2024, 09:42

All times are UTC + 1 hour




Post new topic Reply to topic  [ 10 posts ] 
Author Message
PostPosted: 20.05.2008, 22:55 
Offline

Joined: 26.04.2008, 19:20
Posts: 12
Location: United States
Hi, everyone. I've been lurking here for a while, and I read this forum most days, but this is my first post.

I'm almost completely new to 3D graphics, game development, and programming in general. In the last couple of months, I've been exploring the possibility of making a game, and I've spent some time learning about each of the major areas involved -- design, art/sound creation, and programming -- to try to convince myself that it might be possible for me actually to accomplish this. Although I know that statistically my chances of finishing a game are astronomically small, I've enjoyed what I've been doing enough that I've decided to go for it, anyway.

However, I have no desire to reinvent the wheel. My real interest is in making a game, not making an engine, so it seems only natural to use a pre-existing game engine, or at least a 3D engine. After quite some time researching the options available to a hobbyist/indie lone developer, I narrowed my list to C4 and NeoAxis for game engines, and OGRE and Horde3D for graphics engines. At first, I leaned pretty heavily towards the game engines, and I spent some serious time working with NeoAxis. There's a lot to love about the engine (which is basically a C# wrapper around OGRE, PhysX, and FMOD with a nice custom GUI system, a couple of decent editors, and a very good entity system), but the more I worked with it the more I found myself wishing I could change parts of it to fit my own style, and the more I came to dislike the restrictive licensing system and the community. Although I haven't completely ruled out using NeoAxis or C4 (which is also great, and has the huge benefit of offering full source with an indie license, but unfortunately uses C++ exclusively, which I would rather avoid), I've become increasingly more interested in customizing an engine for myself around OGRE or Horde3D and incorporating some of the excellent free libraries out there.

Here's where I run into problems, though. As I mentioned above, I'm new to all of this. I have very little programming experience. I took a CS course in high school that was taught in C++ (in 2003, the last year that the American AP exam was done in C++ rather than Java), and since then I've done a little bit of programming at times to support my university coursework and research (I'm majoring in physics and mathematics). But I've never really gotten past the point of being able to write simple 40 or 50 line programs and/or modifying someone else's well documented code. My C++ knowledge was never very advanced -- somewhat past a typical American high school course, since it was AP level and at a math/science magnet school, but not much -- and it's more or less vanished over the course of five years of disuse. My programming since then has been very hack-y, and mostly done in domain-specific scientific programming languages (primarily IDL and Mathematica).

To make a long story short: I'm a pretty smart guy with a good grasp of math and physics. I can do vector manipulation and other 3D geometry/linear algebra stuff in my sleep. But I've never written a large scale program, I have absolutely no knowledge of any "design patterns", I don't know any programming language well, even my level of knowledge of object oriented design techniques is pretty low, and I've never done any kind of graphics programming at all. I don't know if I have the mindset ever to be a good a programmer, but I certainly know I'm not one now.

My most important question is this: will I be way over my head with Horde3D?

In some ways, I think I might be better off working with OGRE, which has the benefit of a huge community and plenty of tutorials and other material to get me started learning. But I've taken a look at some of that, and unfortunately I just don't really like OGRE. I much prefer the elegance and cleanliness of what I've seen of Horde3D, and I think that I will eventually be able to more fully understand Horde3D's lightweight code than OGRE's bloat. This forum is both great and terrifying. On the one hand, everyone who posts here seems extremely competent, intelligent, pleasant, and articulate -- which is obviously a very nice thing. But on the other hand, all the regular posters seem extremely experienced, which is intimidating; lurking in this forum, I often feel like a schoolchild who accidentally wandered into an academic scientific conference instead of his 3rd grade science class. There's no one here who asks dumb questions (which certainly can't be said of OGRE!), which is both good and bad. Do you guys think that maybe Horde3D isn't ready for people like me -- people who want to learn from the ground up? It seems like while the engine is at 1.0, the community and the documentation are still in their fairly early stages (although what there is for documentation seems excellent, and the wiki is damn sexy, there just aren't many tutorials and resources for newbies). Would I maybe be better off first learning the basics with OGRE or Irrlicht, always intending to come back to Horde3D in a few months when I'm ready to start understanding it? Or are the engines' philosophies too different for that to be useful?

One way or another, I don't plan to really start working with any engine until I get a better handle on just programming. I made that mistake with NeoAxis -- I thought that maybe the best way to learn would just be to jump in and start hacking away, but unforunately that didn't seem to work for me. I just felt overwhelmed and discouraged. I'm planning to get a decent grasp of the fundamentals before I start working with anything larger. I've been working my way through a couple of books on C# for the last week or so, and I intend to finish them and then write some sort of medium-to-large scale program before working on a game engine. (I'm thinking about writing a tool/editor, so that I can keep motivated and working on my game without actually having to start working on the game engine . . . since I'm planning on a dialog-heavy single-player RPG, I'm kind of thinking about developing a GUI-based dialog/script editor that exports XML files, which should be compatible with whatever engine I end up using.)

Sorry that this is such a long post. And that so much of it was irrelevant. I just see a lot to love about Horde3D, but making a game is a daunting task, and I'm so inexperienced I don't even really know where to begin. Would I be making a mistake to plan on using Horde3D? Should I give up on learning C#, and try to learn modern C++ instead? Is building a game engine around a graphics engine and other free libraries simply too hard for a one-person team, so that I should go back to a full game engine like NeoAxis or C4?

I'm open to suggestions, and I'd greatly appreciate any advice you can offer!

Thanks,
Corey


Top
 Profile  
Reply with quote  
PostPosted: 20.05.2008, 23:07 
Offline

Joined: 26.04.2008, 19:20
Posts: 12
Location: United States
This is pretty much unrelated to my last post, but I didn't want to start a new thread.

I'm planning on making an "old school" single player RPG, in the tradition of the Wizardry or Might & Magic games but with a more complex dialog system and plot influenced by the Black Isle/Troika games (Fallout, Planescape: Torment, Arcanum, etc.).

Since I will be the only developer, at least for quite some time, I have no intention of trying for cutting edge graphics. I intend to rely heavily on some of the freely licensed art available out there and the relatively inexpensive content packs available from companies like Dexsoft and Arteria. So I'm not attracted to Horde3D for its "next-gen" power, since I know it's unrealistic for one inexperienced hobbyist developer to actually take advantage of that. What I really like about Horde3D is the small size and the fact that it was mostly developed by one person (it makes me feel like if I worked hard enough and long enough I could actually understand the engine, whereas I don't feel that I could ever fully understand OGRE). I also like the C interface and the relative ease of wrapping the engine, since I'd really like to use C# for my engine (I'm quickly falling in love with the language, and it was one of my favorite things about my experience with NeoAxis).

But I'm a little concerned that even though I won't be using the next-gen capabilities, the next-gen system requirements will still hurt me. The game I want to make will never be wildly popular; it's targeted for a niche market of hard-core RPGers that's been pretty much unserved for the last ten years. A lot of these guys don't have cutting edge gaming PCs. Many of them don't have what would be called a "gaming PC" at all. I know Horde3D requires an OpenGL 2.0 card, and I know that at the moment that's actually a fairly high end requirement. However, if I ever successfully make this game, there's no way it will be done for at least 2 or 3 years. By then, OpenGL 2.0 will be an extremely reasonable requirement for graphics cards. I'm not worried about that. What I am a little concerned about is integrated graphics. Does anybody know if it's reasonable to expect Horde3D to run on the integrated graphics chipsets of new, cheap computers and laptops 2 years from now? Or will Horde3D always require a gaming graphics card?


Top
 Profile  
Reply with quote  
PostPosted: 20.05.2008, 23:13 
Offline

Joined: 18.05.2008, 17:47
Posts: 96
horde source code is very clean and understandable(elementary c/c++ knowledge required). and api is nice. but if you like learning from examples, there are only a few examples. that is all I can say I am new too


Top
 Profile  
Reply with quote  
PostPosted: 21.05.2008, 00:28 
Offline

Joined: 16.01.2008, 00:24
Posts: 73
Location: Canada/Quebec
I was, in someway, in the same situation when I started to work with horde3d some months ago. I wanted to create my own game engine for my project. Ive tried Neoaxis engine, Ogre, irrlicht.... I finally choose to make my own 3D Game Engine with Horde3D because this engine was really easy to use, really beatiful and had great result.

At this point, i'm far from being disappointed. The core game engine is almost finish, Ive started to work on an editor and I'm really happy with the result. I'ts my biggest project to date, before that, my biggest application was like 20% of the size of my current project. And to make this engine, Ive tested a lot of game engine to see how they worked and it inspired me.

As I see, you have some experience in computer science, at least, the basic. You can surely try to do your project, but it may take longer to realize because you will surely learn a lot with it, but it still possible, I think.


Top
 Profile  
Reply with quote  
PostPosted: 21.05.2008, 02:56 
Offline

Joined: 26.04.2008, 19:20
Posts: 12
Location: United States
Thanks for the responses so far, that's very encouraging. Kal, good luck getting started (maybe we'll be able to help each other?). Mikmacer, as for this taking longer than I expect -- I'm sure of it! If I come out of this with no finished project, but having had some fun and learned a lot, I'll be perfectly happy. And congratulations on getting so far so fast!

Does anyone have any thoughts about my second post, regarding Horde3D running on the low-end computers of two years from now?


Top
 Profile  
Reply with quote  
PostPosted: 21.05.2008, 03:57 
Offline

Joined: 08.11.2006, 03:10
Posts: 384
Location: Australia
Corey wrote:
Does anyone have any thoughts about my second post, regarding Horde3D running on the low-end computers of two years from now?

GeForce 6600's will probably be considered "low-end" in 2/3 years time.

Also, most integrated graphics are made by Intel, and their "top-end" integrated chipset (the GMA X3500) supports OpenGL 2.0 now. So hopefully in 2/3 years time this will become a "low-end" integrated chipset ;)

I don't think all computers will be able to run it two years from now (especially basic laptop models), but I'm guessing that any PC which is supposed to be able to play games should be able to.


Top
 Profile  
Reply with quote  
PostPosted: 21.05.2008, 13:33 
Offline

Joined: 18.05.2008, 17:47
Posts: 96
maybe you can test gl extensions disable the non existent ones. but then some shaders wouldnt work


Top
 Profile  
Reply with quote  
PostPosted: 21.05.2008, 17:02 
Offline

Joined: 22.11.2007, 17:05
Posts: 707
Location: Boston, MA
Corey wrote:
Does anyone have any thoughts about my second post, regarding Horde3D running on the low-end computers of two years from now?
Since Intel already has several integrated solutions running DirectX 10 (which is OpenGL 2.1/approx, when they get the OpenGL drivers sorted), I think we can expect to see almost all laptops and desktops able to run horde in the next few years. UMPCs and embedded systems don't look to be far behind either, maybe 4-5 years before there is widespread support.

_________________
Tristam MacDonald - [swiftcoding]


Top
 Profile  
Reply with quote  
PostPosted: 22.05.2008, 09:38 
Offline
Engine Developer

Joined: 10.09.2006, 15:52
Posts: 1217
The only real issue I see for beginners is the material system (basically the heart of Horde). If you don't want to use advanced rendering effects you won't profit from it. In contrast, it is a bit more difficult to do some standard tasks like creating a skybox. I think other engines like Irrlicht have a special feature skybox directly integrated but in Horde you are supposed to write a small shader for that. That will take a few minutes for an experienced graphics programmer but for a beginner that might be a bit frustrating at first. The philosopy of Horde is not to clutter the code with a plenty of (simple) special features but rather provide an intuitive way to create that feature using shaders and pipeline scripts. Well, having an integrated skybox shader wouldn't work anyway due to the completely dynamic pipeline and the fact that your color data could be encoded in some way. Furthermore, as an advanced programmer you often want to have something special like HDR for the skybox or real scattering so the built-in feature would be useless for many people. The idea for beginners is to have a code repository for such standard tasks (the sample shaders already help a lot of people) in the wiki but as you already mentioned the wiki is still in a very early stage. I don't want to discourage you from using Horde but I think it is just fair to mention that :)


Top
 Profile  
Reply with quote  
PostPosted: 22.05.2008, 17:52 
Offline

Joined: 26.04.2008, 19:20
Posts: 12
Location: United States
Thanks for all of the responses, everyone.

I'm pretty sure you've convinced me to go with Horde3D. (To be honest, all you really had to do to convince me was not shout "GO AWAY", since after playing with the demos and messing around with the C# wrapper I've really liked what I've seen.)

And thanks for the warning, marciano -- I suppose that's a bridge I'll have to cross when I come to it. Maybe it will even be a good thing having someone who's really new to all of this using the engine; hopefully as I learn my way around I'll be able to submit some tutorials for the absolute beginner, answering the questions that I will no doubt have myself. Hopefully I won't have to make too much of a nuisance of myself posting questions on the Support board.

In any case, that's still a ways off. As I said in my first post, I'm going to spend some time getting more comfortable with the basics of programming, software engineering, and object oriented design before I really start using Horde3D. So I guess I'll be switching back into lurking mode for the next few weeks, but I just wanted to thank you all for the helpful posts.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group