Files
kenney-asset-scrapper/all_asset_infos.json
xiaomai ad4462ef8a refactor(core): replace JSON-based pipeline with MySQL database
This commit introduces a major architectural overhaul, migrating the data backend from a flat JSON
file to a relational MySQL database.

- Replaced multiple scraping scripts with a unified `main.py` that handles crawling, parsing, and
database synchronization.
- Introduced `mysql_helper.py` for robust database interaction with a connection pool.
- Added `queries.sql` defining the new database schema for assets, categories, tags, and changelogs.
- Removed all obsolete frontend code (v1, v2) and old scraping scripts.

This change provides a more scalable and maintainable foundation for managing asset data.
2025-09-14 23:11:00 +08:00

1 line
25 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[{'name': 'Mobile Controls', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/mobile-controls'}, {'name': 'City Kit (Industrial)', 'category': '3D', 'series': 'City', 'page_link': 'https://www.kenney.nl/assets/city-kit-industrial'}, {'name': 'New Platformer Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/new-platformer-pack'}, {'name': 'Coaster Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/coaster-kit'}, {'name': 'Minimap Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/minimap-pack'}, {'name': 'Mini Market', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-market'}, {'name': 'Toy Car Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/toy-car-kit'}, {'name': 'UI Pack - Pixel Adventure', 'category': '2D', 'series': 'UI Pack', 'page_link': 'https://www.kenney.nl/assets/ui-pack-pixel-adventure'}, {'name': 'Prototype Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/prototype-kit'}, {'name': 'UI Pack - Adventure', 'category': '2D', 'series': 'UI Pack', 'page_link': 'https://www.kenney.nl/assets/ui-pack-adventure'}, {'name': 'Pico-8 Platformer', 'category': '2D', 'series': 'Pico-8', 'page_link': 'https://www.kenney.nl/assets/pico-8-platformer'}, {'name': 'Train Kit', 'category': '3D', 'series': 'Transport', 'page_link': 'https://www.kenney.nl/assets/train-kit'}, {'name': 'Mini Characters 1', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-characters-1'}, {'name': 'Cursor Pixel Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/cursor-pixel-pack'}, {'name': 'Mini Arcade', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-arcade'}, {'name': 'Building Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/building-kit'}, {'name': 'Brick Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/brick-kit'}, {'name': 'Cursor Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/cursor-pack'}, {'name': 'Space Station Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/space-station-kit'}, {'name': 'Googly Eyes', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/googly-eyes'}, {'name': 'Yellow Paint Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/yellow-paint-pack'}, {'name': 'Input Prompts', 'category': '2D', 'series': 'Input Prompts', 'page_link': 'https://www.kenney.nl/assets/input-prompts'}, {'name': 'Mini Arena', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-arena'}, {'name': 'Fantasy UI Borders', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/fantasy-ui-borders'}, {'name': 'Monochrome Pirates', 'category': '2D', 'series': 'Monochrome', 'page_link': 'https://www.kenney.nl/assets/monochrome-pirates'}, {'name': 'Shape Characters', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/shape-characters'}, {'name': 'Pixel Platformer Food Expansion', 'category': '2D', 'series': 'Pixel Platformer', 'page_link': 'https://www.kenney.nl/assets/pixel-platformer-food-expansion'}, {'name': 'Pico-8 City', 'category': '2D', 'series': 'Pico-8', 'page_link': 'https://www.kenney.nl/assets/pico-8-city'}, {'name': 'Mini Skate', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-skate'}, {'name': 'Tiny Battle', 'category': '2D', 'series': 'Tiny', 'page_link': 'https://www.kenney.nl/assets/tiny-battle'}, {'name': 'Isometric Miniature Bases', 'category': '2D', 'series': 'Isometric Miniature', 'page_link': 'https://www.kenney.nl/assets/isometric-miniature-bases'}, {'name': 'Mini Dungeon', 'category': '3D', 'series': 'Mini', 'page_link': 'https://www.kenney.nl/assets/mini-dungeon'}, {'name': 'Tiny Ski', 'category': '2D', 'series': 'Tiny', 'page_link': 'https://www.kenney.nl/assets/tiny-ski'}, {'name': 'Conveyor Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/conveyor-kit'}, {'name': 'Tiny Town', 'category': '2D', 'series': 'Tiny', 'page_link': 'https://www.kenney.nl/assets/tiny-town'}, {'name': 'Platformer Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/platformer-kit'}, {'name': 'Minigolf Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/minigolf-kit'}, {'name': 'Pattern Pack Pixel', 'category': 'Textures', 'series': 'Patterns', 'page_link': 'https://www.kenney.nl/assets/pattern-pack-pixel'}, {'name': 'Pixel Platformer Industrial Expansion', 'category': '2D', 'series': 'Pixel Platformer', 'page_link': 'https://www.kenney.nl/assets/pixel-platformer-industrial-expansion'}, {'name': 'Pattern Pack 2', 'category': 'Textures', 'series': 'Patterns', 'page_link': 'https://www.kenney.nl/assets/pattern-pack-2'}, {'name': 'Pixel Platformer Farm Expansion', 'category': '2D', 'series': 'Pixel Platformer', 'page_link': 'https://www.kenney.nl/assets/pixel-platformer-farm-expansion'}, {'name': 'Animated Characters 3', 'category': '3D', 'series': 'Animated Characters', 'page_link': 'https://www.kenney.nl/assets/animated-characters-3'}, {'name': 'Sketch Desert', 'category': '2D', 'series': 'Sketch', 'page_link': 'https://www.kenney.nl/assets/sketch-desert'}, {'name': '1-Bit Input Prompts Pixel 16×', 'category': '2D', 'series': 'Input Prompts', 'page_link': 'https://www.kenney.nl/assets/1-bit-input-prompts-pixel-16'}, {'name': 'Marble Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/marble-kit'}, {'name': 'Planets', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/planets'}, {'name': 'Car Kit', 'category': '3D', 'series': 'Transport', 'page_link': 'https://www.kenney.nl/assets/car-kit'}, {'name': 'Block Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/block-pack'}, {'name': 'Tiny Dungeon', 'category': '2D', 'series': 'Tiny', 'page_link': 'https://www.kenney.nl/assets/tiny-dungeon'}, {'name': 'Graveyard Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/graveyard-kit'}, {'name': 'Fantasy Town Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/fantasy-town-kit'}, {'name': 'Food Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/food-kit'}, {'name': 'Blaster Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/blaster-kit'}, {'name': 'Survival Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/survival-kit'}, {'name': 'Sketch Town Expansion', 'category': '2D', 'series': 'Sketch', 'page_link': 'https://www.kenney.nl/assets/sketch-town-expansion'}, {'name': 'Splat Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/splat-pack'}, {'name': 'Scribble Dungeons', 'category': '2D', 'series': 'Scribble', 'page_link': 'https://www.kenney.nl/assets/scribble-dungeons'}, {'name': 'Board Game Info', 'category': '2D', 'series': 'Board Games', 'page_link': 'https://www.kenney.nl/assets/board-game-info'}, {'name': 'Monster Builder Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/monster-builder-pack'}, {'name': 'Board Game Icons', 'category': '2D', 'series': 'Board Games', 'page_link': 'https://www.kenney.nl/assets/board-game-icons'}, {'name': 'Pixel Platformer Blocks', 'category': '2D', 'series': 'Pixel Platformer', 'page_link': 'https://www.kenney.nl/assets/pixel-platformer-blocks'}, {'name': '1-Bit Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/1-bit-pack'}, {'name': '1-Bit Platformer Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/1-bit-platformer-pack'}, {'name': 'Micro Roguelike', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/micro-roguelike'}, {'name': 'Monochrome RPG', 'category': '2D', 'series': 'Monochrome', 'page_link': 'https://www.kenney.nl/assets/monochrome-rpg'}, {'name': 'Pixel Shmup', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pixel-shmup'}, {'name': 'Pattern Pack', 'category': 'Textures', 'series': 'Patterns', 'page_link': 'https://www.kenney.nl/assets/pattern-pack'}, {'name': 'City Kit (Roads)', 'category': '3D', 'series': 'City', 'page_link': 'https://www.kenney.nl/assets/city-kit-roads'}, {'name': 'City Kit (Commercial)', 'category': '3D', 'series': 'City', 'page_link': 'https://www.kenney.nl/assets/city-kit-commercial'}, {'name': 'Input Prompts Pixel 16×', 'category': '2D', 'series': 'Input Prompts', 'page_link': 'https://www.kenney.nl/assets/input-prompts-pixel-16'}, {'name': 'Pixel Line Platformer', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pixel-line-platformer'}, {'name': 'Retro Medieval Kit', 'category': '3D', 'series': 'Retro', 'page_link': 'https://www.kenney.nl/assets/retro-medieval-kit'}, {'name': 'Pixel Platformer', 'category': '2D', 'series': 'Pixel Platformer', 'page_link': 'https://www.kenney.nl/assets/pixel-platformer'}, {'name': 'Sketch Town', 'category': '2D', 'series': 'Sketch', 'page_link': 'https://www.kenney.nl/assets/sketch-town'}, {'name': 'Retro Urban Kit', 'category': '3D', 'series': 'Retro', 'page_link': 'https://www.kenney.nl/assets/retro-urban-kit'}, {'name': 'Simple Space', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/simple-space'}, {'name': 'Rolling Ball Assets', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/rolling-ball-assets'}, {'name': 'City Kit (Suburban)', 'category': '3D', 'series': 'City', 'page_link': 'https://www.kenney.nl/assets/city-kit-suburban'}, {'name': 'Playing Cards Pack', 'category': '2D', 'series': 'Board Games', 'page_link': 'https://www.kenney.nl/assets/playing-cards-pack'}, {'name': 'Sci-fi Sounds', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/sci-fi-sounds'}, {'name': 'Holiday Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/holiday-kit'}, {'name': 'Space Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/space-kit'}, {'name': 'Cartography Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/cartography-pack'}, {'name': 'Hexagon Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/hexagon-kit'}, {'name': 'Nature Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/nature-kit'}, {'name': 'Prototype Textures', 'category': 'Textures', 'series': '', 'page_link': 'https://www.kenney.nl/assets/prototype-textures'}, {'name': 'Scribble Platformer', 'category': '2D', 'series': 'Scribble', 'page_link': 'https://www.kenney.nl/assets/scribble-platformer'}, {'name': 'Interface Sounds', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/interface-sounds'}, {'name': 'Foliage Sprites', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/foliage-sprites'}, {'name': 'Animated Characters 2', 'category': '3D', 'series': 'Animated Characters', 'page_link': 'https://www.kenney.nl/assets/animated-characters-2'}, {'name': 'Impact Sounds', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/impact-sounds'}, {'name': 'Road Textures', 'category': 'Textures', 'series': '', 'page_link': 'https://www.kenney.nl/assets/road-textures'}, {'name': 'Animated Characters 1', 'category': '3D', 'series': 'Animated Characters', 'page_link': 'https://www.kenney.nl/assets/animated-characters-1'}, {'name': 'Toon Characters 1', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/toon-characters-1'}, {'name': 'Tower Defense Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/tower-defense-kit'}, {'name': 'Pixel Vehicle Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pixel-vehicle-pack'}, {'name': 'Background Elements Redux', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/background-elements-redux'}, {'name': 'Isometric Miniature Farm', 'category': '2D', 'series': 'Isometric Miniature', 'page_link': 'https://www.kenney.nl/assets/isometric-miniature-farm'}, {'name': 'Isometric Miniature Dungeon', 'category': '2D', 'series': 'Isometric Miniature', 'page_link': 'https://www.kenney.nl/assets/isometric-miniature-dungeon'}, {'name': 'Isometric Miniature Library', 'category': '2D', 'series': 'Isometric Miniature', 'page_link': 'https://www.kenney.nl/assets/isometric-miniature-library'}, {'name': 'Isometric Miniature Prototype', 'category': '2D', 'series': 'Isometric Miniature', 'page_link': 'https://www.kenney.nl/assets/isometric-miniature-prototype'}, {'name': 'RPG Urban Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/rpg-urban-pack'}, {'name': 'Racing Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/racing-kit'}, {'name': 'Furniture Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/furniture-kit'}, {'name': 'Pirate Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pirate-kit'}, {'name': 'Emotes Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/emotes-pack'}, {'name': 'Particle Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/particle-pack'}, {'name': 'Simplified Platformer Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/simplified-platformer-pack'}, {'name': 'Ranks Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/ranks-pack'}, {'name': 'Crosshair Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/crosshair-pack'}, {'name': 'Animal Pack Redux', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/animal-pack-redux'}, {'name': 'Fish Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/fish-pack'}, {'name': 'Top-down Tanks Redux', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/top-down-tanks-redux'}, {'name': 'Voiceover Pack (Fighter)', 'category': 'Audio', 'series': 'Voiceover', 'page_link': 'https://www.kenney.nl/assets/voiceover-pack-fighter'}, {'name': 'Platformer Pack Industrial', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-pack-industrial'}, {'name': 'Castle Kit', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/castle-kit'}, {'name': 'Sports Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/sports-pack'}, {'name': 'Sokoban', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/sokoban'}, {'name': 'Pirate Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pirate-pack'}, {'name': 'Tanks', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/tanks'}, {'name': 'Platformer Characters', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/platformer-characters'}, {'name': 'Holiday Pack 2016', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/holiday-pack-2016'}, {'name': 'Sci-Fi RTS', 'category': '2D', 'series': 'RTS', 'page_link': 'https://www.kenney.nl/assets/sci-fi-rts'}, {'name': 'Foliage Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/foliage-pack'}, {'name': 'Space Shooter Extension', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/space-shooter-extension'}, {'name': 'Medieval RTS', 'category': '2D', 'series': 'RTS', 'page_link': 'https://www.kenney.nl/assets/medieval-rts'}, {'name': 'Platformer Pack Medieval', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-pack-medieval'}, {'name': 'Tower Defense (Top-Down)', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/tower-defense-top-down'}, {'name': 'Generic Items', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/generic-items'}, {'name': 'Map Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/map-pack'}, {'name': 'Watercraft Kit', 'category': '3D', 'series': 'Transport', 'page_link': 'https://www.kenney.nl/assets/watercraft-kit'}, {'name': 'Modular Buildings', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/modular-buildings'}, {'name': 'Rune Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/rune-pack'}, {'name': 'Blocky Characters', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/blocky-characters'}, {'name': 'Abstract Platformer', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/abstract-platformer'}, {'name': 'Isometric Blocks', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-blocks'}, {'name': 'Top-down Shooter', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/top-down-shooter'}, {'name': 'Hexagon Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/hexagon-pack'}, {'name': 'Roguelike Modern City', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/roguelike-modern-city'}, {'name': '3D Road Tiles', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/3d-road-tiles'}, {'name': 'Voiceover Pack', 'category': 'Audio', 'series': 'Voiceover', 'page_link': 'https://www.kenney.nl/assets/voiceover-pack'}, {'name': 'Jumper Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/jumper-pack'}, {'name': 'Shooting Gallery', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/shooting-gallery'}, {'name': 'Racing Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/racing-pack'}, {'name': 'Voxel Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/voxel-pack'}, {'name': 'Roguelike Caves & Dungeons', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/roguelike-caves-dungeons'}, {'name': 'Roguelike Indoors', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/roguelike-indoors'}, {'name': 'Roguelike Characters', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/roguelike-characters'}, {'name': 'Brick Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/brick-pack'}, {'name': 'Alien UFO Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/alien-ufo-pack'}, {'name': 'Puzzle Pack 2', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/puzzle-pack-2'}, {'name': 'Robot Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/robot-pack'}, {'name': 'Pixel UI Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/pixel-ui-pack'}, {'name': 'Platformer Pack Redux', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-pack-redux'}, {'name': 'Roguelike/RPG pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/roguelike-rpg-pack'}, {'name': 'Animal Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/animal-pack'}, {'name': 'Background Elements', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/background-elements'}, {'name': 'Letter Tiles', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/letter-tiles'}, {'name': 'Tower Defense', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/tower-defense'}, {'name': 'Isometric Vehicles #1', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-vehicles-1'}, {'name': 'Isometric Buildings #1', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-buildings-1'}, {'name': 'Isometric City', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-city'}, {'name': 'Isometric Landscape', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-landscape'}, {'name': 'Game Icons (Expansion)', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/game-icons-expansion'}, {'name': 'Game Icons', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/game-icons'}, {'name': 'Top-Down Tanks', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/top-down-tanks'}, {'name': 'Modular Characters', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/modular-characters'}, {'name': 'Smoke Particles', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/smoke-particles'}, {'name': 'Physics Assets', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/physics-assets'}, {'name': 'UI Pack - Sci-Fi', 'category': '2D', 'series': 'UI Pack', 'page_link': 'https://www.kenney.nl/assets/ui-pack-sci-fi'}, {'name': 'Construct Game Sources', 'category': 'Other', 'series': '', 'page_link': 'https://www.kenney.nl/assets/construct-game-sources'}, {'name': 'Board Game Pack', 'category': '2D', 'series': 'Board Games', 'page_link': 'https://www.kenney.nl/assets/boardgame-pack'}, {'name': 'Kenney Fonts', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/kenney-fonts'}, {'name': 'RPG Base', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/rpg-base'}, {'name': 'Medieval Town (Base)', 'category': '3D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/medieval-town-base'}, {'name': 'UI Pack (RPG Expansion)', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/ui-pack-rpg-expansion'}, {'name': 'Platformer Art Extended Tileset', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-extended-tileset'}, {'name': 'Music Jingles', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/music-jingles'}, {'name': 'RPG Audio', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/rpg-audio'}, {'name': 'UI Pack', 'category': '2D', 'series': 'UI Pack', 'page_link': 'https://www.kenney.nl/assets/ui-pack'}, {'name': 'Tappy Plane', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/tappy-plane'}, {'name': 'Space Shooter Redux', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/space-shooter-redux'}, {'name': 'Platformer Art Pixel Redux', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-pixel-redux'}, {'name': 'Hexagon Buildings', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/hexagon-buildings'}, {'name': 'Platformer Art Deluxe', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-deluxe'}, {'name': 'Platformer Art Extended Enemies', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-extended-enemies'}, {'name': 'Hexagon Tiles', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/hexagon-tiles'}, {'name': 'Platformer Art Requests', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-requests'}, {'name': 'Platformer Art Buildings', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-buildings'}, {'name': 'Platformer Art Candy', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-candy'}, {'name': 'Platformer Art Winter', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-winter'}, {'name': 'Platformer Bricks', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/platformer-bricks'}, {'name': 'Platformer Art Mushrooms', 'category': '2D', 'series': 'Platformer Pack', 'page_link': 'https://www.kenney.nl/assets/platformer-art-mushrooms'}, {'name': 'Medals', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/medals'}, {'name': 'Isometric Roads Water', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-roads-water'}, {'name': 'Isometric Roads', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/isometric-roads'}, {'name': 'Puzzle Pack', 'category': '2D', 'series': '', 'page_link': 'https://www.kenney.nl/assets/puzzle-pack'}, {'name': 'Casino Audio', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/casino-audio'}, {'name': 'Digital Audio', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/digital-audio'}, {'name': 'UI Audio', 'category': 'Audio', 'series': '', 'page_link': 'https://www.kenney.nl/assets/ui-audio'}]