Jump to content
  • Advertisement
Sign in to follow this  
omniscient232

Creating our own engine

This topic is 2611 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello,

I hope my post isn't too long, sorry for that, but I'm posed to a dilemma.
I'm a game designer, and I'm about to start a team with about 7 programmers. all of us are second year students, 2 of the programmers seem to have more experience than the rest. We're about to start a game project, and are doing it while still in school, so we'll have a maximum of about 10-15 hours per week per person to work on it.
some of the programmers seem to want to make a game with their own engine.
My first reaction is that i'm a bit sceptical about that. From my point of view, our goal is to create a game that is as good as possible, and creates a great experience for the player.
Having to create our own engine seems to me to just be another unnecessary burden, because we could much more easily use an existing one. They want to make their own engine, because it interests them.
The engine would be made using the XNA framework.

My questions are these:
1.
How hard is it to make our own engine? Would this be a serious burden on the designers and artists to do their work? would it decrease our possibilities significantly?
Would we be unable to do things like post-processing, or stuff like that? The Unity3D team consists of a couple dozen professionals, who work 40hrs/week on it, It seems to me that it is simply impossible for us to come even close to an engine of that quality, and then we wouldn't even have started programming the game itself.

Is my scepticism correct?

2.
And let's say I'm correct, and I can convince the programmers not to use their own engine, what would be the best option if we would still go for the XNA framework?

3. And a third question:
Would these problems also arise if the game we're to be 2D?

Thanks in advance,

I've already googled a lot on the subject, but contradicting opinions and the fact that engines are a bit complicated have confused me, so that's why I'm asking the question here.

Share this post


Link to post
Share on other sites
Advertisement
There's a general rule of thumb: Write games, not engines
Only write an engine if that's actually what you want to do, if you want to write your own engine to use in your game project you can at least add about a year (or more) to your development cycle, even if you're using XNA (writing one from scratch would take an even longer time, I know this from my personal experiences)

Depending on the features you're looking for, an engine can be quite hard to develop; you need a complete understanding of how individual components are laid out and how they should work, so if you have no experience with building these kinds of lower level systems inside a coherent framework I wouldn't recommend writing your own engine

If you want to build something like Unity, you really have to face that you're trying to do the work of industry professionals who work with this technology every day (as you mentioned), so trying to get this quality with only a couple of college-level programmers would add on years and years to your development cycle, so you could say your skepticism is correct

I'm not that experienced with XNA (only toyed around with it at most), so I couldn't recommend any XNA-based engines, but I'm sure someone else here would be able to help you out

Share this post


Link to post
Share on other sites
Short answer: Don't bother with building an engine.

Longer answer: I forgot what was the name of that symptome, but your friends seem to have it -- they don't want to use pre-built engines, as they were not built by them, thus they do not understand what they are dealing with, which makes them feel like it is cheating.

Well, you are trying to make a game. As you said, your team doesn't have much experience, and so I would stick with just trying to make a game. If you wish, you can worm your way down to the very basics of programming, but what is the point to it?

Don't reinvent the wheel, make a better car with the tires available today!

EDIT: XNA is a great tool, and I guess your friends would appreciate how it works. You have great freedom with it (basically, it just spplies usefull libraries and classes, dumping all the time-consuming and standard stuff right on your plate!) and are able to, eventually, just revert to using C# without XNA, should you desire so.

Share this post


Link to post
Share on other sites

1.
How hard is it to make our own engine? Would this be a serious burden on the designers and artists to do their work? would it decrease our possibilities significantly?
Would we be unable to do things like post-processing, or stuff like that? The Unity3D team consists of a couple dozen professionals, who work 40hrs/week on it, It seems to me that it is simply impossible for us to come even close to an engine of that quality, and then we wouldn't even have started programming the game itself.

Is my scepticism correct?

Unity 3D is really good, you'll not match it w/o an experienced team.
Depending on your needs, you might make something simpler that's good enough for your game, however the engine is not the only part you need, tools are paramount these days.



