|
maetheec
|
 |
« on: July 07, 2012, 12:21:45 AM » |
|
With Unity and UDK gaining so much popularity, packing more features, making it easier to do things, and runs on most major platforms... Not to mention other great AAA engines that you can get your hands on the SDK like CryEngine (free for non-commercial) and Valve's Source Engine. How many of you guys are still sticking with your own in-house 3D engine? And Why? Commercial indie games, Unity is what me and my team settled on. But for hobby, I use my own engine, because it's more fun that way, and I'm crazy  Oh, and sorry, if you guys have already discussed this to death, couldn't find similar topic through the search box.
|
|
|
|
|
Logged
|
|
|
|
|
PompiPompi
|
 |
« Reply #1 on: July 07, 2012, 03:20:58 AM » |
|
I use my own engine, becaus A) It's more fun. B) I can pack the exact features I need. C) Its going to take me about the same time to learn Unity as to develop my framework for my specific needs.
|
|
|
|
|
Logged
|
 Kickstarter? no no no... it's Kicksucker...
|
|
|
|
zacaj
|
 |
« Reply #2 on: July 07, 2012, 03:55:57 AM » |
|
D1. I enjoy programming, so the more I can program, the better 2. It doubles as a learning experience 3. Every time I've used third party code it's come back to bite me 4. My games need a lot of weird features that I doubt commercial engines would support, and it would sick to discover that after a year or two of work with that engine
|
|
|
|
|
Logged
|
My twitter: @zacaj_Well let's just take a look at this "getting started" page and see-- Download and install cmake
Noooooooo
|
|
|
|
kamac
|
 |
« Reply #3 on: July 07, 2012, 03:59:04 AM » |
|
I don't use my own engines for 3d just yet (since I am too unexperienced for that. Also, I don't need it ATM, but when I will need it, I will probably be capable of writing it) Though, I will use my own engine surely. The reasons have been named, but I like this one the most: 2. It doubles as a learning experience Also, we use our own engines because we're truly independent 
|
|
|
|
|
Logged
|
|
|
|
|
zacaj
|
 |
« Reply #4 on: July 07, 2012, 04:06:55 AM » |
|
Also, we use our own engines because we're truly independent  Absolutely! My engine is all custom except for GL3U. No dependencies here.
|
|
|
|
|
Logged
|
My twitter: @zacaj_Well let's just take a look at this "getting started" page and see-- Download and install cmake
Noooooooo
|
|
|
|
BWG
|
 |
« Reply #5 on: July 07, 2012, 07:28:28 AM » |
|
I use my own engine because:
1) I am too lazy to learn a new API 2) I can get things done very quickly 3) Tools I have made are quite specific 4) Large codebase I can cannibalise (I dont want to start from scratch)
Unfortunately, I dont have the luxury of stopping and going in a different direction. I sometimes wish I could be a student again.
|
|
|
|
|
Logged
|
|
|
|
|
Maud'Dib Atreides
|
 |
« Reply #6 on: July 07, 2012, 08:59:34 AM » |
|
I'm using someone else's 2D engine http://sgdk2.sf.net that I (heavily?) rigged into a 3D engine. I could say that the 3D part of it is somewhat mine, although the engine still belongs to the original creator. It feels nice to use something that was a learning experience to even come up with, and even more of a learning experience to use each day. I'm too scared to venture out of C# for desktop gaming. The engine I use has a graphics editor and an incredible organizational structure similar to Unity and Game Maker, originally left by the creator. With most 3D engines (From what I believe) you need to import models, which is useless because although I like 3D modeling, I'd prefer to keep everything as quads and cubes formed by quads. I like to dig directly into the code and directly code these behaviors myself, rather than learning to do it a new way that wouldn't allow me to change every exact thing I've been using. Plus, I've been using the engine since I was 12 (Although only recently have I made the efforts to change the original code from 2D to 3D- *PSST*( it's a wonderful engine too)). After 6 years of using an engine, it's something that becomes a mastery of your own development skill, something that's difficult to discard.
|
|
|
|
|
Logged
|
Guy: Give me all of your money. Chap: You can't talk to me that way, I'M BRITISH! Guy: Well, You can't talk to me that way, I'm brutish. Chap: Somebody help me, I'm about to lose 300 pounds! Guy: Why's that a bad thing? Chap: I'M BRITISH.
|
|
|
|
Sam
|
 |
« Reply #7 on: July 07, 2012, 02:17:21 PM » |
|
I use my own engine for Flash Stage3D. I much prefer the experience of making something new rather than working out how to get someone else's code to do what I want.
Undoubtedly it was slower for me to go from nothing to a textured and shadowed scene by making it all myself rather than using an existing engine. But when I want to try something unconventional I can just go and do it rather than digging around in someone else's code to find a way to hack it in.
|
|
|
|
|
Logged
|
|
|
|
|
Klaim
|
 |
« Reply #8 on: July 07, 2012, 07:00:15 PM » |
|
I'm making a 3D game but I don't see the point in making my own 3D engine so I use Ogre for rendering. The game engine is specific to the game but it is built over several libraries.
|
|
|
|
|
Logged
|
|
|
|
|
cskau
|
 |
