Wikia

Freeciv

Watchlist Recent changes

Mbook

174 Edits since joining this wiki
November 20, 2007

Contents

.planEdit

This is where I will try to note down the stuff I am currently working on or plan to work on in the future.

Bug reports and general fixesEdit

Move warclient to freeciv 2.1Edit

  • Port fair island generator. [in progress]
  • Port warserver voting code. [in progress]
→Implement warserver style command levels. [done GNA#13433 r15646 r15647]
→Port warserver voteinfo packets and client/server handlers. [done GNA#13515 r15672 r15675]
→Add helper utility function free_tokens(). [done GNA#13488 r15655]
→Add struct connection accessors conn_{get,is}_*().[done GNA#13490 r15656]
→Implement client voting GUI.
→Port /cancelvote command.
  • Implement delayed actions (generalized warclient delayed goto).
  • Implement mass airlifting.
→Server support.
→Client interface.
  • Maybe implement capability-based configurable traderoutes.
→Allow warserver formula to be used.
→Allow minimum trade distance to be 8.
  • Port /reset command.
  • Port simplified /autoteam command.
  • Implement fine grained yet convenient selection filters.
  • Port warclient caravan and spy default arrival actions.
→Make it more convenient than in warclient.
  • Port chat links.
  • Implement simpler and more easily configurable chat message colors.
→Server-side escape sequences for foreground and background color?
→Use capability to filter messages for old clients.

Finish the editor for freeciv 2.2Edit

  • Simplify copy and paste tool. [in progress]
→Remove copy/paste modes, replace by special tool. [done GNA#13715 r15761]
  • Make cursor hovering high light all tiles that would be affected by current brush?
  • Finish start position interface.
  • Finish property editor components.


User requests/wishlistEdit

Warclient experimentsEdit

  • Add /abort command (/set rated=0 + /endgame).
→Use SQL check+alter technique to automatically add an "abort count" to user records.
→Make the /stat command et al. display this new column if it exists.
  • Disallow changing rated if the minimum number of turns have been played.
  • Make quick select prefer units with full moves and full hp.
  • Make quick select cycle between all unit types, not just the first two units at the tile.
  • More efficient data structure for "unit list"?
  • "Fold" unit and city info packets sent to clients: the server handles all packets in that iteration of the select loop ("marking" changed entities), and then only creates and sends packets for the end results.
  • Reduce lag caused by observers by sending less information:
→Do not send unit orders.
→Do not send CMA/attribute stuff.
→Do not send city worklists.
→Do not send trade planning.
→Do not send combat information (just unit info/remove).
  • Deterministic combat.
  • Deterministic veterancy levels based on experience points.
  • Deterministic spy "combat", with the city itself having some natural "hit points".
→Cf. psyonic combat in SMAC.

Ruleset ideasEdit

  • Under-sea mines as counter to submarines.
  • Workboat as a marine worker.
  • Hot-air balloon: loses hp like helicopter, no attack (scouting).
  • Early ships can venture into deep water, but they lose hp helipcopter-style (deterministically).
  • Have better attacking/defending units or units with special abilities in outside branches (techs that do not allow more advanced techs) of the tech tree (cf. marines). Also perhaps for wonders, buildings, governments, etc.
  • Maritime explorer unit: catamaran.
  • F_INVIS: Unit is visible to enemy only when attacked.
  • F_CAPTURE: When unit wins an attack the defender is transferred to you.
  • F_NOREGEN: Unit does not regenerate hp.
  • F_BURNS: Unit loses hp if its hp is low.
  • F_DISBANDBONUS, 2x, 4x: Unit gives more shields when disbanded, i.e. 1 times, 2 times, or 4 times, its build cost.
→Really this should be a paramatrized effect or something so that the default disband rule can be generalized.
→Example: Oil Tanker built only in cities with Oil Refinery (which itself requires the oil special).
  • Monarchy gets extra food bonus to offset rep/demo rapture growth.
  • Monarchy gets specialist bonus to offset rep/demo trade income.
  • Emulate small wonders in 2.0 by making a building nreq itself?
→In 2.0 this is equiv_* fields.
  • Emulate sea specials (e.g. ocean irrigation = fishing boat) by terrain transforms?
  • Unit ability to repair/heal other units.
  • Communism gets a fanatic-like special unit (i.e. cheap soldier).
  • Communism gets a superspy unit, but it has high build and upkeep costs.
  • Make anarchy playable?
  • F_SCRAMBLE: When an enemy air unit attacks a city or airbase containing air units with this flag, the defenders automatically attack the enemy with the defenders disengaging with 1 hp if they die before the attacker does. The enemy attack then proceeds normally.
  • Technologies have bulb upkeep costs (suggest by Marduk on the longturn site).
→A player can have negative science when tech upkeep costs are subtracted from total bulb income.
→When tech upkeep cannot be met, the player loses techs starting from the more advanced ones and progressing "down" the tech tree.
  • Parameter to control how many units of a given type can "stack up" on a tile.
  • F_TRAPPER: When this unit hits an enemy, the enemy loses all movement points.

Future directionsEdit

  • Rewrite all gtk drawing code using cairo. [in progress, 60%]
struct sprite is implemented as cairo_surface_t.
→Speed up redrawing by using multiple map canvases, e.g. for terrain/resources, cities/terrain specials, units, interface overlays, etc.
  • Rewrite the entire codebase in c++? NO
→Check feasability, especially with respect to the client GUI.
  • Make map generator lua scriptable.
→Add abstract tilemap "class" for a rectangular region of virtual tiles.
  • Make AI lua scriptable.
  • Replace ruleset definitions and effect code by lua.
  • Use lua for customizable database access?
→Use LuaSQL.
  • Use lua for everything but the most time/resource critical code??
  • Use the internals of a revision control system (e.g. git) for efficiently encoding binary save files and replays?

Around Wikia's network

Random Wiki