100% encontró este documento útil (1 voto)
321 vistas6 páginas

Creación del juego Snake en Assembler

El documento describe el desarrollo de un juego llamado "Snake" o "Serpiente" en lenguaje ensamblador. Explica los objetivos de analizar el lenguaje ensamblador y crear el juego clásico usando TASM. Luego resume la historia del juego Snake, presenta el código del juego en ensamblador, e ilustra los resultados con capturas de pantalla del juego funcionando.

Cargado por

gencas220
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
321 vistas6 páginas

Creación del juego Snake en Assembler

El documento describe el desarrollo de un juego llamado "Snake" o "Serpiente" en lenguaje ensamblador. Explica los objetivos de analizar el lenguaje ensamblador y crear el juego clásico usando TASM. Luego resume la historia del juego Snake, presenta el código del juego en ensamblador, e ilustra los resultados con capturas de pantalla del juego funcionando.

Cargado por

gencas220
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL


PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Título: Juego en Assembler


Módulo: Arquitectura de Computadoras
Autor: Henry Ricardo Ortega Castro

INFORME
Objetivos:
 Analizar los pasos para la comprensión del Lenguaje Ensamblador
 Aprender las sentencias y registros que manipula este lenguaje
 Crear el juego “Snake” o “Serpiente” en TASM

Palabras clave:

 TASM
 Ensamblador
 Windows
 DOSBOX
 Snake

1.1) Marco teórico


Historia

Snake (a veces también llamado la culebra, también conocido como juego de la serpiente) es
un videojuego lanzado a mediados de los 70 que ha mantenido su popularidad desde
entonces, convirtiéndose en un clásico. Recientemente, el Snake obtuvo una audiencia masiva
tras convertirse en un juego estándar pre-grabado en los teléfonos Nokia de 1998.

Varios juegos Snake se originaron con el juego arcade Blockade, desarrollado por Gremlin en
1976.2 La primera versión conocida para microordenador, titulada Worm(Gusano), fue
programada en 1978 por P. Trefonas desde Estados Unidos en los ordenadores TRS-80, y fue
publicado por CLOAD magazine en el mismo año. Este fue seguido poco después por una
versión del mismo autor para los ordenadores Commodore PET y Apple II. P. Trefonas escribió
por primera vez una versión de Hustle para microordenadores en 1979, publicada
posteriormente por CLOAD magazine. Esta fue luego desarrollada por Milton Bradley para los
TI-99/4A en 1980. Algunas versiones mejor conocidas incluyen el ejemplo de Neopets, que es
conocido como "Meerca Chase".
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Su versión revisada es conocida como "Meerca Chase II". Durante un tiempo se incluyó en MS-
DOS una variante popular denominada Nibbles. En TimeSplitters 2 se incluyó, como juego
oculto, una variante del Snake controlado por un joystick analógico denominada Anaconda.

La versión incluida en el Nokia N70 y otros modelos posteriores de los móviles Nokia es una
versión 3D, con metas por niveles. La versión de los Nokia también tiene una serpiente.

Código del juego en lenguaje Ensamblador:

Código completo(link propio):


[Link]
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Plataformas disponibles y variantes del juego

Plataformas Móviles:

 Windows Phone
 TileSnake - Snake para Windows Phone que presenta el mismo concepto de siempre,
pero con una nueva interfaz y look moderno.
 Amazon
 Snake The Original - Snake para Android con gráficos parecidos a los de nokia
 Android
 GeoSnake - Snake para Android que incluye la versión clásica además de nuevas
funciones utilizando distintos mapas geográficos.
 Snake The Original - Snake para Android con gráficos parecidos a los de nokia
 iPhone/iPod touch
 Snake The Original Snake Snake con gráficos parecidos a los de nokia -
iPhone/iPad/iPod
 TiltSnake en el iPhone e iPod Touch. Usa el acelerómetro.
 Mobile Snake - Snake clásico para iPhone e iPod touch.
 Snaked - para el iPhone e iPod Touch por Broken Thumbs Apps.
 Star Snake - iPhone e iPod touch.
 Snake for iOS 7 - para iPhone e iPod Touch por App Theme Park.
 Otras plataformas móviles
 Nokia Snake 1 - El primer snake original recreado por el creador original para los nokia
