- Project stage: planning, following GBA tutorials
Game about sailor merchant.
- Faster Than Light: events
- Legend of Zelda: Minish Cap, Ragnarok Online: graphics look
- Skyrim: fast travel
- Animal Crossing + A Short Hike: speaking, quests, inventory
- characters
- farmer, blacksmith, monk, pirate leader
- procedurally generated global islands map & local maps
- perlin noice?
- tools
- upgrades: speed, durability
- items
- treasure maps, shovels
- localStorage?
- random events: pirates, food, poison
- pirate fight
- arcade
- dodging, selecting & throwing items at them
- different items have different effects
- item has durability, it loses 0-2 on throw
- auto-target (with select another target button)
- enemies
- health bars
- different abilities
- collectables
- possessions: cart, ship
-
size
128*128*4/8/1024=8 kbmapx2side map (256cells) =>x4size =>32kbmap- 8x8 tiles per map cell
- 16px tile
- GBA screen 160x128 = 10x8 tiles
- 256x8=2048 tiles map side
- move speed: 2 tiles/s
2048/2=1024seconds1024seconds/ 60 = 17minutes from side to side
-
ground tiles:
- 0 - deep water
- 1 - water
- 2 - sand
- 3 - swamp
- 4 - grass
- 5 - forest
- 6 - wood
- 7 - road/bridge (speed bonus)
- 8 - hill
- 9 - rocks
- 16 => 2^4 => 4 bits
-
buildings
- port
- monastery
- military outpost
- pirate bay?
- blacksmith
- herbalist
-
map objects
- mushrooms, herbals
- rare herbals respawn randomly on map on pick up. one rare herbal per land type
-
temples
- blessing: missing word to Bible verse / Bible quiz
-
(not stored, generated from random seed to save memory)
-
+-2 tiles shift on cells vertices
-
+-2 cell borders tiles shift
-
random objects are from seed) trees, decorations)
-
Also store random basis:
-
horizontal:
[0..255] 1..255random numbers (no zero) -
vertical:
256 1..255random numbers -
random seed basis:
0..555000? -
random_seed_for_cell(x,y) = (random_seed_basis + random_seed_for_cell_addition(x, y) % max_seed -
random_seed_for_cell_addition(x, y) = random_seed_horizontal_multiplier[x] * random_seed_vertical_multiplier[y] -
random seed for
[2, 1]vertex: same as random seed for[2, 1]cell (as for cell at right and below of this vertex) -
random seed for (x, y, x2, y2) border = (random_seed_basis + random_seed_vertical_multiplier[y] * random_seed_horizontal_multiplier[x]) % max_seed -
road: drawn on 4-5 columns 4-5 rows of cell always (?)
- is slow on gba and system time is not available on GBA, only on some cartridges
- ? array of shuffled integers 1..100 byte size integers
= 100 * 8 / 1024 = < 1 kb
- ? array of shifts 1..255 filled based on timing of first buttnons keypresses after game loaded
= 100 * 8 / 1024 = < 1 kb- timing is frame number. Button is multiplier