@techreport{TR-IC-PFG-16-13, number = {IC-PFG-16-13}, author = {Cau\^e Viegas Oliveira and Felipe Santos Oliveira and Helio Pedrini}, title = {{Game Engine with 3D Graphics}}, month = {December}, year = {2016}, institution = {Institute of Computing, University of Campinas}, note = {In English, 18 pages. \par\selectlanguage{brazil}\textbf{Resumo} Um motor de jogo (game engine) é uma ferramenta computacional que consiste em códigos de propósito geral para o desenvolvimento de um jogo, a qual provê recursos para renderização e áudio, técnicas de inteligência artificial e física, entre muitas outras funcionalidades. Em geral, editores de cenário e linguagens script estão também disponíveis. Assim como a indústria automobilística pode aproveitar o projeto de um motor, jogos diferentes podem reaproveitar um mesmo motor de jogo, tornando o processo de desenvolvimento mais simples e rápido. O foco deste projeto é o desenvolvimento de um motor de renderização, uma vez que este é um dos componentes mais importantes de um motor de jogo. A linguagem C++ e o pacote gráfico OpenGL foram utilizados para construir uma Voxel Game Engine (ou Block Engine). Mapas de altura (heightmaps) foram gerados proceduralmente empregando Perlin Noise, assim como a criação de dois tipos de câmera: em primeira pessoa (FPS camera) por meio de projeção perspectiva e câmera isométrica por meio de projeção isométrica. Além disso, o projeto permitiu a interação com o mapa para gerar novos blocos sobre aqueles já gerados. \par\selectlanguage{english}\textbf{Abstract} A game engine is a computational tool that consists of general purpose codes for game development, which provides features for rendering and audio, techniques for artificial intelligence and physics, among many other functionalities. In general, scenario editors and script languages are also available. Just as the automotive industry can take advantage of the design of an engine, different games can reuse the same game engine, making the development process simpler and faster. The focus of this project is the development of a rendering engine, since this is one of the most important component of a game engine. C++ programming language and OpenGL graphics package were used to build a Voxel Game Engine (or Block Engine). Height maps were generated procedurally using Perlin noise, as well as the creation of two types of camera: (i) first person (FPS camera) through perspective projection and (ii) isometric camera by means of isometric projection. In addition, the project allowed the interaction with the map to generate new blocks on those already generated. } }