Library guides
Subject: Computer science, Multimedia and TelecommunicationsuserProgramList false
Video game development
This guide offers support materials to help you design and program your own video games. It brings together sources of information on game engines such as Unity, basic programming languages such as C++, C# and LUA, as well as places to find graphic and audio resources, and platforms where you can publish your final project.
Video game conceptualization
Game Design
A manual for independent developers covering all aspects related to the development cycle of a video game, from its initial creation to its publication and commercialization on virtual platforms.
Hill-Whittall, R. (2015) The indie game developer handbook. Burlington, Mass: Focal Press. Available at: https://learning.oreilly.com/library/view/the-indie-game/9781138828421/xhtml/Cover.xhtml (Accessed: January 31, 2023).
A practical book that explains how to create and improve the interaction design of a video game, to make it more fun, entertaining and addictive for players.
Koster, R. (2013) A theory of fun for game design. 2nd edition. Sebastopol, CA: O'Reilly Media Inc.Available at: https://learning.oreilly.com/library/view/theory-of-fun/9781449363208/index.html (Accessed: January 31, 2023).
A theoretical approach to game design, which will help you analyse them in depth and apply new methodologies and strategies to create innovative products.
Salen, K. & Zimmerman, E. (2004) Rules of play: game design fundamentals. Cambridge, Mass: MIT Press
A study of game design that encompasses a wide range of different disciplines. It offers question sets and other materials that should help you appreciate the cornerstones of game design and create increasingly attractive products.
A theoretical and practical approach to the creative process of game design based on examples, technical illustrations and exercises. It covers design, production, programming and visual design.
Fullerton, T., Swain, C., & Hoffman, S. (2008) Game design workshop: a playcentric approach to creating innovative games. London: CRC Press. Available at: https://discovery.biblioteca.uoc.edu/permalink/ 34CSUC_UOC/166h2gj/cdi_proquest_ebookcentral_EBC330258 (Accessed: January 31, 2023).
A toolkit of ideas for game designers, with solutions and ideas for solving the most common problems in the field of game design.
A guide to the skills needed for storyboarding, character and environment creation, level design, programming and testing.
Mitchell, B. L. (2012) Game design essentials. 1st edition. Indianapolis, Ind: John Wiley & Sons. Available at: https://discovery.biblioteca.uoc.edu/permalink/34CSUC_UOC/1asfcbc/alma991000732450306712 (Accessed: January 31, 2023).
This manual will teach you the basics of game design by learning specific vocabulary from the field.
Anthropy, A. & Clark, N. (2014) A game design vocabulary exploring the foundational principles behind good game design. 1st edition. Upper Saddle River, NJ: Addison-Wesley. Available at: https://discovery.biblioteca.uoc.edu/permalink/34CSUC_UOC/1asfcbc/alma991000732765706712 (Accessed: January 31, 2023).
A theoretical and practical manual that follows a methodology focusing on the development of games based on functionality and establishing coherent rules.
Burgun, K. (2015) Clockwork Game Design. 1st edition. Routledge. Available at: https://discovery.biblioteca.uoc.edu/permalink/34CSUC_UOC/1asfcbc/alma991000732805406712 (Accessed: January 31, 2023).
A bachelor's degree final project that encapsulates the basic theory of video game design, analyses the player experience in qualitative terms, and extracts game mechanics to apply solutions to design problems.
A practical manual for learning the essential principles of game design. You will learn how to conceptualize an idea, define the scope and structure of your project, and present and communicate it effectively.
Kramarzewski, A. & De Nucci, E. (2018) Practical Game Design. 1st edition. Packt Publishing. Available at: https://learning.oreilly.com/library/view/practical-game-design/9781787121799/ (Accessed: January 31, 2023).
Gain in-depth your knowledge using this manual, which will teach you to think like a designer in order to solve problems effectively and efficiently.
Terminology
A glossary of terms from the field of video game development and the Unity game engine.
A glossary of terms from the Unreal Engine.
The "video game engine" Wikipedia entry.
The English Wikipedia entry containing a glossary of terms frequently used in the video game industry.
Development tools
Game engines
Unity is one of the most popular game engines available today. It supports compilation on a wide range of platforms, and has two versions: personal and professional. It can be used to develop 2D and 3D video games.
Created by Epic Games, it is one of the most widely used free game engines by game developers. It has a high degree of portability, and is used to create 2D and 3D games in a wide variety of genres, such as shooters, MMORPG, RPG, etc.
A platform for developing 2D games aimed at novice users or those with little programming knowledge. It is used by many groups because of its versatility. It has an active community, and many free tutorials and user manuals.
Godot is a free, open-source game engine for developing 2D and 3D video games. It is compatible with a wide variety of programming languages, including GDScript, and allows compilation on a wide variety of platforms.
Stencyl allows users to create 2D video games without using code in the process thanks to its drag-and-drop system. It also enables the game to be published on multiple platforms from a single project, and allows advertisements to be embedded in them, providing a revenue stream for developers.
Amazon's open source game engine aimed at AAA game developers, with native integration with the AWS cloud. It also has good integration with the Twitch streaming platform, allowing the community to be involved live during the development of a video game.
Developed by Photon Storm, Phaser is a 2D HTML5 game engine. It uses Canvas and WebGL to render the games, which can be played on iOS, Android and native desktop applications.
Developed by Crytek, CryEngine is a cross-platform, scalable game engine that has been used to develop 3D AAA games.
LÖVE is an open-source, cross-platform game engine for developing 2D games using the Lua programming language.
RPG Maker is a program for creating 2D role-playing games with no need to know any programming language. It also features assets, a map editor and a character creation tool.
A program for creating graphic adventure games that allows you to create, test and debug your video game. No prior programming knowledge is required, and it is compatible with Windows.
Libraries and APIs
A cross-platform API for writing applications that produce 2D and 3D graphics. Developed by Silicon Graphics Incorporated, it offers significant scalability and comes with a wide range of extensions.
A Microsoft API for 3D graphics programming, compatible with Windows. It facilitates the drawing of graphic entities (polygons, textures, etc.) in any application that displays them, such as game engines.
A cross-platform API developed by Khronos Group, compatible with Windows, Android and Linux. It provides more direct control over the GPU, and its CPU consumption is much lower than its competitors.
Official documentation
Unreal Engine learning resources and useful links for video game development students.
Official Unreal Engine 4 documentation.
The learning platform for the Unity game engine, with video tutorials and other free resources.
A Spanish-language manual teaching the basics of how to use GameMaker Studio 2.
The official Wiki for the LÖVE framework, which includes tutorials, configuration files, modules, games, libraries and other resources of interest.
Official CryEngine documentation.
Official documentation for the Amazon Lumberyard game engine.
Official documentation for the Godot Engine.
The Wiki for Stencyl, where you will find courses, guides and videos on how to use the program. You can also find sample games and access to the platform's developer centre.
Free courses
A tutorial by freeCodeCamp aimed at novice programmers focusing on video game development in the Unity engine. Some complementary assets and resources are included for putting the knowledge acquired into practice.
A playlist for novice programmers, containing 63 videos on how to develop a video game in Unity with C#.
A tutorial aimed at beginners where you will learn everything you need to know to develop a video game: from installing the engine to creating worlds and scenarios using Blueprints.
Find out how to develop video games in Unreal Engine using the C++ language in this tutorial aimed at beginners.
An official Amazon Training and Certification technical course which will teach you the concepts you need to build video games in Amazon Lumberyard.
Game programming
Programming languages
C++
Learn
Learn how to program in C++ with this guide that covers all the key aspects of this programming language. It is aimed at people with no prior knowledge.
Dmitrovic, S. (2020) Modern C++ for absolute beginners: a friendly introduction to C++ programming language and C++11 to C++20 standards. Apress. Available at: https://learning.oreilly.com/library/view/modern-c-for/9781484260470/ (Accessed: January 31, 2023).
A book that solves the common problems that arise in C++, aimed at both novice and experienced programmers.
Stephens, R., Diggins, C., Turkains, J., & Cogswell, J. (2005) C++ cookbook. O'Reilly Media, Inc. Available at: https://learning.oreilly.com/library/view/c-cookbook/0596007612/ (Accessed: January 31, 2023).
Using practical examples, you will find out how to program with C++11 and C++14 effectively to create software that is stable, efficient, portable and easy to maintain in the long term.
Apply
Learn how to create video games with C++ and Visual Studio 2019 by putting into practice several exercises with increasing difficulty.
This practical manual will teach you how to program 3D video games with C++ and to understand all the key concepts involved in the development process. Aimed at both novice and professional programmers.
Madhav, S. (2018) Game programming in C++ : creating 3D games. 1st edition. Boston: Addison-Wesley. Available at: https://learning.oreilly.com/library/view/game-programming-in/9780134598185/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
A guide for novice developers looking to apply their theoretical knowledge of C++ to create video games. However, no prior knowledge of this language is required.
Find out how to create Unreal Engine 4 games using Blueprints and C++ with this manual aimed at novice developers.
C#
Learn
Learn to think like a programmer and create your first C# programs.
Vystavel, R. (2021) C# programming for absolute beginners: learn to think like a programmer and start writing code. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/c-programming-for/9781484271476/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Increase your knowledge of C# through case studies.
Albahari, J. (2021) C# 9. 0 in a nutshell : the definitive reference. Sebastopol, California: O’Reilly Media, Incorporated. Available at: https://learning.oreilly.com/library/view/c-9-0-in/9781098100957/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
A reference guide in which you will find answers to the most common questions about C# 9.0.
Albahari, J., & Albahari, B. (2021) C# 9.0 pocket reference. Sebastopol, California: O’Reilly Media, Incorporated. Available at: https://learning.oreilly.com/library/view/c-9-0-pocket/9781098101121/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Apply
A guide for programmers or inexperienced users that explains.
Hardman, C. (2020) Game programming with Unity and C#: a complete beginner’s guide. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/game-programming-with/9781484256565/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Learn the basic concepts of artificial intelligence with Unity and C#.
Cossu, S. M. (2021) Beginning game AI with Unity : programming artificial intelligence with C#. Berkeley, CA: Apress. Available at: https://learning.oreilly.com/library/view/beginning-game-ai/9781484263556/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Learn the fundamentals of C# by creating games in Unity with exercises to put object-oriented programming into practice.
Ferrone, H. (2019) Learning C# by developing games with unity 2019 : code in C# and build 3d games with unity. 4th edition. Birmingham; Mumbai: Packt Publishing. Available at: https://learning.oreilly.com/library/view/learning-c-by/9781789532050/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Aimed at independent developers looking to learn how to develop 2D video games in Unity with C#.
Halpern, J. (2019) Developing 2D games with Unity : independent game programming with C#. Berkeley, CA: Apress. Available at: https://learning.oreilly.com/library/view/developing-2d-games/9781484237724/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
LUA
Learn
Learn the concepts you need to get started programming with Lua quickly.
Szauer, G. (2018) Lua quick start guide : the easiest way to learn Lua programming. 1st edition. Birmingham; Mumbai: Packt Publishing. Available at: https://learning.oreilly.com/library/view/lua-quick-start/9781789343229/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Learn Lua from scratch without any prior programming knowledge.
Jung, K. & Brown, A. (2007) Beginning Lua programming. 1st edition. Hoboken: Wrox. Available at: https://learning.oreilly.com/library/view/beginning-lua-programming/9780470069172/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Apply
Build APIs with Lua and C to customize your applications and video games.
Neylon, T. (2017) Creating solid APIs with Lua : giving users the power to customize your game or app. 1st edition. Sebastopol, CA: O’Reilly Media. Available at: https://learning.oreilly.com/library/view/creating-solid-apis/9781491986301/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Introductory manual for creating 3D video games with the Amazon Lumberyard game engine using Lua.
Herman, J. C. (2019) Beginning game development with Amazon Lumberyard: create 3D games using Amazon Lumberyard and Lua. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/beginning-game-development/9781484250730/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Programming manuals
Learn how to create video games with practical examples of increasing difficulty in Unreal Engine 4.
Nixon, D. (2020) Beginning unreal game development foundation for simple to complex games using unreal Engine 4. 1st edition. Berkeley, CA: Apress. Available at: https://learning.oreilly.com/library/view/beginning-unreal-game/9781484256398/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
A practical manual which will teach you how to develop video games for Android using the Unity game engine.
Takoordyal, K. (2020) Beginning Unity android game development: from beginner to pro. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/beginning-unity-android/9781484260029/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
An advanced level guide on how to develop online games using JavaScript and HTML.
van der Spuy, R. (2017) The advanced game developer’s toolkit create amazing web-based games with JavaScript and HTML5. 1st edition. Berkeley, CA: Apress. Available at: https://learning.oreilly.com/library/view/the-advanced-game/9781484210970/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Learn the basics of video game development with Python in PyGame.
Kelly, S. (2016) Python, PyGame and Raspberry Pi Game Development. 1st edition. Berkeley, CA: Apress.
Create fun video games while learning to code with this manual which focuses on developing them in Pygame Zero.
Watkiss, S. (2020) Beginning game programming with Pygame Zero: coding interactive games on Raspberry Pi using Python. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/beginning-game-programming/9781484256503/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Find out how to develop 2D video games using only HTML5, CSS and JavaScript.
Stuart, G. (2017) Introducing JavaScript game development: build a 2D game from the ground up. Berkeley, CA: Apress L. P. Available at: https://learning.oreilly.com/library/view/introducing-javascript-game/9781484232521/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
A manual aimed at developers who want to migrate from Unity to Godot - an open-source, cross-platform game engine.
Thorn, A. (2020) Moving from Unity to Godot: an in-depth handbook to Godot for Unity users. 1st edition. Berkeley, CA: Apress. Available at: https://learning.oreilly.com/library/view/moving-from-unity/9781484259085/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Game architecture
A book on how to design levels in 2D, 3D and multiplayer video games. Theoretical knowledge about architecture and spatial experience is introduced and applied in a practical way to ensure memorable user experiences.
Totten, C. W. (2018) An architectural approach to level design. A K Peters/CRC Press. Available at: https://learning.oreilly.com/library/view/an-architectural-approach/9781466585416/ (Accessed: January 31, 2023).
An open-source tool for creating interactive, non-linear stories with variables, logical conditionals, CSS and JavaScript. The projects are published in HTML, and can be used commercially free of charge.
Art and video games
Image
Buy and download free 2D and 3D assets of people and animals for your video games.
A collection of different types of 3D models that will save you time during the game development process. Some of them are animated or specially designed for specific software.
A bank of different types of digital objects to incorporate into your video game: images, sounds, textures, etc.
They can be used in commercial projects as long as the terms of the licence are complied with.
A marketplace for high-quality and affordable digital objects for indie game developers. You can download assets in 2D, 3D, audio, icons, fonts, etc.
Download and buy textures for your video games, which are essential for creating alternate-world scenarios.
The official Unity asset store. You will find tools, audio, add-ons, special effects and templates in 3D and 2D for the popular game engine.
Download free 2D, 3D, audio and UI assets under a CC0 1.0 Universal licence for your personal and commercial projects.
A portal to purchase video game assets built using the Construct 2 and Construct 3 engines.
Audio
A sound bank containing recordings, samples, clips, etc. which can be downloaded for free under a Creative Commons licence, allowing them to be reused.
A portal for buying music for indie video games, which acts as a meeting point for musicians and video game developers.
A website where sound clips can be downloaded free of charge and without royalties.
A sound library containing over 19,000 tracks available for free download. Royalty-free music is also available at no cost.
A digital archive with royalty-free music free of charge. You can search by genre, or purchase tracks made by independent artists.
Manuals
An introduction to the basic technical principles of sound in video games and multimedia resources using Unity.
Sinclair, J.-L. (2020) Principles of game audio and sound design: sound design and audio implementation for interactive and immersive media. 1st edition. New York, NY: Routledge. Available at: https://learning.oreilly.com/library/view/principles-of-game/9781351731126/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Enhance and expand your knowledge of sound techniques applied to video games.
Zdanowicz, G. i Bambrick, S. (2019) The game audio strategy guide. 1st edition. Focal Press. Available at: https://learning.oreilly.com/library/view/the-game-audio/9781351016414/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
Find out about methods and techniques for designing immersive experiences from scratch.
Kumar, A. (2021) Immersive 3D design visualization: with autodesk maya and unreal engine 4. 1st edition. New York, New York State: APress. Available at: https://learning.oreilly.com/library/view/immersive-3d-design/9781484265970/?sso_link=yes&sso_link_from=Catalunya (Accessed: January 31, 2023).
A masterclass from award-winning video game music composer Chance Thomas, in which he explains the skills needed to succeed.
Learn the basics of creating environments in Blender 3D, from texture design to placement.
Mendoza Guevarra, E. T. (2020) Creating game environments in Blender 3D: learn to create low poly game environments. Berkeley, CA: Apress L. P. Available at: https://discovery.biblioteca.uoc.edu/permalink/ 34CSUC_UOC/166h2gj/cdi_askewsholts_vlebooks_9781484261743 (Accessed: January 31, 2023).
An introduction to playing sounds and music for your video games in the GameMaker game engine.
Tyers, B. (2016) ‘Sounds and Music’. In: Practical GameMaker: Studio. Berkeley, CA: Apress. p. 121–128.
An introduction to the creation of quality audio pieces for AAA video games in Unity. It explains the basic concepts in development and implementation for creating spatial sound, effects, dialogue, etc.
Lanham, M. (2017) Game audio development with Unity 5.X : design a blockbuster game soundtrack with Unity 5.X. 1st edition. Birmingham, England: Packt Publishing. Available at: https://discovery.biblioteca.uoc.edu/permalink/34CSUC_UOC/1asfcbc/alma991000734118806712 (Accessed: January 31, 2023).
A course aimed at teaching sound designers and composers how to create and implement immersive audio pieces for your video games.
Stevens, R. (2011) The game audio tutorial : a practical guide to sound and music for interactive games. 1st edition. Amsterdam: Focal Press/Elsevier. Available at: https://discovery.biblioteca.uoc.edu/permalink/34CSUC_UOC/1asfcbc/alma991000731901306712 (Accessed: January 31, 2023).
Unreal Engine official documentation on the integration of audio into projects.
Unreal Engine official documentation on the integration of multimedia objects into projects.
Video game commercialization
App stores
A help portal for developers providing information on how to submit applications to the App Store.
The Google Play information portal with tips and links to tutorials to improve the quality of applications developed, and how to publish them.
A help portal for developers providing information on how to submit applications to the Amazon Appstore.
Video game portals
A portal with resources and services developed for publishing and making your game operable on the Steam platform.
The form to submit a video game to the GOG distribution platform.
Link to the Humble Bundle developer portal.
Video game platforms
The Epic Games Store game publishing portal.
The PlayStation Partners Program, aimed at developers looking to self-publish their game.
The Xbox Creators Programme, aimed at students and industry professionals.
The Nintendo eShop developer portal.
Asset publishing
Guidelines for the Unreal Engine asset marketplace, where you can publish and sell your digital creations.
Guidelines for the Unity asset store, where you can publish and sell your digital creations.
Librarians responsible for this library guide
Lis Balcells
Operative subgroup: Librarian for Computer Science, Multimedia and Telecommunications, vocational training Operative group: Library for Learning