Sign in to follow this  
QuadMV

Desperate for help!!!!

Recommended Posts

Help please!! I’m really getting frustrated. I’ve been working on my own engine for a long time now, but I really don’t want to be working on an engine. I want to be working on my game, but I have specific requirements and years ago when I started no engine had the features I really wanted. Today I’ve created some of the core functionality including a great Terrain system for unlimited sized terrains, a real portal system (not quite done) but this is not using portal for just occlusion of a single large model like others, but my portals are true links between different objects. Each room is an object and indoor scenes are just collections of highly detailed models developed in any modeling program you want. They are linked dynamically and can be changed dynamically. I have a pretty robust scene manager which allows me to manage the content over a life size planet, without having to preload any of it, and without incurring any delays for loading. The engine starts up almost immediately, and you can travel anywhere without delays, you can even leave the planet to space and land on another planet without load or delays. I’ve also completed the core foundation of my MMOPG networking system designed for 10’s of thousands of concurrent users (or more). However, even having accomplished all of this, I’m still very frustrated, because I don’t have many common features such as: 1. Models: Reliable modeling system for animated and non-animated objects. I originally wanted to use .X models, which I’m currently using, but I’m finding that the exporter is terrible, especially for animation. I’d love something like granny, but it’s too expensive. a. I’m particularly fond of the way HL2 and Quake 4 animate the upper torso when you move the mouse while keeping the lower torso fixed. This isn’t so much an animation as they are moving the bones connected to the gun as the gun swings around. It’s a great effect 2. Shadows: I’ve never done shadows, and need to cast shadows for my models. It’s not trivial but so common it’s mandatory. I'd like something that supports both higher quality, less performance and lower quality higher performance shadows. I'll then choose based on distance. 3. Particles: I need a good particle system to bring the world to life. Smoke, fire, rain, clouds, vapor trails, etc. 4. Lighting: Goes without question. I can use HW lighting for some things, but I know my indoor scenes will need dynamic light maps. One of the benefits to my portals are that I can load an individual model in sub second, so having a high-res model from 3DSMAX, prelit might be an optional cheat, but I think I need more of a dynamic lighting system Instead of getting a formal rendering engine that would limit my abilities to use what I’ve already done, I think maybe what I want are libraries, preferably open source, but I’d even pay if it’s not too expensive. Does anyone know of or possess good quality libraries (source prefered, c++ classes for directX) so I could easily add the missing functionality into my engine? I really want to get to focusing on the game, but I at least need the basic engine to meet minimal standards as defined above. Thanks everyone, I’d appreciate any feedback you can provide. If you’re an expert in any items 1-4 and want to provide your own classes, that would be equally awesome  [Edited by - QuadMV on March 15, 2006 10:19:20 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by QuadMV
1. Models: Reliable modeling system for animated and non-animated objects. I originally wanted to use .X models, which I’m currently using, but I’m finding that the exporter is terrible, especially for animation. I’d love something like granny, but it’s too expensive.

Have you looked at Cal3D? It is an open-source animation library that has a capable and stable exporter for 3ds Max. I have not used it personally, but have heard of many people who used it with success.

Granny sets the low-end cost-wise of animation middleware, so you aren't going to really find anything less than that (commercially).

Quote:
2. Shadows: I’ve never done shadows, and need to cast shadows for my models. It’s not trivial but so common it’s mandatory. I'd like something that supports both higher quality, less performance and lower quality higher performance shadows. I'll then choose based on distance.


There are 2 common methods nowadays, each with tons and tons and tons of resources. You can try shadow maps, which basically renders the casted shadows from the viewpoint of lights, or shadow volumes, which basically extrudes geometry. Both have a lot of tutorials on them (both are even in the DXSDK as well).

Quote:
Instead of getting a formal rendering engine that would limit my abilities to use what I’ve already done, I think maybe what I want are libraries, preferably open source, but I’d even pay if it’s not too expensive. Does anyone know of or possess good quality libraries (source prefered, c++ classes for directX) so I could easily add the missing functionality into my engine? I really want to get to focusing on the game, but I at least need the basic engine to meet minimal standards as defined above.


It seems like the Torque engine is a common solution for indie developers who just want to get up and running fast, but without the cost. Also, OGRE is very nice - it is fully featured and free, too.

Share this post


Link to post
Share on other sites
DirectX is a graphics API not a game engine. It would take far less of your time to use something which wraps DirectX in some easier to use interfaces.

Try taking a look at:
Ogre3D
Nebula Device

They're both really fantastic game engines which are free. They're also open source so you can see how everything is done and extend it and modify it as you need to.

Also,
Blitz Max

Good luck! And have fun!

Greg

Share this post


Link to post
Share on other sites
Thanks guys, but I've thoroughly researched Ogre, irrLicht and Torque as well as others. Although these all have their benefits, none have the features I'm looking for and after evaluating the amount of time it would take to integrate my required feature set into them, I'm believing it'll be less work to add the aforementioned features into my engine and will give me more control and flexibility as I know my engine very well.

I've not looked at Cal3D yet, but I have heard of it. I'll check it out.

Quote:

There are 2 common methods nowadays, each with tons and tons and tons of resources. You can try shadow maps, which basically renders the casted shadows from the viewpoint of lights, or shadow volumes, which basically extrudes geometry. Both have a lot of tutorials on them (both are even in the DXSDK as well).

Circlesoft, yes I'm aware of the basic concepts. I don't want to do it though. I want to get libraries or classes that will ease the process so I can focus on the more important elements of my engine and more specifically my game.

Expecting there are many experts in these areas already, I'm assuming someone has packaged nice wrappers for these components instead of an entire engine like Ogre or irrLicht or Torque

Quote:

Granny sets the low-end cost-wise of animation middleware, so you aren't going to really find anything less than that (commercially).


At $12,000 for an indie developer, that's hardly cheap, and even at $1000 for a single development license, I'm just a hobbyist and can't afford that. A $100 is more realistic, and Torque looked very promising at first. It's hard to justify the price of Granny when compared to all the features of Torque for $100. However, after chatting with the Torque developers, the networking is VERY tightly integrated and not meant to be heavily modified without a major impact to the overall architecture. Their networking is designed for multi-user play based on a level approach, not MMOPG based on a persistent (non level) universe.

My engine on the other hand is architected from the ground up for MMOPG in a persistent and non level based universe. It'll support 1000's of planets in a galaxy with 1000's of galaxies, and the player will experience no performance degradation, long loads, delays during transition or anything. It'll all be smooth and natural and instant (near instant anyway).

It's not just the client code either. I've already build most of the middle tier and backend database to run the whole thing.

Quote:

DirectX is a graphics API not a game engine. It would take far less of your time to use something which wraps DirectX in some easier to use interfaces.

Greg, I appreciate the feedback, but (maybe I'm reading too much into your post and if so I apologize) if you understood my post and checked out my site, I think you'd see that I'm a seasoned DirectX developer and understand the difference between an API and a game engine. The point I was making is that the engine that I'm writing is coming along very well and will stand up to many other engines, but it's lacking some basic functionality like shadows and a particle system.

There are many, many seasoned veterans developing for DirectX and I'd rather buy the functionality to do shadows and particles then spend the time doing it. My focus has been on the less obvious stuff that doesn't exist in other engines like Ogre, Irrlicht or Torque.

Please keep the feedback coming. The more comments and suggestions the better I'll feel that I'm going down the right path.


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
DirectX is an engine. It does everything and the d3dx makes stuff like shadows and particles a piece of cake. Shadowmapping is insanely easy i don't understand what the problem is.

Share this post


Link to post
Share on other sites
To be honest, from what I've seen, what you're referring to (more broadly classed as middleware) rarely comes cheap and/or seperate. You often buy into a particular engine/library and use it for "all or nothing". Pulling out a stand-alone shadowing module (for example) is more difficult than providing a full graphics engine that supports dynamic/generalised shadows as a basic feature...

A couple of possibilities:

1. Bring in another programmer to help things out and get things moving along. If you can't buy in the technology, buy in the talent.

2. You seemed to hint against it, but maybe if you have aspirations as high as you've suggested then putting down your current codebase and using a 3rd party engine/library from scratch is a better plan for the long-run.

[rolleyes] @Anon Poster: I'm sure everyone would appreciate it if you added something useful to the thread. Maybe even used your (obviously far superior) knowledge to help others...

Simple shadow mapping is easy, but getting good, accurate and general shadows at a reasonable speed from SM is definitely not simple. There are lots and lots of special cases in various SM algorithms - trying to get them all balanced so as not to introduce graphical artifacts is no small challenge.

hth
Jack

Share this post


Link to post
Share on other sites
Cal3d actually looks very promising. I’m surprised I haven’t heard more about it.

JJ (  can I call you that?). I agree, I was very interested in recent weeks looking at 3rd party engines, but my gaming vision has certain necessary features that just aren’t out there. If I were to give in and use another solution I would have to give up this dream game idea of mine, and I would sooner code it myself ;-). I have also been thinking about porting some of my necessary features to something like Ogre or irrLicht, but I think the learning curve and complexity would be higher than my enhancing my engine. Cal3d looks very promising from a modeling perspective, and I know there are stand-alone particle systems out there. I haven’t mentioned physics yet, but Ogre and irrLicht both rely on 3rd party solutions there, which I could use too. Therefore I’m mostly needing a lighting and shadow solution, which at the end of the day maybe I will implement myself. My terrain is already lit dynamically at runtime with an on the fly generated light map or shadow map (what ever you want to call it). This allows me to let the sun move and have the shading change without reloading everything. I thought a class could be used to simplify shadows, but if not I’ll either bite the bullet and do it, find another to help me, or maybe cal3d helps with this? I’ve not looked into it yet.

Thanks for the input.

Share this post


Link to post
Share on other sites
Im not saying this to bring you down or anything, but do you not have a lot of time to work on your engine? Because it sounds like youve been working on it for years and still dont have the trivial things like decent model support or a good particle system. Jolly has some good points though, maybe bring in another coder.

Good luck to you!

EDIT: BTW I can let you see my particle class, it works pretty good. I will PM it to you when I get home.

Share this post


Link to post
Share on other sites
:-) Frankly I don't have nearly enough time. I'm a corporate executive in IT for a large telecommunications company, so I'm lucky I get any time. I'm married with three teenagers, so I have even less time. The time I do get is usually between 12am and 2am. When I was in my twenties that was my prime time of day. In my thirties, I was able to get by. Now that I'm in my forty's it's stressful, but this is still my passion.

