For my final major project, I’m diving into the world of video game development by researching different game genres, mechanics, and design principles. Before I can start developing anything, I need to figure out exactly what type of game I want to create - 2D, 3D, platformers, shooters, you name it. I just don’t want to go in blind and realise halfway through that I picked something way too complex for the time I have. I also need to evaluate my own skills, which is always a bit of a reality check. I know I’m strong in programming and problem-solving, but I still have a lot to learn when it comes to animation, music composition, and level design. I want to push myself with this project, but I also don’t want to get stuck trying to learn something completely new when I should be making progress.
Another important step is figuring out what tools I should be using. There are so many game engines, art programs, and sound design tools out there that choosing the right ones could save me a tonne of time (or make my life harder if I pick the wrong ones). I’ve seen people spend weeks deciding between Unity and Unreal, and I really don’t want to fall into that trap. Once all of this is sorted, I’ll compile my research and start building a Game Design Document (GDD). This will be the blueprint for my game, making sure I have a clear plan before I start actual development. If I skip this step, I’ll probably end up wasting time constantly changing ideas halfway through - something I’ve done before, and I don’t want to make that mistake again.
2D platformers have been a core part of gaming for decades, and I think a big reason for that is their precise movement and level design. Unlike 3D platformers, which often give players more freedom to explore, 2D platformers are usually about tight, controlled movement and carefully crafted challenges. Since everything happens on a 2D plane, players need to master mechanics like jumping, dashing, and timing their movements to progress.
Super Mario Maker 2 is a unique take on the genre because it turns players into level designers. Instead of just playing pre-made levels, you can create your own, which forces you to think about game design in a completely different way. I remember trying to make a level that was just slightly challenging, only to watch my friends struggle way more than I expected. That experience made me realise just how much small design choices impact difficulty, even something as simple as moving a platform one tile to the left can make or break a level’s flow.
For game developers, Super Mario Maker 2 teaches a few key lessons:
Movement has to feel intuitive and predictable. If a player doesn’t trust how the character moves, they won’t enjoy the game, no matter how good the level design is.
Level design and movement mechanics must complement each other. If a character’s jump arc is a certain height, levels should be designed around that, not fighting against it.
Player creativity can extend a game’s lifespan. User-generated content keeps a game fresh, as players continue creating and sharing levels long after release.
Celeste is one of those games that feels incredible to play. It’s punishingly difficult, but never in a way that feels unfair. I’ve died hundreds of times, but I always knew it was my own mistake. That’s something I really want to capture in my own project, the idea that difficulty should feel rewarding, not frustrating.
Celeste’s movement system is built around a few core mechanics:
Eight-directional air dashing – The dash is the heart of the movement, letting players extend jumps, chain moves together, and interact with the environment in creative ways.
Wall climbing & stamina management – Unlike Mario-style wall jumps, Celeste lets players cling to walls, but limits them with stamina to prevent infinite climbing.
Momentum-based movement – Many levels require the player to use movement creatively: bouncing off objects, preserving speed between dashes, and finding the most efficient way through a room.
One of my favourite things about Celeste is how it teaches its mechanics. Instead of throwing up tutorial boxes, it introduces movement techniques through smart level design. The first time you encounter an air dash, the game sets up a situation where you instinctively use it without being told how. This kind of organic learning is something I really want to incorporate into my own game.
3D platformers build on the fundamental mechanics of 2D platformers but add an extra dimension of movement, requiring players to navigate environments with depth, height, and open-ended exploration. Unlike 2D platformers, where movement is constrained to a left-to-right or vertical axis, 3D platformers demand precise spatial awareness, camera control, and dynamic level design to ensure players can fluidly move through their surroundings.
What makes Odyssey stand out is its movement system, which is probably one of the most fluid and satisfying in any 3D platformer. Mario can triple jump, dive, roll, and even use his hat (Cappy) to extend movement combos. The game doesn’t just challenge players to reach the goal, it encourages them to experiment with movement and find creative ways to traverse levels.
Key takeaways for game development:
Momentum-based movement makes traversal feel rewarding. If movement itself is fun, simply exploring the world becomes engaging.
Giving players multiple movement options allows for creativity. Instead of just “jump and move forward,” players should be able to combine mechanics for advanced techniques.
The environment should be designed to complement movement mechanics. Odyssey’s open-world levels encourage movement mastery rather than punishing small mistakes.
First-person shooters (FPS) are among the most popular and enduring game genres, defined by their first-person perspective and gun-based combat. Unlike third-person shooters, where players have a wider field of view and can see their character, FPS games create a more immersive experience by putting the player directly in the eyes of their character. This perspective enhances aiming precision, reaction speed, and environmental awareness, all of which are critical to gameplay.
Titanfall 2 is one of the few FPS games that truly prioritises movement as much as shooting. While most FPS games focus on aim and cover mechanics, Titanfall 2 introduces wall-running, double-jumping, and momentum-based traversal, making movement a core part of combat strategy.
The most important aspects of Titanfall 2’s movement:
Wall-running & slide-hopping – Players can chain movements together, using momentum to stay mobile and unpredictable.
Verticality is key – Unlike most FPS games where movement is horizontal, Titanfall 2 encourages vertical play, letting players move fluidly across maps.
Balancing speed with control – Despite the fast movement, controls remain tight, allowing for skill-based mastery rather than randomness.
Action-adventure games are one of the most versatile and widely adopted genres in gaming, blending real-time action with exploration, puzzle-solving, and narrative-driven gameplay. Unlike pure action games, which focus primarily on combat, action-adventure titles introduce elements of discovery, traversal, and problem-solving to create a more immersive experience.
The genre spans a wide range of styles, from the dungeon-based progression of The Legend of Zelda to the open-world exploration of Assassin’s Creed. Despite these differences, the defining feature of action-adventure games is their balance between movement, combat, and player-driven exploration.
One of the biggest reasons why movement in Spider-Man feels so satisfying is that it is entirely momentum-based. Webs attach to actual buildings, meaning that swings don’t just come out of thin air; they have weight and direction. When you release a swing at the right time, you gain speed, allowing for smooth, flowing movement through the city. It’s a system that rewards skill and timing, making traversal an enjoyable challenge rather than just an automated process.
Some of the key movement mechanics that make this system shine are:
Web-Swinging – Holding the swing button doesn’t just pull you forward automatically. You control when to release, when to start another swing, and how to adjust your speed. Timing swings properly lets you maintain momentum, making movement feel skill-based rather than scripted.
Point-Launch Boosts – By zipping to ledges or rooftops and launching off, Spider-Man can gain extra momentum, adding variety to movement beyond just swinging. This makes traversal feel fast and dynamic, rather than repetitive.
Wall-Running & Vaulting – Unlike most open-world games where hitting a wall slows you down, Spider-Man seamlessly runs along surfaces, climbs up buildings, and vaults over obstacles without breaking flow.
Dive Boosting – Mid-air diving builds speed before transitioning into a swing, allowing for an advanced technique that rewards players who master movement mechanics.
Spider-Man’s movement system teaches a few important lessons about how to make traversal engaging in a game:
Traversal should be fun on its own. If moving through the game world feels great, players will enjoy the experience even without direct objectives.
Momentum and player control create satisfaction. A system that rewards skilful movement is more engaging than one that automates traversal.
Seamless transitions between actions are key. Whether swinging, running, or jumping, movement should always feel fluid, with no jarring interruptions.
By focusing on these aspects, Spider-Man manages to turn what could have been simple travel mechanics into one of the most compelling parts of the game. If I ever design an open-world traversal system, I’d want to capture that sense of flow and mastery that makes movement in Spider-Man so addictive.
Unlike traditional sports games, which are often focused on competition, skateboarding games tend to emphasise self-expression and mastery of movement. Skate 3 is a prime example of this, providing a fluid, physics-driven control system that makes every trick feel so satisfying. Instead of relying on button combos like the Tony Hawk’s Pro Skater series, Skate 3 uses the “Flick-It” system, which mimics real skateboard movements by using the analogue stick for tricks. This control scheme makes gameplay far more immersive and smooth.
Skate 3’s movement system is all about momentum, flow, and precision. Unlike platformers or FPS games where movement is primarily about getting from one place to another, Skate 3 turns movement into the core gameplay loop itself. The better you understand the physics, the more smoothly you can traverse the world and chain tricks together.
Key movement mechanics that define the game:
The Flick-It System – Tricks are executed by flicking the right analogue stick in specific ways, simulating the actual foot movements of a skateboarder. This makes every trick feel unique and skill-based rather than just a button input.
Momentum-Based Control – Unlike arcade-style skating games, Skate 3 requires players to manage their momentum carefully. Pushing too hard or failing to land smoothly can ruin a combo or make traversal awkward.
Manuals and Grinds for Flow – Manuals (balancing on two wheels) and grinds extend combos and allow for continuous movement, letting players link tricks creatively without stopping.
Bail and Recovery Mechanics – Falling isn’t just a failure state - it’s a core part of the game. The ability to recover from bails and experiment with different landing approaches makes learning from mistakes an engaging process.
The beauty of Skate 3’s movement lies in how it blends realism with player creativity. Unlike games with fixed animations, where pressing a button triggers a pre-set trick, Skate 3’s physics-driven controls make every movement feel organic. Because of this:
Every player moves differently. Since tricks depend on timing, angles, and momentum, no two players will have the exact same playstyle.
There’s always room to improve. Even after mastering the basics, advanced techniques like revert combos, late flips, and transition skating keep the skill ceiling high.
The world is designed for freeform movement. Instead of forcing players into structured levels, Skate 3’s open-world design allows them to explore, find new lines, and create their own challenges.
Skate 3 is an excellent case study in physics-driven movement and player expression. Here are some key takeaways that can be applied to other game genres:
Analogue input allows for nuanced control. Whether in a skateboarding game or a platformer, movement systems that rely on variable inputs (rather than binary on/off commands) create more depth.
Mastery should be skill-based, not stat-based. In Skate 3, players don’t “level up” their stats, improvement comes from actual practice and learning the game’s mechanics.
Traversal can be gameplay, not just a necessity. Movement should feel rewarding in itself, not just as a means to reach objectives. Games like Skate 3, Spider-Man, and Titanfall 2 prove that simply moving around can be engaging if designed well.
By focusing on fluid controls, physics-driven movement, and creative freedom, Skate 3 remains one of the most satisfying movement-based games ever made. If I ever design a game where traversal plays a major role, I would want to capture that same feeling of flow, mastery, and personal expression that makes Skate 3 so addictive.
When developing a game, understanding the core mathematical principles behind movement is absolutely essential. In 2D games, everything moves along a two-dimensional plane, meaning every position can be pinpointed with just an x and y coordinate. The beauty of 2D movement lies in its simplicity, every object's position, velocity, and acceleration can be represented using basic vectors. This makes movement calculations straightforward yet powerful, as forces like gravity and friction can be applied directly to the velocity vector to create smooth, responsive motion.
Since everything operates in just two dimensions, implementing movement systems in 2D is far less overwhelming than in 3D. Basic vector addition and scaling make things like jumping physics, acceleration, and deceleration feel natural without needing complex transformations or rotations. Plus, techniques like interpolation and easing functions allow for smooth transitions between states, preventing movement from feeling robotic or unnatural. The best part? Because the calculations are relatively simple, debugging movement issues is much easier, making development smoother and faster.
For game developers, especially those working within a tight timeframe, 2D movement offers a perfect balance between depth and accessibility. It allows for precise, polished controls without needing an advanced understanding of higher-dimensional math. But when moving into 3D space, things get a whole lot trickier.
In contrast, 3D movement adds an entirely new dimension, quite literally. Instead of working with just an x and y axis, developers also have to account for the z-axis, which brings depth, rotations, and extra calculations into the mix. Suddenly, simple movements like turning a character left or right aren’t as easy as rotating an object around a single point; now, I have to factor in 3D vectors, transformations, and rotation systems, which are far more intricate.
In 3D game development, matrices are used for all sorts of transformations - scaling, rotating, and even shearing objects in space. They allow developers to apply multiple transformations efficiently, making them fundamental in rendering, physics, and animation systems. However, they can also be computationally heavy, and truly understanding them requires a solid grasp of linear algebra. While I could learn enough about matrices to apply them within a game engine, mastering them within my limited timeframe would be challenging.
One way to handle 3D rotations is by using Euler angles, which define an object’s orientation using three values, one for each axis (x, y, z). At first glance, this method seems intuitive, but it comes with a huge drawback: gimbal lock. This issue arises when certain rotations cause a loss of degrees of freedom, leading to uncontrollable or broken movement mechanics. While I could use Euler angles for basic rotations, they aren’t the most reliable option for fluid, complex movement.
To avoid the problems of Euler angles, modern game engines use quaternions, a four-dimensional number system that allows for smooth, gimbal-lock-free rotation. Quaternions are used for everything from camera movement to character animations in modern 3D games. The downside? They’re notoriously difficult to understand without a strong background in higher-dimensional math. Since my timeframe is limited, fully grasping quaternions might be unrealistic, but I could still leverage pre-built quaternion functions in engines like Unity or Godot to handle rotations for me.
Regardless of whether I’m working in 2D or 3D, there are a few fundamental mathematical concepts that come into play when designing movement systems:
The dot product is a crucial tool in both 2D and 3D games. In a 2D setting, it’s commonly used to determine the angle between two vectors, this is useful for mechanics like enemy vision cones or aiming systems. In 3D, the dot product becomes even more critical, playing a role in shading, AI movement decisions, and even collision detection. Since it’s fairly easy to understand and apply, this is something I can confidently incorporate into my project.
The cross product, unlike the dot product, only exists in 3D and is essential for determining perpendicular vectors. This is particularly important in lighting calculations, physics simulations, and surface normals. While it requires a deeper understanding of vector mathematics, it’s still feasible to learn within my timeframe. However, since I’m focusing on a 2D game, I likely won’t need to apply the cross product extensively.
A great movement system isn’t just about getting the math right, it’s about making sure it feels good to play. Whether in 2D or 3D, movement needs to be responsive, smooth, and visually satisfying. Here’s how different techniques can help refine a game’s movement:
Interpolation (LERP) – Used to create smooth transitions between movement states, preventing jerky or unnatural shifts.
Easing Functions – Mimic real-world acceleration and deceleration to make animations feel organic and lifelike.
Acceleration Smoothing – Instead of having movement stop and start abruptly, adding gradual acceleration and deceleration can make it feel far more natural.
SLERP (Spherical Linear Interpolation) – Used for rotational smoothing, preventing objects from snapping between angles.
Inverse Kinematics (IK) – Allows characters to dynamically adjust their limbs based on terrain, making animations feel realistic and immersive.
Procedural Movement Adjustments – Used in AAA games to make characters react dynamically to the environment, such as adjusting their feet when walking on uneven ground.
IK, in particular, is an incredibly advanced topic that may be outside the scope of what I can implement in my project. However, having a basic understanding of these concepts will help me improve my game’s movement even within a 2D space.
While 3D movement introduces a wealth of exciting possibilities, it also comes with a huge learning curve. Given my 12-week timeframe, diving into the complexities of matrices, quaternions, and procedural animation systems would likely slow down my progress significantly. Instead, by focusing on 2D movement, I can spend more time refining the mechanics, ensuring that my game’s controls feel tight, responsive, and enjoyable.
To make my 2D movement system feel as polished as possible, I’ll be implementing advanced platforming techniques like:
Coyote Time – Allows players to jump slightly after stepping off a ledge, making controls feel more forgiving.
Jump Buffering – Ensures that a player’s jump input is registered even if pressed just before landing, reducing frustration.
Dynamic Gravity Adjustments – Modifies gravity mid-jump to create a more satisfying jump arc.
By focusing on mastering 2D movement, I can create a game that feels polished, rewarding, and fluid while avoiding the overwhelming complexity of 3D development within my limited timeframe.
In 2D platformers, movement is everything. It’s what makes jumping between platforms feel crisp, dodging obstacles feel satisfying, and chaining together advanced manoeuvres feel rewarding instead of frustrating. Some of the best platformers don’t just rely on basic jump mechanics, they refine movement with subtle tricks that enhance player control, making gameplay feel smooth, responsive, and polished.
Great movement design isn’t just about difficulty; it’s about fairness. When players fail a jump, they should feel like it was their mistake, not that the game was being unfair. That’s where advanced movement techniques come in. The following are some of the most important movement tricks used in modern 2D platformers, along with examples of how they’re implemented to improve gameplay.
Coyote Time is a mechanic that allows players to still jump for a brief moment after running off a ledge. Without this, missing a jump by just a fraction of a second could feel unfair and frustrating. By giving players a tiny window to still input a jump, games feel far more responsive while keeping the challenge intact. The name comes from classic cartoons, where characters like Wile E. Coyote hang in the air for a moment before realising they’re about to fall.
Example: Celeste
In Celeste, Coyote Time is a core part of the movement system. The game is designed around fast, technical platforming, and the addition of this mechanic makes precision jumps feel much more forgiving. It allows players to recover from mistimed jumps, giving them just enough leeway to chain together difficult manoeuvres. Without it, the game’s difficulty would feel far more punishing, leading to unnecessary frustration rather than rewarding skill.
Jump buffering ensures that if a player presses the jump button slightly too early, the game still registers the input and executes the jump once the character lands. Without it, jumps can feel unresponsive, especially in fast-paced platformers where timing is crucial. This mechanic prevents moments where players feel like they “pressed jump, but nothing happened,” which is a common complaint in less polished platformers.
Example: Hollow Knight
Hollow Knight’s platforming feels incredibly fluid in part because of its well-implemented jump buffering. This is especially noticeable in challenging platforming sections like the White Palace, where players need to string together precise jumps with almost no room for error. By allowing inputs just before landing, Hollow Knight ensures that movement stays smooth and responsive, even in its most difficult areas.
Variable Jump Height is exactly what it sounds like, holding the jump button results in a higher jump, while tapping it results in a lower hop. This gives players finer control over their movement, making jumps feel more intentional rather than always being the same height. Without this, movement can feel stiff and too predictable.
Example: Super Mario World
Super Mario World perfected this mechanic. Holding the jump button makes Mario jump higher, while tapping it results in a small hop, perfect for avoiding enemies, making precise landings, or adjusting mid-air movement. The game even expands on this by adding a spin jump, giving players an extra tool to manipulate how they interact with hazards and terrain. This simple mechanic adds an incredible amount of depth to Mario’s movement.
Instead of having a character immediately stop or reach full speed, many platformers implement acceleration and deceleration mechanics to make movement feel more natural. This prevents characters from feeling too floaty or robotic while still maintaining a sense of weight and momentum.
Example: Donkey Kong Country: Tropical Freeze
In Tropical Freeze, acceleration and deceleration create a momentum-based movement system that makes characters like Donkey Kong feel powerful and weighty. When rolling or switching directions, there’s a slight build-up or slowdown, giving movement a more realistic, physics-based feel. This is especially noticeable in underwater sections or when performing long jumps off slopes, where momentum plays a huge role in traversal.
Gravity Scaling is used to adjust how characters rise and fall, making jumps feel snappy and controlled rather than floaty or sluggish. Many games lower gravity when a character is ascending to allow for controlled jumps, then increase gravity while descending to make landings feel quick and decisive. This technique prevents jumps from lingering too long in the air, keeping movement feeling tight.
Example: Celeste
Celeste intentionally tweaks gravity to create precise, satisfying jumps. Madeline rises slightly slower when jumping, which allows for small mid-air adjustments. However, she falls quickly when descending, ensuring movement remains fast-paced and fluid. This gravity system is also what makes wave dashing and hyper dashing possible, adding a deeper layer of technique-based movement to the game. Without gravity scaling, Celeste’s movement wouldn’t feel nearly as refined.
Godot is a breath of fresh air in the world of game engines. It’s completely free - no subscriptions, no hidden fees, and no revenue-sharing headaches. For indie developers and small studios looking to create games without financial restrictions, this is a massive win.
One of the most notable things about Godot is how lightweight it is. Unlike some game engines that can feel like they require a supercomputer just to run, Godot is streamlined and runs efficiently even on older PCs. That makes it a solid option for developers who want to get started without investing in anything high-end.
For 2D games, Godot is a powerhouse. Unlike many other engines, which treat 2D as an afterthought, Godot has a completely separate 2D engine, meaning better optimisation, smoother performance, and a set of tools built specifically for pixel art, platformers, and other 2D-heavy projects, which I imagine will be perfect for developing HEIST!.
Another thing that makes Godot appealing is its scripting language, GDScript. If you’ve ever worked with Python, you’ll feel right at home. The syntax is clean, readable, and easy to learn- especially for beginners. Unlike more complex languages like C++ or even C#, GDScript makes it easier to focus on building your game rather than fighting the language itself. Also, I have experience with Python, so this instantly stood out to me when choosing an engine for my FMP.
Godot also has something that many other engines lack: an active and passionate community. Because the engine is open-source, developers around the world contribute to its growth. That means constant updates, new features, and a support system filled with people who genuinely care about the engine’s future. Whether you’re asking questions on a forum, chatting in a Discord server, or looking for tutorials, there’s always someone willing to help, it's ideal.
Of course, Godot isn’t perfect. Godot 4 made some big strides in improving 3D rendering, but it’s still not on the same level as Unreal Engine or even Unity. If you’re aiming to create ultra-realistic 3D graphics, Godot might not be the best fit - at least, not yet. This is yet another reason why I have opted for 2D.
Then there’s the asset store, or rather, the lack of one. Unity’s Asset Store is massive, offering countless pre-made assets and tools that can save developers time. Godot’s marketplace, on the other hand, is still in its infancy. This means you’d likely need to create more assets, scripts, and tools from scratch, which can slow down development.
Lastly, while Godot’s documentation has improved, it’s still not as extensive as what you’d find for Unity or Unreal. There are great tutorials out there, but some features don’t have as much in-depth coverage, which can make learning the engine a bit trickier for more complex projects.
This is the best bit: Godot is 100% free. No subscriptions. No licensing fees. No revenue share. Since it’s fully open-source, developers can even modify and distribute the engine however they like, with no financial obligations.
Godot supports multiple programming languages, giving us developers plenty of options:
GDScript – The main scripting language, designed specifically for Godot. Its Python-like syntax makes it easy to learn and use, this is perfect for me.
C# – Supported in Godot, though its integration is still evolving.
C++ – Used for high-performance needs, particularly for engine modifications or performance-heavy applications.
Godot is beginner-friendly for the most part, especially if you’re making 2D games with GDScript like I am. However, if I was going into 3D development, things would get a bit trickier. Mastering everything the engine has to offer takes time, but compared to Unity or Unreal, Godot is relatively much easier to pick up.
Milanote is like a digital pinboard on steroids. It’s perfect for organising thoughts, images, and ideas in a way that actually makes sense visually. Unlike traditional note-taking apps, it embraces freeform organisation, which is a godsend when you’re in that chaotic early-stage brainstorming phase. For game designers, artists, and writers, it’s a great way to structure creative workflows without feeling like you’re stuffing everything into a rigid document.
I love Milanote for concept art planning and worldbuilding. There’s something about being able to drag and drop references and ideas onto a board that makes brainstorming feel natural. When working on past projects, I’d often find myself lost in endless folders of images and notes - Milanote fixes that by keeping everything visually connected in one place.
Best Uses
Moodboards & Concept Art – Collect reference images, play around with aesthetics, and solidify the game's visual direction before jumping into Photoshop or Blender.
Story & Worldbuilding – Map out character relationships, key events, and overarching lore so everything stays coherent.
Level & Game Design Docs – Plan out mechanics and level layouts with visual aids instead of just walls of text.
Collaboration – If you’re working with a team, everyone can contribute and comment in real time.
Pros:
Super visual and intuitive, perfect for creatives
Drag-and-drop simplicity makes organising a breeze
Great for solo work and team collaboration
Cons:
Free version has storage limitations
Not ideal for mind mapping or freehand drawing
Miro is an online whiteboard built for collaboration, and honestly, it’s a lifesaver when brainstorming gameplay mechanics. It’s fantastic for mapping out systems, designing UI wireframes, and working on game loops. Unlike Milanote, which is better for structured organisation, Miro’s infinite canvas lets you throw ideas around freely and refine them as you go.
I’ve had moments where a game idea was stuck in my head but didn’t fully click until I sketched it out. Miro makes that process easy. Whether I’m designing an upgrade tree or mapping out how different mechanics interact, having a space where I can freely experiment without feeling constrained is invaluable.
Best Uses
Brainstorming Gameplay Mechanics - Use sticky notes to quickly jot down ideas and connect them.
Level & UI Wireframing - Roughly sketch out layouts before committing to full designs.
Game Loop & Progression Planning - Flowcharts are a game dev’s best friend, and Miro makes them easy.
Real-Time Collaboration - Perfect for remote teams who need to iterate quickly.
Pros:
Great for visualising mechanics and game structure
Real-time collaboration makes team brainstorming seamless
Freehand drawing tools are a big plus
Cons:
Can get cluttered quickly if not organised well
Free version limits the number of boards and users
Pinterest is less of a planning tool and more of an inspiration goldmine. While it doesn’t offer collaboration features like Milanote or Miro, it’s unbeatable when it comes to collecting references. If you’re looking for concept art styles, UI inspirations, or environmental aesthetics, Pinterest has an endless stream of images to pull from.
I used to just save images randomly to my desktop, but that quickly got out of hand. Pinterest solves this by letting me categorise and revisit references easily. If I’m designing a cyberpunk city or mediaeval village, I can browse thousands of images that fit the aesthetic and build moodboards effortlessly.
Best Uses
Moodboard Creation – Easily gather and organise visual inspiration for different game elements.
Concept Art & Style Exploration - Find diverse art styles and refine your game’s unique look.
UI & UX Design References - Get ideas for layout, typography, and menu aesthetics.
Character & Environment Ideas - Compile references for clothing, architecture, and general worldbuilding.
Pros:
A massive collection of reference images for any art style
Easy to categorise and organise inspirations
Helps discover new trends in game aesthetics
Cons:
Not an actual design tool, just for collecting ideas
Requires external tools like Milanote or Photoshop to fully utilise references
Aseprite is a must-have for pixel artists and indie developers. It’s designed specifically for sprite creation and animation, making it far more intuitive than general-purpose art software. Unlike Photoshop or Krita, which are built for broad digital art needs, Aseprite hones in on pixel-perfect workflows, ensuring every sprite and tile looks crisp and game-ready.
I’ve always found pixel art’s structured approach satisfying, each pixel counts, forcing me to be intentional about shapes, contrast, and colours. Aseprite makes this process smooth, with tools like onion skinning and an easy-to-navigate timeline. It’s a fantastic way to create assets without being overwhelmed by excessive detail, making it a lifesaver for solo developers or small teams.
Pixel art isn’t just nostalgic, it’s practical. The simplicity of working with smaller resolutions speeds up asset creation, allowing developers to iterate quickly.
Time Efficiency: Compared to HD 2D or 3D modelling, pixel art requires fewer resources while maintaining a distinct aesthetic.
Great for Solo Developers: One person can handle all the visuals, from character sprites to UI elements, without needing an entire art team.
Built-in Animation Tools: Features like onion skinning and layer-based animation make sprite animation a breeze, eliminating the frustration of manual frame adjustments.
Seamless Game Engine Integration: Aseprite exports in formats compatible with Unity, Godot, and GameMaker, meaning assets transition smoothly from art to gameplay.
FL Studio is a powerhouse DAW (Digital Audio Workstation) that’s been around for ages, and for good reason. It’s intuitive, flexible, and packed with features perfect for game audio. I started using it years ago because of its simple drag-and-drop interface, but I stayed for its deep customisation options and expansive plugin support.
Loop-Based Workflow: Essential for game soundtracks, FL Studio makes creating seamless background loops easy, ensuring smooth transitions in gameplay.
MIDI & Virtual Instruments: Whether you’re after chiptune nostalgia, orchestral scores, or ambient soundscapes, FL Studio’s MIDI capabilities allow you to craft diverse musical styles.
Built-in Effects: Reverb, delay, EQ, and more help fine-tune compositions to match the game’s atmosphere.
VST Plugin Support: The ability to integrate third-party plugins expands creative possibilities, making it an excellent choice for professional-grade game soundtracks.
LABS by Spitfire Audio is a game-changer for indie game developers looking for professional-grade sounds without the hefty price tag. It's a free collection of exquisitely sampled instruments, recorded by top-tier musicians, and designed to be lightweight and easy to use. The library is constantly expanding, offering everything from cinematic strings to experimental synth textures, making it an invaluable tool for game music composers.
One of the most beloved instruments in the LABS collection is the Soft Piano, a beautifully recorded, intimate-sounding piano that adds warmth and depth to any game soundtrack. It’s not just any piano; it was recorded in a quiet room with felt-covered hammers, producing a delicate, almost ethereal sound. From my experience, there is no better instrument to make chord progressions with, and it’s just overall a perfect versatile piano.
LABS' Soft Piano fits seamlessly into FL Studio’s workflow. With just a few clicks, it can be loaded as a VST plugin, and composers can start layering rich, expressive melodies over their tracks. The built-in reverb and dynamic controls allow further customisation, letting composers tweak the sound to fit their game’s aesthetic perfectly.
Over the past four years, I have developed a strong foundation in programming, mathematics, and problem-solving through my studies in computer science, game development & design, and physics. These skills play a crucial role in video game development, influencing everything from coding core mechanics to designing smooth player interactions.
My journey in programming began with my computer science GCSE, where I gained a solid understanding of fundamental programming concepts such as algorithms, data structures, and problem-solving. This knowledge formed the basis of my ability to write efficient, logical, and well-structured code. Studying computer science at A-Level has further refined my programming abilities, exposing me to more advanced concepts such as object-orientated programming, recursion, and software development principles.
In the context of game development, these programming skills are essential for:
Gameplay Mechanics & Player Controls: Implementing smooth and responsive movement systems, collision detection, and interaction logic.
AI & Game Logic: Creating enemy behaviours, pathfinding algorithms, and in-game decision-making.
Optimisation & Performance: Writing efficient code to ensure the game runs smoothly across different hardware configurations.
Given that programming is my strongest skill, it will be the backbone of my game development projects, enabling me to bring game mechanics to life with a well-structured and efficient code.
Alongside computer science, my game development & design studies have expanded my knowledge beyond programming. This course has introduced me to the artistic and creative aspects of making games, including level design, animation, audio design, and user experience.
This broader perspective is valuable because:
Level Design: Understanding how to create engaging and well-balanced levels that complement movement mechanics.
Game Art & Animation: Even if I use asset packs, knowing the basics of art and animation helps in selecting or modifying assets to fit the game’s aesthetic.
Sound & Music Design: While I am less experienced in this area, my exposure to sound design fundamentals will help me choose or design audio that enhances the player’s experience.
User Experience (UX): Considering how players interact with the game and ensuring mechanics feel intuitive and rewarding.
Even though programming remains my strongest skill, understanding these other disciplines allows me to make more informed design decisions and collaborate effectively with artists, composers, and designers.
Maths and physics play a huge role in game development, particularly in areas like movement mechanics, physics-based interactions, and procedural generation. My solid performance in GCSE Mathematics and Numeracy and continued study of Physics at A-Level provide me a strong foundation for implementing fun game mechanics and necessary physics tweaks.
Physics-Based Movement: Understanding acceleration, velocity, friction, and forces helps in creating character movement, platforming physics, and projectile mechanics.
Collision Detection & Response: Mathematics is key in handling how objects interact in a game world, whether through simple bounding boxes or more advanced physics simulations.
Camera & Perspective Transformations: Games often require mathematical calculations to handle camera angles, rotations, and perspective effects.
Procedural Generation: Mathematical concepts such as random distributions, noise functions, and fractals can be used to generate dynamic game worlds.
By applying my knowledge, I can make precise, well-tuned mechanics that contribute to a game’s responsiveness and overall feel.
While I’ve got a solid foundation in programming, basic mathematics, and problem-solving, there are still areas within game development that I’m eager to dive into and improve. Music composition, animation, advanced mathematics, and level design are currently my weakest points. By honing these skills, I’ll be able to take my games from functional to something that truly resonates with players, both creatively and technically.
If I’m being honest, music composition is probably one of my weakest areas. I first started exploring this through my Game Development & Design course, and before that, I had zero experience with creating music. As a result, my understanding of concepts like rhythm, melody, harmony, and layering is still in its early stages. Music, though, is such a crucial part of game development. It’s not just about filling the silence; it’s about using sound to tell stories and amplify the player’s experience.
I’ve realised how much music can shape the player’s emotional journey. In a fast-paced platformer, for instance, you need energetic beats to drive the action, while in a puzzle game, subtle, ambient soundscapes are key to setting the mood. Beyond this, music also serves another purpose: feedback. Think of those triumphant notes when you complete a challenge in a game - that’s a sound that sticks with you. Or how about a satisfying sound effect when a player unlocks an achievement? It’s more than just noise; it’s part of how a game communicates with the player.
To improve my music composition, I plan to focus on a few things:
Music Theory Basics: Learning scales, chords, and progressions will help me craft better soundtracks that complement the gameplay.
Digital Audio Workstations (DAWs): I’ve started working with FL Studio, but I want to become more proficient in composing, arranging, and mixing music.
Adaptive Music Techniques: This one’s interesting. I want to learn how to make soundtracks that adapt dynamically to gameplay conditions, like shifting to a more tense composition when a boss fight begins. That level of immersion would be pretty awesome.
By strengthening my music skills, I won’t have to rely so much on external assets. I can create my own cohesive audio experience, which will add a personal touch to every game I make.
I’ve dabbled in animation during my Game Development & Design class, especially using Aseprite for pixel art. While I understand the basics of frame-by-frame animation, I’m still in the beginner stages, and the smoothness of character animations and effects often falls short of what I envision. Animation is an area where I know I could make a massive impact on the overall feel of my games if I dedicated more time to it.
In game development, animation does so much more than just make things move. It breathes life into characters and worlds. Think about how satisfying it is to see a character’s jump or dash feel weighty and smooth, it’s that little bit of polish that can make or break a game’s feel. Animations are also a fantastic way to communicate gameplay information, like signalling an attack with a winding-up animation or showing damage with a recoil animation.
Here’s where I need to focus:
Refining Frame-by-Frame Skills: I want to practice keyframe animation techniques so that my animations feel fluid and expressive, especially when it comes to movement.
Studying Animation Principles: Timing, spacing, easing, and anticipation, these principles will help me add that extra layer of realism to my animations.
Exploring Sprite Rigging & Skeletal Animation: I’m interested in experimenting with rigs and inverse kinematics to smooth out more complex movements, like walking or attacking. I think this will add a nice depth to the animations and make them feel less rigid.
The better I get at animation, the more alive my games will feel. I can’t wait to get better at this because it’s one of the most rewarding aspects of game development in terms of adding polish.
While I’m pretty comfortable with the basics of mathematics, like algebra, trigonometry, and basic physics calculations, I’ve always found myself struggling when it comes to more advanced topics like matrices, quaternions, calculus, and discrete mathematics. These areas are often crucial for more complex game mechanics, especially in 3D games or those that involve physics simulations.
Take 3D games, for example. To rotate an object smoothly in 3D space, you need to understand matrices and quaternions. I can’t rely on simple formulas when dealing with 3D transformations, and as much as I love 2D, I know that diving deeper into these mathematical concepts will open up more possibilities, particularly if I want to create more complex mechanics or even venture into 3D game development down the line.
I plan to:
Study Linear Algebra & Matrices: This will help me better understand 3D transformations and vector operations.
Learn the Basics of Quaternions: I’m particularly interested in how quaternions are used for rotating objects in 3D space without the issues that come with other methods.
Experiment with Advanced Math in Projects: I want to apply what I learn in small test environments. It’ll be a good way to reinforce these complex concepts in practice.
I know not every game requires advanced math, but being able to handle these concepts will give me more flexibility when tackling challenging projects in the future.
I have a decent understanding of the basic principles behind level design, but when it comes to translating my creative ideas into playable, well-structured levels, I feel like I’m just scratching the surface. I’ve come up with some really ambitious and intricate level concepts, but executing them is tricky. It’s easy to get caught up in big ideas, but actually making them work and flow seamlessly is a whole other challenge.
Level design is one of the most critical aspects of creating a good game. A well-crafted level isn’t just a place to explore; it’s an integral part of the gameplay experience. It needs to balance challenge and flow, guiding the player through different phases of the game without overwhelming or frustrating them. Plus, it should encourage exploration and creativity. If I want players to feel rewarded for trying new things and pushing boundaries, I need to make sure my levels are structured to accommodate that.
Here’s how I plan to improve:
Analyse Well-Designed Levels: I’ll break down levels from games like Celeste, Super Mario Maker, and Titanfall 2 to see how they guide the player and use mechanics effectively.
Experiment with Level Prototyping: I plan to create small test levels and refine elements like pacing, obstacle placement, and overall flow. I’ve found that rapid prototyping is the best way to learn.
Iterate & Playtest Regularly: Nothing beats real player feedback. I’ll test levels regularly to get feedback and tweak them accordingly. This will help me fine-tune my designs to ensure they’re as engaging as possible.
Improving my level design skills will enable me to craft experiences that keep players engaged and allow my game’s mechanics to shine in a meaningful way.
By focusing on these weaker areas - music composition, animation, advanced mathematics, and level design - I’ll become a more well-rounded developer. While I’m confident in my programming abilities, honing these other skills will give me the tools I need to create polished, immersive games. By dedicating time to improving in these areas, I’ll be able to bring my creative visions to life in ways that are both technically sound and artistically compelling. The journey to mastering these skills will be challenging, but I’m excited to see where it takes me.
You play as Dr. Elias Carter, a brilliant but reckless physicist who becomes trapped inside a space station after a gravity experiment goes horribly wrong. The malfunctioning gravity core has thrown the entire station into chaos, causing floors to become ceilings, objects to float unpredictably, and robotic security drones to malfunction. With his Gravity Manipulation Suit, Elias must navigate the station, solve gravity-based puzzles, and escape before the station collapses into a black hole.
Gravity Flip: Press a button to invert gravity, causing Elias to fall upwards or downwards.
Momentum-Based Jumps: Flip gravity mid-air to slingshot between platforms.
Magnet Boots: Attach to metallic surfaces to walk on walls and ceilings.
Environmental Hazards: Spinning laser beams, floating debris, zero-gravity rooms, and AI-controlled drones.
Power-ups: gravity slow-down ability, repulsion boots to push objects away, and a time-freeze module.
Zero-G Maintenance Bay – Navigate through a debris-filled chamber where gravity randomly fluctuates. The player must time their flips carefully to avoid floating hazards.
AI-Controlled Armoury – Security drones attack as the player flips gravity to evade gunfire and disable the AI core.
Collapsed Cargo Hold – Platforms constantly shift, and players must use gravity flips to ride floating crates across deadly gaps.
The Gravity Core – The final level, where gravity shifts in all directions, requiring fast reflexes and precise timing to disable the core and escape the collapsing station.
In a world where advanced AI has replaced humanity, discarded machines have formed their own society in the scrapyards of the abandoned Earth. You play as Junkbot, a scrappy robot built from spare parts, who awakens with a mysterious directive: "Rebuild. Escape. Evolve." Determined to discover the truth behind its existence, Junkbot must traverse the scrapyard, avoiding scavenger bots and hostile machines while upgrading itself with new parts.
Modular Upgrades: Swap out different body parts for new abilities, such as magnet hands (to pull metal platforms), spring legs (for high jumps), and rocket boosters (for short glides).
Environmental Interaction: Use mechanical arms to lift objects, break barriers, or reassemble broken machinery.
Stealth Elements: Avoid larger, more powerful robots that patrol the junkyard.
Crafting System: Collect scrap materials to build new upgrades.
Combat Mechanics: Limited melee combat (extendable arms) and ranged weapons (junk-based projectile launchers).
Scrap Heap Canyon – A vast junkyard filled with shifting piles of metal, collapsing platforms, and scavenger bots searching for useful parts.
Underground Factory – An abandoned robot factory where malfunctioning assembly lines can be used to create new upgrades.
The Wasteland Express – A high-speed train made of scrap metal, with Junkbot navigating through moving platforms while avoiding enemy drones.
The AI Vault – The final level, where Junkbot discovers the AI that controls the remnants of Earth and must decide whether to destroy or integrate with it.
Set in a world consumed by an eternal winter, Frostbound follows Eira, the last warrior of a lost civilisation. Legends speak of an ancient "Heart of Winter", a mythical source of power that holds the key to either restoring balance or sealing the world in ice forever. Guided by the spirits of her ancestors, Eira embarks on a treacherous journey through the frozen wastes, battling ice beasts and ancient guardians to uncover the truth behind the endless cold.
Fire & Ice Magic: Use fire to melt obstacles, thaw frozen objects, and create warmth; use ice to freeze water, slow down enemies, and create icy platforms.
Survival Elements: Maintain body temperature by seeking shelter or lighting torches.
Combat System: Utilise a flaming spear and ice daggers in fast-paced combat.
Spirit Guidance: Interact with the spirits of fallen warriors to gain knowledge and upgrades.
Dynamic Weather: Blizzards reduce visibility and affect platforming mechanics.
Frozen Ruins of Valdoria – Navigate ancient temples buried in ice, solving puzzles that require alternating between fire and ice abilities.
The Howling Tundra – A vast, open area with harsh blizzards where players must use fire magic to stay warm while evading frost wolves.
The Glacier Caverns – An underground network of ice tunnels, filled with frozen waterfalls that can be melted to open new paths.
The Heart of Winter – The final level, where Eira faces the Ice Titan and decides whether to restore warmth to the world or embrace the eternal frost.
In HEIST!, you are a master thief on the ultimate high-speed heist, dashing, sliding, and wall-jumping through high-security vaults, rooftop escapes, and laser-filled corridors. This momentum-based 2D platformer challenges you to outmanoeuvre guards, bypass security systems, and pull off the perfect getaway - all while racing against the clock. With fluid movement mechanics, competitive speedrunning elements, and creative level design, every second counts as you chain together stylish parkour moves to escape in record time.
Core Movement System (Momentum-Based Platforming)
Dash – Short burst of speed to clear gaps or evade security systems.
Slide – Slip under lasers, through tight spaces, and maintain momentum.
Jump - A finely tuned jump to make precise leaps over gaps and to avoid guards/obstacles. The jump will also have buffering, coyote time and other advanced 2D tricks I researched above.
Rope Swing / Grapple (Optional Unlockable) – Attach to specific points to quickly traverse open spaces.
Perfect Timing Boosts – Successfully jumping out of a slide during coyote time (Perfect timing) will grant the player a very generous speed boost to clear huge distances.
DSJ - Dashing and then sliding to keep momentum before jumping to propel yourself forward with a speed boost (similar to how it works in Ghostrunner)
Stealth & Threat System
Security Drones & Cameras – If spotted, the alarm level increases, triggering more defences.
Dynamic Chase Sequences – Once detected, the level transforms with closing doors, tripwires, and locked exits, forcing high-pressure escapes.
Hiding Mechanics (Limited) – Brief hiding spots (e.g., inside vents) allow alarms to reset if needed.
Speedrunning & Replayability Features
Leaderboard Integration – Compete for the best heist times globally.
Ghost Mode – Race against previous runs (yours or top players’).
Branching Paths – Riskier, high-skill paths yield better rewards/times.
Rooftop Chase
Wall-run and vault across neon-lit skyscrapers.
Avoid spotlights, sniper drones, and collapsing platforms.
High-risk shortcuts include narrow ledges and glass skylights (break for dramatic entry).
Museum Heist
Navigate laser grids, pressure-sensitive floors, and rotating security cameras.
Stealth vs. Speed: Use vents for slow, silent movement or dash through moving lasers for a fast, risky escape.
Final sequence: Grab the golden artefact, triggering alarm lockdown mode – escape before security seals all exits.
Vault Escape
Starts with a slow-paced infiltration through a high-tech bank vault.
As soon as the player grabs the loot, the alarm goes off, and doors begin closing dynamically.
Adaptive AI Chase System: Guards dynamically adjust positions based on where the player was last seen.
I have chosen to develop HEIST! over the other game concepts for several key reasons, all of which align with my goals, constraints, and development priorities. The most crucial factor is the time constraint under which I am working. Given my limited timeframe, I need an idea that allows for efficient art and animation production without sacrificing quality. HEIST! naturally lends itself to a minimalist art style, with the protagonist wearing dark clothing and a mask or even appearing as a simple silhouette. This approach not only enhances the stealthy atmosphere of the game but also significantly reduces the workload for character animations, shading, and detailed sprite work. Compared to the more intricate character designs required in games like Frostbound or Junkbot, HEIST! provides a much more feasible and efficient path forward.
Beyond the practical advantages, HEIST! aligns perfectly with my gameplay-focused approach. I want to create a highly refined movement system where players can fluidly chain together dashes, slides, jumps, and wall-runs to complete levels in stylish and creative ways. This focus on core mechanics over narrative depth or extensive world-building makes HEIST! the ideal choice. Rather than designing dozens of levels, I can concentrate on crafting two or three polished, replayable stages with multiple routes, skill-based shortcuts, and an emphasis on mastering movement. Speedrunning elements such as leaderboard integration and ghost runs will further enhance replayability without requiring excessive content creation.
Another compelling reason for selecting HEIST! is how seamlessly its premise ties into the core gameplay mechanics. A high-speed getaway after a heist is the perfect foundation for a game centred on speed and precision. Unlike other concepts that might require extensive storytelling to justify their mechanics, HEIST! is inherently intuitive: the player is escaping law enforcement, so every action, whether a last-second wall-run over a security laser or a perfectly timed slide under closing doors, feels naturally motivated by the situation. This cohesion between theme and gameplay makes for an engaging experience that doesn’t require excessive narrative exposition or cutscenes, keeping the focus on the player’s actions.
In summary, HEIST! is the best choice because it allows for rapid development without sacrificing quality, focuses on fluid and satisfying movement mechanics rather than resource-intensive storytelling, and naturally fits the high-speed, precision-based gameplay I aim to create. By concentrating on a few well-crafted levels with polished creative movement mechanics and speedrunning potential, I can deliver a polished, exciting experience within my constraints.
Ghostrunner is a high-octane, first-person action-platformer set in a cyberpunk dystopia, where speed and fluidity define the player experience. While it’s a 3D game, the principles of movement in Ghostrunner offer key insights into crafting a 2D platformer centred on momentum-based mechanics, skill expression, and speedrunning potential. The core appeal of Ghostrunner lies in its fast-paced, fluid movement and precision combat, which encourage creative problem-solving in traversal and combat. Let’s break down the movement system and how it can serve as inspiration for a 2D platformer.
The movement mechanics in Ghostrunner revolve around several abilities that work in harmony to create a seamless, fast-paced experience. These include:
Sprint: Basic forward movement, accelerating slightly over time.
Wall-Running: Traverse walls for extended periods, allowing players to chain movements between walls to cross gaps or reposition during combat.
Slide: Reduces hitbox size and maintains momentum, initiating advanced movement techniques.
Dash: A quick directional boost for repositioning or making precise aerial adjustments.
Grappling Hook: A tool for quickly transitioning between sections or zipping across the environment.
Jumping and Bunny Hopping: Maintain forward momentum while jumping to keep speed and accelerate movement chaining.
What sets Ghostrunner apart is how these mechanics interact dynamically with the environment, allowing players to seamlessly chain movements together. Each action serves to propel the player forward, encouraging fluid, responsive, and skilful traversal. The flow of movement in Ghostrunner is about constantly linking abilities to maintain speed and control, which in turn builds into a high-skill gameplay experience.
At its core, Strata is a game that redefines what it means to traverse a level. Unlike many traditional 2D platformers where the mechanics focus mainly on basic jumps, dashes, and quick reflexes, Strata revolves around a physics-based system of movement that challenges players to control momentum and harness it to their advantage. This creates a platforming experience that feels more like a dance - fluid, rhythmical, and, when done well, exhilarating.
The most defining aspect of Strata’s movement system is its emphasis on momentum preservation. A standout mechanic here is the slide-jump - a move that rewards players for maintaining speed during their descent. By initiating a slide and timing a jump correctly, players can launch themselves into the air without losing their momentum, allowing for longer and faster traversal. This mechanic adds a layer of strategy to the gameplay, as players must not only think about when to jump but also how to chain different movements together. The slide-jump isn't just a tool for speed, though - it's often necessary for navigating challenging, precision-heavy sections where maintaining control over movement is crucial.
The dash mechanic complements this by offering further mobility options. Whether in the air or on the ground, dashes provide players the ability to reposition quickly, allowing for greater flexibility when dodging obstacles or adjusting their trajectory mid-air. This tool becomes particularly powerful in more complex sections of the game, where controlling your exact positioning could mean the difference between success and failure. Additionally, since the dash resets upon landing, it encourages careful planning to chain movements effectively, preserving speed while avoiding losing control.
When combined, these mechanics create a dynamic and skill-based experience. Players who master them are rewarded with smooth, fast, and satisfying movement. Instead of simply reacting to obstacles, players are encouraged to think ahead, plan their routes, and optimise their movement strategies, making Strata’s platforming system incredibly satisfying to learn and master.
Strata doesn’t just encourage mastery of its mechanics, it actively promotes competitive play through its integrated speedrunning system. Speedrunning in Strata is far from an afterthought; it’s a central part of the game’s design. The game offers a comprehensive time-trial system, complete with leaderboards that allow players to compete for the fastest times. The integration of a seasonal leaderboard system ensures that competition remains fresh and dynamic, as new strategies, techniques, and optimisations emerge every season.