s60.
 SpaceBall - teléfonos móviles marca LG.
 Arcade Classics (incluye Snake) para Zunes 4, 8, 16, 30, 80, y 120.
 Consolas:

PSP

 Snake - como un juego homebrew TIFF en la PlayStation Portable de Sony


 PlayStation 3
 Snakeball - PlayStation 3
 Wii
 Snakers - juego explorador (4 jugadores en la Wii).
 Snake en el Homebrew de Wii.
 Nintendo DS
 Worm - Nintendo DS Linux.
 Xbox 360
 Snake360 - versión para Xbox 360 con muchas capacidades añadidas.
 PC y otras plataformas:
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Multiplataforma

 Need for Snake - Juego de la serpiente en línea en JavaScript.


 Ophidia - Viedojuego avanzado snake de JavaScript con enemigos, obstáculos, y
disparos.
 Nibbler - versión arcade.
 Serpent 3D - 'Comilón' en primera persona (openGL | GLUT).
 GL Snake - Variante tridimensional bastante realista del juego de la serpiente (openGL
| GLUT).
 Snake game un versión flash controlada por ratón.
 Snake - otra versión flash por Paul Neave.
 Snake - otra versión flash por [Link]
 Windows/MS-DOS
 Nibbles - MS-DOS (QBasic) algunas versiones para SUSE Linux.
 Plasmaworm - Microsoft Windows
 Rattler Race - Microsoft Windows
 Sneech - Juego original para Commodore Amiga por Paul Burkey, 1995. Ahora para
iPhone, Mac OS X, y Microsoft Windows.
 Snakeworlds (3D snake game) para Microsoft Windows. Juega al famoso y clásico
videojuego, pero ahora en esferas o globos!
 AxySnake - versión 3D para Microsoft Windows por AxySoft.
 Linux
 Snake Race (ksnake) - Para distribuciones de Linux.
 KDE-Snake - Un sencillo juego para KDE del snake escrito en Python (para Linux).
 Mac OS
 SnakeTIX - Apple Macintosh (para el Mac OS clásico).
 Otras plataformas
 Videojuegos Worm y Hustle, publicados por CLOAD, en 1978 y 1979.5
 CGA-Snake - Versión de finales de los ochenta del Snake usando la tecnología Color
Graphics Adapter.
 Hustle - juego arcade, TI-99/4A.
 HYPER-WURM - TRS-80
 Light Cycle - Tron (juego ficticio) y su implementación arcade de Tron.
 Several juegos del ZX Spectrum, de los cuales Laser Snaker es un ejemplo
 Snafu - Mattel Intellivision.
 Snake - BBC Micro
 Snake - MSX
 Snake - Para calculadoras gráficas Texas Instruments TI-83 y TI-84.
 SnakeII - Para calculadoras gráficas Texas Instruments TI-89, TI-89 Titanium, TI-89
Silver Edition, TI-92 Plus, Voyage 200.
 Snaky - VMU (MFE - Dreamfiles).
 Tape Worm - Atari 2600
 Worm of Bemer - Atari 8-bit, VIC-20, Commodore 64, TI-99/4A, y IBM PC/PCjr.6
 Worms - Commodore VIC-20.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Resultados

Ilustración 1, Inicio del juego

Ilustración 2, Ejecución
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: OCTUBRE/2015 – MARZO/2016

Ilustración 3,Fin del juego

1.2) Conclusiones
1) Las sentencias más requeridas son ciclos de incremento para la simulación de
movimiento en la pantalla junto con la manipulación de coordenadas las mismas que
son de gran utilidad.
2) La manipulación de condiciones es lo más complicado pues tenemos que comparar si
dos coordenadas, la cabeza y alguna parte del cuerpo para declarar el fin del juego.
3) El juego final a pesar de poseer una interfaz sencilla nos recordara esos viejos tiempos
de juego en los entornos o plataformas más conocidas como los teléfonos celulares
Nokia

1.3) Referencias bibliográficas

