Es/Making a Mod

From Valve Developer Community
< Es
Revision as of 06:49, 17 July 2011 by Mattshu (talk | contribs) (finishtranslation:es)
Jump to navigation Jump to search

Template:Otherlang2 Template:Finishtranslation:es Este artículo está diseñado para ayudarte a hacer las modificaciones en el Motor Source, o mod. Primero, hay algunos consejos sobre comenazar un mod, y organizar un equipo. Seguidamente, esto es una recolección de útiles consejos para el diseño de juego para tu mod. Finalmente, contiene una guía paso a paso de como atar los cabos sueltos y concluir tu mod, que es, normalmente, la parte más dificil del desarrollo de un mod.

Comenzando

Comencemos mirando como organizar un equipo. La regla principal aquí es mantenerlo pequeño. Controlar un equipo de gente es una tarea de tiempo completo, incluso cuando todo el equipo reside en el mismo lugar. Si estas colaborando con un equipo on-line, puedes gastar todo tu tiempo facilmente solo en dirigirlo, y esto significa que no estarás invirtiendo tiempo en hacer tu mod. Incluir más gente en el equipo no significa más trabajo hecho. A más gente en el equipo, más tiempo invertido en controlarlo. El equipo central del Team Fortress es de 3 personas. El del Counter-Strike es solo una.

Cuando estes buscando gente para tu equipo, intenta solo incluir gente sin la que no puedas sobrevivir. Tu primer instinto será incluir a cualquiera que pueda programar, modelar, hacer mapas, etc... Pero para tu primera versión, tu probablemente no necesitarás más de una persona para cada área de tu mod (codigo, sonido, modelos, mapas). Quiza incluso no necesites nigún modelo, so0nido o mapa nuevo. No incluyas a nadie hasta haber visto ejemplos de su trabajo. Asegurate de que acaben su trabajo normalmente. Un modelador con 20 modelos y todos a mitad no es útil para tu proyecto.

Diseño del Mod

Como autor de mod, la pregunta más útil que puedes hacerte es "¿Por qué alguien debería jugar a mi mod?" Es una pregunta dificil de contestar verdaderamente, pero si puedes respenderla correctamente, vas por el buen camino. Piensa sobre que otros mods hay ahí fuera, y que ofrecen ellos. ¿Ofrecerá tu mod algo nuevo a los jugadores? ¿Es lo que ofreces bastante para incitar a los jugadores que ua estan jugando a otros mods? Incluso si no puedes respondes a esta pregunta, solo pensando en ello, eso ya ayudará a tu mod.

Se Competitivo

Usamos "juego" aqui como traducción de "gameplay" que vendría a ser jugabilidad o estilo de juego. No tienes poder de desarrollo comercial: No tienes que preocuparte acerca de la viabilidad comercial de nuevos estilos de juego. Los desarrolladores comerciales tienen que preocuparse sobre esas y muchas otras cosas desagradables, dado que las mayoría de juegos son ligeras modificaciones de juegos ya probados. Pero tú no. Tú puedes probar verdaderamente nuevas ideas de juego que pueden llegar a convertirse en "La Siguiente Gran Cosa". Esta es tu ventaja sobre los desarrolladores comerciales. Haz tu trabajo más fácil concentrandote en esta ventaja, y no malgastes tu tiempo intentando competir en las áreas en las que los productos comerciales son poderosas. La mayoría de mods no pueden competir en nivel de contenido (mapas, sonidos, etc...) con productos comerciales. Ellos tienen equipos de artistas con años de experiencia. Derrótalos con tu juego. Los jugadores jugarán a un mod que tenga muy poco contenido pero que tenga un estilo de juego realmente divertido. Algunas veces, de lo que mucha gente no se da cuenta es de que Team Fortress 1 no tuvo ninguna innovación artística nueva durante un año después de su primera aparición.

Desarrolla pronto, desarrolla a menudo

Tienes otro poder sobre los desarrolladores comerciales. Puedes lanzar más, más rápido y más a menudo, de lo que ellos pueden hacer. Hemos hecho un resumen de la filosofía de desarrollo de mods en la frase "Desarrolla pronto, desarrolla a menudo". Los desarrolladores comerciales trabajan durante 2-3 años, sacan su juego, y rezan para que a la gente le guste. Tú no tienes que tener ese acto de fe. Puedes diseñar tu mod completo, escribir el 25% de él y ponerlo en modo jugable, luego lanzarlo y comenzar a recibir feedback inmediatamente. Después, puedes comenzar a añadir el resto de tu diseño pieza por pieza, a la vez que te basas en el feedback de los jugadors que jugaron a tu primera versión y continuar desarrollando cada un mes o dos. Estás en contacto con tus jugadores en todo momento, así que nunca vas a estar en la situación de gastar un montón de tiempo en algo que no sabes si va a gustar. El truco es cortar tu mod en rodajas. La versión inicial necesita ser divertida y jugable, pero no necesita tener todos los elementos llamativos que tienes pensados.