« Reply #9 on: July 08, 2012, 12:55:39 AM » |
|
I suppose I'm mostly reiterating what the first couple of guys were saying but.. For me the reasons for rolling my own engine from scratch is: - Not having to learn yet another API. If I'm going to have to learn a new engine API I might as well just learn the underlying OpenGL. As an added bonus OpenGL doesn't lock me into using just one engine on what ever platform that might be running. - No dead weight. Big engines pack way too many features that I likely will never have a need for. - Learning experience. A big project like a engine holds a lot of learning experiences which I find enjoyable. Designing and managing a big project is something I still need to get better at. - Freedom to experiment. From the engines I've used in the past I always felt a bit restricted and locked in to the original design of the engine. This meant it was more difficult to experiment with ideas for for instance an alternative camera. This is not an exhaustive list of course. 
|
|
|
|
|
Logged
|
|
|
|
|
Crimsontide
|
 |
« Reply #10 on: July 08, 2012, 01:08:54 AM » |
|
I'm using my own engine. I wrote a HUGE graphics library which basically replaces D3D/OpenGL (currently the back end is D3D, but it'd be relatively easy to swap in OpenGL in the future) and has all sorts of neat and fancy features. Still a bit rough around the edges but I'm already spoiled by it, going back would be hard at this point.
|
|
|
|
|
Logged
|
|
|
|
|
VortexCortex
|
 |
« Reply #11 on: July 08, 2012, 07:08:58 AM » |
|
I started out in the tech industry as a "security researcher"...
The code I write is much more secure and bug free that most others' because I love to try cracking it, and I use a full compliment of security research tools in my unit tests (like input fuzzing, stateful malloc/free replacements, etc). What's the point of writing really secure code if you include a lib that's not been written to the same standards, and thus can be hacked a million different ways?
Every Single Time I've included an external library in my code it's been subject to some foolish buffer overflow, or other critical security bug -- Chock full of mistakes. Hell, even the original PNG implementation turned out to be fucked. This means, my code would have been secure if not for the external lib.
Put it this way: Even just SDL or SFML throw so many errors in my test suite that it takes longer to fix or ignore their bugs than to just write the whole OS abstraction layer from scratch. To get some of the features I've developed from existing libraries I'd need to include: SFML, Flash Player and ScaleForm in my code -- I shouldn't need to tell you how much of a wet dream Adobe Flash is to malware authors. Bonus, my code is written in C or my compliable scripting language which runs on the bare metal, so it's very portable and much more lightweight (faster/eats less battery).
I'm not able to just not give a damn, so I only use code I've done a full security audit on. Some of my game engine modules I also use in my enterprise application development (day job), so it's not really a waste of time -- it's just how I normally work. Oh, sure, the OS and drivers I have to rely on now are buggy and vulnerable, but they can be replaced too...
I think all applications will be fully 3D eventually. Everything has a 3D GPU nowadays, we just have to figure out a good hybrid UI and security model. I look at making my own software as laying the ground work for a secure 3D OS and API (another project of mine; My compiler & OS runs on Raspberry Pi). Making indie games are a happy side effect of putting such a system through its paces.
Games are the ultimate apps: They use every feature a computer has. I've got nothing against using existing engines for games, I just really need one that's engineered with other purposes in mind too.
TL;DR: I have many passions besides making games. That, and I'm bat shit crazy.
|
|
|
|
|
Logged
|
|
|
|
|
Ashaman73
|
 |
« Reply #12 on: July 08, 2012, 10:29:05 PM » |
|
Most of what the other already said, plus: 1. You are independent of other software (not waiting for a year to get this bug fixed). 2. Most existing engines are optimized for certain genres (most FPS), trying to make something new with an existing engine can damage your sanity (try to make minecraft in UDK). 3. Every engine has its own restrictions which will force your game design in certain directions.
|
|
|
|
|
Logged
|
|
|
|
|
Endurion
|
 |
« Reply #13 on: July 08, 2012, 10:44:18 PM » |
|
I also use my own Xtreme engine. It's a over the years grown base engine abstracing the renderer away in plugins. I've got base plugins for 2d (via 3d hardware), 3d directly, input, sound, music. And on top of it I've created an application wizard which creates a nice empty project skeleton so I can just start writing the game.
|
|
|
|
|
Logged
|
|
|
|
|
ThemsAllTook
|
 |
« Reply #14 on: July 09, 2012, 11:32:07 AM » |
|
I use a full compliment of security research tools in my unit tests (like input fuzzing, stateful malloc/free replacements, etc).
I'd be interested to hear more about this, if it doesn't derail the thread too much. I'm reasonably careful about security in my own code, but knowing about more tools for checking it is always better! On topic, I tend to build all of my own stuff just because pre-built engines cramp my style. Using something like Unity might allow me to get the basics of a game up and running faster, but ultimately I'd be spending just as much time fighting the system to get it to behave exactly how I wanted as I would writing my game from the ground up. My ideal environment would be a nice, easy-to-use API that lets you do simple stuff easily, but completely exposes all of its internals so that you can drop down to a lower level any time you want/need to with no penalty. I have yet to work with a third-party engine or framework that meets these requirements...they always hide stuff that I need to get at to make my game work 100% the way I want it to. That said, the picture changes completely if I'm working with someone else. The mental load might be lower for me to work with my own framework, but if it's significantly higher for my partner, I'd compromise and choose whatever causes the least friction between us. I'd want to be sure both of us can be productive.
|
|
|
|
|
Logged
|
|
|
|
|