2.
And let's say I'm correct, and I can convince the programmers not to use their own engine, what would be the best option if we would still go for the XNA framework?

Unity 3D is the best option ATM, AFAIK.
I'm not sure what you want XNA for...
(Which platforms are you targeting ?)



3. And a third question:
Would these problems also arise if the game we're to be 2D?

That shouldn't be much of a problem, instead of 3D models you'll render quads...

Share this post


Link to post
Share on other sites
How hard is it to make our own engine?
If you cannot yet answer that question, then you're not ready to make one.

Share this post


Link to post
Share on other sites
#1: 2nd-year students with limited time on their hands will find it frankly impossible to provide you with something that has the same features other engines have and without bugs. They have made only a few small games, if any at all. Without having made games, how could they possibly know what a game engine needs to do and how it needs to do it?
Yes it would be a nice learning experience for them, but save that for their spare time.

#2: Just use XNA. It has plenty of game-ready libraries and features.

#3: 2D games are generally simpler but not enough to make an engine of the quality you want with the time and experience you have.


A sign of a successful programmer is whether or not he or she can look past what he or she wants to do and see what needs to be done to reach the goal. Tell your team to do what they want in their spare time after this project (not during because then they won’t work on this project), but until then they need to focus on what is the best way to reach your goal, not the best way to satisfy their own curiosity.


L. Spiro

Share this post


Link to post
Share on other sites
Thanks a lot for the advice guys!

I guess I will just tell them that they have an option: Either we do it in Unity or some other Engine, or I'll have to find other programmers to do my project with.

That's reasonable, isn't it?

Either way, thanks a lot for the advice again!

Share this post


Link to post
Share on other sites

Thanks a lot for the advice guys!

I guess I will just tell them that they have an option: Either we do it in Unity or some other Engine, or I'll have to find other programmers to do my project with.

That's reasonable, isn't it?


To be completely honest with you, what you are bringing to the team can be done by one of the programmers, possibly switching it up every now and again.


Either way, thanks a lot for the advice again!


If you want some even greater advice, it will be very hard for you (Or someone else) to manage the project being only second years in University. This is what many groups had problems with at my Uni, there were groups of up to 12 that were competing to make a game (This means convincing a publisher of an idea, setting out specs, deliverables and milestones etc) and the smallest team (3 people) which consisted of no designer won the competition, because it was easier to manage and communicate within the team.

While it would be a good exercise if you were planning on being a project manager, if you are just trying to make a game I suggest 3 or 4 people, 2 programmers an artist and a designer if needed.


Share this post


Link to post
Share on other sites
UDK and CryEngine binaries are free too for non-commercial use and are more powerful than Unity

Share this post


Link to post
Share on other sites

There's a general rule of thumb: Write games, not engines
Only write an engine if that's actually what you want to do, if you want to write your own engine to use in your game project you can at least add about a year (or more) to your development cycle, even if you're using XNA (writing one from scratch would take an even longer time, I know this from my personal experiences)


That "rule" isn't really about not writing engines though, its about not writing engines in a vacuum.

The hard part is writing a reusable engine in isolation, which is where the "Write games, not engines" comes from, By writing games rather than engines the engine will take shape on its own as you reuse code from older projects and/or refactor it to make it easier to plug into new projects, The big mistake beginners make is to think that a game needs an engine to function and thus try to make the engine before the game (Which inevitably leads to a poorly designed engine with tons of unnecessary functionality and wasted effort).

As for how hard it is to make a game without a pre-made engine: it really depends, i've made graphical 2D games without using any third party libraries at all in less than 8 hours (This isn't really possible anymore though since modern operating systems won't allow you to access the hardware directly yourself, so you need to at the very least use the system libraries), The more advanced the game is the more time a pre-made "engine" will save for you(For some AAA games it can be a few man-years saved by licensing middleware or engines)), If you plan on making more than one game you might benefit greatly in the long run by writing a more specialized "engine" (This could be built on top of a more generic "engine" or set of frameworks/middleware though)

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!