Ten cuidado, "desarrolla pronto" no significa que desarrolles elementos de mala calidad, solo significa que hagas tu mod en pequeñas partes incrementándolo. La primera versión de Counter-Strike no tenía ni la mitad de cosas que tiene ahora. El equipo del CS desarrolló un mod de alta calidad, pero no muy grande. A lo largo del año pasado, han estado añadiendo más y más cosas, y en respuesta, su comunidad de jugadores ha ido creciendo y creciendo.

Diferente no siempre es mejor

Cuando pienses en el diseño de tu juego, no caigas en la trampa de pensar "diferente es mejor". No hay razones para reescribir el código de la escopeta y tener un nuevo modelo de ella si no afecta a tu juego de un modo interesante. Mantén en la mente la primera pregunta: "¿Por qué alguien jugaría mi mod?" La respuesta "Mi mod tiene un nuevo sistema de combate y un nuevo sistema de movimiento" no es necesariamente una buena respuesta. Así que si tu sistema de combate es diferente que en el Half-Life... bien, ¿pero es lo mejor? ¿Hace a tu mod más divertido? ¿Hace ese nuevo sistema de movimiento más divertido el juego? Los jugadores están acostumbrados a los sistemas existentes, y hacerles aprender otro necesita ser valer la pena para que funcione. Así que antes de pensar en cambiar algo, estate seguro de que sabes que el cambio es a mejor y de que ello hará a tu mod más divertido. No te asustes por dejar algo tal y como era en Half-Life.

Objetivos realistas

Ponte objetivos realistas. Piensa en cuánto tiempo lleva a un desarrollador comercial hacer un FPS shooter con 10 armas. Si tu mod va a tener 40 armas, estás haciéndote la vida realmente difícil. La cosa a tener en cuenta aquí es "calidad sobre cantidad". Los jugadores preferirán tener 10 armas únicas, bien equilibradas y divertidas armas que 40 armas desequilibradas de las cuales algunas sean claras copias de otras.

No tengas miedo de cortar contenidos y características. Si el mod parece que nunca va a ser terminado, o hay algún contenido que crees que no encaja con la calidad del resto del mod, entonces empieza a recortar. Durante el desarrollo del HL al menos el 30% de las características diseñadas originalmente fueron cortadas porque eran obviamente inalcanzables en nuestro calendario, o porque decidimos que no era rentable su tiempo de desarrollo. Como dijimos arriba "Calidad sobre Cantidad". Los jugadores preferirán tener 3 mapas realmente buenos y bien testeados que más de 10 inestables, y eso le dará a tu mod una reputación de calidad. No le dejes ver al mundo tus peores creaciones.

Entiende el engine

Realmente deberás leer la documentacion incluida en el SDK. Lo que más vas a aprender haciéndolo así no es si se puede hacer X con el engine, sino cómo se hace X con el engine para que funcione bien. Puedes hacer una pistola que dispare 50 cohetes, pero si no entenes el modo en el que el engine funciona, puedes hacerlo de un modo que incremente significativamente el tráfico de internet cuando se use tu mod. Esto es importante para todo el mundo en tu mod. Si tu creador de mapas no entiende el engine, hará grandes mapas sin pensar en cuánta información será enviada a los jugadores en ellos, y todo el mundo va a criticar tu código por consumir mucha banda ancha. Si eres un programador, es buena idea unirte a la lista de emails de programadores de HL, donde podrás hablar con muchos otros programadores de mods, y unos pocos empleados de Valve también. La lista de emails tiene un archivo desde hace mucho tiempo, que contiene un montón de soluciones útiles a problemas comunes.

Terminando

Vemos un montón de mods que empiezan fuerte, producen una buena impresión de contenido, y nunca dan el último paso para llegar a las manos de los jugadores. Esta sección va a ayudarte a obtener un modo de llanzamiento que te conducirá a la producción de la versión liberable de tu mod.

Elegimos cinco semanas como tiempo estimado que te llevará desde el desarrollo normal hasta una versión viable. It's likely you'll get better, and hence faster, at this with successive releases. If your mod is larger in scope, or your team is substantially international, then it is likely to take more than five weeks, though the steps will be similar to the following.. If possible, try and get the team to commit a few hours of every day to the mod for this period of time. If some team members can't do that, you're probably better off removing them from the shipping process. Get them to hand their part to someone else on the team who can put in the required effort. Shipping a product, even a small product, is hard and requires a substantial commitment.

