OpenArena
Advertisement

This page is dedicated to suggestions about improvements/new features that may be included into the next versions of the game. This is mostly a recap of what is suggested on the forums, let's try to maintain the two things synchronized.

Some things to bear in mind before suggesting:

  • Before adding your own suggestion check NOTTODO for stuff which won't ever be part of the game. This cannot be stressed enough, because most people tend to ignore the rules of the game's development while suggesting new features or changes to the existing ones. And this leads to drama.
  • Remember that this list is NOT a chatroom. Don't EVER post in first person or add smilies to an entry.
  • Also, go directly to the point. Don't add extra wording just so your entry looks cool. Avoid walls of text at all costs.
  • To report problems in features already implemented, there is the "Bugs" page instead.
  • Features requested here should be moved to the "Already implemented" section below when realized.
  • When the next official OpenArena release, containing them, is released to the public, those lines should be moved to the Wishlist/Archive page.
  • Rejected suggestions can be located at Wishlist/Rejected. Every rejected suggestion has another entry saying why it was rejected. This is in order to keep the page for viable ideas instead of entries contradicting each other.
  • Ideas for new maps and characters have their own pages: Map Ideas and Character Ideas.
  • If a suggestion can be made as an add-on to an existing gametype, put it in already implemented gametypes.

Suggestions for already implemented gametypes[]

Tournament[]

  • Roundlimit: a variable to limit the number of rounds.
  • Might use capturelimit, if set, to really end the match and move to the next map?

Capture The Flag[]

  • Direct mode: The flag automatically returns to the base when its flag carrier dies.
  • Protect mode: The enemy team scores when one of its members touches the enemy flag.
  • Return mode: The team must carry their flag back to the base, instead of it returning automatically.

One Flag CTF[]

  • Steal mode: 1FCTF variant where instead of delivering the flag to the enemy base, the team must deliver it to their own.

Harvester[]

  • An option to make the skulls spawn at a random place.

Elimination / CTF Elimination[]

  • Tune the bots in order to let them know that they're the last player on their team: in this case, they should go to get the enemy flag even if they were previously in defense, or get a frag.
  • Display a message on the screen in order to inform the player that they're the last reamining member of his/her team. Proposed here.
  • FreezeTag mode: A cvar where players are "frozen" instead of fragged, giving them the chance to be thawed by teammates. Thread on the forum and a newer one. github issue.
  • Showdown mode: (Elimination only) Items spawn in regular elimination, and players take turns picking up a spawn location before the round begins. Picked up items won't spawn again until the round ends. Inspired by UT4's Team Showdown mode.
  • Overcharge: 50 seconds before the round ends, a special item called "Overcharge" spawns in the map. The item grants extra speed, fully-loaded weaponry, full armory and full health to its carrier. It comes with a catch, though: after 15, 20 or 30 seconds, if the holder doesn't manage to win the round, they die. Also inspired in UT4's Team Showdown mode.
  • An option to play Elim/CTFE/LMS modes without removing items, either starting with base inventory (Quake III Revolution had a similar mode) or starting with elimination_ cvars weapon loadout. Read forum thread for detailed info.

Overload[]

  • Fighting game-like bars for each obelisk. Thread.

Suggestions for new gametypes[]

NOTE: When suggesting a new gametype, don't just place the gametype name or where it originates from, place as well a short description. Also, be realistic. There are good gameplay ideas which can be implemented without much effort, and ideas which are better suited for mods, such as SP with monsters or a RPG experience.

Single-player based[]

  • Challenges: A series of matches with different rules and goals to be achieved. Thread in the forum
  • Speedrun/Time Attack: Gives the player different challenges which should be completed in the shortest time possible, akin to Quake III: Team Arena. See here.
  • Test Your Luck: Features a five-slot machine, with the first two slots being for gametype and map, and the other three for different game modifiers. Depending on the settings, the players will always get different matches. Thread in the forum.
  • Zone Domination: A "Heroes and Heralds"-like team-based game. The player chooses 4 bots as his allies, bots also display their stats. The maps are distributed in squares. The objective is to conquer all the squares in the map. Thread in the forum
  • League/Cup mode: akin to real world tournaments, there's a number of teams sorted into small groups. These groups qualify two teams for the knockout phase, which declares a winner. Thread in the forum