Don't misunderstand either, the latest terrain system has only been maybe a 6 month project, and the networking infrastructure another 2 months. This is probably my 5th engine, but this is the one I think meets the level of functionality I need. I took at least a year maybe more off to regroup. I was using DX 1 when it was called the game sdk, and I spent some time in OpenGL before returning to DX.

If I were young, single and didn't have the responsibilities I have it would have been done a long time ago. Actually, until recently, the technology didn't exist to do what I want, and there is no game on the market today that even comes close to my vision, so I guess that's also why it's been more of a concept then a game for many years. Yes I've been developing but more prototyping and learning. It's only recently in the past year with broadband become very common place, Linux reaching a new maturity level, database clustering and grid computing topping the scale, where I can finally achieve what I've wanted.

I know I might sound like a dreamer and someone who's unrealistic, but I do have credible references behind me.

These are me:

Oracle 2005 CTO Award: http://www.oracle.com/technology/oramag/oracle/05-nov/o65awards.html#grantanand

Info World CTO 2005 Award: http://www.infoworld.com/reports/15SRcto2005.html

I'd love to take a look at your particle system, thanks for offering.

[Edited by - QuadMV on March 15, 2006 10:42:14 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by QuadMV
I’m really getting frustrated. I’ve been working on my own engine for a long time now, but I really don’t want to be working on an engine. I want to be working on my game, but I have specific requirements and years ago when I started no engine had the features I really wanted.


One of the hardest skills in life is to learn to compromise. If you want free-roaming terrain, but can't get it, but you want to make a game even more than making a terrain engine, then make a game without free-roaming terrain. You can always add that feature later. Same thing for every other feature: do you REALLY want that feature more than you want to make a game?

Quote:
1. Models: Reliable modeling system for animated and non-animated objects. I originally wanted to use .X models, which I’m currently using, but I’m finding that the exporter is terrible, especially for animation. I’d love something like granny, but it’s too expensive.


Cal3D comes to mind. However, .X isn't that bad -- it depends on which modeler you're using (Max, Maya, Milkshape, ... ?) and which exporter (Microsoft's, PandaDX, something else?)

Quote:
a. I’m particularly fond of the way HL2 and Quake 4 animate the upper torso when you move the mouse while keeping the lower torso fixed. This isn’t so much an animation as they are moving the bones connected to the gun as the gun swings around. It’s a great effect


It's very easy to implement on top of .X models, too. You just fix up the spine twist after you evaluate the animation for some specific time. Or, perhaps, you can play an animation that twists left/right, and add that on top of the other animation, moving the position in time of the twist animation based on how you want to twist the torso.

Quote:
3. Particles: I need a good particle system to bring the world to life. Smoke, fire, rain, clouds, vapor trails, etc.


Particles are relatively easy. I actually wrote a fairly re-usable particle system back in the CarWorld demo days. It sits on top of OpenGL, but you can probably slot it into DirectX with some work (it knows about vertex buffer-like things). IIRC, it uses XML to configure the particle effects; using the XMLSCAN fast XML loading library. It also has a small dependency on ODE that can easily be taken out.

Quote:
Instead of getting a formal rendering engine that would limit my abilities to use what I’ve already done, I think maybe what I want are libraries, preferably open source, but I’d even pay if it’s not too expensive.


Why don't you make a mod to a game such as something based on Source? Or buy Torque? Or use OpenSG, or Ogre, which are two relatively high quality renderers? (OpenSG is GL only, though) Note that Ogre is ONLY a renderer; it is NOT an engine (contrary to popular belief).

Again: do you REALLY want to make a game, or do you absolutely have to have everything to your specific specifications?

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Again: do you REALLY want to make a game, or do you absolutely have to have everything to your specific specifications?


Quote:
Thanks guys, but I've thoroughly researched Ogre, irrLicht and Torque as well as others. Although these all have their benefits, none have the features I'm looking for and after evaluating the amount of time it would take to integrate my required feature set into them, I'm believing it'll be less work to add the aforementioned features into my engine and will give me more control and flexibility as I know my engine very well.

Along H's train of thought - even commercical engines are modified by their licensees on a regular basis. The reasons for this can vary, but they are generally things like:

- Integrating some new middleware package (animation, physics, ect)
- New graphics techniques/algorithms
- Engine changes to support gameplay additions

So even people who spend lots and lots of $$$ on an engine generally end up spend even more money modifying it to suit their needs. Using it out-of-the-box isn't always (or even commonly) realistic.

Share this post


Link to post
Share on other sites
Quote:

Again: do you REALLY want to make a game, or do you absolutely have to have everything to your specific specifications?

It's not about any old game just for the sake of making a game. There is specific functionality that is integral to my game and it goes way beyond just free-roaming terrain, which barely begins to descibe what I'm trying to accomplish. For the game to succeed Terrain is one of the integral parts, which I think I've gotten under control. Mind you, this game is my dream and my passion, and I wont cut corners on the critical elements. You are right for things that aren't critical, but everything I've built so far is crtical to the vision. The features I'm referring to are integral to the gameplay, and too dificult to get into details on this thread. I'm sure for most, they can find what they are looking for in these engines, but I've spent quite a bit of time reviewing them and think it'll be more work to make them work, then to add what I need into my engine. But I appreciate the advice.

Quote:

So even people who spend lots and lots of $$$ on an engine generally end up spend even more money modifying it to suit their needs. Using it out-of-the-box isn't always (or even commonly) realistic.

Exactly

Share this post


Link to post
Share on other sites
Quote:
Original post by QuadMV
3. Particles: I need a good particle system to bring the world to life. Smoke, fire, rain, clouds, vapor trails, etc.


hi QuadMV i have a particle system classes that i am using in my games , but it is not that advanced and it is written in Managed Code C# i use it for rain and smoke , if u r interested in it i can give u the classes and u can make whatever updates u want to it. but again it is made using C#

Share this post


Link to post
Share on other sites
I've got some excellent lighting & shadowing techniques implemented in my engine, but it's more suited for indoor scince outdoors, it's performance will be slow. It's in VB.NET, MDX but the bulk of it is in C HLSL, PM me if your intrested.

The HLSL shader does
-Normal mapping
-Bump mapping
-Ray Parallax mapping
-Soft shadow mapping
In one pass, with ps 2.0 and vs 1.1

Share this post


Link to post
Share on other sites
Quote:
Original post by CadeF
I've got some excellent lighting & shadowing techniques implemented in my engine, but it's more suited for indoor scince outdoors, it's performance will be slow. It's in VB.NET, MDX but the bulk of it is in C HLSL, PM me if your intrested.

The HLSL shader does
-Normal mapping
-Bump mapping
-Ray Parallax mapping
-Soft shadow mapping
In one pass, with ps 2.0 and vs 1.1


we would appreciate it very much if u post ur code for the above techniques , and i am aslo interested in ur BSP collision Detection code in 3D :) hehe and if u don't mind put all the code u have in ur engin ;P

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this