Procedural Platformer with AI Boss

Java Markov Chain Perlin Noise Recursion Advanced OOP Game Development Software Development Lifecycle CSV Parsing
View on GitHub

A Computer Science NEA (Non-Exam Assessment) is a major independent coursework project completed as part of the A-Level Computer Science qualification in England. As it is meant to simulate the software lifecycle, students are required to design, build, and comprehensively document a significant piece of software over several months and around a hundred hours, working with a real or hypothetical client.
It is marked on several sections:


The NEA I chose involved designing and building a 2D scrolling platformer in Java with LibGDX for a hypothetical client.
It was structured around a deep entity/OOP hierarchy (Entity → Enemy → Boss/PacingEnemy) across 40+ classes.

I implemented:
The boss enemy uses an adaptive Markov chain to learn from the player's attack patterns over time, with transition probabilities persisted to disk between sessions. I also built parallax backgrounds, a weapon-swapping combat system (melee and elemental projectile staffs), and controller/keyboard input handling with just-pressed vs. held detection.