mirror of
https://gitlab.com/drummyfish/anarch.git
synced 2024-11-22 00:42:16 -05:00
203 lines
10 KiB
Plaintext
203 lines
10 KiB
Plaintext
general:
|
|
|
|
- Architecture change: make platform files compilable and move main.c to game.h
|
|
(so that pokitto is .cpp, GB is .ino etc.).
|
|
- Rewrite python scripts to C (faster, less bloat).
|
|
- Try to recolor textures and give them a bit more of variety.
|
|
- Make monsters die when squeezed?
|
|
- On Win$hit builds display an anti-windshit text, by macro.
|
|
- 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
|
|
- compile on BSD and WinShit
|
|
- make SFML frontend
|
|
- port to GB Meta
|
|
- 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)?
|
|
- add time slowdown constant
|
|
- 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 robot deactivator item? (encourages "stealth" gameplay)
|
|
- optional graphics enhance: vertical wall shading ("ambient occlusions")?
|
|
- option for disabling wall transparency, for performance?
|
|
|
|
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.
|
|
|
|
- Long section under squeezer, player has to run and keep hiding in side rooms DONE
|
|
to not get killed.
|
|
- Elevator with 4 exits, on each world side. DONE
|
|
- Teleport to a football stadium outside? DONE
|
|
- Key to door that need to be unlocked can also unlock a door in previously DONE
|
|
visited area which will just hide secret.
|
|
- text on the wall -- some letter can be create- text on the wall -- DONE
|
|
some letter can be createdd
|
|
- Enemies can be placed on a single square higher fround to prevent their DONE
|
|
movement.
|
|
- Many teleports at place A and one teleport at place B, giving a low chance of DONE
|
|
reaching B: player has to gring teleports until randomly lands in B.
|
|
- Underground storage level start: be at the bottom of an elevator pit.
|
|
- ceiling with "holes" through which sky (background) can be seen -- can be done 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 DONE
|
|
side of the skyscraper
|
|
- two levels could partially overlap, e.g. level one, a city, could overlap DONE
|
|
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 kinda
|
|
- wall made of elevators (or squeezers), serving as a big auto-opening gate DONE
|
|
- 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 kinda
|
|
they're both moving down
|
|
- multiple doors in a row (can look interesting) DONE
|
|
- narrow (1 square wide) corridor filled with enemies blocking it
|
|
- narrow (1 square wide) corridor blocked by barrels that have to be exploded DONE
|
|
- teleport on elevator?
|
|
- teleport at the bottom of a 1 square narrow hole, by jumping into the hole DONE
|
|
the player gets teleported
|
|
- narrow corridor with elevator
|
|
- maze from walls and/or props DONE
|
|
- narrow bridge with platformer elements over a hole full of enemies kinda
|
|
- server room kinda
|
|
- 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 kinda
|
|
- 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 DONE
|
|
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 DONE
|
|
(for fun)
|
|
- exploders in a maze, hiding behind corners
|
|
- teleport leading to a center of big room full of enemies kinda
|
|
- easter egg -- a level that looks funny on the map, e.g. forms a text or a DONE
|
|
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 DONE
|
|
reached
|
|
- locked door that cannot be unlocked at the beginning of the level as a DONE
|
|
visual indication of entrance
|
|
- elevator in a narrow (1 square) vertical hole with doors at the top and DONE
|
|
bottom, looking like an actual elevator in buildings
|
|
- player goes through a difficult platformer section and at the end has to make DONE
|
|
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 are moving in a short vertical distance, DONE
|
|
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 DONE
|
|
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 DONE
|
|
level wall textures and then sing it for "fake" doors
|
|
- invisible bridge (perhaps not straight) made of blockers (invisible walls) kinda
|
|
over a hole, leading to an easter egg
|
|
- start of level: a corner blocked by an invisible wall, to indicate entrance DONE
|
|
- 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
|
|
- boss (the last one killed) should drop key card, for boss levels (hardcode).
|
|
- 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.
|
|
- easter egg(s)
|
|
- level 2D map (with revealing, bitmap), special key for quick displaying map
|
|
- add universal corpse sprite?
|
|
- if space left, try blurring (lerp) the level background, see how it looks
|
|
- replace textures in distace with constant color for performance (setting)?
|
|
- enemies close to a wall often don't get drawn
|
|
|
|
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
|
|
- open door by shooting at them?
|
|
- add jump pads?
|
|
- add "pletivo" transparent wall texture?
|