Skip to content

Commit

Permalink
Finish v4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
hsandt committed Sep 10, 2020
2 parents 519b191 + 15f0cea commit 640ec12
Show file tree
Hide file tree
Showing 38 changed files with 2,569 additions and 1,030 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ deploy:
provider: releases
api_key:
secure: bfXQQ0AXGHgXiq0xOxhYQ2AXX/flQnxJh/+eA/HUGfwdoPDq0QTdqFA/3jEMWkJSsFKEBVKDjJGCt24QPxUIjTu91r1wyCNdL2KlNfnogRjWAVutRZxB/OC2HWR3kJtPjkFQBCsOXHBxGI3hMJL7LWr5WfNsSGMbcRMfvphxFT3ER8XBHAUEJY6roITm6noHroqQt8Uye+0+rkGqJ8QslKRqq8qBZMZeOiOrh6SBdlhsGw0KqNno/dMXQxx2ZCrh/VUeWjNvxzXe/mZjfBPbhvyecN7jz+FytEdAhdt1Dy37hhyOAkDfxLGGsH1YAAfinH8uFwoSRo0MH8fuhdXpT7jUXuAgP9/RS0FEiZDdX+J/FdncCbnoDfE9B4Dt3L3srISeiNwxKK5sx2kzyWvftK30pV1+zEgnbVEKGPIIeGb5wYWSCmzHf+CfLMk+bzeznTrpo/irY/vjoRBefNaVWXqLygrNWxM1uIMJae+OA3MYeUSYd1lpCyRw98i3GC7si68M9OaDeLoDjnqOLqvhurB/RmLzCU7mCYipn2kxykAOdevWN73cyx9VhdFy2GPE5VDw6EO6ZQP04KaeYxP2pgR4ts2kYWpVvf1PGg+2yN4QMkVhrWV+6dG2jtUO0BrCqt5Tpw0I3C3aFmBjjzFBBuKsZpr2yUG3roxnu1Dhww0=
file: build/picosonic_v3.2_release.p8
file: build/picosonic_v4.0_release.p8
on:
tags: 'true'
skip_cleanup: 'true'
27 changes: 25 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [4.0] - 2020-09-10
### Added
- Character falls off wall or ceiling when running too slow
- Character sprite rotates gradually to be upward when airborne
- Character cannot intentionally move after losing ground (horizontal control lock)
- Stripped version of Angel Island Act 1 (replaces proto zone), skinning WIP
- Camera stops at stage boundaries
- Character cannot go past the left edge of the stage
- Ground tile detection system applied to loop: loop collision layer system allows character to run through it. Does not support going through loop twice in the same direction
- Background: sky, sea with light reflections, trees and leaves with parallax

### Changed
- Updated pico-boots to v1.0
- Snap character sprite angle to closest 45-degree step (closer to Sonic 1\~3 than Sonic Mania)
- Moved goal to stage right boundary
- Character spawns on ground on stage start
- Fixed air spin sprite angle being affected by previous rotation on ground
- Fixed pixel jitter when running on ceiling
- Fixed character landing inside slope
- Fixed character landing 1px above the ground
- Fixed collision mask on loop tiles

## [3.2] - 2020-08-25
### Added
- Loop quadrant system (walk at any angle, jump orthogonally)
Expand Down Expand Up @@ -97,8 +119,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Game: in-game: debug character flies X/Y on directional input, go back to title menu on reach goal
- Test: all busted unit tests in separator folder tests

[Unreleased]: https://github.com/hsandt/sonic-pico8/compare/v3.0...HEAD
[3.1]: https://github.com/hsandt/sonic-pico8/compare/v3.0-sprite-anim...v3.1
[Unreleased]: https://github.com/hsandt/sonic-pico8/compare/v4.0...HEAD
[4.0]: https://github.com/hsandt/sonic-pico8/compare/v3.1...v4.0
[3.1]: https://github.com/hsandt/sonic-pico8/compare/v3.0...v3.1
[3.0]: https://github.com/hsandt/sonic-pico8/compare/v2.3-sprite-anim...v3.0
[2.3-sprite-anim]: https://github.com/hsandt/sonic-pico8/compare/v2.2...v2.3-sprite-anim
[2.2]: https://github.com/hsandt/sonic-pico8/compare/v2.1...v2.2
Expand Down
16 changes: 9 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,27 @@ Works with PICO-8 0.2.0i and 0.2.1b.

