Games: Netrun: To Do and Ideas
Main |
About |
News |
Install |
To Do |
Contribute |
Links |
Netrun @
Sourceforge
- Neaten up this file (collapse duplicate entries).
- Automate it.
Stuff to...do. :) Hopefully, this file will contain a lot of features
prefixed with a 'D' for Done. (Yeah, right.) As you can see (unless you've
bee blinded by it), it's a bit of a batchelor pad in that it's very
disorganised. Help!
[add 'if you could contribute to shortening this...']
Hmm. I suppose the 'wishlist' for the project can be split up a number of
different categories. Major game features that go on the `press list', and
minor features that range between unfinished parts of bigger features,
things that are supposed to be taken for granted but aren't done, tweaks,
and bugs. Then, there's stuff that `will' be done, and things that
are on the 'idea' list - not confirmed if they're going to be used or not.
TODO
Running
- Fix descs
- [D] Let runner try to jack out in front of a program _without_ stealth.
Runners
- Daily maint or nearest - certain code called for each new day of play
(game startup for when the day now is greater than the last played day), as
listed:
- Bank interest.
- Random special events.
- All _servers_ wiped - effectively regenerate. (With different
layouts, deliberately.)
- Limit server runs per day, keep the competition a little more even.
- Allow _one_ rank upgrade OR _one_ hospital visit per day (related to
above).
- Deck upgrades: Move MAX_MU to 20 for, say, 50,000 cr. This causes the
programs displays to double in length, and the size of the desc window to
lower considerably.
- D Make hospital ask for the number of meat points to heal, and vary events
on both length of stay and runner's level.
- More messages for hosptal - varied by rank, condition, and how many meat
points the runner paid to get healed.
- ? Drugs?
Programs
- Stunner programs.
- Program masters being a linked list read from an external file.
Netspace
- Different (dynamic) alloc.
- Landmarks - Information Highways, runner's start position - for easier
navigation.
- A pull function.
- Visual indiciation on server's ICON of having run against it.
Servers
- Loading/saving
- A pull function.
- Layouts being randomly flipped or rotated for a bit of variety.
(server_init())
- Better names - most are just placeholders.
- More names.
- Names read from external file.
- Server layouts being a linked list read from an external file.
Rooms
- Loading/saving
- A pull function.
Spoils
- Variable amount for cheques (more reliable than info)
- D Better names for credit files - 'Cred Str 3'? Um, no.
- Start calling them something else, especially at the Autobank.
- Encryped spoils (2/3 of time, finally there's a use for decryption
programs)
ICE
- Corruption ICE
- Stunner ICE of various sorts
- Multiple ICE in a room
- Mobile ICE
- Loading/saving
- A pull function
- ICE masters being a linked list read from an external file.
ColoUr
- Implement it - via pr() much like as in Rom.
- Colour routines for 'bonding' with ch_type. Defines (#define L_VL
ACS_VLINE|COLOUR_PAIR(8) anyone?)
Dying
- Dying!
- Trauma Card
- Exit on death
- Obituary (high score of those deceased, and a daily/last-ten-deaths list)
- Suicide
Winning
- Winning!
- To be done from street - end the competition.
Manual
- Even the slightest bit of work on the manual!
- GPL
- A reasonably complete story
- Goal of the game
- Interface generalities
- ...
- Online help, perhaps context-sensitive(!).
Developement-internal
- Remove 'room' `API' (room_here(), for example).
- Make the remaining macros safer to use (parentheses around uses, the int
safeguard for foo(a++); )
- Developers docs.
- Detail pr().
- Use one of those utilities that automatically generate man page sources
to start off with...
- Log verbosity levels.
Utilities
- [D] Start using Repair util.
- [D] Implement buying and selling utils.
- [D] Viruscan util, antivirus util.
- Now make them useful. *yargh*
- Make utilities() put commas in, in the right places. It's been done.
]-*-[ TODO
Saving and loading
- I Implement reading and writing runner and server.
- I Implement saving games.
- D Ditch the main menu
- make things more like roguelikes, in that death ->
exit(), players saved in /usr/local/lib/netrun/krudat, etc.
- Dirty big problem - no facilites for player being NULL. If allocation
fails, it's going to crash.
- Fix the problem with game saving/loading - we want to be able to unload
and load the entire game _at will_. At the moment, we
can't do that.
- Server loading and saving.
- Better netspace loading and saving - rather than the extremely verbose
one-header-per-section, simply use two blocks of characters - one for type,
one for initials.
- Make the entire game work with server and runner being passed pointer
arguments.
Server-server netspace
- D Implement wandering around in server-server netspace. Needs a
running-internal boolean flag. (in_server)
- D Make walking into a NULL room put runner back in server->server netspace.
- Make the 'here:,north:,south:,east:,west:' fields in City Grid mode
static.
Terminal I/O stuff
- Scrap the non-ncurses mode
- Slot back in in a later version.
- [Use a boolean flag -> ANSI/non-ANSI mode like on BBS doors, unless
compiled w/o ncurses. (Or perhaps a different ANSI support sort of thing,
in future.)
- Implement a linear-output non-ncurses mode. (Another boolean - this one
for hotkey-style input.)
- '*' and word-wrap desc() -> use '%s' in more of the calls.
- D Make err put out to a logfile.
- Implement a SIGWINCH handler. Simple -> hang if screen size is < 80x25.
Player Interface
- D In non-running, put status line above err line -> Name, rank, credits, balance, loan, meat, rom.
- D Make it contextual - display deposit and loan in bank, utils in utils
shop, etc.
Banking:
- Finish unpaid-loan penalties.
- Processing fees for loans.
- Yeah, probably just a day's interest up front.
- D Networth function - loans can't be taken out without one.
- Randomise the exact amount of credit from a cheque - not quite so random as
info, but still randomized somewhat. Sometimes make them bounce.
ICE
- D Master list for ICE.
- Level 1 ICE frying decks? I don't think so.
- Multiple ice in a room - linked list.
Programs
- D Master list for programs
- D create_program() -> given a record, allocates and returns a program from that record.
- D find_program() -> find a record by name.
- D find_prog() -> find a record by strength and type. (Hope there aren't multiples.)
- Make program_no_use_netspace return a type name.
Servers
- D Server names and initials
- Now make them unique - encode them onto the map.
---***---
- The game balance sucks.
- D Make the log prefix times. Make bug() prefix BUG: to the log.
- Of things to do: Make all the functions that take a runner pointer as an
argument return on a bad pointer.
- Fix the two-hundred-character arbitrary limit on filenames. (Not to
mention other places, but that's a little more complex.)
- Speed and initiative.
- Make many of the functions use log() for more than via bug().
- D Make server_level_name a table.
- MU column when buying programs.
Original
Unfinished Major Features
- Nightly upkeep
- Resetting servers
- Bank interest
- `Special events'
- Player saving and loading (a la Angband)
[Top]
Unfinished Given Features
- Player manual - sound storyline, millions of other things
[Top]
Grand, Sweeping Ideas
- Server programs
- Multiple programs in a room.
- Server programs moving!
- Server programs attacking from adjacent rooms - make a more roguelike
interface.
- Spoils
- Spoils must be decryped before use.
- Tables
- Move all random text to files.
- Move all text tables to files.
- Move all tables to files.
- In-table descriptions for utilities, programs and ICE.
- Perhaps have a Help utility that is the only way to get these
descriptions?
- Program Types
- Server:
- Deck stunners (1d6 turns vs. armor)
- Personnel stunners (1d6 turns vs. rank)
- Player:
- CPU stunners (1d6 vs 2*server rank, only in unguarded CPU room,
programs get no actions)
- SCANNERS:
- Resolution - location
- Low (there is %s in an adjacent room)
- High (there is %s to the north and west)
- Resoluton - type
- Low (there is a program to the %s)
- Medium (there is an anti-program program to the %s)
- High (there is a DecKrash (STR 4 anti-deck program) to the %s)
- Resolution - distance
- Low (there is %s in an adjacent room)
- Medium (there is %s two to the north)
- High (there is %s to the north and west)
- Type
- Program
- Mappers (where's that CPU?)
- Spoils (where's the _money_?)
- Context-sensitive help (gack!)
- Port to DoS.
- Port to a windowing system, via windoze-and-X compatible API. (They
exist, of course they exist! :) )
- Replace some events with ANSI screens (or other graphics as
appropriate). Having nothing but a blank menu and a single line of text
cramped on the bottom of the screen whilst bumping up one's rank is a little
boring.
[Top]
Unfinished Small, Cryptic Things
- Implement the special events for update_day.
- Implement suicide (at home) and retire (on the street, once reached
MAX_RANK)
- Implement high-score board, hall of fame, obituary.
[Top]
Cosmetic
- Make hospital ask for the number of meat points to heal, and vary
events based both on length of stay and runner's rank.
- Better names for credit files.
[Top]
Death
- Implement dying!
- Implement the game unallocating the runner struct and going back to
the main menu when the runner dies. (Perhaps some sort of `rush to hospital'
deal. Ultra-expensive Tramua Card service, anyone?)
[Top]
[Top]
Utilities
- Make the Repair util give better output.
- Make the viruscan and antivirus utilities useful *argh*.
- Make utilities() put commas in at the right places.
[Top]
Saving and loading
- Implement saving and loading of game state on a user-by-user basis.
(/usr/local/lib/games/netrun/krudat/ (or whereever that sort of thing goes))
(No, not a memory-write hack, thanks. Besides, it wouldn't work properly.)
- Implement saving and loading of runner, programs, netspace, servers and ICE.
- Have the game read in files showing server layouts.
[Top]
Terminal I/O stuff
- Implement a linear non-curses mode.
- Implement a windowing version.
- Make err output to a logfile ($LIB/krudat.log).
- Implement a simple SIGWINCH handler - hang `till the screensize is >=
80x24. (25, but we've got a hack for xterms defaulting to 80x24.)
- Implement a complex SIGWINCH handler that will strip the left and
right columns and title bar, if need be.
[Top]
Banking
- Finish unpaid-loan penalties.
- Processing fees for loans.
- Randomize the amount of money from a cheque - make it slightly less
likely to be different, make it slightly more likely to bounce, and make it
less likely to cost the player more than it's worth.
[Top]
ICE
- Level 1 ICE frying decks? I don't think so.
- Make viruscan and antivirus utils useful.
- Stunning and glue programs.
[Top]
Programs
- Make program_no_use_netspace return a type name.
[Top]
Servers
- Make server names unique - encode them onto map.
[Top]
Strange
- Wierd programs and ICE.
- Ghost in the machine.
- Very black programs, and a fixer.
/* --------------------------------------------------------------------- */
Server run against today:
]J[
Runner's start position (no, it's not a trap):
...
.^.
/* --------------------------------------------------------------------- */
This page © Kevin C. Rudat, 2000. |
Last updated August 3, 2000. |
Read the disclaimer. | Sitemap.
Hosted at .