From 1a933b998dc70bd8575cf76b8b761b24a1cd7ad9 Mon Sep 17 00:00:00 2001 From: Andrew Long Date: Mon, 22 Jul 2024 14:40:32 -0700 Subject: [PATCH] Not the final push --- content/boards/index.md | 12 +++++++----- content/games/peggle-clone/index.md | 25 +++++++++++++++++++++++++ content/games/pytris/index.md | 2 +- 3 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 content/games/peggle-clone/index.md diff --git a/content/boards/index.md b/content/boards/index.md index b64b994..f1df3e7 100644 --- a/content/boards/index.md +++ b/content/boards/index.md @@ -23,13 +23,13 @@ type: page {{< /rawhtml >}} -# GAME PROGRAMMING DEGREE OBJECTIVES (WIP) +# GAME PROGRAMMING DEGREE OBJECTIVES ### 1. Implement multiple completed games, including 3D games, using common tools, languages, and software for web, console, PC, or mobile platforms. {{< boards-section "brick-breaker" "Brick Breaker" "/games/brick-breaker" "./brick-breaker.webp" "Written in Python in a week. (Runs anywhere Python can, like web browsers, Windows, Linux, and macOS)" >}} -{{< boards-section "maze-cubed" "MAZECUBED" "/games/maze-cubed" "./maze_cubed.webp" "3D Maze game made in Unreal Engine 4.21. (Runs Windows, and Linux, Could run on macOS, but no builds)." >}} +{{< boards-section "maze-cubed" "MAZECUBED" "/games/maze-cubed" "./maze_cubed.webp" "3D Maze game made in Unreal Engine 4.27. (Runs Windows, and Linux, Could run on macOS, but no builds)." >}} {{< boards-section "collect-coin" "Collect The Coin" "/games/collect-the-coin" "" "Written in Python. (Runs anywhere Python can, Windows, Linux, and macOS, except for web browsers due to performance issues)" >}} @@ -43,6 +43,8 @@ type: page {{< boards-section "pytris" "Pytris" "/games/pytris" "./Pytris.webp" "Built with the Pygame framework, from scratch, to be as modular as possible." >}} +{{< boards-section "peggle" "Peggle Clone" "/games/peggle-clone" "./Peggle.webp" "I’ve built this Peggle clone with independence in mind. No object has a direct dependence on another object. I’ve made everything in this project independent by leveraging a few of Godot’s features. All pegs in any scene add themself to a group when they get instantiated. When the main game script gets instantiated, it grabs the group the pegs added themself to and operates on the pegs accordingly." >}} + {{< dots >}} ### 3. Implement and analyze fundamental data structures and algorithms associated with game applications supporting gameplay mechanics. @@ -63,11 +65,11 @@ type: page ### 5. Demonstrate development skills using multiple programming languages, development environments, and platforms, including advanced and/or experimental topics in game programming. -{{< boards-section "tfttar" "Tales From Teren: The Approaching Rot" "/games/tfttar" "./TFTTAR.webp" "Web-based visual novel that needed to run on desktop and mobile browsers." >}} +{{< boards-section "tfttar" "Tales From Teren: The Approaching Rot" "/games/tfttar" "./TFTTAR.webp" "TFTTAR is a web-based visual novel that needs to run on desktop and mobile browsers and uses the ChoiceScript framework. ChoiceScript uses its own interpreted language that is very restrictive because non-programmers are the intended target. Due to these restrictions, I had to use JavaScript to implement some features the designers required; this included making custom BBCode tags and hacking the framework to allow for a button that takes you to a codex at any point in the game." >}} -{{< boards-section "pytris" "Pytris" "/games/pytris" "./Pytris.webp" "One of the more complex engines I’ve written in Python due to a lack of time constraints. Contains things like Godot-like signals, GUI objects, global data, and high framerates for an interpreted language." >}} +{{< boards-section "pytris" "Pytris" "/games/pytris" "./Pytris.webp" "Pytris contains one of the more complex engines I’ve written in Python. It has Godot-like signals, GUI objects, global data, and high framerates for an interpreted language." >}} -{{< boards-section "peggle" "Peggle Clone" "/games/peggle-clone" "./Peggle.webp" "I've built this Peggle clone with independence in mind. No object has a direct dependence on another object. I've made everything in this project independent by leveraging a few of Godot's features. All pegs in any scene add themself to a group when they get instantiated. When the main game script gets instantiated, it grabs the group the pegs added themself to and operates on the pegs accordingly." >}} +{{< boards-section "peggle" "Peggle Clone" "/games/peggle-clone" "./Peggle.webp" "I've built my Peggle clone project in Godot 4.2, which is slowly gaining more support in the games industry. The game uses Godot's features like groups, signals, Autoloads, etc, to make every scene portable. Godot allows you to use multiple languages, but for simplicity, I used GDscript, an interpreted language endemic to Godot. Wherever possible, I've specified the type of any variable; this allows the game to run slightly faster, as Godot doesn't have to interpret what the type may be." >}} {{< dots >}} diff --git a/content/games/peggle-clone/index.md b/content/games/peggle-clone/index.md new file mode 100644 index 0000000..0b7a374 --- /dev/null +++ b/content/games/peggle-clone/index.md @@ -0,0 +1,25 @@ +--- +title: "Peggle Clone" +date: 2024-07-22 +#titleImageOverride: "Collect-The-Coin.webp" +#titleImageStyle: "width: 30%; height: auto; margin: auto; image-rendering: crisp-edges;" +type: page +summary: "A recreation of of the classic pachinko game Peggle in the Godot game engine" +roles: ["Creator", "Programmer"] +genre: "Puzzle" +bannerImage: "" +pannelImage: "" +--- + +# A Peggle clone +_\*TODO\*_ + +{{< dots >}} + +# Video Demo +_\*TODO\*_ + +{{< dots >}} + +# Download +_\*TODO\*_ diff --git a/content/games/pytris/index.md b/content/games/pytris/index.md index 189dd4d..164dcd1 100644 --- a/content/games/pytris/index.md +++ b/content/games/pytris/index.md @@ -12,7 +12,7 @@ bannerImage: "bkg.webp" --- # Tetris Clone -_Pytris_ is a clone of the classic tetromino puzzle game Tetris. I built this game because my previous attempt at making a Tetris clone was incomplete. For this attempt, I've written an engine to be as performant as Python will allow me to, barring the usage of any JIT compilation techniques. +_Pytris_ is a clone of the classic tetromino puzzle game Tetris. I built this game because my [previous attempt](/games/not-tetris/) at making a Tetris clone was incomplete. For this attempt, I've written an engine to be as performant as Python will allow me to, barring the usage of any JIT compilation techniques. I've achieved this by utilizing Pygame's built-in sprite type, `DirtySprite`, and the `LayeredDirty` sprite group. The "Dirty" part of these types denotes when or if the sprite should get redrawn, stopping the renderer from wasting time constantly redrawing some sprites, like backgrounds and other static objects.