Garthy
|
|
« Reply #60 on: August 01, 2008, 04:03:40 PM » |
|
I'm not sure the interest that remains with my original question, but for what it's worth, this is what I've done and decided for now:
- I've set up an extra two machines, fairly basic installs, one with an integrated nVidia card in it, the other with a dedicated ATI card. This is to add to the software-only VMWare machine I was using already, plus an already-set-up Linux machine with a decent nVidia 3D card. - I've used the pre-compiled samples for Panda3D and irrlicht. For Ogre, I set up and built the samples with Code::Blocks/mingw and MSVC++ 2005 (express). I also dropped in a hello-world-type demo of my own engine. - After making sure that all the environments worked (correct DX version, VC++ redistribs, latest drivers, etc), I tried out the samples on each.
Now I can promise fans of each engine won't be too keen on what follows, but hey, you can only work with what you're given, and you can't win 'em all.
- The Ogre samples behaved differently across machines (eg. shadow demos), sometimes not working at all. They all crashed fairly consistently when the drivers were missing. When they worked, however, the Ogre samples were very nice indeed. - Panda3D was fairly consistent but relatively unexciting (provided you stuck to GL). I tried to build the source and run the samples on Linux- it was not an easy job, and at the end I never got working samples, just segfaults. - Irrlicht behaved reasonbly well on real hardware with proper drivers, but was the engine most-likely to freeze up randomly. Building and running the samples on Linux went well without significant difficulty. Unfortunately, the main demo ran at 4fps on decent hardware, and that is not a good sign. I had also not forgotten what happened when it was run on poor hardware.
The intention was to set up further configurations, but it would appear that I had already found out everything I needed to know.
For now, I plan to stick to my own engine, and to do so for the remainder of my development (if circumstances allow me- long story, another day). Near the end, before doing any serious polish, I plan to dust off these PCs and configurations, and get the latest versions of each engine again. I'll then try to break them all in similar ways. My guess is that by that point, at least one of the engines will be in a state where I am confident to make a leap toward it. If not, I'll stick with what I've got, and consider an engine shift a year after release, or two, or three, and so on...
---
And now for something completely different...
I think the fun/tedious thing can really be applied across every aspect of development. I suspect that if you dig around in each area, you will find aspects that are fun, and aspects that are tedious and painful.
In my experience:
- Working on a 3D engine was fun because I designed and implemented a functional API that was simple and worked well, plus I could implement all the little tricks I had not been happy with with other engines. - Working on a 3D engine was painful because of illogical card and driver quirks (different GL defaults, bizarre workarounds) take up so much time and you simply can't guess how they will behave across cards you don't have. - Working on game logic is fun because I can translate my ideas into reality and seeing them work is quite rewarding. - Working on game logic is tedious because replaying the first thirty seconds of a level that needs debugging over and over, dozens of times, ends up draining your will to continue. - Working on low-level infrastructure is fun because you can spend some time designing, developing, and testing a component, and know it will be a robust building block for your future work. - Working on low-level infrastructure is painful because you know that if you worked on a domain-specific solution instead it would take one hour, not two days. - Game balance is fun because you can test out all of the things you have developed, you get to look for clever quirks and ways to exploit the system, and then find solutions to stop them being exploited. - Game balance is tedious because after finding the perfect balance you end up finding some aspect that can be abused, nullifying much of your work. Also, testing the same thing over and over. - Finishing a new game version is fun (well, satisfying) because you can look back at all your hard work and testing and know that it is a solid and worthwhile update. - Finishing a new game version is painful because after two days of testing, you've just uncovered a show-stopper bug, and all that time was wasted because it isn't good-to-go. Back to the drawing board.
I imagine the same could be said for the easy/hard distinction as well.
---
I think I can summarise my thoughts on the whole development thing as follows: If you want something done right, you have to do it yourself. If you do everything yourself, you will never finish. So development nowadays is all about compromise and tradeoffs.
As for single-day games, I've done such things before, but they've only ever been simple text-based things and C64 games- nothing very complex or special. To make something decent in the space of a day- damn, that's talent (and amazing tools!).
|