Game engine slection for a game programming course

Started by
8 comments, last by myro 11 years, 3 months ago

Hi,

I am currently doing my bachelor thesis which is a comparison of game engines and their applicability to a game programming course.

My problem is that I have pretty much found 0 literature on the topic on how engines where selected for other courses.

Thus my question is: Does anyone know of any papers covering the process of selecting an engine for a course? Or simply for selecting an engine at all?

The requirements modelling for the engine seems to be pretty problematic, since I do not know what games will be programmed by

students within the course projects.

Advertisement

I am afraid I do not know of any such papers that cover the selection process of engines in a course setting. You might want to compile numbers on the most popular engines out there. The idea is, what engines are most popular by industry, indie and hobby standards, must be considered over less popular ones.

Try contacting Dr. Shaun Ramsey, at washcoll.edu. He did research on game engines look at http://www.washcoll.edu/live/news/698-game-engine-design.

Hope this helps.

I would suggest that you attempt to contact various instructors and small or indie game teams (that have actually released a title). You will find that the concept of "choosing a engine" involves quite a large set of conditional decisions. For example, the first and most important thing you want to do in my mind when deciding an engine for a game would be to first determine what platforms and markets you wish to release the game on. In the case of an independent team with no prior experience that wishes to release on XBox, this will limit them immediately to something based on XNA and C# (due to license restrictions and the likelihood that the team will not get a publisher to pick up the game).

When deciding on an engine to use as part of a programming course the decisions probably aren't quite as critical as the underlying idea is to teach the proper technique's and general theory of game programming more so than to focus on a particular engine. However (and this is sheer opinion) I believe the main deciding factor for instructors who select an engine is the cost of the engine for educational purposes. That is to say an engine that does not have an extremely cheap license that allows for hundreds of users for educational purposes will more likely be immediately disregarded as the budget simply can not afford hundreds of thousands of dollars to appropriate the proper license.

Anyway long story short there really is no rule book that would dictate how one would go about choosing an engine. Many deciding factors can play a role in the decision (and should all be weighed carefully). There will be a lack of readily available documentation stating what you want to do to select an engine because everyone's circumstances are different. I believe it would lead for a more effective thesis if you focused a bit more on how to ask proper questions of yourself and make educated decisions about the engine including portability, support, documentation, performance, marketing potential, license fee's and royalties's and so on. Please excuse me if I am out of line on suggesting you alter your paper a bit to focus more on how to get to the decision than actually making the decision, it's just my experience that it's more of a case by case bases related to what the purpose of the decision is.

P.S.

Bit of a side note if you want I can give you some of my personal opinions that go into engine selection for teams that I work with. These may not be quite as credible as say an instructor's official published article but might give you some idea's on where to go from here and what you might be looking to research. My profile here on Game Dev should have contact information as well as my Gravatar profile that will contain more instant contact details (such as instant messengers and such).

http://en.gravatar.com/daniwan

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

I would suggest that you attempt to contact various instructors and small or indie game teams (that have actually released a title). You will find that the concept of "choosing a engine" involves quite a large set of conditional decisions. For example, the first and most important thing you want to do in my mind when deciding an engine for a game would be to first determine what platforms and markets you wish to release the game on. In the case of an independent team with no prior experience that wishes to release on XBox, this will limit them immediately to something based on XNA and C# (due to license restrictions and the likelihood that the team will not get a publisher to pick up the game).

When deciding on an engine to use as part of a programming course the decisions probably aren't quite as critical as the underlying idea is to teach the proper technique's and general theory of game programming more so than to focus on a particular engine. However (and this is sheer opinion) I believe the main deciding factor for instructors who select an engine is the cost of the engine for educational purposes. That is to say an engine that does not have an extremely cheap license that allows for hundreds of users for educational purposes will more likely be immediately disregarded as the budget simply can not afford hundreds of thousands of dollars to appropriate the proper license.

Anyway long story short there really is no rule book that would dictate how one would go about choosing an engine. Many deciding factors can play a role in the decision (and should all be weighed carefully). There will be a lack of readily available documentation stating what you want to do to select an engine because everyone's circumstances are different. I believe it would lead for a more effective thesis if you focused a bit more on how to ask proper questions of yourself and make educated decisions about the engine including portability, support, documentation, performance, marketing potential, license fee's and royalties's and so on. Please excuse me if I am out of line on suggesting you alter your paper a bit to focus more on how to get to the decision than actually making the decision, it's just my experience that it's more of a case by case bases related to what the purpose of the decision is.

P.S.

Bit of a side note if you want I can give you some of my personal opinions that go into engine selection for teams that I work with. These may not be quite as credible as say an instructor's official published article but might give you some idea's on where to go from here and what you might be looking to research. My profile here on Game Dev should have contact information as well as my Gravatar profile that will contain more instant contact details (such as instant messengers and such).

http://en.gravatar.com/daniwan

thanks for the input, but the thesis topic cannot be changed. The professor wants to start a game programming class and wants to use an engine. Basically, he wants that I choose a suitable engine. The main point here is that other universities/schools would have had to choose an engine for their courses as well, aka. they had to make the decision as well. But every paper I read about creating a game programming class does not state on how the selected the engine. Only that they selected it (it sounds more like the instructor knew the engine and because of that they used it).

My current requirements (not finished) lists as follows.

KO-Criterias (Engines will be discarded immediately if they fit one of the following criterias to get down to a decent amount of engines):

• No Windows 7 platform support
• No free student license for homeworks
• Project is not active
• No recent AAA game title
• Requires additional commercial software (except for 3D Studio Max/Visual Studio)
• Non disclosure agreement
• No assets
• Has to support at least the following game engine features:
– 3D graphics engine
– Physics engine
– Audio system
– Content management/Pipeline
– Scene Manager
– Animation system
– Networking
– Collision Detection
Then, the remaining engines would be scored according to a weighted scoring system (even less finished):
General features
low licensing costs 100%
documentation/tutorials 100%
accompanying art assets 100%
high distribution among game studios 80%
active/helping community 60%
used in an existing game programming course 20%
Technical Features
reusable programming language & concepts 100%
game type flexibility 100%
usability (ie. editors/IDE/debugger) 80%
supported platforms (source and target) 60%
appearance (ie. graphics) 40%
AI engine 20%

Then prototype games with the best fitting 2 engines will created. And one engine shall remain for the course.

My problem is that every requirement is very general, since the game types (even genres) are unknown.

But still, other universities should have had the same problem.

it sounds more like the instructor knew the engine and because of that they used it
I think you will find that this accounts for ~90% of the rationale behind selecting any software for course instruction. The majority of professors are not going to go out and learn an entirely new set of tools, just to teach a course (especially when that course is a just a single semester pilot, as many game courses start out).
• No free student license for homeworks
• Project is not active
• No recent AAA game title


low licensing costs 100%

usability (ie. editors/IDE/debugger) 80%
supported platforms (source and target) 60%
To my mind, those requirements pretty much cut you down to Unity and the UDK. Most of the bigger commercial engines immediately fail the free license and low licensing cost criteria, and pretty much everything else fails some combination of the active, recent AAA, usability and supported platform requirements...

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

I couldn't find any literature either. Maybe these guys could help:

http://www.itp.usc.edu/course/31/ITP-485/programming-game-engines

If you're looking for an engine that teaches the proper techniques and general theory of game programming, then you'll probably want an engine that includes source code, and that eliminates Unity and UDK.

Please check out the C4 Engine, which has been used in game programming classes at many universities for several years. Here is an example of a specific course that uses the C4 Engine:

http://web.cs.wpi.edu/~gogo/courses/imgd3000_2011c/

http://web.cs.wpi.edu/~gogo/courses/imgd3000/projects/final/

You can see the feature list here:

http://www.terathon.com/c4engine/features.php

If you have any questions, please feel free to post in the C4 Engine forums:

http://www.terathon.com/forums/

My current requirements (not finished) lists as follows.

KO-Criterias (Engines will be discarded immediately if they fit one of the following criterias to get down to a decent amount of engines):

• No Windows 7 platform support
• No free student license for homeworks
• Project is not active
• No recent AAA game title
• Requires additional commercial software (except for 3D Studio Max/Visual Studio)
• Non disclosure agreement
• No assets
• Has to support at least the following game engine features:
– 3D graphics engine
– Physics engine
– Audio system
– Content management/Pipeline
– Scene Manager
– Animation system
– Networking
– Collision Detection

This probably covers every single engine that's worth writing about.

As it is for a thesis surely you have to make assumptions/conclusions based on a set benchmark? Unity is great and covers almost all of your requirements, plus there is tons of documentation/tutorials/demo/prototypes to learn from too.

A tool like unity would work, and it is a great production and prototyping tool, but I wouldn't consider it a great game engine for programming. I've developed multiple games through unity, including mobile games, and its a great prototyping tool, but without a source code license, programmers wont get the experience they need. The entire purpose of a programming course involving game engines would be to understand the component level framework of a game engine, and how to interface with it. Since developing your own game engine is out of the question it would seem, I would recommend using something like C4, Panda3D, Toruqe3D, Irrlicht, UDK, or Cry Engine 3. I have worked directly with Cry Engine 3, and UDK before, both provide extremely robust development platforms, and an extensive (though perhaps a bit inconvenient) asset pipeline. I could also recommend Havok's Vision engine, as I am currently working with a team to develop a game using this engine.

Let me clear things a bit up:

The course should be more of a "Introduction to Game Development" course. But without asset creation as time restrictions won't allow it. Aka. game engine components will be explained, but source code is not required (as long as information about the engine is available).

My university is a small university and they have no courses about game development whatsoever. My professor wants to change that and he has some experience with game development, but that was several years back. I should find a suitable engine for his course. The course setup itself is not completely planned yet. It contains game design and

game programming (basically students should get a first impression on how to create games from a computer science perspective).

With my thesis I should find a suitable engine for his course. And I have only 2 month time to complete it. Costs should be below $10,000 for 20 seats. (Yes and the cheaper, the better.....).

The benchmark is somewhat up to my choosing.

As for the initial requirements, i checked the mentioned engines from the Game Engine Survey 2011 (GDMag) to get a starting point (+ I added Panda 3D as full open source extension). The 2 second scoring above should not be renamed as a preferred feature list with weight and not as requirement:

Prelimary findings about licensing:

Unreal: possible (UDK) (unrealscript editor commercial/open source editors exist (quality?)) / waiting on e-mail about Unreal Engine 3
Trinigy Vision Engine: nondisclosure agreement (excluded)
Unity: 75$ / seat and year (with android + ios 225$)
CryEngine: possible (free for academic use) / nda for commercial use
Gamebryo: unclear (waiting on e-mail)
ShiVa: 670$/seat
Torque: Open source (MIT License) / Script Editor (~40$/seat, open source editor (quality?))
C4: 2500$ / site (licenses for students in the course are included)/ check if demo version is enough to evaluate (otherwise $750 for a standard copy (probably too much))
Panda3D: Open Source (Modified BSD License)

This topic is closed to new replies.

Advertisement