Skip to content

Commit 866b411

Browse files
committed
Last revision of post 05
1 parent 46a24e8 commit 866b411

File tree

1 file changed

+36
-37
lines changed
  • src/content/posts/reinventing-the-wheel

1 file changed

+36
-37
lines changed

src/content/posts/reinventing-the-wheel/index.md

Lines changed: 36 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
2-
title: 🛞 Reinventing the wheel
2+
title: 🛞 Reinventing the Wheel
33
published: 2025-08-16
44
description: "Not everything, don't worry"
55
image: 'sketch.png'
66
tags: [Project Marbles]
77
category: 'Game Dev Log'
8-
draft: false
8+
draft: false
99
lang: ''
1010
---
1111

12-
... And more than _three months_ have passed. How have you been? I know in the last entry I said I'd be writting posts monthly, and I promise I tried, but life happens and sometimes you just can't be at your laptop and in the right state of mind to write about your passions. Or work on them, for that matter.
12+
... And more than _three months_ have passed. How have you been? I know in the last entry I said I'd be writing posts monthly, and I promise I tried, but life happens, and sometimes you just can't be at your laptop and in the right state of mind to write about your passions. Or work on them, for that matter.
1313

1414
Anyway, this entry will update you on the current status of the project and explore some of the difficulties I've been facing. And, as always, a bit of random rambling.
1515

@@ -18,104 +18,103 @@ Anyway, this entry will update you on the current status of the project and expl
1818
We finished the last post more certain about what type of game I wanted: a pinball.
1919
So... hehehe. That has changed. Let's understand the rationale behind it.
2020

21-
From a **technical** standpoint, the current framework (LÖVE) is far more capable of dealing with high-fidelity 2D physics than the last one (Godot), so that was not the problem. The issue I faced was designing interesting **game mechanics** that would encompass what I wanted: a strategic team dynamic with our marbles, against an engaging opponent or obstacle.
21+
From a **technical** standpoint, the current framework (LÖVE) is far more capable of dealing with high-fidelity 2D physics than the last one (Godot), so that was not the problem. The issue I faced was designing interesting **game mechanics** that would encompass what I wanted: a strategic team dynamic with our marbles against an engaging opponent or obstacle.
2222

2323
With that, I did a light exploration of the physics game world to understand the main characteristics I wanted, which are:
2424

25-
* Ball-throwing is the main control method for our marbles;
25+
* Ball throwing is the main control method for our marbles;
2626
* Different marbles have different enough abilities to considerably change the gameplay style;
2727
* Enemies to be defeated;
2828

29-
What that reminded me of? Angry Birds.
29+
What did that remind me of? Angry Birds.
3030

3131
## The Angry Birds tangent
3232

