Skip to content

pabllopf/Alis.Sample.OpenGL

Repository files navigation

Coverage Lines of Code Maintainability Rating Code Smells Technical Debt Security Rating Bugs Reliability Rating Duplicated Lines (%) Vulnerabilities GitHub issues Release License GitHub all releases Web Nuget GitHub Stars Donate

Develop the video games of your dreams 💯 free!! on Windows, MacOS, Linux, Android(soon), IOS(soon).

📚 Table of Contents


📖 Description

Alis is a cross-platform framework designed to help developers create video games effortlessly. It includes a wide range of packages tailored for different functionalities like graphics, physics, networking, audio, and extensions for cloud integrations, AI, and more.

Features:

  • Cross-Platform: Compatible with Windows, macOS, Linux, and planned support for Android and iOS.
  • Modular: Each feature is available as a separate NuGet package.
  • Open Source: Licensed under GNU GPL v3.0 (ALL FREE!).
  • Powerful Extensions: Integrate easily with Google Ads, Google Drive, FFmpeg, and more.

🚀 Getting Started

To start using Alis, simply install the core package from NuGet:

dotnet add package Alis

đŸ› ïž Example Usage

using Alis;
using Alis.Core.Ecs.System;

class Program
{
    static void Main()
    {
        VideoGame.Create().Build().Run();
    }
}

📩 NuGet Packages Overview

The ALIS framework is built with a modular architecture to provide flexibility, scalability, and performance optimization for game development. Below, you’ll find an explanation of the structure and purpose of the different packages available.

Core Package

If your primary goal is to develop a game, you should start with the ALIS package. This is the main package of the framework and includes the fundamental tools required to build games effectively. It acts as the foundation, and in most cases, it’s all you need to get started.

Modular Architecture

The framework is divided into multiple packages to ensure clarity and scalability:

  • Clear Responsibility: Each package handles a specific domain, such as graphics, physics, or ECS (Entity Component System), making the framework easy to maintain and extend.
  • Customizability: Only include the packages relevant to your game, keeping your project lightweight and performant.
  • Reusability: Packages can be reused across different projects without relying on unnecessary dependencies.

This structure allows developers to tailor the framework to their specific needs, focusing on essential features without being burdened by unused functionality.

Extensions

The framework also provides a variety of extensions, which are optional add-ons that enhance the core functionality of the framework. These are designed to cover advanced or specific use cases. For example:

  • Graphic Extensions like OpenGL or SDL2 allow for advanced rendering capabilities.
  • Cloud Extensions enable integration with services such as Dropbox or Google Drive.
  • Language and Audio Extensions add dialogue systems, translators, or enhanced audio features.
  • Physics, Math, and Networking Extensions allow deeper customization and control over game mechanics.

By including only the extensions you need, you can optimize your project and add functionality tailored to your game’s requirements.

The following table contains all the available packages, their purpose, and their download statistics.

