Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WE'RE SO BACK! #9

Merged
merged 29 commits into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2d02062
Update mkdocs.yml
ZakaHaceCosas Nov 12, 2024
d832278
Update index.md
ZakaHaceCosas Nov 12, 2024
4a38f6d
just wrote a cool blog article :D
ZakaHaceCosas Nov 12, 2024
f89500d
Add post cover
ZakaHaceCosas Nov 12, 2024
7e954dd
Add design image
ZakaHaceCosas Nov 12, 2024
8c29af1
Update were-one-year-old.md
ZakaHaceCosas Nov 12, 2024
5ec88dd
Update README.md
ZakaHaceCosas Nov 12, 2024
6220c15
Add banner
ZakaHaceCosas Nov 12, 2024
8a52a6e
Create CODE_OF_CONDUCT.md
ZakaHaceCosas Nov 12, 2024
f00f6e8
Create CONTRIBUTING.md
ZakaHaceCosas Nov 12, 2024
6ebb9b6
Update LICENSE.md
ZakaHaceCosas Nov 12, 2024
bf6bc03
Create SECURITY.md
ZakaHaceCosas Nov 12, 2024
7cff9d6
This one looks better
ZakaHaceCosas Nov 12, 2024
4b41f5a
Update index.md
ZakaHaceCosas Nov 13, 2024
afb7d71
Update README.md
ZakaHaceCosas Nov 13, 2024
abed968
Rename logo/banner-darkmode.png to logo/old/banner-darkmode.png
ZakaHaceCosas Nov 13, 2024
18e97d5
Rename logo/banner-nobg.png to logo/old/banner-nobg.png
ZakaHaceCosas Nov 13, 2024
e6f626a
Rename logo/banner.png to logo/old/banner.png
ZakaHaceCosas Nov 13, 2024
e3e5faf
Rename logo/banner1.png to logo/old/banner1.png
ZakaHaceCosas Nov 13, 2024
646369b
Rename website/logo/banner-darkmode.png to website/logo/old/banner-da…
ZakaHaceCosas Nov 13, 2024
9dd4d77
Rename website/logo/banner-nobg.png to website/logo/old/banner-nobg.png
ZakaHaceCosas Nov 13, 2024
4d987e2
Rename website/logo/banner.png to website/logo/old/banner.png
ZakaHaceCosas Nov 13, 2024
a6bb6b7
Rename website/logo/banner1.png to website/logo/old/banner1.png
ZakaHaceCosas Nov 13, 2024
b168e27
Add files via upload
ZakaHaceCosas Nov 13, 2024
5514b62
Add files via upload
ZakaHaceCosas Nov 13, 2024
428e2ec
Add files via upload
ZakaHaceCosas Nov 13, 2024
a3b3d44
Help trying to fix the merge conflict :sob:
dimkauzh Nov 13, 2024
2a9a948
Create banner-nobg.png
dimkauzh Nov 13, 2024
12292e3
Merge branch 'latest' into latest
dimkauzh Nov 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Vuelto Code of Conduct

Vuelto is built by developers, for developers. We are committed to fostering a welcoming and inclusive community. By participating in this project, you agree to the following principles:

1. **Respect Everyone**
Treat all contributors with kindness and respect. Discrimination, harassment, or offensive language is not tolerated.

2. **Collaborate Openly**
Share ideas, feedback, and code in a constructive and respectful manner. Assume good intentions and work to resolve disagreements with empathy.

3. **Stay Professional**
Keep discussions focused on the project. Avoid disruptive behavior, spamming, or derailing conversations.

4. **Be Inclusive**
Make the community accessible to everyone, regardless of experience level, background, or identity.

Violations of this Code of Conduct may result in warnings, bans, or other actions as necessary. If you experience or witness any unacceptable behavior, please report it to the maintainers.

Together, let's build a community where creativity and collaboration thrive!
58 changes: 58 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Contributing rules
We are happy and welcome if you want to contribute to Vuelto. But please consider a few details before continuing:

1. Branch: Please when working on your fork, work in the dev branch, because we only will accept commits to the dev branch. It will later be released with the next version of Vuelto.
2. Explain: Please explain why this should be considered and merged. That will make our life easier.
3. Test: Please test your code before even opening a new pull request.
4. Documentation: Please, if you’re adding something new, like a feature, please document everything.
5. Format: Please, run `make format` for formatting of the code.

