A remake of classic shot'em'up, bullet hell, Touhou games. Also a PoC of gint performances
Go to file
Darks 9ca4fd1d37
WIP
2020-10-24 10:54:54 +02:00
assets-cg Updated assets 2020-10-24 10:53:24 +02:00
assets-fx Trying to be original in this first commit msg. Joking 2020-05-29 16:14:52 +02:00
assets-raw Trying to be original in this first commit msg. Joking 2020-05-29 16:14:52 +02:00
include WIP 2020-10-24 10:54:54 +02:00
src WIP 2020-10-24 10:54:54 +02:00
.gitignore Updated .gitignore & cleaned build directory 2020-05-31 00:17:56 +02:00
Makefile Updated assets 2020-10-24 10:53:24 +02:00
Readme.md Added Readme 2020-10-24 10:48:32 +02:00
Touhou.g3a Worked on some tests. 2020-05-31 00:12:26 +02:00
assets.py Work on assets. Updated icon 2020-05-31 00:11:36 +02:00
project.cfg Updated assets 2020-10-24 10:53:24 +02:00

Readme.md

Gameplay

Witches

Before the game starts, the player can choose two witches between the 8 available. The first one is used on normal mode, the second on focused mode. Each witch has unique properties and sometimes a special effect.

Modes

There are two gameplay modes:

  1. Normal
  2. Focused

The "focus" mode is triggered by pressing KEY_OPTN. The effect disapears when the key is released. Focus mode with speed divided by two, some bullets are ineffective, and usually a fire power focused on a single stream. They may have a special effect

Speeds are in px/s (play area is 270×224).

Id Name Spe Pow Special
0 Reimu Hakurei 194 130 +10% power when focused
1 Marisa Kirisame 208 130 Attract bonus when on top of the screen
2 Sariel 241 Do not attract bullets when not focused
3 Koakuma +15% chance of getting a powerup
4 Iku Nagae Start with 4 bombs instead of 3
5 Sumireko Usami Wider fire angle when not focused
6 Hina Kagiyama +10% power when not focused
7 Kurumi

Power & fire

Power can go from 1 to

A bullet_t is always launched by the player. Else it's an enemy_t (even if it's an enemy bullet)

Powerups

There are 2 kinds of powerups: small ones and big ones. Small ones increase power by 1, big ones by 5.

Code architecture

Global vars

  • uint32_t us_elapsed: μs elapsed during the last frame
  • uint32_t frame: number of frames elapsed since the beginning of the game
  • player_t *player: general information about player
  • difficulty_t difficulty: the chosen difficulty of the game
  • bullet_t *bullets: the bullets sent by player

Objects

object_t is an object linked to physic or an updater. This means that an enemy as well as a bullet can be objects.

Object updater

An object updater is a function applied to an object. Its protoype must follow this: void f(object_t*). Due to the complexity of the game, it may use frame, us_elapsed; but it could also use player, difficulty or other global variables.