Non-team based[]

  • King of the Hill: A gametype where players battle for controlling a central area. The one who wins is the one with the most amount of domination time. Thread on the forum.
  • Kill the flag: Variation of Possession. When the match begins, a player is selected by the server and becomes the flag carrier. When the flag carrier is killed by another player, the killer wins a point and becomes the new flag carrier. Alternatively, the first frag becomes the flag.
    • Mutant: Variation of the above, the first frag (or a player at random) becomes the Mutant, getting all of the powerups (sans Regeneration), all of the weapons, and full health and armor, but cannot pickup items and both health and armor decreases over time. For each frag, the Mutant gains 5 points. Fragging the Mutant gives the fragger 10 points.
    • Hide-and-seek: Variation where instead of becoming a flag carrier or a mutant, there's only one player carrying full armor at all time. Fragging him grants 10 points to the fragger. Thread on the forum.
  • Overdose: Mix of Mutant and Bombing Run. A ball spawns in the map. The ball gives its carrier the same benefits as being the mutant in Mutant, with the extra benefit of having no loss of health/armor. However it comes with a cost: a timer of 15 to 30 seconds appear in the HUD, and the ball carrier must deliver the ball to the goal in order to score points. If this timer runs out, the ball carrier dies, and the ball respawns at its original location. Entering to the goal with the ball grants 7 points, shooting the ball from afar grants 3 points.

Team, non base-based gametypes[]

  • Capture: There are several bases/flags on the map. To capture one of them, you need to remain enough near from it during a long enough time. Thread on the forum.
  • Hunt the flag: Multi-team mode, can be implemented with more than 2 teams. Each team has a flag carrier. The goal is to kill the enemy flag carrier and pick their flag before the enemy does. Similar to Nexuiz's "Key Hunt".
    • Kill The Leader: Variation of the above where the flag carrier has regeneration and all their weapons disabled, except the gauntlet.
  • Team Possession: Similar to Possession, but with teams instead of individual players.
    • Tackle: Variation similar to "QPong": players of a team have to take the ball and put it in opposite places in order to score, and they can pass the ball each other. Forum thread about it.

Team, base-based gametypes[]

  • Assault: A round-based team-based gametype where there are two teams: attackers and defenders. The maps are objective-based, and the attacking team must reach all of the objectives inside of the timelimit. Once a round ends, both teams switch positions, so the defenders become the attackers and viceversa. If the defending team completes all the objectives in this second round, that team wins.
    • Attack vs. Defense: An extension of the above, it's a CTF-based mode where a match has two rounds and where sides are switched (for asymmetric maps) Suggested here
    • Strike Elimination: Also related to Assault, players start with the Machinegun, and have buy zones for ammo, armor, items and weapons. The maps would also contain hostages, escapes and bombs.
  • Bombing Run: A gametype where two teams battle for a ball placed in the mid-area (maps using Harvester assets will do well for this) The ball must be carried to the enemy base, so it can be thrown in the enemy goal.

Team based (other)[]

  • Three/four/more team-based gametype variants, such as Four-Team Team Deathmatch or Four-Team Domination.
    • Another variant is to implement it with two cvars, including a game option (number of teams) and a list of colors; if there are less teams than colors, the first colors are used; if there are more teams than colors, the colors are used cyclically.
    • Current gametypes which can be compatible on-the-fly with more than 2 teams: Team Deathmatch, Elimination, Last Man Standing, Double Domination, Domination. Most non-base team-based gametypes are also compatible as well.

Modifiers[]

  • Consumption: gauntlet is disabled (all eventual other weapons which, like it, can infinitely be used without get ammo are also disabled). Ammo and weapon respawn are also disabled. The match/round ends when all the available ammo is used.
  • Mid-air damage only (a.k.a. "People can fly"): weapons hurt people only when they are not touching the ground. Forum thread.
  • Some more ways to make the game look less violent: see forum thread.
  • A cvar or dmflags to prevent health/armor from slowly going down to 100 (or what your base value is in case you use handicap). See forum thread.

Server stuff[]

Voting[]

  • Improve the callvote feature: a way to allow server admins to customize a table with the gametypes allowed for each map.
  • Implement a parameter to have the allowed callvote gametype list for a certain map set "automatically", reading from arenas.txt or .info files. Notice that it would need some additional checks (when the next map of the rotation script is loaded): please read this and the following posts.
  • callvote for capturelimit: Capturelimit is very similar to fraglimit and timelimit. It should be integrated with the standard votes. Maybe allowed values limits, like now there are g_voteMaxTimelimit, g_voteMinTimelimit, g_voteMaxFraglimit, g_voteMinFraglimit, may be added, too. See also here.
  • The ability to refuse voting for the same fraglimit / timelimit (e.g. if the current timelimit is 20, making a vote to set it to 20 sounds useless, and thus may be not allowed.)
  • When a vote for nextmap is called, the name of the next map should be displayed in the vote string.
  • Maybe there could be a challenge voting between the next two maps on the rotation taking place between the end of a game and mapchange:
    You want to play map#1 (vote yes) or map#2 (vote no)?
  • callvote for bots' number and skill.
  • Adding a specific vote, independent from classic "/callvote kick", like "/callvote kick_allbots", without having to setup custom votes for it. Another possible solution may be disallowing usage of names like "all" and "allbots", then re-enabling original vote behavior. See related forum thread.[1]
  • It may be nice to print voting results may be nice. E.g. "Vote passed." may become "Vote passed. Yes: 5, No: 2, Null: 1, Required: 3." See also this "Issue" on Github.
    • It may also be nice to mention the case "light voting" (dmflags 512) is on.

Misc[]

  • Enlarge the space available for "sets" variables: "sets" variables are those which are set by the server admin and which the user can see by using "serverinfo". This would allow server admins to publish more info that would be useful for players to know. The only drawbacks are that it may require a protocol change, and there is the need to think if it would break compatibility with third party tools. See here on the forum.
    • Alternatively, a brand-new system (like a new client command) to query such server settings, with less network compatibility problems. Which variables to be published (mainly, game settings) could be chosen by server admin or by the developers, talking with the community. See here on the forum also for this.
  • About network protocol, it has been pointed out that newer versions of ioquake3 use "DarkPlaces" heartbeat string, that contains a "gamename" key the the master server uses to understand what game is running your server. This one and more reflections about new ioquake3 protocol, OpenArena and dpmaster co-existence (and IPv6 server listing!), with some suggestions, are explained by smcv (ioquake3/OA/Q3 Debian maintainer) in this thread on the forum. It is advisable for developers to check it out, especially if planning a network protocol change.
  • With a static map rotation the server could tell the next map quickly after a game ended.
  • Limit connections per IP. (There is a guy that sometimes consumes all open slots with fake logins and redoes when dropped out.) This should be somehow configurable, considering that there are cases of players sharing the same IP (NAT), and sometimes even the same machine (spectating to record demos).
  • Allow server admin to "pause" the game (may be useful on LAN).

GUI[]

General[]

  • Achievements section.
  • Add a message in the console or in the GUI that would explain to the user what he should do to make bloom work. With OpenArena 0.8.8 executables, bloom effect is automatically disabled if r_texturebits is not set to 32. The default r_texturebits value (0) is not enough to use bloom, one needs to force it to 32 or bloom will be automatically disabled. The problem is that the GUI does not tell people what they have to do to use bloom, and the console even prints a misleading message.
  • Allow to abort the loading of a map instead of returning to main menu after the loading is finished.
  • Give a clear message: You need version X to play on this server. instead of something about .pk3 files.
  • When someone connects to a server and does not have a required file, and may download it from the server if he would enable autodownload, the message should be clear and advise the opportunity to enable autodownload. Thread on the forum.
  • A pause/continue button in the download screen.
  • The ability to change/disable the background cinematic of the download screen. (at least able/disable)
  • When pressing tab, show how many frags per playtime the players have. This would make comparing scores easier.
  • Currently (OA 0.8.8), the bots specified in .arena or arenas.txt files are applied to "teamless" modes only, while all "team-based" modes (most OA modes!) ignore this and all maps show the same default bots in the GUI when creating a Skirmish match. Maybe this may be fixed in some way, keeping an eye on backwards compatibility (to do not make old versions/mods completely fail interpreting the .arena file). See here on the forum.
  • A sort of "color picker" in "Player Settings" menu, to help people to color their nickname. Idea suggested by yleri on Discord. This may also help them to learn usage of text color codes.
  • Somehow showing both short and long mapnames in the menus. Github issue.

HUD[]

  • Allow the players to show the picked up item info and weaponbar at the same time. Currently, when the weapon bar is shown, the name of the item you just picked up is not shown. Thus, if cg_alwaysweaponbar is enabled, you would never see the infos about the item you just picked up. See also here, here and following (here you can see a comparision with OSP HUD).
  • As you can see playing an old mod, in Quake3 the name of the weapon you select is drawn just above the weapon bar. In OpenArena this does not happen. Is it possible to restore that info? Maybe using smaller fonts than in the past, if the problem is that it consumed too much space or was too distracting. Note: maybe the name may "fade away" after you complete weapon selection even if you are using cg_alwaysweaponbar.
  • Adding cg_drawtimer 2 to act as a countdown instead of countup, in case a timelimit is set. See forum thread.
  • Adding an option to see your computer time (clock) on screen. See forum post.

Console[]

  • "mute" command for ignoring (as in, not seeing) text messages from specific player(s).
  • \time command showing the system time of the computer (or updating g_timestamp locally and printing out)
  • \mapcycle showing the mapcycle of the server to the player. Or \nextmap telling the player the next map to come.
  • \checkcompat <map name> <gametype> to check the if the a map is actually compatible with a gametype (e.g. in open arena 0.8.8, oa_shouse is theorically compatible with the gametype domination (appear for this gametype in the skirmish menu) but is technically incompatible with (no domination point) while slimefac is theorically incompatible with this gametype (doesn't appear for this gametype in the skirmish menu) but is technically compatible with (have three domination points when the gametype is domination)) and, if they are not compatible, if it possible to make compatible the map with the gametype at adapting its stuff (e.g. obelisks instead flags).
  • A way to change console font size, to compensate the fact that at high resolutions, the console (and console feedback lines in upper left corner) text looks very small. Forum thread. Quake3e engine fork already has got a cvar the console part (but that project doesn't modify gamecode, so it doesn't apply to upper left corner text).
  • Adding descriptions for CVARS, to allow users to have basic infos about usage (including infos about specific values) without having to search them here on the wiki... probably something like that has been done in Quake3e. It might be useful, but PROs and CONs have to be evaluated, see forum thread.
  • Adding support for some randomness in map rotation scripts, as in being able to alternate some "fixed" maps to some randomly selected from a list (e.g. first wrackdm17 then oa_shouse, then one randomly chosen between mlca1, oa_dm1 and oa_dm2, then oa_dm4 then one randomly chosen between oa_koth1 and oa_koth2, then oa_minia... and so on). The result would be something between classic map rotation scripts and a complete random system such as g_autonextmap. Idea suggested by yleri on Discord.

Options[]

  • Add /cg_weaponBarStyle to the menu. Also /cg_alwaysweaponbar in menu.
  • Add a short description for "Crosshair shows health": When it's enabled, the selected crosshair colors are ignored.
  • Powerup descriptions, under the "Statistics" menu. Thread in the forum.
  • Before entering the Setup select for what gametype you want to change the setup (current, all, baseoa, CTF, ...)
  • A cvar, linked to the \checkcompat suggestion, to try to adapt (or not) the map stuff if the curent map and the current gametype are technically incompatible.
  • Add an option to enable GLSL support in the menu. The variable r_ext_vertex_shader could still be set to 0 by default for compatibility reasons, but it should be comfortably reachable. See also here.
  • Other than simply turning Bloom on/off, its menu option could have four values "disabled/classic/cascaded blur 1/cascaded blur 2", controlling both r_bloom and r_bloom_cascade variables. OA 0.8.8 only has original and "cascaded 1" bloom... "cascaded 2" version has been proposed after 0.8.8, and maybe it's not even in the SVN and test binaries yet (I don't know)! Forum thread about "cascaded blur 2" here.

Server browser[]

  • The ability to search a player with his nickname, when playing multi-player.
  • The ability to filter or show the name of the mod in use on each server. See here.
  • The ability to filter low ping only servers. Show/hide them, like with the full, empty and private servers.
  • The ability to see server address. This may be achieved by using a status line to show the address of the currently highlighted server, for example.
  • Adding a button to be able to show "serverstatus" infos for the currently selected server, without the need to join it. That would simply execute the /serverstatus <address:ip> command and show the output in a dialog window.
  • Allowing people to know how many favorites slots are used (e.g. 3/16). Also showing an error message if trying to add a new favorite when all fav slots are already used would be important.
  • The ability for users to create a "blacklist" of servers which one may want hide from the list (with an apposite "show/hide/include blacklisted" button?) may be an interesting new feature for the server browser. See here.

Controls[]

Engine[]

  • Implementing a DRR (Dynamic Resolution Rendering) system to automatically have the game alter 3D rendering resolution in order to keep framerate more constant (losing some quality in exchange of framerate, when needed). This would be achieved by rendering 3D world into a texture. See forum thread.
  • Implementing supersampling anti-aliasing method. Mentioned in this forum thread.
  • Improving/allowing compatibility with some mods designed for Q3A which search for specific Q3 "models" for specific character "classes" (such as ARQ or Hunt mods). Probably, models (and skins?) are the most important, but maybe also a replacement/aliasing system for bots and maps may be welcome.
  • It might be possible to increase the speed of http downloading, from round 2MB/s to around 60MB/s, see here and here.

Other[]

  • Integrating server-side demos in official OpenArena, removing the need of using unofficial executables. Forum thread
  • Trying to find a way to make demos more portable between different OpenArena versions. One of the threads mentioning it.
  • Integrating some kind of anti-cheat system.
  • An option for autodownload only free stuff (a client option to choose if download anything or only "free" stuff). That would likely mean to create a standard for specifying licensing infos in PK3 files. (This option should probably be disabled by default, because all old stuff, including Q3 maps and mods, would not contain such licensing info). See forum thread.
  • PGP signed downloads. In a world where cyber security is menaced even from governments, verifying that official OA binaries are unaltered may help. Important for those who care about privacy most. See forum thread.
  • Teaching bots to strafe jump. This may make them more human-like. Also, "bot_strafejump" cvar to control the feature may be good.
  • Allowing maps to specify a GLSL postprocess program (e.g. a color correction shader). Forum thread.
  • Allowing server admins to optionally adding a "delay" of some seconds before "kill" command is executed (to prevent players from exploiting suicide in unfair ways). A DMFLAGS value may be enough, or otherwise a cvar to set the delay time. Forum thread.
  • Maybe adding a few new default key bindings, such as a key for "team chat"? See Forum thread.
  • Identifying "official" pk3 files so third-party ones in baseoa would be allowed to add new stuff but not to override stuff from official pk3 files, to prevent "bad" third party packs from breaking baseoa. That should not apply to mod folders. There should be some way to turn the check off for compatibility and development reasons. Forum thread.
  • Differentiating colors for red and blue obelisks/flag basements. Forum thread.
  • Teaching bots to shoot at shootable buttons. Forum thread.
  • A server option to prevent players from using thirdperson mode. Forum thread. An additional videoflags value, perhaps?
  • Optional "dodging" (e.g. double press a direction to perform quick lateral jump), maybe? Github issue.

Already implemented[]

Move here wishes that have already been implemented, but have not been yet released with an official OpenArena version. When the new OA version containing them will be released to the public, please move them to the Wishlist/Archive page.

  • Ability to "vote yes/vote no" from ESC menu, useful for devices which do not have F1/F2 keys. Github diff.
  • Possession: A gametype from Q3 Revolution, where the objective is to hold a flag for the most amount of time, or to reach the holdlimit. Thread on the forum.
  • Update the logo in the main menu (and, possibly, the intro video) with the new one. Thread on the forum.
  • Considering that it is not possible to expand maximum arenas.txt (and .arena) size without breaking compatibility with old mods, Sago theorized a system of additional files (example: mapname.info) that would allow to specify much more options than those possible in .arena files (example: map author, map description, a custom bot list depending from specific gametype). That system should allow much bigger sizes than arenas.txt (and still be done with a main file + additional files), and should allow to later add new "keys" without breaking compatibility. Check the posts following this one.
    • A similar thing may be done also for characters: Fromhell tested a biography section for OA3... one might allow third party people to create their own character biographies by supporting a "text file+image file" system that would be read by the Biography section. See also here.
  • Allow to set a "best weapon key" that would automatically switch to the available weapon most on the right side of your cg_weaponOrder list (see autoswitch weapons). See forum thread.
  • Maybe taking in account your cg_weaponorder variable also while having the "forced switching" due to "out of ammo"? See forum thread.
  • The text of the voting may be printed to console, to allow it to be logged. E.g. "PlayerOne called a vote." may become "PlayerOne called a vote: map wrackdm17." "Issue" on Github.
  • In harvester mode, a cvar where the skulls spawn right at the place where the player died, like Unreal Tournament III 's Greed mode. Achieved with g_harvesterFromBodies cvar.

External links[]

See also[]

Notes[]

  1. "/Callvote kick allbots" has been disabled (unless there is actually a player with that name, it returns "Cannot find the playername. Try clientkick instead."), along with "/callvote kick all", to prevent abuses (imagine a lamer player naming himself as "all" or "allbots" and then leaving the game on purpose when other players vote to kick him, causing the game to kick other characters instead). Workaround: server admins which want to kick all bots at once can do it directly themselves ("/kick allbots" or "/rcon kick allbots"), or can set up custom votes to allow players do it.
Advertisement