Documentation
From Ultimate Smash Friends
Contents |
Tasks
- General code refactoring, for stability and long term development.
- Feature adding: shields, rolling, air-dodging, spot-dodging, wavedashing, edge-hogging, l-cancelling, fast-falling, taunts, etc.
- Character editor
User Manual
Introduction
Thank you for your interest in Ultimate Smash Friends. This user manual is intended to be read by those who wish to learn how to play the game. See the reference for a full list of technical terms used throughout the USF documentation.
Installation
Ultimate Smash Friends dépends on python >=2.5 and python-pygame >= 1.6. if you use python <2.5 you need python-lxml too.
You can just use the launchpad branch, or the last archive and launch "ultimate-smash-friends" in the "code" directory. More informations
How To Play
A game of Ultimate Smash Friends (USF) usually consists of a number players, each controlling an on-screen character. The characters fight each other until the opponent's number of stocks (lives, in other words) reaches 0.
Controls; Moves
Keyboard is currently the only supported input for controlling characters: every Player have 7 keys, the direction ones, "A" and "B" keys, and the shield key.
The direction keys are both used as movement keys and as parts of combos with the other keys (A and B), the shield key activate a shield protecting the player, which can't move as long as the shield is activated (when the player realease the key).
the ↑ key will trigger a jump, a second hit will trigger the double jump.
the A key alone trigger a simple hit.
the B key alone trigger a simple kick.
any direction key followed by the A key will trigger a smash in the direction of the key, except the down key.
the ↓ key will may the player crouch, and activate any item at its current place.
the ↓ key followed by the ← or → key, will trigger a roll.
the B key followed by two occurence of a direction key will trigger a special hit.
the B key during a jump will trigger a jumping kick.
Content
The 3 main pieces of content that users deal with in USF are the characters, stages, and items.
Characters
Ultimate Smash Friends comes with a standard set of characters, and users may create their own (for example: User_talk:Doudoulolita). Follow Character tutorial for help. They also have an upgraded version, with other colors and more powerful suit.
Bzr (development): Surge
/ Bearsum
/
Rohon
Version 0.1.6 : Pixie
/ Blob
/ Xeon / Awesom Possum / New Sorlo /
Version 0.1.3 : Xeon
/ Awesom Possum
/ New Sorlo
Version 0.1.1 et 0.1.2 : BiX
/ Blob
/ Maryo / Stick-red / Stick-tiny / By_herb-blue / By_herb-blue / Boogy-t
Stages
Levels in version 0.1.6
Jungle Biglevel
Blobplanet Cave
Pyramid Rizland
More can be added if you follow Level Tutorial
Items
Items are objects in the game that a character may pick up and use. Some items are attack items, intended to be used against your opponent, and some items help your own character, for example, a healing item that restores a certain amount of percent. The standard items of the game are listed below:
Heal:
Reduce player percents to 0 in a few seconds.
Treasure box:
Upgrade the character to it's "higher form" (a second set of frames different moves, etc...).
Star:
Make the character invincible for a certain amount of time.
Bomb walker:
Not implemented yet; a little bomb that walks until explosion.
Development
Resources
USF uses the Bazaar version control software for managing source code. The code is hosted on Launchpad at ultimate-smash-friends. You can join the USF launchpad team at usf-team, after which you may subscribe to the developer mailing list.
Here are some items on this wiki listed as keywords - For Developers
Hang out on the IRC channel: #usf-game on Freenode.
For a full list of what needs to be done, see our launchpad bugs.
Design Document
This part of the documentation is intended to specify, as much as possible, at the outset, what USF is supposed to do (specification).
Road Map
Here is our project roadmap, detailing what lies ahead for the future of USF.
Release 1 - Essentials
Release 1 is all about establishing the standards of gameplay in USF with regards to the characters and how the player controls them. The goal of this phase is to achieve a level of gameplay that rivals that of the Melee game, in the most minimal way (namely, controls and characters).
Controls
Characters
USF will expand and evolve in the future with regards to moves and gameplay physics, but at least for the first release of USF, there should be a standard set of characters and moves.
Specifically, all characters should be able to shield, roll, dodge, grab (each other, and the ledge), L-cancel, fast fall, and wavedash.
Shields - A character should be able to put up a circular shield, hold up the shield for a limited amount of time (it depletes with time and damage), and take down their shield. The player should be able to slightly move their shields by softly moving the analog stick in the desired direction. Characters should be able to roll and jump from their shields.
Grabbing - A character may grab another character, provided they are in close range of each other. Upon successfully grabbing another character, the grabber may press Attack to hit the grabbed, or the grabber may press one of any of the 4 up, down, left, or right directions, to perform a throw in that direction. The player being grabbed can press buttons to break out of the grab.
Character Editor
Players will need a way to create characters to play with. The current editor is written in Python and uses Glade. It still needs a good amount of work. There is a very simple character viewer too (cv.py), to see the result while editing the xml file (auto reload) both are located in "utils".
Release 2 - Networking and Tournament Support
Release 2 is all about multiplayer over the network, and support for running tournaments. A family with a home of computers (or a college campus, or at the office) connected together on a LAN should be able to play matches against eachother on the spot, and a venue full of players should be able to play all of their tournament matches, pool matches, and friendly matches, and have it all recorded for later viewing, along with complete tournament meta data (timing, statistics, scoring, etc).
Networking
Network client (not implemented).
Network Server (partially implemented).
Release 3 - Abstract USF Framework
From a high level point of view, there are only a small number of differences between the 3 original smash game series (64, Melee, Brawl) with regards to that which is important to gameplay. To put in other words, the 3 original smash games are really just the same game with a few tweaks between each of them. They are just 3 variations (specifications) of the same game.
Smash Philosophy
Informally, one can consider smash to be just a bunch of hit boxes moving around on a 2-dimensional plane (pretty much the same as a lot of other fighting games as well). It is (most probably) possible to describe and talk about smash in a formal way.
One of the first things you have to do to consider smash formally is to remove (stop thinking about) what things look like. For example, don't think of Falco's laser as "Falco's laser", but instead think of it as "a fixed 2-dimentional area that moves horizontally at a fixed rate in an either left or right direction".
A game of smash is just a bunch of areas moving around on a 2D plane, controlled by the players. These areas have properties, for the purpose of pertaining to real world effects. One property is that of being hittable - if an area has the property of being hittable, it might be said that the character occupying the same space as the area is hittable. For example, when Maryo is just standing there, there is a fixed area that is being occupied by the character, and it will have the property that it is hittable (meaning that someone can jab Maryo, since Maryo is not dodging or shielding, but is in fact just standing there unguarded).
Game Stye Specifications (GSS)
With regards to the USF framework and how it will account for the 3 original Nintendo games, you could say that each of the 3 original games represents a single USF game specification (GSS). A GSS specifies the properties of a particular style of smash.
For example, when comparing the style specs of Melee and Brawl, the Melee style spec says that characters may influence the direction of their air dodges (characters may dodge in a direction, or dodge in place), while the Bralw spec says that characters may not influence the direction of their air dodges (players continue in same direction and may not influence it). The 64 style spec says that no characters may air dodge at all.
To that end, a style spec can be broken down into a number of different specs, one for each aspect of the game.
Wishlist
Custom Content (Characters, Stages, Items, Physics, etc.)
You just know the fun will never end once you get to play smash with any character you want, designed and created by you. USF will let you change anything you want.
Users will be able to share and upload characters and stages that they have made. The possibilities are endless.
Follow Character tutorial for help.
Examples
A version called USF-teddy will use sweet characters made with Inkscape. See User_talk:Doudoulolita for details
Data
Entire tournaments (pools, tourney matches, friendlies, times, results, statistics, etc.) can be recorded seemlessly over the network and stored in a database. Videos could be automatically uploaded to your YouTube account.
Artificial Intelligence
Narrow or general AI could be implemented.
Primitive (narrow) AI could be written in a simple manner, and will allow for simple/repetitive training AI (a dogdy/escapist/campy/opportunistic AI, an aggressive/0-death AI, etc).
General AI could be implemented via OpenCog, and would allow one to create an AI that can play any character well. It is also possible to somehow have an AI read a history of gameplay footage of yourself, and then "learn" how you play, allowing you to play against yourself.
Dynamic visual effects
Algorithmically change graphics based on situations, producing situational visualizations. Such visualizations are mathematically tied to the character/gameplay physics, and so don't distract or hinder gameplay, but actually accents it.
References
Smash technical terms - http://www.smashboards.com/showthread.php?t=42749








