Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Porklike GB: Difference between revisions

From GameBrew
(Created page with "{{Infobox GB Homebrews |title=Porklike GB |image=porklikegb.png |description=Game Boy Port of Lazy Devs' Porklike. |author=binji |lastupdated=2023/07/26 |type=Role Playing |version=1.0.12 |format=CGB, DMG |license=MIT |download=https://dlhb.gamebrew.org/gbhomebrews/porklikegb.7z |website=https://binji.itch.io/porklikegb |source=https://github.com/binji/porklike.gb |donation= }} {{#seo: |title=GameBrew |title_mode=append |image=porklikegb.png |image_alt=Porklike GB }} Thi...")
 
 
(5 intermediate revisions by 2 users not shown)
Line 2: Line 2:
|title=Porklike GB
|title=Porklike GB
|image=porklikegb.png
|image=porklikegb.png
|description=Game Boy Port of Lazy Devs' Porklike.
|description=Game Boy Port of Porklike by Lazy Devs.
|author=binji
|author=binji
|lastupdated=2023/07/26
|lastupdated=2024/10/13
|type=Role Playing
|type=Role Playing
|version=1.0.12
|version=1.0.13
|format=CGB, DMG
|format=CGB
|license=MIT
|license=MIT
|download=https://dlhb.gamebrew.org/gbhomebrews/porklikegb.7z
|download=https://dlhb.gamebrew.org/gbhomebrews/porklikegb.7z
Line 20: Line 20:
|image_alt=Porklike GB
|image_alt=Porklike GB
}}
}}
This is a port of [https://krystman.itch.io/porklike Porklike], created by [https://twitter.com/krystman Krystian Majewski], to the original Game Boy.
This is a port of [https://krystman.itch.io/porklike Porklike], created by [https://twitter.com/krystman Krystian Majewski], to the original Game Boy. The Game Boy port was made by Ben Smith in GBDK2020 in C, with some hand-written assembly.


The Game Boy port was made by Ben Smith for Game Boy Competition 2021, written in GBDK2020 in C, with some hand-written assembly.
It was submitted to the Game Boy Competition 2021 (Game).


== Installation ==
== Installation ==
Line 51: Line 51:


== Changelog ==
== Changelog ==
'''v1.0.13'''
* Fixes:
** Bombs replace unspecial floor tiles with rubble.
** Scorpions only blind you for 29 turns.
** Don't allow AI movement when stepping on stairs.
** Keep player correct color when stepping on saw.
** Don't allow targeting outside of bounds.
** Show target sprite on bottom row.
* Improvements:
** Add restart menu.
'''v1.0.12'''
'''v1.0.12'''
* Upgrade to newer gbdk.
* Upgrade to newer gbdk.
 
* Fixes:
Fixes:
** Fix gbc rom so it works again.
* Fix gbc rom so it works again.


'''v1.0.11'''
'''v1.0.11'''
 
* Fixes:
Fixes:
** Exclude CGB code from .gb file, so it works properly on CGB devices
* Exclude CGB code from .gb file, so it works properly on CGB devices


'''v1.0.10'''
'''v1.0.10'''
 
* Fixes:
Fixes:
** Fix GBC palette fading; without this, the game doesn't run properly on accurate emulators/hardware.
* Fix GBC palette fading; without this, the game doesn't run properly on accurate emulators/hardware.


'''v1.0.9'''
'''v1.0.9'''
 
* Fixes:
Fixes:
** Update fogged/invisible mobs so their x/y position is updated, and they perform triggers. This makes invisible ghosts flash in the correct place when you kill them.
* Update fogged/invisible mobs so their x/y position is updated, and they perform triggers. This makes invisible ghosts flash in the correct place when you kill them.


'''v1.0.8'''
'''v1.0.8'''
 
*Fixes:
Fixes:
** Fix some sight bugs when blinded:
* Fix some sight bugs when blinded:
*** Normally all 4 squares around you are unfogged. Then if any of those squares is not "opaque" then it unfogs any walls nearby. The code unfog the wrong neighbors.
** Normally all 4 squares around you are unfogged. Then if any of those squares is not "opaque" then it unfogs any walls nearby.
*** Check whether surrounding squares are in bounds (otherwise will wrap to other side).
the code unfog the wrong neighbors.
*** Monster's vision was accidentally seeing through walls when you're blind.
** Check whether surrounding squares are in bounds (otherwise will wrap to other side).
** Monster's vision was accidentally seeing through walls when you're blind.


'''v1.0.7'''
'''v1.0.7'''
 
*Fixes:
Fixes:
** Disable start button as cheat to skip levels.
* Disable start button as cheat to skip levels.
** Place chests properly (proper fix for v1.0.6).
* Place chests properly (proper fix for v1.0.6).
** Only repeat direction buttons and A, not B/select/start.
* Only repeat direction buttons and A, not B/select/start.
*Improvements:
 
** Implement gameboy color version.
Improvements:
* Implement gameboy color version.


'''v1.0.6'''
'''v1.0.6'''
 
*Fixes:
Fixes:
** Pack enemies into plant rooms if they can't all fit in other rooms.
* Pack enemies into plant rooms if they can't all fit in other rooms.
** Fix infinite loop trying to place a chest in a 3x3 room that already contains the entrance stairs.
* Fix infinite loop trying to place a chest in a 3x3 room that already contains the entrance stairs.
*Improvements:
 
** Increase the maximum number of mobs to 40.
Improvements:
** Reduce the number of disjoint sets to 52.
* Increase the maximum number of mobs to 40.
* Reduce the number of disjoint sets to 52.


'''v1.0.5'''
'''v1.0.5'''
 
*Fixes:
Fixes:
** Floor 0 would be filled with random mobs when dying while blinded and restarting.
* Floor 0 would be filled with random mobs when dying while blinded and restarting.
*Improvements:
 
** Added a wurstchain. This keeps track of how many times you've beaten the game in a streak. After you beat the game, your streak will be saved, but as soon as you open up the chest on floor 0, your save will be deleted! You have to beat the game again before it will be saved.
Improvements:
* Added a wurstchain. This keeps track of how many times you've beaten the game in a streak. After you beat the game, your streak will be saved, but as soon as you open up the chest on floor 0, your save will be deleted! You have to beat the game again before it will be saved.


'''v1.0.4'''
'''v1.0.4'''
 
*Fixes:
Fixes:
** Fix bug when grappling to map extents. Now you go all the way to the wall.
* Fix bug when grappling to map extents. Now you go all the way to the wall.
** Fix bug where mob AI is skipped. If a mob was stunned and died in the same turn, it would pass the stun to the mob that took its slot.
* Fix bug where mob AI is skipped. If a mob was stunned and died in the same turn, it would pass the stun to the mob that took its slot.
** Fix <code>is_valid()</code> function so it works correctly. Now a pickup will drop as close as possible to the chest it came from. It can also land in the upper-left corner.
* Fix <code>is_valid()</code> function so it works correctly. Now a pickup will drop as close as possible to the chest it came from. It can also land in the upper-left corner.
*Improvements:
 
** Better randomization of level. Mix in entropy on level 0 so levels 1-9 are more random.
Improvements:
** Add a joypad repeat rate and buffered input, like the original porklike.
* Better randomization of level. Mix in entropy on level 0 so levels 1-9 are more random.
** Big optimization to the <code>sight()</code> function, so it runs ~3x faster in some cases.
* Add a joypad repeat rate and buffered input, like the original porklike.
* Big optimization to the <code>sight()</code> function, so it runs ~3x faster in some cases.


'''v1.0.3'''
'''v1.0.3'''
 
*Fixes:
Fixes:
** Clear DALIGNED and DATA areas on startup. This way emulators that randomize memory will work properly.
* Clear DALIGNED and DATA areas on startup. This way emulators that randomize memory will work properly.


'''v1.0.2'''
'''v1.0.2'''
 
*Improvements:
Improvements:
** Some small optimizations to enemy movement AI.
* Some small optimizations to enemy movement AI.


'''v1.0.1'''
'''v1.0.1'''
 
*Fixes:
Fixes:
** Don't generate levels where the rooms (and gate) are not connected. This prevents generating unwinnable levels.
* Don't generate levels where the rooms (and gate) are not connected. This prevents generating unwinnable levels.
** Fix unfortunate variable reuse in voids(), which prevented some void regions from being created.
* Fix unfortunate variable reuse in voids(), which prevented some void regions from being created.
** Fix gate map 5, which was being placed at the wrong location in the map (needed to be moved down two cells).
* Fix gate map 5, which was being placed at the wrong location in the map (needed to be moved down two cells).
** If it's not reset, the pickup can be used after gameover, or if it has been exhausted.
* If it's not reset, the pickup can be used after gameover, or if it has been exhausted.
*Improvements:
 
** calcdist_ai() is faster, should help make mob AI's move more quickly.
Improvements:
** Use Left+Start on the equipment screen to display the current level's random seed. This is useful in case bad levels are generated, I can recreate them locally.
* calcdist_ai() is faster, should help make mob AI's move more quickly.
* Use Left+Start on the equipment screen to display the current level's random seed. This is useful in case bad levels are generated, I can recreate them locally.


'''v1.0.0'''
'''v1.0.0'''
Line 165: Line 157:
* gbdev.io - https://gbdev.io/gbcompo21.html
* gbdev.io - https://gbdev.io/gbcompo21.html
* GitHub - https://github.com/gbdev/gbcompo21
* GitHub - https://github.com/gbdev/gbcompo21
[[Category:Game Boy Competition 2021]]

Latest revision as of 11:48, 9 November 2024

Porklike GB
Porklikegb.png
General
Authorbinji
TypeRole Playing
Version1.0.13
LicenseMIT License
SystemCGB
Last Updated2024/10/13
Links
Download
Website
Source

This is a port of Porklike, created by Krystian Majewski, to the original Game Boy. The Game Boy port was made by Ben Smith in GBDK2020 in C, with some hand-written assembly.

It was submitted to the Game Boy Competition 2021 (Game).

Installation

This game is playable in the browser or by downloading the ROM on itch.io.

User guide

Porklike is a classic, turn-based Roguelike with minimalist lo-fi aesthetic. Enter the tower of Wurstlord. Can you make it to the top and steal his legendary Kielbasa?

9 floors of dangerous traps and enemies await you. Only if you move carefully and master your character's abilities will you become the champion of Porklike.

Controls

D-Pad - Move character

A - Inventory, Confirm

B - Cancel

Select -

Start - Start the game

Screenshots

porklikegb2.gif porklikegb3.gif

porklikegb4.gif porklikegb5.png

Changelog

v1.0.13

  • Fixes:
    • Bombs replace unspecial floor tiles with rubble.
    • Scorpions only blind you for 29 turns.
    • Don't allow AI movement when stepping on stairs.
    • Keep player correct color when stepping on saw.
    • Don't allow targeting outside of bounds.
    • Show target sprite on bottom row.
  • Improvements:
    • Add restart menu.

v1.0.12

  • Upgrade to newer gbdk.
  • Fixes:
    • Fix gbc rom so it works again.

v1.0.11

  • Fixes:
    • Exclude CGB code from .gb file, so it works properly on CGB devices

v1.0.10

  • Fixes:
    • Fix GBC palette fading; without this, the game doesn't run properly on accurate emulators/hardware.

v1.0.9

  • Fixes:
    • Update fogged/invisible mobs so their x/y position is updated, and they perform triggers. This makes invisible ghosts flash in the correct place when you kill them.

v1.0.8

  • Fixes:
    • Fix some sight bugs when blinded:
      • Normally all 4 squares around you are unfogged. Then if any of those squares is not "opaque" then it unfogs any walls nearby. The code unfog the wrong neighbors.
      • Check whether surrounding squares are in bounds (otherwise will wrap to other side).
      • Monster's vision was accidentally seeing through walls when you're blind.

v1.0.7

  • Fixes:
    • Disable start button as cheat to skip levels.
    • Place chests properly (proper fix for v1.0.6).
    • Only repeat direction buttons and A, not B/select/start.
  • Improvements:
    • Implement gameboy color version.

v1.0.6

  • Fixes:
    • Pack enemies into plant rooms if they can't all fit in other rooms.
    • Fix infinite loop trying to place a chest in a 3x3 room that already contains the entrance stairs.
  • Improvements:
    • Increase the maximum number of mobs to 40.
    • Reduce the number of disjoint sets to 52.

v1.0.5

  • Fixes:
    • Floor 0 would be filled with random mobs when dying while blinded and restarting.
  • Improvements:
    • Added a wurstchain. This keeps track of how many times you've beaten the game in a streak. After you beat the game, your streak will be saved, but as soon as you open up the chest on floor 0, your save will be deleted! You have to beat the game again before it will be saved.

v1.0.4

  • Fixes:
    • Fix bug when grappling to map extents. Now you go all the way to the wall.
    • Fix bug where mob AI is skipped. If a mob was stunned and died in the same turn, it would pass the stun to the mob that took its slot.
    • Fix is_valid() function so it works correctly. Now a pickup will drop as close as possible to the chest it came from. It can also land in the upper-left corner.
  • Improvements:
    • Better randomization of level. Mix in entropy on level 0 so levels 1-9 are more random.
    • Add a joypad repeat rate and buffered input, like the original porklike.
    • Big optimization to the sight() function, so it runs ~3x faster in some cases.

v1.0.3

  • Fixes:
    • Clear DALIGNED and DATA areas on startup. This way emulators that randomize memory will work properly.

v1.0.2

  • Improvements:
    • Some small optimizations to enemy movement AI.

v1.0.1

  • Fixes:
    • Don't generate levels where the rooms (and gate) are not connected. This prevents generating unwinnable levels.
    • Fix unfortunate variable reuse in voids(), which prevented some void regions from being created.
    • Fix gate map 5, which was being placed at the wrong location in the map (needed to be moved down two cells).
    • If it's not reset, the pickup can be used after gameover, or if it has been exhausted.
  • Improvements:
    • calcdist_ai() is faster, should help make mob AI's move more quickly.
    • Use Left+Start on the equipment screen to display the current level's random seed. This is useful in case bad levels are generated, I can recreate them locally.

v1.0.0

  • Initial Release for gbcompo21.

Credits

Porklike.gb was ported by Ben Smith, with permission from Krystian Majewski.

Porklike was written and designed by Krystian Majewski, an Independent Developer and the host of the Lazy Devs Academy video channel.

The music was composed by Sebastian Haßler, a music composer for film, TV and videogames.

The environment art and some characters were inspired by the work of the pixel artist @pixelartm and used with their permission.

The artwork of the enemies was inspired by the work of the pixel artist @kirai_s and used with their permission.

Please see the original pico-8 game at https://krystman.itch.io/porklike for more information.

External links

Advertising: