I am preparing a course in game-development. It is a choice-coures for 3rd-year students of computer science, who have working knowledge of several programming languages (C, C++, Java), algorithms, data structures etc. For the class and home exercises, I am considering two systems.

Initially, I thought of using Unreal Engine - since it is widely used in the industry, so using it will give the students an edge when looking for a job.

However, I then thought that such a complex engine might distract students from the design aspects of a game, and put them too much into the intricacies of graphics and animation. So I thought of using PyGame, which is much simpler.

My question is: what game-development engines are commonly used in similar courses (introductury GD courses for undergraduate CS students)?

  • \$\begingroup\$ Which software programs are currently popular is something that shifts over time, so it's not a good fit for our Q&A model here that tries to create a long-term archive of canonical answers. \$\endgroup\$ – DMGregory May 22 '19 at 10:18
  • \$\begingroup\$ FWIW, we used Ogre for graphics and ODE for physics. \$\endgroup\$ – Vaillancourt May 22 '19 at 10:21
  • 3
    \$\begingroup\$ While not on-topic here, a someone asked a similar question on the CS Educators SE. \$\endgroup\$ – Pikalek May 22 '19 at 13:35
  • 2
    \$\begingroup\$ You may also want to discuss this in the chat, where this kind of topic is welcome. \$\endgroup\$ – Vaillancourt May 22 '19 at 13:57
  • \$\begingroup\$ @Pikalek Thanks a lot for the link. \$\endgroup\$ – Erel Segal-Halevi May 22 '19 at 17:18

The top 3 are probably Unity3D (C#), Unreal Engine 4 (Blueprint/C++), and Pygame.

The good parts of Unity and Unreal are that they give you immediate access to a full-featured 3D renderer, and they have tools to support exploring almost any interest area in game dev. This comes with the drawback of having to learn a somewhat complex API to get started, especially for UE4. The engine developers have done all they can to provide free tutorials and documentation to speed up the process.

Learning an API and integrating well with an existing codebase are important skills because the students will likely need to do the same at any game dev company immediately after being hired.

That said, Unity differs from UE4 in that the framework/API given to the user is basically a clean slate, with no user control or game mechanics already implemented. Any user interaction or game mechanics need to either come from a plugin or be coded from scratch in simple C#.

With UE4, the Pawn and Character classes along with some utility components present an easy way to bypass initial boilerplate code and jump immediately to user interaction and game mechanics for a generic game type like an FPS. UE4’s Blueprints system makes it more accessible to the general public in some ways, but these students will want and need to code.

The choice here probably should be between Unity and UE4. Unity is likely the best option here for an introductory course, and UE4 is a more realistic scenario for experience integrating with an existing API.

  • \$\begingroup\$ This appears to be controversial (multiple upvotes and downvotes). Could I get some feedback on this answer, or are these downvotes due to the off-topic nature of the question? \$\endgroup\$ – CourageousPotato May 22 '19 at 22:59
  • \$\begingroup\$ "...are these downvotes due to the off-topic nature of the question?" That could well be. I have seen it elsewhere. \$\endgroup\$ – Trilarion May 23 '19 at 11:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.