En mi trabajo actual, estoy explorando y probando la inteligencia artificial y la ciberseguridad en varios proyectos. Aunque no puedo compartir detalles específicos en este momento, puedo decir que he llevado a cabo una interesante prueba de evaluación del grado de automatización en el desarrollo de software utilizando el modelo de inteligencia artificial más avanzado hasta la fecha: GPT-4.
Para llevar a cabo esta prueba, solicité a Auto-GPT crear crear un juego de estrategia similar al Medieval Total War. Comenzando desde la planificación y el desarrollo técnico, restringí su área de trabajo a un directorio específico. Auto-GPT se encargó de leer y guardar información, descargar e instalar el software necesario, obtener información de Internet sobre el tipo de juego, planificar el proceso y desarrollar los primeros componentes básicos del juego.
La prueba duró unas tres horas, y durante ese tiempo, pude observar cómo Auto-GPT avanzaba en el proceso y resolvía (la mayoría de) los problemas que encontraba. Aunque no era la intención obtener un programa completamente funcional debido a los tiempos de consulta de la API de OpenAI, los costos y el tiempo dedicado a esta prueba, los resultados obtenidos fueron muy interesantes. Además, estos resultados servirán como punto de partida para futuras pruebas enfocadas en el desarrollo de aplicaciones de ciberseguridad complejas.
Pero veamos algunos de los resultados obtenidos, y algunos de los procesos abiertos por Auto-GPT.
El prompt utilizado fue «Crea un juego similar a Medieval Total War con Unity».
En primer lugar se lanzó una búsqueda para obtener información sobre las características específicas del juego solicitado, y se generó un archivo con dicha información.
Medieval Total War is a turn-based strategy and real-time tactics computer game developed by Creative Assembly and published by Activision. Set in the Middle Ages, it is the second game in the Total War series, following on from the 2000 title Shogun: Total War. The game features a campaign mode, where players must manage their faction and conquer territories, as well as a battle mode, where players engage in real-time battles with other factions. The game also features a variety of units, including infantry, cavalry, and siege engines, as well as a variety of buildings and technologies that can be researched and constructed.
The Medieval: Total War game is a turn-based strategy and real-time tactics computer game developed by The Creative Assembly and published by Activision. It is set in the Middle Ages and is the second game in the Total War series. The player builds a dynastic empire in Europe, North Africa, and the Middle East, spanning the period of 1087 to 1453. The game received acclaim from reviewers and was a commercial success. It features 20 factions from the period, with a total of 12 being playable, and several unique units are available. Religion plays an important aspect in the game, with religious differences between the Catholic, Orthodox, and Muslim factions affecting diplomacy and population loyalty. The battle system takes place on a 3D battlefield in real-time, and battles are similar to those in Shogun: Total War, where two armies from opposing factions engage in combat until one side is defeated or withdraws. Siege battles are introduced to the Total War series, occurring when the invading army elects to attack the defending army, which has retreated inside the province’s castle. The game features a multiplayer game mode similar to that in Shogun: Total War, where players can engage in real-time battles against up to seven other players.
A partir de ahí comenzó a definir cuales podrían ser las funcionalidades del juego:
Potential Game Features:
City-Building:
– Different building types (residential, commercial, industrial, etc.)
– Zoning system for different types of buildings
– Road and transportation infrastructure
– Landscaping and beautification options
– City services (police, fire, healthcare, education, etc.)
– Upgradable buildings and infrastructure
– Population growth and management
– City events and disasters (natural disasters, festivals, etc.)Resource Management:
– Resource production (food, water, energy, etc.)
– Resource consumption (by the city and the army)
– Resource storage and management
– Trade and commerce options with other cities
– Research and development of new technologies
– Resource scarcity and management during crises
– Resource distribution to different parts of the city and armyArmy Management:
– Recruitment and training of soldiers
– Upgrading and equipping soldiers with weapons and armor
– Formation and strategy options for battles
– Diplomacy and negotiation with other armies
– Resource management for the army
– Battle simulations and outcomes
– Conquering and occupying other cities
Y añadiendo algunas ideas adicionales:
Most promising ideas and features for my strategy game:
1. Dynamic weather system that affects gameplay and troop movement.
2. Interactive diplomacy system that allows players to form alliances, negotiate peace treaties, and trade resources.
3. In-depth economic system that requires players to manage resources, build infrastructure, and maintain a stable economy.
4. Unique unit customization system that allows players to create their own units with different abilities and strengths.
5. Realistic siege warfare that requires players to use different tactics and strategies to breach enemy fortifications.
6. Multiplayer mode that allows players to compete against each other in epic battles and campaigns.
7. Random events that can affect gameplay, such as plagues, natural disasters, and political upheavals.
8. Dynamic campaign map that changes over time based on player actions and decisions.
9. Detailed historical accuracy that brings the medieval period to life with accurate depictions of cultures, weapons, and armor.
10. Hero system that allows players to recruit and train legendary heroes with unique abilities and strengths.
Seguidamente se encargó de recopilar alguna información sobre Unity:
1. Go to the Unity website and download the latest version of Unity Hub for Mac.
2. Once the download is complete, open the Unity Hub installer and follow the installation prompts.
3. After the installation is complete, open Unity Hub and sign in with your Unity account or create a new one.
4. Click on the «Installs» tab and select «Add».
5. Choose the version of Unity you want to install and select the modules you want to include.
6. Click «Next» and choose the installation location.
7. Click «Done» and wait for the installation to complete.
8. Once the installation is complete, go back to the Unity Hub home screen and click on the «Projects» tab.
9. Click «New» and select the template for your new project.
10. Choose the name and location for your project and click «Create».
11. Unity will now open your new project and you can start creating your game or application.
Instalé Unity dentro del directorio de trabajo de Auto-GPT, para que pudiese acceder a él, ya que la instalación automática no funcionó. Esta parte fue donde, como era previsible, mas fallaba, aunque sí que comenzó a escribir algunas piezas muy básicas del código inicial, tras trazar el plan de desarrollo:
Development Plan for Medieval Strategy Game:
1. Research and incorporate key mechanics from Medieval Total War.
2. Create a modular game architecture to allow for easy expansion and modification.
3. Develop a comprehensive AI system for both enemy and ally factions.
4. Implement a scalable and efficient pathfinding algorithm for units.
5. Incorporate a dynamic weather system that affects gameplay.
6. Create visually stunning environments and realistic unit animations.
7. Implement an engaging and immersive storyline that drives player engagement.
La interfaz que emocionó a Spielberg 🙂
import pygame
pygame.init()
# Set up the window
win_width = 800
win_height = 600
window = pygame.display.set_mode((win_width, win_height))
pygame.display.set_caption(«My Game»)# Set up the colors
white = (255, 255, 255)
black = (0, 0, 0)# Set up the font
font = pygame.font.Font(None, 36)# Set up the text
text = font.render(«Welcome to My Game!», True, black)
text_rect = text.get_rect()
text_rect.center = (win_width // 2, win_height // 2)# Main game loop
running = True
while running:
# Event handling
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False# Fill the background
window.fill(white)# Draw the text
window.blit(text, text_rect)# Update the display
pygame.display.update()# Quit the game
pygame.quit()
Conclusión
Pros:
* Auto-GPT me pareció bastante bueno en cuanto a recopilar información concreta para trazar un plan de desarrollo. La selección de la información fue lo bastante precisa como para considerarse dentro del contexto solicitado.
* La asignación de subtareas a agentes IA me ha parecido una característica muy interesante de este modelo, ya que permite al flujo de ejecución principal seguir trabajando, mientras delega en los agentes tareas concretas que se van ejecutando en paralelo.
* El coste total de la prueba fue inferior a 1$, lo que lo hace bastante accesible.
Cons:
* En cuanto al desarrollo en sí, todavía se encuentra muy poco madura la tecnología para poder proporcionar un producto acabado de calidad, en comparación con lo que podríamos obtener generando código directamente desde la interfaz web o la API de OpenAI.
* Para facilitar la lectura de este artículo, he explicado el proceso de manera lineal, pero realmente tuve que interrumpir y reiniciar el proceso en varias ocasiones, debido a que la IA «alucinaba» cierta información, como enlaces de github inexistentes, cierta confusión a la hora de interpretar rutas locales, etc, que le hacía entrar en un bucle del que no sabía como salir.
El concepto del trabajador automático puede estar bastante más cerca de lo que podíamos imaginar hace tan solo unos meses, con todo lo positivo y negativo que pueda llevar asociado. El debate sobre sí la IA será un sustituto o un asistente está candente, y Auto-GPT es la punta de lanza de este concepto innovador (y a la vez aterrador).