Not following these rules
If we see a pull request that doesn't follow these rules, we will tell you that, and close the pull request.
We allow you to re-open a new pull request, but we expect you to have your code fixed.
So make sure that you followed [the rules](#contributing-rules)

Some technologies we are using
- GLFW: We use this for the desktop windowing
- “syscall/js”: We use this to interact with the JS runtime
- glow: Generate OpenGL Go bindings
- CGo: Interface to use C with Go

## How to setup the work environment

If you want to contribute, you have to set up the work environment, so you can develop vuelto the right way.

1. Install the packages

```bash
go mod tidy
```

2. Fork [the repository](https://github.com/vuelto-org/vuelto).

3. Clone your forked github repository:

```bash
git clone https://github.com/your_username_/vuelto.git
cd vuelto
```

4. Change the branch to the dev branch to follow rule \#1:

```bash
git checkout dev
```

## Pull Request

If you're ready with your changes, then you must follow a few steps before pull requesting.

1. Run `make` to format your code:

```bash
Make format
```

Then make sure your pull request code works without erroring and you followed the [contribution rules](#contributing-rules)

After all of this, you can create a pull request and one of our main organization members will look at it.
89 changes: 59 additions & 30 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,77 @@
**Vuelto License V1**
# Vuelto License V1.1

This software is licensed under the terms of the [GNU General Public License version 3 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) except as noted below.
This software is licensed under the terms of the [GNU General Public License version 3 (GPLv3)](https://www.gnu.org/licenses/gpl-3.0.en.html) except as noted by the license below.

**1. Primary License**
## **0. Definitions**

This software is licensed under the terms of the [GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.en.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
"_The main license_" refers to the [GNU General Public License version 3](https://www.gnu.org/licenses/gpl-3.0.en.html) as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

**2. Condition for License Change**
"_The fallback License_" refers to the [MIT License](https://opensource.org/licenses/MIT) as published by the Massachusetts Institute of Technology

"_The software_" refers to the combination of all works and pieces of source code that are under the conditions of The license.

"_The maintainer(s)_" refers to the original maintainer(s) of The software, or the designated project governance body for The software.

“_The source code_” refers to any piece of source code, including but not limited to scripts, computer code, and compiled binaries, that is directly associated with The software.


"_The main repository_" refers to the repository where most of The software's development occurs, and/or where The source code of The software itself (or at least it’s primary / most important parts) is hosted, _not_ implying that other code repositories that are directly linked to the project are to be excluded by the terms of the Vuelto License.

## **1. Primary License**

The software is, by default, licensed under the terms of the main license unless otherwise specified, as the license of The software can change under the conditions outlined by **Sections 2 and 3** of the Vuelto License.

## **2. Condition for License Change**

The software shall be deemed "unmaintained" if any of the following conditions are met:
- The project repository has been archived or set to read-only.
- The project has been officially pronounced as "dead" by the original maintainer(s) or the designated project governance body.
- No code commits have been made to the project's main repository for a continuous period of 1.5 years (18 months).
- The project has been officially pronounced as "dead", "unmaintained", or something else with the same meaning by The maintainer(s).
- No substantial code contributions (beyond minor maintenance tasks or dependency updates) have been made to The main repository for a continuous period of 1.5 years (18 months).

**3. Fallback License**
## **3. Fallback License**

If the software is determined to be unmaintained as per the conditions above, the license for the software automatically changes to the MIT License as follows:
If The software is determined to be unmaintained as per the conditions above, the license for The software automatically changes to the MIT License as follows:

```
```txt
MIT License

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
@@ -39,6 +54,39 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```

**4. Interpretation**
## **4. Interpretation**

The decision on whether The software is unmaintained will be made by the original maintainer(s) or the designated project governance body, if any. In the absence of such a body, the community of contributors may reach a consensus according to the project's documented processes.

## **5. Communication of License change**

If The software is declared unmaintained by The maintainer(s), the change shall be communicated by an update to The sroject's "_README_ file", website, or any other mean of communication that makes this change clear.

## **6. Extensibility of the License**

It is possible for The maintainer(s) to extend the Vuelto License with additional terms. These must be made clear by The maintainer(s) by specifying them when using the License's identifier.

All possible extensions are shipped in the License's text, but they shall apply only if specified by The maintainer(s). Extensions are not part of the License's numerical order (Section 1, Section 2, and so); instead they are found at the end, preceeded by a heading with their specific identifier, and then using "A, B, C..." notation rather than "1, 2, 3..." notation for each section.

### **6.1. License identification**

Every piece of software shall specify the License they are licensed under via a text block, an SPDX identifier, or such. Version 1.1 of the Vuelto License shall be identified by the "VLv1.1" code, and, optionally, a text block indicating it's the Version 1.1 of the Vuelto License.

### **6.2. Possible extensions**

The following extensions, with their content available at the end of this License as outlined in **Section 6**, are available to the Vuelto License, and must be identified using the specified Identifier that follows their name.

- VL-C (Vuelto License-Copyright). Identifier: "VL-Cv1.1".

<!-- BEGIN VL-C 1.1 ONLY -->
## VL-C

### **A. Copyright on Artwork**

Any artwork associated with The software, including but not limited to logos, icons, and other visual assets, is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on artwork no longer applies, and the artwork is included under the MIT License.

The decision on whether the software is unmaintained will be made by the original maintainer(s) or the designated project governance body, if any. In the absence of such a body, the community of contributors may reach a consensus according to the project's documented processes.

**5. Copyright on Artwork**
### **B. Copyright on Code**

Any artwork associated with this software, including but not limited to logos, icons, and other visual assets, is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if the software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on artwork no longer applies, and the artwork is included under the MIT License.
The source code is copyrighted and licensed under the terms of the Primary License (GNU GPLv3 or later). However, if The software license changes to the MIT License under the conditions outlined in **Section 3**, this copyright on The source code no longer applies, and The source code is included under the MIT License.
<!-- END VL-C 1.1 ONLY -->
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
<h1 align="center">
<p align="center">
<img width="1400" alt="banner" src="/logo/banner-dev.png">
<img width="1400" alt="banner" src="https://github.com/vuelto-org/vuelto/raw/latest/logo/banner-dark.png#gh-dark-mode-only">
<img width="1400" alt="banner" src="https://github.com/vuelto-org/vuelto/raw/latest/logo/banner-light.png#gh-light-mode-only">
<a href="https://github.com/vuelto-org/vuelto"><img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/vuelto-org/vuelto"></a>
<a href="https://github.com/vuelto-org/license"><img alt="License" src="https://img.shields.io/badge/license-VLv1-blue"></a>
<a href="https://github.com/vuelto-org/license"><img alt="License" src="https://img.shields.io/badge/license-VL--Cv1.1-blue"></a>
<a href="https://github.com/vuelto-org/vuelto"><img alt="CI Check" src="https://github.com/vuelto-org/vuelto/actions/workflows/ci_check.yml/badge.svg"></a>
<a href="https://github.com/vuelto-org/vuelto"><img alt="Lines of code" src="https://www.aschey.tech/tokei/github/vuelto-org/vuelto"></a>
<a href="https://goreportcard.com/report/github.com/vuelto-org/vuelto"><img alt="Report card" src="https://goreportcard.com/badge/github.com/vuelto-org/vuelto"></a>
<a href="https://www.opengl.org/Documentation/Specs.html"><img alt="Powered By" src="https://img.shields.io/badge/powered_by-GL_3.3-blue"></a>
</p>
</h1>

Vuelto is an open-source, fast, and light game engine, based on Golang, CGo, and OpenGL. It's really easy to use, yet very powerful, and it also supports cross-platform compiling.

Expand Down Expand Up @@ -102,7 +101,7 @@ If you find a security vulnerability, please follow the instructions in [SECURIT

### 🔐 License

Vuelto is licensed under a customized version of [VLv1 Licence](LICENSE.md). Any PRs that primarily focus on changing the license won't be accepted.
Vuelto is licensed under the [VL-Cv1.1 Licence](LICENSE.md). Any PRs that primarily focus on changing the license won't be accepted.

### 🌐 Community and Contact

Expand Down
7 changes: 7 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Vuelto Security Policy

## Reporting security vulnerabilites

If you find a security issue with Vuelto, we please ask you that you contact us privately via [email](mailto:[email protected]) instead of making a public issue / PR, so we can fix it as soon as possible without drawing unwanted attention. You will receive a response as soon as we can, and you'll be notified and accordingly credited as we release a patch.

Thank you for helping! We want to keep Vuelto secure and contributors play a key role in that objective.
4 changes: 3 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
site_name: Vuelto
site_description: A fast and lightweight game engine powered by Go and OpenGL. Easy, fast and lightweight!
site_url: https://vuelto.me
site_author: The Vuelto Team
copyright: The Vuelto Team

repo_name: vuelto-org/vuelto
repo_url: https://github.com/vuelto-org/vuelto
Expand All @@ -27,7 +29,7 @@ nav:

- Blog: # ✍️
- 📚 Articles: "blog/index.md"
- <emoji> Example: "blog/example.md"
- "We’re one year old!": "blog/were-one-year-old.md"

- Tutorials:
- 🎓 Home: "tutorials/index.md"
Expand Down
2 changes: 1 addition & 1 deletion website/blog/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Hey there! Welcome to Vuelto's blog. Here, you will find all the latest updates and news about Vuelto.

## Latest Posts
- [none](example.md)
- [We're one year old!](were-one-year-old.md)
Binary file added website/blog/were-one-year-old-cover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added website/blog/were-one-year-old-image1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
100 changes: 100 additions & 0 deletions website/blog/were-one-year-old.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
![Post cover](/blog/were-one-year-old-cover.png)

# We’re one year old\! V1.1 is coming, and it’s looking good\!

Hi there\! I’m [ZakaHaceCosas](https://github.com/ZakaHaceCosas), and I’m a new addition to the Vuelto Team, though I’ve known this engine for a while. Feels like it’s already been a year since I got to know this engine \- and indeed, it has been a year since it was made\! Today, one year ago, Vuelto was created as an alternative to [Fusion Engine](https://github.com/fusionengine-org/fusion), another engine made by the same creator.

We at Vuelto have been cooking a new release for a while now, and while it’s not ready for today as we still work on it, it’s coming soon (in fact, there’s already a [PR draft](https://github.com/vuelto-org/vuelto/pull/8)), and it’s looking pretty neat.

## New rendering system approach

Currently, Vuelto 1.0 uses a pipelined system for rendering graphics. It looks kinda like this:

```go
// …
gl.Vertex2f(x, y)
gl.Vertex2f(x+width, y)
gl.Vertex2f(x+width, y+height)
gl.Vertex2f(x, y+height)
// …
```

Version 1.1 adds new GL 3.3 Core and refactors the rendering system to be more shader based, like this:

```go
vertexShader := NewShader(VERTEX_SHADER, "vertex_shader_web.glsl", "vertex_shader_desktop.glsl")
fragmentShader := NewShader(FRAGMENT_SHADER, "fragment_shader_web.glsl", "fragment_shader_desktop.glsl")

vertexShader.Compile()
fragmentShader.Compile()

program := NewProgram(*vertexShader, *fragmentShader)
program.Link()
program.Use()
```

It doesn’t only make the code more maintainable, but it also improves performance, since we now work with GL 3.3’s shaders system.

Also, this will allow us to implement in a future release support for more advanced things like material textures and more\!

## New windowing system

We replaced Vuelto’s old windowing library with a homemade one, supporting GLFW and JS Canvases. This adds \- among other things \- web support\! In general, this new library gives us much more flexibility for cross-platforming.

Now, from a single piece of code like this one:

```go
window, err := windowing.InitWindow()
if err != nil {
log.Fatalln("Could not initialise a new window: ", err)
return nil
}

window.Title = title
window.Width = width
window.Height = height
window.Resizable = resizable
```

\- you now have something that works with both the web and GLFW. Under the hood, Vuelto will take care of code filtering for each platform, so you don’t gotta worry about that.

## Events\!

*There’s less progress on this area* BUT \- it’s a thing, and it’s coming in V1.1\! While this is still in early stages and subject to changes, for now the idea is to make them using a boolean (`true`/`false`) structure.

Basically:

```go
if vuelto.Key["e"].Pressed == true {
// do something
}
```

`.Pressed` will change to true as soon as the event is called, firing the code inside the block. It will turn false immediately after (as it’s a one time event) so it can be called again as many times as needed.

For data that isn’t an event *itself* but *depends* on an event (e.g. the mouse position), the idea is to provide a function to get the value. For example:

```go
vuelto.GetMousePox() // {x: 483, y: 131}
vuelto.GetMousePox().X // 483
vuelto.GetMousePox().Y // 131
```

!!! note Keep in mind that the function returns the value for the moment of the call.

The value is not “reactive” like a web dev would say, so if you want to constantly keep track of the value, you’ll have to use some sort of loop.

## Better engine, better looks

The priority is to *be* a good option, but we also gotta *look like* a good option. That’s why we did some iterations on our branding\! We kept the core idea (the main logo), but changed typefaces, colors, banners, styling, and more.

![An image showing some of the design tweaks we did to Vuelto's branding](/blog/were-one-year-old-image1.png)

We want Vuelto to look more professional, so we’re giving it a well-needed refresh. Talking about being professional, we’re finally finishing the documentation, and we’ll also get contributing guidelines and more cool-looking documents soon.

And that’s all, my fellows\! Again, this is still in the works, V1.1 will have more (and more polished) stuff upon its final release, and we're thrilled to share more details as soon as we can.

For now, happy birthday, Vuelto\!

God bless you,
> \- [ZakaHaceCosas](https://github.com/ZakaHaceCosas), from the Vuelto Team.
Loading