Esteban Gil Martínez is a student in Computational Systems Engineering. He has worked personally and educationally on past and ongoing videogame development. Currently interested in game design, development, and programming and Machine Learning inclusion in videogames.
One of the most interesting features in modern videogames are the new complex A.I. systems used to deepen gameplay and user experience. However, people may mistake A.I. with Machine Learning (M.L.). While A.I. is scripted in its entirety, M.L. has an agent with no knowledge about the game, and with his own expertise, the agent adapts to the game to fulfill a specific goal. While true M.L. has not been implemented natively on any game, there was one game that gimmicky “implemented” machine learning in its product named Amiibos, which promised that these NFC figures “learned” what the player did and counter attacked its game style. What really happened was that with elapsing time, the NFC figure will get better, with or without proper training, concluding that true M.L. isn’t applied. However, an ex-Microsoft employee known by the name of “Sethbling” applied M.L. in two very famous games; Super Mario World and Mario Kart 64. Using neural networks and genetic algorithms Sethbling was able to make the CPU learn the stage and jump around to get to the goal in Super Mario World, while it made the CPU pick up on the track and get to the 1st place on Mario Kart 64. A lot more examples like this have been made, however, how can we start implementing M.L. natively on games? We will focus on one type of M.L, in this case Genetic Algorithms, and explain how it can be used in different genres of videogames and how can we implement the most basic genetic algorithms to any game, like player decision systems for enemies to learn and act upon repeated player actions, or make agents learn the advantages and disadvantages of the environment around them.
Yamile Zahoul is an student in the major of Digital Arts and Animation at Tecnológico de Monterrey, She worked on multiple gaming design projects and is interested in the area of visual development and character development, She has experience with software such as Unreal, Unity, Android Studio, Autodesk Maya, Adove Photoshop and Adove Flash.
2D sprites find applications in the field of videogames and some of their objectives are to optimize processing time and reduce memory consumption, years ago technology limitations made it complex to represent 3D scenes because of hardware capabilities, for that problem clever tricks such as the use of sprites and data codification in texture memory where implemented , one of the main dilemmas was the impossibility to run 3D engines in real time and one of the solutions at that time was the attribution of special and specific characteristics to a determined set of sprites on a flat plane for 3D simulation, more elaborated techniques for 3D simulation with sprites were Raycasting and Binary space partition trees, due to this techniques visual quality could be achieved at the same time that the processing was viable and fit the technological limits without compromising the performance, for the actors the simulation was achieved by a set of sprites with different directions, on first person games a very complex set was not necessary, the same sprite was not needed for multiple views, for third person a set of 3D sprites for each axis was necessary to create the 3D illusion. State of the art techniques help to achieve a functional processing, such as polypostors or dynamic sprites, but the disadvantage of these methods is that the quality of the sprite or the 3D model is reduced considerably, in this work the objective is to create 3D models coexisting with 2D sprites combining multiple techniques to achieve high visual quality and at the same time exploiting memory and processing capabilities.