Carter, P. (s.f.). Lenguaje Ensamblador para PC.

Irvin, K. R. (2006). Assembly Languaje x86 Processors (6th Edition).

Medina, R. (s.f.). Programacion Avanzada en Lenguaje Ensamblador.

Ojeda, F. (2009). Lenguaje Ensamblador.

Common questions

Con tecnología de IA

The game 'Snake' originated with the arcade game Blockade in 1976, and its popularity surged with versions like Worm for microcomputers in 1978 and the TI-99/4A version in 1980 . With the rise of mobile technology, Snake became iconic on Nokia phones in 1998. Over time, it expanded across various platforms such as Windows, DOS, mobile phones (Windows Phone, Android, iOS), consoles (PSP, PS3, Wii, Nintendo DS, Xbox 360), and PC/Mac systems. Modern renditions include various graphical updates and three-dimensional adaptations, accessible on both home consoles and mobile devices .

The 'Snake' game has various adaptations across platforms: Mobile versions focus on accessibility and simple graphics (e.g., 'Snake The Original' for Android and iOS), using device-specific features like accelerometers. Console versions like 'Snakeball' on PS3 introduce new dynamics while maintaining core gameplay. PC versions like 'Nibbler' and 'Serpent 3D' implement advanced graphics and control schemes. Each platform version leverages specific hardware capabilities, resulting in unique gameplay experiences while keeping the fundamental concept of the Snake game intact .

The original version of 'Snake' featured a rudimentary interface, primarily text-based or with simple graphics, typical of early microcomputer and arcade games . Contemporary versions on smartphones have modern graphics with improved aesthetics resembling those on Nokia devices, such as in 'Snake The Original' for Android and iOS. Advanced functionalities like accelerometer control in versions such as 'TiltSnake' further enhance user interactivity, showing significant evolution in user interface design .

Historically, 'Snake' has been significant for its roles in early arcade culture and as a widely recognized mobile game, notably with its inclusion on Nokia devices. Its longevity is evident through adaptations across platforms: from early microcomputers to modern smartphones and consoles such as PSP, PS3, and Xbox 360. Games like 'Snake 360' and enhanced PC versions show its continued relevance and adaptability, often incorporating modern technical features like 3D graphics .

'Snake' has maintained popularity due to its simple yet addictive gameplay, easy adaptability to new technologies, and cultural nostalgia. Its low technical requirements enabled widespread deployment on early mobile phones, making it accessible to millions. Continued reinterpretations and enhancements, from classic pixelated versions to modern 3D adaptations, have allowed it to remain current and appealing across generations .

The TASM-created version of 'Snake' enhances learning by providing practical experience in assembly language programming, particularly in managing low-level hardware manipulation. The need to construct core functions such as motion simulation and collision detection facilitates a deeper understanding of loops, conditions, and coordinate systems which are foundational concepts in assembly programming .

The educational objectives outlined by the Technical University of Ambato for developing 'Snake' in TASM include analyzing the assembler language, learning the statements and registers used in programming with assembly, and understanding the procedural steps to create a functional game .

Creating 'Snake' in assembly language involves managing complex programming challenges such as using increment cycles to simulate motion and coordinate manipulation for game dynamics. The manipulation of conditions, specifically comparing coordinates for collision detection (e.g., head versus body parts to end the game), requires precise logical structuring. Mastery of assembly's low-level operations is crucial to efficiently handling these challenges .

'Snake' became a technological icon during the late 1990s due to its preloading on Nokia phones, which symbolized the convergence of mobile technology and entertainment. Culturally, it represented a shared gaming experience across global mobile phone users. Its simplistic yet challenging gameplay struck a chord with the emerging digital generation, thus anchoring its status as a nostalgic cultural icon from this era .

Using assembly language for game development, as demonstrated by the 'Snake' project, implies a detailed understanding of low-level system operations and memory management. Such projects help students comprehend how high-level concepts map to hardware instructions, enhancing their skills in optimization and algorithm implementation. The project underscores the importance of rigorous planning and precision in coding for efficient execution, critical in resource-constrained environments .

También podría gustarte