## Features

Version: 3.2
Version: 4.0

### Physics

* Character runs on flat ground and slopes
* Character runs on flat ground, slopes, and through loops (WIP)
* Character is blocked by walls when running, walls and ceiling when jumping
* Character jumps with variable height
* Character jumps with variable height orthogonally to current ground
* Character preserves momentum on jumping and landing

### Rendering

* Character rendered with Idle and Spin static sprite, Run animated sprite
* Environment rendered with tilemap
* Character sprites: *idle*, *spin*, *run* cycle
* Midground plane: collision tiles and decorations
* Background planes: sky, ocean and trees moving with parallax

## Releases

You can directly download a released version of the game on the [releases](Releases) page, and run it with PICO-8 as you would normally with a downloaded cartridge.

Note that the cartridge formats .p8 and .p8.png cannot be run with a vanilla PICO-8 as they exceed the maximum token limit (8192). To play them, you need to patch your PICO-8 executable by following the procedure I described in [this thread](https://www.lexaloffle.com/bbs/?pid=71689#p).

## Build

Follow this if you want to build the game yourself.
Expand Down Expand Up @@ -68,8 +72,6 @@ Instead of the last instruction, you can also enter directly:

where BUILD_VERSION is set in `sonic-2d-tech-demo.sublime-project` as well as `.travis.yml`.

Note, however, that the current debug version is bloated and is likely not to run in a vanilla PICO-8 (due to the cartridge getting over the max token limit).

To play the release version (no debugging features, but more compact code and more likely to fit into a PICO-8 cartridge):

* `cd path/to/sonic-pico8-repo`
Expand Down
8 changes: 6 additions & 2 deletions build_game.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ build_output_path="$(dirname "$0")/build"
author="hsandt"
title="pico-sonic"
cartridge_stem="picosonic"
version="3.2"
version="4.0"

help() {
echo "Build a PICO-8 cartridge with the passed config."
Expand Down Expand Up @@ -76,13 +76,17 @@ if [[ $config == 'debug' ]]; then
elif [[ $config == 'debug-ultrafast' ]]; then
symbols='assert,deprecated,log,cheat,sandbox,ultrafast'
elif [[ $config == 'cheat' ]]; then
symbols='assert,deprecated,cheat'
symbols='assert,cheat,mouse,tuner'
elif [[ $config == 'ultrafast' ]]; then
symbols='assert,deprecated,ultrafast'
elif [[ $config == 'cheat-ultrafast' ]]; then
symbols='assert,deprecated,cheat,ultrafast'
elif [[ $config == 'sandbox' ]]; then
symbols='assert,deprecated,sandbox'
elif [[ $config == 'assert' ]]; then
symbols='assert'
elif [[ $config == 'profiler' ]]; then
symbols='profiler'
fi

# Build from main
Expand Down
6 changes: 4 additions & 2 deletions build_itest.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,13 @@ build_output_path="$(dirname "$0")/build"
author="hsandt"
title="pico-sonic itests (all)"
cartridge_stem="picosonic_itest_all"
version="3.2"
version="4.0"
config='itest'
# symbols='assert,log,visual_logger,tuner,profiler,mouse,itest'
# cheat needed to set debug motion mode
symbols='assert,log,itest,cheat'
# symbols='assert,log,itest,cheat'
# attempt to reduce char count (working at 64000 chars for now)
symbols='log,itest,cheat'

# Build from itest main for all itests
"$picoboots_scripts_path/build_cartridge.sh" \
Expand Down
2 changes: 1 addition & 1 deletion build_pico8_utests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ build_output_path="$(dirname "$0")/build"
author="hsandt"
title="pico-sonic pico8 utests (all)"
cartridge_stem="picosonic_pico8_utests_all"
version="3.2"
version="4.0"
config='debug'
symbols='assert,log,p8utest'

Expand Down
Loading

0 comments on commit 640ec12

Please sign in to comment.