mirror of
https://gitlab.com/drummyfish/anarch.git
synced 2024-11-22 08:52:17 -05:00
181 lines
8.4 KiB
Plaintext
181 lines
8.4 KiB
Plaintext
general:
|
|
|
|
- automatic tests: a frontend that will play the game, check the state, rendered
|
|
frames etc.
|
|
- weapon autoswitch: when a stronger weapon becomes available via picking up
|
|
ammo, maybe it should automatically be switched to (could have disable
|
|
setting)
|
|
- try to remove the debug flag (-g1) from compiler and see if it decreases size
|
|
- port to GB Meta
|
|
- music:
|
|
Probably just one long music track playing over and over -- KISS. The frontend
|
|
could have a callback function play_music_bar(n) which would be called by the
|
|
backend, the music track would be in sounds.h.
|
|
- level 2D map (with revealing, bitmap), special key for quick displaying map
|
|
- save/load (optional):
|
|
When a level is finished, the state at the beginning of the next one (health,
|
|
ammo, time, ...) is automatically saved and can be restored via load option in
|
|
the menu. This save as well as some other things (game progress, inagme
|
|
settings, ...) will be preserved even adter game restart if the platform
|
|
implements a saving function.
|
|
- more levels
|
|
- disable transparency for walls for performance (setting)?
|
|
- replace textures in distace with constant color for performance (setting)?
|
|
- add time slowdown constant
|
|
- if space left, try blurring (lerp) the level background, see how it looks
|
|
- some monsters could reflect plasma, i.e. not be hurt by it, but reflect it
|
|
back towards the player
|
|
- compile with different compilers (gcc, clang, musl, ...) and settings, make
|
|
a build script that creates multiple binaries (with different combinations of
|
|
compilers and settings)
|
|
- run on raspbery pi
|
|
- add jump pads?
|
|
- add robot deactivator item? (encourages "stealth" gameplay)
|
|
- add "pletivo" transparent wall texture?
|
|
- add universal corpse sprite?
|
|
- easter egg(s)
|
|
- optioal graphics enhance: vertical wall shading ("ambient occlusions")?
|
|
- option for disabling wall transparency, for performance?
|
|
- open door by shooting at them?
|
|
|
|
level ideas:
|
|
|
|
- outline:
|
|
1. City, player sees the big Macrochip building (a smaller one) in the
|
|
distance and has to get to its entrance. Beginning of the level is linear
|
|
and serves as a tutorial, things like exploding barrels or acess cards are
|
|
explained.
|
|
2. Inside Macrochip smaller building. End leads to an elevator that goes
|
|
under the ground.
|
|
3. Warehouse:
|
|
4. Factory:
|
|
5. Small boss level:
|
|
6. City, player is on the other side of the smaller Macrochip building, the
|
|
level partially overlaps with level 1, but the player can now go further.
|
|
Big Macrochip HQ (skyscraper) is seen in the distance, player has to get
|
|
to its entrance.
|
|
7. Inside skyscraper, 1st floor.
|
|
8. Inside skyscraper, higher floor.
|
|
9.
|
|
10. Final boss level: on top of the skyscraper, player climbs up in a spiral
|
|
towards the roof. There is a boss (or two) on the top with a few smaller
|
|
ones, the exit is blocked by a lot of trapped warriors which the player
|
|
has to slowly kill, which means he has to first get rid of the other
|
|
monsters.
|
|
|
|
- ceiling with "holes" through which sky (background) can be seen -- can be done
|
|
by having the ceiling texture set transparent and then alternating ceiling and
|
|
no ceiling
|
|
- boss level: skyscraper top, player goes upwards in a spiral along the OUTSIDE
|
|
side of the skyscraper
|
|
- two levels could partially overlap, e.g. level one, a city, could overlap
|
|
with a later city level, the player could recognize he's e.g. on the other
|
|
side of a channel or a wall that he was before
|
|
- invisible maze
|
|
- wall made of elevators (or squeezers), serving as a big auto-opening gate
|
|
- a key spot to which the player can only get by jumping from a distant high
|
|
elevated place
|
|
- player has to jump from one elevator to another, which can only be done when
|
|
they're both moving down
|
|
- multiple doors in a row (can look interesting)
|
|
- narrow (1 square wide) corridor filled with enemies blocking it
|
|
- narrow (1 square wide) corridor blocked by barrels that have to be exploded
|
|
- teleport on elevator?
|
|
- teleport at the bottom of a 1 square narrow hole, by jumping into the hole
|
|
the player gets teleported
|
|
- narrow corridor with elevator
|
|
- maze from walls and/or props
|
|
- narrow bridge with platformer elements over a hole full of enemies
|
|
- server room
|
|
- window (low unpassable ceiling) through which finish can be seen from the
|
|
start location of the level
|
|
- three locked doors in a row at the beginning of the level, the player has
|
|
to go to three different locations for each key -- a "hub" level
|
|
- office building
|
|
- plasma bots guarding a big stock (store) of plasma ammo
|
|
- warrior (enemy) right before the player at the start of the level
|
|
- T-shaped corridor in which two rocket-firing enemies stand facing each other
|
|
so that the player can kill them by stepping between them, letting them fire,
|
|
then stepping back, making them kill each other
|
|
- enemy trapped between barrels
|
|
- teleport that leads to another teleport which is on a single high elevated
|
|
square from which the player has to jump down and won't be able to return,
|
|
making it a de-facto one-way teleport
|
|
- teleports placed so that the player can shoot himself with a rocket or plasma
|
|
(for fun)
|
|
- exploders in a maze, hiding behind corners
|
|
- teleport leading to a center of big room full of enemies
|
|
- easter egg -- a level that looks funny on the map, e.g. forms a text or a
|
|
picture
|
|
- squeezers with low-elevated base (a hole), on a side of a corridor -- if the
|
|
player is curious and jumps in, he's doomed to die -- perhaps there can be
|
|
many of them while one is in fact an elevator, which the player has to spot
|
|
and take in order to advance
|
|
- bullet-shooting enemies behing windows (low ceilings) in rooms that can't be
|
|
reached
|
|
- locked door that cannot be unlocked at the beginning of the level as a
|
|
visual indication of entrance
|
|
- elevator in a narrow (1 square) vertical hole with doors at the top and
|
|
bottom, looking like an actual elevator in buildings
|
|
- player goes through a difficult platformer section and at the end has to make
|
|
a choice between going to the left and right by jumping in either direction,
|
|
takes card and has to go through the whole section again in order to also
|
|
take the other one
|
|
- big platform made of elevators that moving in a short vertical distance,
|
|
giving an impression of a shaking, unstable platform
|
|
- warrior and/or exploder right behing doors
|
|
- tight maze made of barrels filled with warriors in which the player has to
|
|
only use knife in order not to explode the barrels and hurt himself
|
|
- enemy on an elevator that doesn't stop at aligned with the floor, so that
|
|
the enemy is "trapped" on it and only appears briefly to shoot at the player
|
|
- barrel on elevator
|
|
- platforming vertical section in which the player is going upwards out of a big
|
|
hole
|
|
- level with a lot of closed doors, done by including a door texture in the
|
|
level wall textures and then sing it for "fake" doors
|
|
- invisible bridge (perhaps not straight) made of bleckers (invisible walls)
|
|
over a hole, leading to an easter egg
|
|
- start of level: a corner blocked by an invisible wall, to indicate entrance
|
|
- small pyramid from diffetently elevated floor tiles
|
|
|
|
bugs:
|
|
|
|
done:
|
|
|
|
- add headbob
|
|
- add blinking
|
|
- make zBuffer 8bit only?
|
|
- texture coords of floor walls should start from the floor? NO, CAUSES ISSUES
|
|
- vertical visual noise when standing on elevator
|
|
- sprite positioning inccuracy
|
|
- try to compress images: store images as 4 bits per pixel + 16 color palette
|
|
(subset of the 256 color palette), check if performance stays ok
|
|
- custom font
|
|
- make barrels explode
|
|
- enemies
|
|
- weapons
|
|
- sounds
|
|
- add enemy moving/dying sound
|
|
- create tables for monster and weapon stats in constants.h and read from that
|
|
instead of cheking with ifs
|
|
- check if monsters are hit by bullets from completely up close
|
|
- menu
|
|
- GUI
|
|
- make enemies not move through items:
|
|
create a 2D bit array saying at which squares there are colliding items, then
|
|
check collisions for both player and monsters against this array (elevate
|
|
these squares for collisions only) -- will also be faster
|
|
- more level prop items
|
|
- let player start with 100 HP, but allow for collecting a higher amount, e.g.
|
|
up to 150.
|
|
- limit maximum ammo amounts
|
|
|
|
scratched:
|
|
- try to make z-buffer 3 line instead of 1D, possibly like this (to keep
|
|
performance):
|
|
- at compile time selct X = power of 2 closest to vertical resolution
|
|
(or something like that)
|
|
- in pixel funct do something like
|
|
if (pixel->y % X == 0 && pixel->y != 0)
|
|
write to z-buffer
|