There are many things in this section that might sound harsh or rigid. This is unfortunate, but a reflection on how hard a process this is. The advice here is a summation of lessons learned in the shipping of many products, and most of it a result of painful mistakes that set back our release dates. When you wonder whether a particular piece of advice here is necessary, it's possible that we once added weeks to our release date because we didn't take it.

This is also something that prospective employers are extremely interested in. It's one thing to see that a mod maker has produced a bunch of cool stuff, it's another thing entirely to see that they produced some cool stuff and actually shipped it out and people played it. The coolest map/model/code/sound/etc. in the world is useless if you couldn't go the last mile and ship it.

Fear not, this gets a lot easier once you've been through it a couple of times. By the third or fourth release of your mod, you'll be an expert!

Five weeks out

Centralize ownership

You should designate a single member of your mod team as the Shipping Leader (SL). This person will drive progress on the mod for the next five weeks. All changes made to the mod from now on should occur only at the request of the SL, and all requests for changes should be funneled through this person. No team member should make any changes, no matter how minor, to the mod unless the SL has requested that they make a particular change. This doesn't mean the rest of the team are losing control of the mod; the SL is still a part of the team, and will be listening to all feedback. The point of the SL is to ensure that all changes to the mod are going through a single person. This avoids problems such as a mapmaker breaking the game by making a last minute change because he didn't realize something else had changed in the game code. The SL will know the state of every component in the game (code, maps, models, textures, etc) at all times throughout the next 5 weeks to ensure this never happens.

Choosing the SL isn't easy. Here are a few tips:

  • Don't immediately assume the person who's currently running the mod is the best choice for SL, especially if the mod has been worked on for months and hasn't got any closer to being released.
  • Game Coders are probably the best choice. As the shipping process comes to an end, most fixes will be made in the game code.
  • The SL should be highly motivated, disciplined, organized, and as ego-less as possible. The SL will need to be able to commit five weeks of his or her life to this process.
  • The SL should be able to make global decisions for the mod. The SL should understand that this often requires cutting features and content in order to ship

Establish a build process

You need to create a process by which you build your mod. Building is the process of taking all your work and producing an installable, working version of the mod (generally in the form of an install file). This should be done exclusively by the SL for the next five weeks, and the SL should have a strict process that is always followed. Creating a strict process for this will ensure you don't waste hours tracking down bugs that are simply a result of someone building in a different way than the previous person.

The SL should maintain the final/release candidate version of the mod from now on. All changes should be sent to him, and he should incorporate them into his copy of the mod one by one and with a full understanding of the impact of the changes on all parts of the mod. Don't forget to backup your code and content regularly!

The SL should build the mod every day for playtests. More on that later.

Feature locking

Shipping is the process of locking down portions of your mod. "Locked" means that the portion is not to be touched from then on. Bugs found in locked portions of your mod should be thought about carefully. Unless the bug is really important (showstopper), just note it down and fix it in the next update of your mod. Regardless of the temptation to make that one "easy fix", unlocking portions of your mod should be avoided as much as possible.

At this point in the shipping process, five weeks out, you should also be feature locked. This means you shouldn't be adding any new features to your mod whatsoever. If part of your team is not involved in shipping but wants to continue working on developing the mod, they should be working in a separate content and code database. Most source code control packages allow for branching of code in this fashion. (Yes, we strongly recommend that you use some form of source control ). Every change made to the mod from now on should be a bug fix. The SL should ensure this. Even if a coder thinks of another cool feature that they say will only take them 10 minutes to code, do not let them add it in. Even if the coder sends the code, finished and bug-free, to the SL, do not add it to the mod. Save it for the next version.

A healthy attitude for the SL to have is that every change to the mod from now on will add two days to the release date.

Playtesting

From now on, you should be running playtests every day, or every second day if that's too much. Playtests should be based on installable versions of the game, built by the SL. Don't let team members play from their personal versions of the game. Everyone should be running a version of the mod installed from a build sent out by the SL (that's what your viewing public will be installing and using, that's what you should be testing). You'll waste many hours on finding bugs caused by incompatible versions if you don't do this.

To make this easier, the mod must be kept in a playable state at all times. Get very, very worried for every day the mod isn't playable. If a coder or mapmaker makes a change that breaks the mod, think about it carefully before incorporating it into the SL's build. How long will the game remain unplayable? How many playtests will you miss? How many team members won't be able to work because the mod isn't running? Not breaking the mod should be religion for the team.

When you do playtest, make sure as many of your team members are playing as possible. Everyone working on the game should be playing it regularly. Make sure you have some external players as well. Turn on server console logging (set "log" to "on" in the server.cfg file). This will dump all the output of the server into a file in the gamedir/logs directory ( the name of the file will match the date). Whenever any player in the game spots a bug, have them use their "say" key to say "BUG: description of bug". Then, when the game is over, you can open up the log file and get all the bugs out of it by searching for the word "BUG."