33-
In case you were living under a rock for the past seventeen years, [Angry Birds](https://www.angrybirds.com/explore/hall-of-games/) is a successful franchise that started in the gaming world and is even now launching its third movie, created by _Jaakko Iisal_ and owned by _Rovio Entertainment Ltd_.
33+
In case you were living under a rock for the past seventeen years, [Angry Birds](https://www.angrybirds.com/explore/hall-of-games/) is a successful franchise that started in the gaming world and is even now launching its third movie, created by _Jaakko Iisalo_ and owned by _Rovio Entertainment Ltd_.
3434

35-
The premise of the first game (back in 2009), which I played the most, is simple: the player has a set of birds, each with its own ability, a slingshot to launch them and a few green pigs behind destructible blocks to hit, either with the winged projectiles or smashing them below their own constructions.
35+
The premise of the first game (back in 2009), which I played the most, is simple: the player has a set of birds, each with its own ability; a slingshot to launch them; and a few green pigs behind destructible blocks to hit, either with the winged projectiles or by smashing them below their own constructions.
3636

37-
Each level presents a new type or combination of birds, along with new types of blocks and various buildings, making it harder for the player to hit all pigs with the limited amount of available birds. It is a pretty solid experience for the genre of physics-based puzzle. And, as I said in the previous blog entry, it uses the same physics engine LÖVE uses underneath: Box2D.
37+
Each level presents a new type or combination of birds, along with new types of blocks and various buildings, making it harder for the player to hit all pigs with the limited number of available birds. It is a pretty solid experience for the genre of physics-based puzzles. And, as I said in the previous blog entry, it uses the same physics engine LÖVE uses underneath: Box2D.
3838

3939
## Seasonings of my own
4040

41-
As I don't want to copy a game - be it because of legal issues or lack creativity - our marbles will work a bit differently:
41+
As I don't want to copy a game - be it because of legal issues or lack of creativity - our marbles will work a bit differently:
4242

43-
* The player will have a set of **round animals** - selected of a random pool - to use in a level;
43+
* The player will have a set of **round animals** - selected from a random pool - to use in a level;
4444
* Every level will have a different layout with a different set of enemies - in the form of **square marbles** - to defeat in order to clear the level;
4545
* With every passing level, there will be a choice to **upgrade** their current set of marbles or **acquire** a new one;
4646
* A **bigger challenge** will await the player each set of levels;
47-
* **Rogue-like** elements, like random levels and meta upgrades for each run;
47+
* **Roguelike** elements, like random levels and meta upgrades for each run;
4848

49-
But game design was not the culprit for holding me back this many months. Let's get to the weak spot of our game engine of choice: the **user interface**.
49+
But game design was not the culprit for holding me back these many months. Let's get to the weak spot of our game engine of choice: the **user interface**.
5050

5151
# UI elements from scratch
5252

53-
LÖVE has no built-in UI elements whatsoever. All it provides is the ability to show text, images and basic shapes, in a very simple manner, like "Print a filled blue rectangle with this width and height at x and y position". It also provides the ability to detect mouse position via a couple of methods, so we have all the tools to create a working user interface, right?
53+
LÖVE has no built-in UI elements whatsoever. All it provides is the ability to show text, images, and basic shapes in a very simple manner, like "Print a filled blue rectangle with this width and height at x and y position." It also provides the ability to detect mouse position via a couple of methods, so we have all the tools to create a working user interface, right?
5454

55-
Yes, but the system will be built from the ground up. Which can be a good thing, as I've always struggled a bit with the Control nodes in Godot Engine when it comes to resizing. It was _almost_ **never** the way I wanted, with a good scaling and mantaining its proportions.
55+
Yes, but the system will be built from the ground up. Which can be a good thing, as I've always struggled a bit with the Control nodes in Godot Engine when it comes to resizing. It was _almost_ **never** the way I wanted, with good scaling and maintained proportions.
5656

57-
I want a system to create the UI via simple shapes, provided by the existing drawing functions, in order to increase future compatibility with mobile and web exports. Inspired by the HTML capabilities, padding and margins would be customizable, with rounded borders and even shadow to imitate neumorphism components in the near future. Everything packed in a declarative way to be able to reuse components when needed, lightly inspired in React components.
57+
I want a system to create the UI via simple shapes, provided by the existing drawing functions, to increase future compatibility with mobile and web exports. Inspired by HTML capabilities, padding and margins would be customizable, with rounded borders and even shadow to imitate neumorphism components in the near future. Everything packed in a declarative way to be able to reuse components when needed, lightly inspired by React components.
5858

5959
## In theory, practice is something else entirely
6060

61-
In short, turns out that it is quite a challenge to create a user interface library from scratch, but I'm liking the process so far. The system is, at this moment, able to show colored boxes in various manners, with primitive tiling capability, splitting its content into pages. I promise it makes sense, check it out:
61+
In short, it turns out that it is quite a challenge to create a user interface library from scratch, but I'm liking the process so far. The system is, at this moment, able to show colored boxes in various manners, with primitive tiling capability, splitting its content into pages. I promise it makes sense - check it out:
6262

6363
![Prototype UI](prototype_ui.jpg "Prototype UI")
6464

65-
In the image above, the dark box has a tiling view of - the first page - the red element to the left and a grey element to the right with a view of - the second page - of the pink element. The blue element is the first page of the grey element and the light blue one is in the second page of the dark box.
65+
In the image above, the dark box has a tiling view of - the first page - the red element to the left and a grey element, to the right with a view of - the second page - the pink element. The blue element is the first page of the grey element and the light blue one is in the second page of the dark box.
6666

67-
Their visibility is only on now to validate if the spacing is being done correctly, they will be cut off from the view of the components with the scissors functions, to crop what is displayed in a portion of the screen.
67+
Their visibility is only on now to validate whether the spacing is being done correctly; they will be cut off from the view of the components with the scissors functions, to crop what is displayed in a portion of the screen.
6868

6969
And that's about it.
7070

7171
> Actually, no, there is another tangent.
7272
73-
# Design Styles
73+
# Design styles
7474

75-
I'm by no means a design person. I'm interested in a bit of the theory behind it and some concepts by I'm far from doing something design-related. I'd like to practice? Sure, and that time will come when I'll have to create the interface of my upcoming game, so be prepared for the horrors I'll show here in the future.
75+
I'm by no means a design person. I'm interested in a bit of the theory behind it and some concepts, but I'm far from doing something design-related. Would I like to practice? Sure, and that time will come when I have to create the interface of my upcoming game, so be prepared for the horrors I'll show here in the future.
7676

77-
So, this year Apple has launched a new design for their systems, [Liquid Glass](https://www.apple.com/br/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/), and - as the giant it is - should influence the direction overall design heads toward. At first, I thought Liquid Glass was a not so great change. The transparency with blur and distortion made the content below weirdly present yet unable to be read.
77+
So, this year Apple launched a new design for their systems, [Liquid Glass](https://www.apple.com/br/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/), and - as the giant it is - should influence the direction overall design heads toward. At first, I thought Liquid Glass was not a great change. The transparency with blur and distortion made the content below weirdly present yet unreadable.
7878

79-
But with each passing day of watching reviews of their presentation, more it grew in me, and I'll explain why - but we have to go to a bit of the early history of design.
79+
But with each passing day of watching reviews of their presentation, the more it grew on me, and I'll explain why - but we have to go to a bit of the early history of design.
8080

81-
## Skeumorphism
81+
## Skeuomorphism
8282

83-
When smartphones were just crawling out of their cribs, its tech was still alien to the average user: people had phones with small screens and big keyboards, not a single slab of screen. This big screen paved the way for the smartphone to become a swiss-army knife of tools. But that came with a question for the designers of these systems: how to guide the user to the relevant apps?
83+
When smartphones were just crawling out of their cribs, their tech was still alien to the average user: people had phones with small screens and big keyboards, not a single slab of screen. This big screen paved the way for the smartphone to become a Swiss Army knife of tools. But that came with a question for the designers of these systems: how to guide the user to the relevant apps?
8484

85-
Skeumorphism comes with the idea to use real world objects to convey virtual functionalities, like having a photorealistic image of a camera for the camera app and a notebook for the virtual phonebook. You may think this is a somewhat new approach, but we can go decades back with the "Save" button being a floppy disk (2010 kids doesn't have a faint idea what I'm talking about now, sorry) or a "New file" being a blank sheet of paper.
85+
Skeuomorphism comes with the idea of using real-world objects to convey virtual functionalities, like having a photorealistic image of a camera for the camera app and a notebook for the virtual phonebook. You may think this is a somewhat new approach, but we can go decades back with the "Save" button being a floppy disk (2010s kids don't have a faint idea what I'm talking about now, sorry) or a "New file" being a blank sheet of paper.
8686

87-
As every trend has it opposing force, to move away from the real objects filled with textures and details, a simpler approach to design was put forward and accepted.
87+
As every trend has its opposing force, to move away from the real objects filled with textures and details, a simpler approach to design was put forward and accepted.
8888

89-
## Flat Design
89+
## Flat design
9090

91-
To rest the tired eyes of the information overload every interface had, designers shifted to simple shapes and fewer colors to convey brands and ideas. An example for us to check is the Instagram logo:
91+
To rest the tired eyes from the information overload every interface had, designers shifted to simple shapes and fewer colors to convey brands and ideas. An example for us to check is the Instagram logo:
9292

9393
![History of Instagram Logo](instagram_logo.jpg "History of Instagram Logo")
9494
> You can check the source of this image and a more comprehensive analysis at https://looka.com/blog/instagram-logo/
9595
96-
See that it went from a camera that had reflex in its lenses and even leather texture at the top half tll
97-
o three basic shapes that conveyed the main elements of it? To complement the shape, it also choosed a set of colors for its branding, and now this logo is impossible to be confused with another platform ot not be known.
96+
See that it went from a camera that had reflections in its lenses and even a leather texture at the top half to three basic shapes that conveyed its main elements? To complement the shape, it also chose a set of colors for its branding, and now this logo is impossible to confuse with another platform or not be known.
9897

9998
## Neumorphism
10099

101-
To bring balance back to the design world, a middle ground has been picking up steam. Neumorphism takes the simplicity of the shapes and textures of the Flat Design and reimagines its components as being physical objects in the real world, with shadow and smooth textures with light-reflecting properties.
100+
To bring balance back to the design world, a middle ground has been picking up steam. Neumorphism takes the simplicity of the shapes and textures of flat design and reimagines its components as physical objects in the real world, with shadow and smooth textures with light-reflecting properties.
102101

103102
![Neumorphism UI](neumorphism.png "Neumorphism UI")
104-
> You can check the source of this image and a lenghtier guide to Neumorphism at https://www.justinmind.com/ui-design/neumorphism
103+
> You can check the source of this image and a lengthier guide to Neumorphism at https://www.justinmind.com/ui-design/neumorphism
105104
106-
That way, the interface remains simple in shapes and colors but with a new life in it, reacting to light and being texturized. Changing the "material" of the elements now is a possibility to inovate in this field, just like with liquid glass. And it seems like a trend to be followed, as Microsoft itself adopted similar design objects in their projects. An exemple is the Microsoft Teams download page, following Apple's approach with objects with glass-like properties:
105+
That way, the interface remains simple in shapes and colors but with new life in it, reacting to light and being texturized. Changing the "material" of the elements now is a possibility to innovate in this field, just like with liquid glass. And it seems like a trend to be followed, as Microsoft itself adopted similar design objects in their projects. An example is the Microsoft Teams download page, following Apple's approach with objects with glass-like properties:
107106

108107
![Microsoft Teams](microsoft_teams.png "Microsoft Teams")
109108

110109
# Final remarks
111110

112-
Neumorphism is something I'm becoming passionate about, and I intend to follow this design style in this game. It will be a challange to create something as vibrant as this in a barebones framework, but I'm exicted for it.
111+
Neumorphism is something I'm becoming passionate about, and I intend to follow this design style in this game. It will be a challenge to create something as vibrant as this in a bare-bones framework, but I'm excited about it.
113112

114-
The goal is for next post to have a functional UI and some basic gameplay elements for us to explore.
113+
The goal is for the next post to have a functional UI and some basic gameplay elements for us to explore.
115114

116115
---
117116

118-
As aways, thank you for reading.
117+
As always, thank you for reading.
119118

120119
See you in the next post!
121120

0 commit comments

Comments
 (0)