Jump to content
  • Advertisement

Nychold

Member
  • Content Count

    152
  • Joined

  • Last visited

Community Reputation

292 Neutral

About Nychold

  • Rank
    Member
  1. Nychold

    The ultimate game engine

    (This is all based on a survey of game engines I did in 2003, so it may be considerably dated, or even inaccurate as my memory can be inaccurate. :D) People often think that free must be worse than commercial products. About ten years ago, it was true, but today it's a lot less true. Take 3 distinct game engines: Aurora (made by Bioware), Torque (made by GarageGames), and Ogre3D. Aurora's price is incredibly expensive for a weekend project. I think (and don't quote me on this) that it's around $75,000 for any commercial usage. Does it work? Of course. Neverwinter Nights and Neverwinter Nights 2 are proof of that! Is it worth the money? I honestly wouldn't know...I've never been able to test it, and see it run. Torque's price much more understated. A mere $150 per seat (or $750 if you're going to use it for real purposes). With 20 programmers, it's still less than the (possibly fictitious) price of Aurora. And Torque has two advantages. The first is that it's cheap for small projects, making it wonderful to get started. The second is that it has been used in commercial and independent games. Tried and true, as the saying goes. Ogre3D is completely free, with a similar idea behind Torque. If you change it, post the changes. Be a part of a living, breathing community. Other than that, you're free to do with it what you want, according to the LGPL. The only significant problem with Ogre3D is, I've heard it's extremely difficult to get it working correctly. But I've seen it work in a number of freely available game demos online, and it might actually have been used in commercial games, though I can't think of any off the top of my head. All three of these game engines should do everything you need, and more. The question comes down to "security". If you pay $75,000 for a product, you're going to get support. And very good support. Bioware would practically bend over backwards to help you modify the code. You'll also get pages of detailed specs, the plans they used to make it, changes, meetings, future possibilities...whatever else they bothered to write down. In short, it's a complete package. Torque is similar, although I have seen some of the documentation that comes with Torque, and I was a little unimpressed. But then again, I only read a few pages. Not to mention they sell the manual on how it works, and the scripting language, so aside from tutorials and the online community, it would probably be difficult to get started. (I'm not sure if this changed, but when I looked last, the manuals were not free.) Ogre3D...forget the documentation. I tried to read through and understand it a few years back, and unless it underwent a major overhaul, I would stay clear of even trying to make heads or tails of it. As what usually happens with free projects, the guys making it focus on making it versus discussing it. I can certainly understand, but it shows in the documentation. In short, you're looking for 3 things in a game engine: 1) Speed 2) Support (both documentation and help) 3) Value I'd try looking for a free 3D engine (Ogre3D, Irrlicht, CrystalSpace, etc.) before looking to pay a lot of money on a commercial one. After all, they'll all pretty much do the same things. They all render triangles, they all load textures, and they all have particle engines and maybe even some physics. They don't all offer to help you do stuff with them. :)
  2. Nychold

    [SOLVED] ARB extensions + shaders

    EDIT: Posted deleted. Sorry, I think I misread your original post. I thought you said it worked with GLEW, but not when you did it without it. :) I would say try downloading other peoples' code, and see if it will compile and run. If it does, then you know its your code. If theirs doesn't run, you'll know it's something else. :D
  3. Nychold

    [SOLVED] ARB extensions + shaders

    When I attempted to do shaders the first time, I hit the same snag. It turned out to be very simple and stupid of me, so you may want to look at this first. glShaderSourceARB requires a char ** to be passed, but I wasn't passing a **, only a *. I was loading my data into a character array, like char program[65536], and passing &program as the **. However, according to the compiler, &program = &program[0] = program. In other words, it was a char *, not char **. This may or not be your problem, but it's something I had problems with. If not, then Eldirtch is right...we need source code. :)
  4. 1) Even I don't really get this. If the static GameEngine *m_pGameEngine was in a public block, that would make sense, since it would allow any game object the ability to know which game engine was running. As a protected member, it doesn't make sense. Anyway, it's just a static pointer, which means it's not really a member of GameEngine, but it's in the namespace created by GameEngine. That means GameEngine::m_pGameEngine is the same value between different "instances" of the GameEngine. (Don't confuse this instance definition, which is the object oriented term, with the Win32 definition below.) As for initializing the variable, you have to do this since it's not a member of the class. It's the same thing for global variables. 2) HINSTANCE is a handle to the instance of your program. Whenever a program is run in Windows, it gets four values: HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR szArguments int nShowCommand hInstance is the currently created instance for the process. hPrevInstance is (I think) the previously created instance. This allows you to determine if the program is currently being run. szArguments is just a string for all the arguments passed on a command line. nShowCommand is just how the default program should open (maximized, minimized, etc.) 3) There's a table in the Win32 documentation somewhere that tells you what they all mean. I found this online: LPSTR = char* LPCSTR = const char* LPWSTR = wchar_t* LPCWSTR = const wchar_t* LPTSTR = char* or wchar_t* depending on _UNICODE LPCTSTR = const char* or const wchar_t* depending on _UNICODE
  5. Nychold

    Bug - in Tomcat or Firefox? (Servlet)

    It's about time taking German in college paid off a little. :LOL: As for your problem, I don't see anything wrong with the code, though I'm not an expert in J2EE. The fact that is works as expected, at least on one system, is a good sign. I do know that, with PHP, there are differences when the code runs on Windows systems vs. Linux systems. Permission problems, directory issues, and so on. My only other suggestion is to make sure cookies are enabled at school. I know, when I attended college, all the computers on campus had cookies disabled. But since you're working with cookies, your machines should have them enabled. Good luck with the problem. :)
  6. At its core, Java3D uses either OpenGL (or DirectX on Windows systems), so you won't escape the slow rendering, no matter what. As for software rendering being slow, well...yes and no. Software rendering will always be slower than "hardware" rendering because you don't have a dedicated chip doing the work. But back in the OLD days (97 and before), we didn't have hardware TnL. It was all done in software, and it all ran pretty fast. The basic transform and lighting algorithms are not computationally expensive for small numbers of lights (2-4) and polygons (1-10,000). The most computationally expensive part of 3D graphics is alpha-blending, per-pixel lighting, and basically everything the shaders today save us from. :) In fact, if you're interested in doing something within Java, consider looking at Developing Games In Java, by David Brackeen. Or at least the posted source code online. In the book, he creates a software 3D renderer in Java and using a scripting engine that runs about 30-40 FPS. It's really quite eye-opening. But, if you want to make use of newer technologies, you'll have to use something that's capable. OpenGL and DirectX both have software versions, and run fairly quickly. Thus, Java3D will also run quickly. There's probably something similar to Java3D with C# as well, but I have no idea about that.
  7. Nychold

    Variable time steps?

    If I had to venture a guess, I would say it's less about graphics, and more about the other things. The faster you get the graphics displayed, the more time you can spend elsewhere. Since the last thing you want in a video game is wasted time, you draw the graphics as fast as you can (sometimes 125 FPS, sometimes 60 FPS, sometimes far less) and use the rest of the time to update AI, collect garbage, read data from the hard drive, etc. This is becoming less needed as computers and video game systems move from single to multi-core processors, but it is still important, nonetheless. But then again, that's just my two cents. I'm probably not understanding what you're asking anyway. LOL
  8. Nychold

    Trying to get mesh mender working

    I don't know how MeshMender works, but just from reading the error, you're sending it an invalid normal vector. Chances are, it's "mending" the normals as well, and it's normalizing the normal. But, in your case, the normal vector is (0,0,0), and you can't normalize that since it's length is 0. So, try setting a real normal vector...like (0,0,1). That is also normal to the shape you've defined, and everything should work okay.
  9. It should work, but you will need to test it. The basic concept is to multiply the correct y position by the width of the image, then add the x in. This gives you the position in the image, then change the pixel. The Windows BMP are inverted to better fit the Cartesian coordinates system, where (0,0) is the lower left corner rather than being the upper left corner, like in standard graphics.
  10. Nychold

    The simplest model format

    The simpliest 3D object format I've ever seen is a Wavefront OBJ file. It's entirely readable, with comments, but very easy to parse: # This is a line comment, so ignore all lines which begin with the bash symbol # la la la la # Lines which begin with v have three coordinates: x y z in that order # All eight of a cubes vertices are defined below v 1 1 1 v 1 1 -1 v 1 -1 1 v 1 -1 -1 v -1 1 1 v -1 1 -1 v -1 -1 1 v -1 -1 -1 # Lines which begin with f define a face, and can be as long as they want # They're also required to be written left to right in counter clockwise order # Each number after f represents the index of the vertex above, and is # ONE (1) indexed, not ZERO (0) indexed like C/C++/C#/Java is # All six cube faces are defined below f 1 3 4 2 f 6 8 7 5 f 2 6 5 1 f 3 7 8 4 f 1 5 7 3 f 4 8 6 2 # All lines end with a \n character, except possibly the last line # Ignore all lines which begin with anything you don't know.
  11. Nychold

    Complete noob needs guidance!!

    Well, I don't know what "ActionScript" is, but it sounds familiar to me. And if you want it to pertain to web development, I can only offer up two solid possibilities: Java and Flash/Shockwave. (Does Shockwave even still exist?) I'm not trying to start a programming "holy" war, but Java is the better language for web development stuff. With C#, you have ASP, yes. But with Java you have JSP, Applets, and full blown applications, including full screen games. And the best part is you only have to compile once, and it runs on any computer around the world. Plus Java is ubiquitous on the internet for making applet style games. Flash is also amazingly popular for simple little games online, as well as other such web based stuff. I think this is where I remember the term ActionScript coming from, but I could be wrong. And eidetic or not, I don't think anyone could go from web developer with no-to-little programming experience to a full blown game developer in 6 months. There's just too much to learn. Game development isn't G.I. Joe. Learning isn't half the battle here...it's only the beginning. You still have to implement everything you read, and trust me when I say books have errors. Tutorials have errors. If you memorize what you read, you'll be in for headaches. :)
  12. http://dictionary.reference.com/browse/tousy
  13. Nychold

    Trying to pinpoint system specs

    I haven't looked at your demo yet, but there's an easy way to figure out approximate requirements: Start by booting the game, and take time measurements. FPS is a great metric. Also, bring up some kind of process observer (in Windows, just press Ctrl-Alt-Delete) and see how much RAM your game takes. Finally, go through your code, and see just how much could be loaded into the video card. Any memory measurements should be rounded to the nearest power of 2. Make sure you add to this the OS's memory. For Windows XP, I believe that's 256 MB RAM, but you might be able to get away with 128 MB. Ignore this addition for video RAM. Processor Speed should be determined based on FPS. CPU performance relates about linearly with FPS, so FPS = G * GHz, where G is your game's complexity factor. So, if you had about 100 FPS running on a 3.1 GHz CPU, your G is about 32.3, and if you wanted about 20 FPS minimum, you're looking at about 620 MHz (rounded up to the next logical number, that's 650 MHz). That's also assuming the video card is the same, so feel free to bump it up a few hundred MHz for caution. And that should just about cover it for approximate requirements. Sound cards are sound cards, network cards are network cards, etc. Speed there is a non-issue, even if heavily taxed. Hard Drive sapce is simple...calculate how much space the game takes unzipped and zipped, and add double the required RAM and Video RAM space (for swap and cushion), but don't bother to round to the nearest power of 2. Nearest MB should be fine. The only other way to determine this is to get a bunch of very low end systems, and see if it runs playable or not.
  14. From my own research, the difference between the two cards is target rendering. Your standard video card pushes signals to a monitor, or in some cases a TV. The precision can be off for most of the calculations because you'd never notice it. And so ATI uses all kinds of approximate functions to guess, rather than truly compute the answers. The FireGL cards are designed for just about any rendering you can fathom. This includes rendering to stereoscopic systems (VR), rendering in 48 bit color, and rendering flawlessly. It's registers are likely twice to four times as long as on a Radeon X1900. Basically, these cards are designed for creating 3D animation for TV, movies, VR, etc. That's also the reason you won't see benchmarks between the two. The FireGL would win by default in most of the tests, because it's the only one CAPABALE of multiple rendering contexts, etc, but in video games, the X1900 would decimate even the fastest of the FireGL. Two entirely different cards for two entirely different purposes. EDIT: Here's a nifty little site that will let you "compare" any two cards you want: GPU Review Like I said, the X1900 decimates it in Operations/second, but I'm sure it would fail on accuracy. ^_^
  15. Nychold

    Dumb matrix question

    Well, let's look at the equations: T = V_o * W (camera x world) T = V_n * I (camera x new world matrix) Therefore, V_o * W = V_n. So jut multiply your original camera and word matrices in the same order as you do for projection, and assign it to V. A simple, but not dumb question. ^_^
  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!