Bugs and changes

The SL should maintain a complete list of all bugs and changes, and their current status. Preferably this should be done using some kind of true database. E-mail is totally insufficient for tracking bugs; it's just too easy for items to drop of the first page of a user's mailbox, etc. After each playtest, the bugs and necessary changes from the log file should be added to the list by the SL, and assigned to team members. When a team member has fixed a bug or change, they should submit the new content to the SL, who should verify that it is fixed and then update the status on the bug list.

The bug list is a fantastic tool to evaluate how well you are progressing. It can be used to find out who is overloaded with work, who is underloaded, who is not fixing his bugs, which area of your mod is farthest from completion, and so on. Don't remove anything from the bug list, even when it has been fixed (though you should mark it as fixed in some way, of course). It's very useful to see what bugs have been fixed throughout the history of the project. Something might regress, re-creating a bug, and knowing who fixed it last time makes it easy to ask them what caused it. At the end of the project, you should be able to see every bug fixed and every change made in your mod for the entire shipping process. The SL shouldn't allow any bug fix or change into the SL's master copy of the game unless the bug/change has been detailed in the bug list.

There is software that will help you create and maintain a bug list. Alternatively, a spreadsheet will work just fine. Again, e-mail is a bad choice.

Cut or defer broken features

The hardest, nastiest, and unfortunately most necessary part of shipping is the act of being realistic and cutting features. We have a saying at Valve that everyone will have their favorite feature cut from the game. While it's not true, it does help everyone prepare themselves for the fact that they will have features they like -- or that they spent some to a lot of time on-- cut. Your game simply cannot have every cool feature and still ship in a reasonable time frame. The SL should make decisions about what to finish and what to cut, based on how far along in the release process you are.

The closer you get to releasing, the more you should think about each bug as you find it. Is the bug in a feature that absolutely must be in this version? How many days will it take to fix this feature? Can this feature be cut, or deferred to a later version?

Work smart, not hard

As we've said over and over again, the shipping process is hard, and it's even harder if you don't think carefully about what to work on. Working a lot is no substitute for carefully choosing what to fix, what to defer, and what to cut out altogether. The SL should be extremely careful about which bugs/changes should be worked on, and by whom. Don't spend a week fixing a minor problem in a feature just because the feature is cool. Fix crash bugs (showstoppers). Fix bugs that utterly prevent you from shipping the game. Fix bugs that are preventing other team members from fixing their bugs. The SL should develop categories for bugs to aid in making the right decisions. A good level of granularity is Must Fix, Severe, Medium, Minor, Zero, Deferred.

As the project gets closer to shipping, the SL should be carefully evaluating every bug that shows up. Remember, every bug that's fixed creates more playtesting, and usually more bugs. If you are two weeks from your release date, and you've got a bug that will take someone three days and 500 lines of code to fix, you're not going to make that release date unless you cut or defer that portion of the game.

Three weeks out

Content Locked

By now you should aim to be content complete. This means that all content in the game is in a locked state, except for the game code itself. All the maps, models, textures, sounds, HUD art, launcher art, and so on should be finished and in the SL's master copy.

Shutting down

This was mentioned at the five week mark, but it's even more important now. The SL is the only person who should be touching the master copy of the game, and he should simply be rolling in the bug fixes from the coders, who should be fixing only the bugs the SL hands them.

Playtesting

The mod should be being playtested every day, for at least two hours. Between now and when you ship, you want as many people as possible hammering away at your mod. It's too late now to make any major game design changes – don't even be tempted.

One week out

No last minute changes

The SL should be evaluating every change that has to be made, and deciding whether they should be deferred to the next version. Again, a healthy way to think about it is that every single change, even if it's a single line of code, will add two days to the release date.

Two day safe period

Once every bug that is going to be fixed has been fixed, and everything else has been deferred, you're not done. Now you wait at least 48 hours, during which time you should playtest like crazy. Try to get everyone hammering away at the game for as much time as possible. If you find any more bugs that have to be fixed, fix them, and start the 48 hours again.

If your mod passes 48 hours of heavy playtesting without finding any new issues, you're ready to release!

Post-release

So you've released, the players love it, and web pages everywhere are talking about how much fun your mod is. Whether you're done now is up to you. From our experiences in the on-line multiplayer field, a mod only stays popular as long as it's supported. No matter how great your mod is, it's not going to garner really significant player numbers with its first version. Player numbers are grown over time through repeated releases of new content, bug fixes, and of course, community support. Both Counter-Strike and Team Fortress started out small and grew over time. Each time they released a new version, more players tried them out and started playing them.

Knowing what to fix, what to change, and how to listen to your community is a continual learning process.

Good luck!

See also