Package Name Version Downloads Description
Alis Nuget Nuget Main package for the Alis framework.
Alis.Core Nuget Nuget Core library for Alis.
Alis.Core.Aspect Nuget Nuget Provides aspect-oriented programming features.
Alis.Core.Aspect.Data Nuget Nuget Data handling extensions for AOP.
Alis.Core.Aspect.Fluent Nuget Nuget Fluent API support for aspects.
Alis.Core.Aspect.Logging Nuget Nuget Logging extensions for aspects.
Alis.Core.Aspect.Math Nuget Nuget Math utilities for aspect programming.
Alis.Core.Aspect.Memory Nuget Nuget Memory management tools for aspects.
Alis.Core.Aspect.Security Nuget Nuget Security enhancements for aspects.
Alis.Core.Aspect.Thread Nuget Nuget Threading utilities for aspect programming.
Alis.Core.Aspect.Time Nuget Nuget Time-related utilities for aspects.
Alis.Core.Audio Nuget Nuget Audio processing for Alis.
Alis.Core.Ecs Nuget Nuget Entity Component System module for Alis.
Alis.Core.Graphic Nuget Nuget Graphics rendering utilities.
Alis.Core.Network Nuget Nuget Networking utilities for Alis.
Alis.Core.Physic Nuget Nuget Physics module for Alis.
Alis.Extension.Ads.GoogleAds Nuget Nuget Google Ads integration extension.
Alis.Extension.Cloud.DropBox Nuget Nuget Dropbox cloud integration.
Alis.Extension.Cloud.GoogleDrive Nuget Nuget Google Drive cloud integration.
Alis.Extension.Graphic.ImGui Nuget Nuget ImGui graphics extension for Alis.
Alis.Extension.Graphic.OpenGL Nuget Nuget OpenGL graphics extension.
Alis.Extension.Graphic.Sdl2Image Nuget Nuget SDL2 image graphics extension.
Alis.Extension.Graphic.Sdl2Ttf Nuget Nuget SDL2 TTF graphics extension.
Alis.Extension.Io.FileDialog Nuget Nuget File dialog input/output extension.
Alis.Extension.Language.Dialogue Nuget Nuget Dialogue system extension.
Alis.Extension.Language.Translator Nuget Nuget Translation system extension.
Alis.Extension.Math.DungeonGenerator Nuget Nuget Dungeon generator extension.
Alis.Extension.Math.HighSpeedPriority Nuget Nuget High-speed math priority extension.
Alis.Extension.Multimedia.FFmpeg Nuget Nuget FFmpeg multimedia processing extension.
Alis.Extension.Payment.Stripe Nuget Nuget Stripe payment processing extension.
Alis.Extension.Plugin Nuget Nuget Plugin system extension for Alis.
Alis.Extension.Profile Nuget Nuget User profile management extension.
Alis.Extension.Updater Nuget Nuget Updater system for Alis.

Note: For the complete list of packages, visit the NuGet Gallery.


đŸ›Ąïž License

The ALIS framework is released under the GNU General Public License v3 (GPL-3.0), a strong copyleft license that ensures your freedom to use, modify, and distribute the framework while preserving the same license terms. Below is an explanation of how the license affects you as a developer:

License

Key License Points

  • Complete Freedom for Video Game Developers:
    Any video game created with the ALIS framework is completely free and unrestricted. You are free to create, publish, and distribute your games without any licensing fees or royalties.

  • Source Code Availability:
    If you make modifications to the ALIS framework itself or integrate it as part of a larger software project (beyond just using it in a video game), you are required to make those changes publicly available under the same GPL-3.0 license. This ensures the framework remains open and accessible to everyone.

  • No Obligation to Mention:
    While it’s not required, it would be greatly appreciated if you mention or credit the ALIS project somewhere in your game, such as in the credits or documentation. This is entirely optional and is meant to help grow the ALIS community.

  • Patent Rights:
    Contributors to ALIS provide an express grant of patent rights, meaning you’re protected from patent-related legal issues when using the framework.

  • Copyright and Notices:
    You must preserve copyright notices and license texts when redistributing ALIS, either in its original form or as part of a modified version.

What This Means for Your Games

  • Your Game’s License:
    The GPL-3.0 license applies only to the ALIS framework and its modifications. It does not impose restrictions on the license of the game you build using ALIS. You are free to license your game however you choose (e.g., proprietary, open-source, or public domain).

  • Monetization:
    You are free to monetize games created with ALIS, whether by selling them, integrating ads, or any other form of commercialization.

For more details, you can read the full license by clicking the link below:


Contributor Guide

Thank you for investing your time in contributing to our project! Any contribution you make will be reflected. Read our Code of Conduct to keep our community approachable and respectable.

Contributor Covenant Code of Conduct

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.

Authors

pabllopf
Pablo Perdomo FalcĂłn

Collaborators

RaulLozanoPonce
RaĂșl Lozano Ponce
cannt
Juan Ángel Trujillo Jiménez
Chgv99
Christian GarcĂ­a
RicardoVillarta
RicardoVillarta
GabrielRT01
Gabriel
SPEEDCROW98
Pedro D.GR
Claudia2000pf
Claudia2000pf
suarez0965
Carlos
roseralmenar
Roser Almenar