Skip to content
/ Alis Public

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

License

Notifications You must be signed in to change notification settings

pabllopf/Alis

Coverage Lines of Code Maintainability Rating Code Smells Technical Debt Security Rating Bugs Reliability Rating Duplicated Lines (%) Vulnerabilities GitHub issues License Web Nuget Total downloads 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.

⚙️ Modular Design

All modules within the Alis framework are fully independent and can be used separately. While the primary focus of Alis is game development, these modules are versatile and can be integrated into other types of applications requiring data management capabilities.


🖥️ Platform Compatibility

The Alis framework is designed to support a wide range of platforms, ensuring flexibility and adaptability for developers. Each module is optimized for seamless integration across the following architectures and operating systems:

Supported Platforms:

  • Windows
    • win-x64
    • win-x86
    • win-arm64
  • Linux
    • linux-x64
    • linux-musl-x64
    • linux-arm
    • linux-arm64
    • linux-musl-arm
    • linux-musl-arm64
  • macOS
    • osx-x64
    • osx-arm64

🎮 Platform Compatibility

Alis is designed to support a wide range of frameworks, ensuring maximum flexibility across different platforms and environments. Whether you're working with legacy systems or the latest .NET versions, this module has got you covered!

Supported Frameworks:

Framework Version(s)
.NET Core netcoreapp2.0, netcoreapp2.1, netcoreapp2.2, netcoreapp3.0, netcoreapp3.1
.NET 5 & Above net5.0, net6.0, net7.0, net8.0, net9.0
.NET Standard netstandard2.0, netstandard2.1
.NET Framework net471, net472, net48, net481

🚀 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
pabllopf
Pablo Perdomo Falcón
Chgv99
Christian García
RicardoVillarta
RicardoVillarta
GabrielRT01
Gabriel
SPEEDCROW98
Pedro D.GR
Claudia2000pf
Claudia2000pf
suarez0965
Carlos
roseralmenar
Roser Almenar