GithubHelp home page GithubHelp logo

sparcle-studio / srengine Goto Github PK

View Code? Open in Web Editor NEW
52.0 7.0 9.0 235.08 MB

:zap: SpaRcle Engine - cross-platform 2D/3D game engine in C++.

License: MIT License

CMake 3.35% Python 1.58% C 0.05% C++ 94.29% Batchfile 0.74%
cpp game-engine gamedev crossplatform engine game-development sparcle sparcle-engine srengine

srengine's Introduction

SpaRcle Engine

Project Status: Active โ€“ The project is under active delopment!. CodeFactor. GitHub Contributors. Issues. Commit Activity. Discord server.

Build statistics.

SpaRcle Engine is an ongoing game engine developed in C++. It aims to establish a strong base for game creation and is currently in the early stages of development, emphasizing the creation of a versatile and efficient architecture.

Screenshots

image_2023-05-31_21-40-59 image_2023-05-31_21-40-59

Supported compilers

  • MSVC (Stable)
  • MinGW
  • Cygwin
  • Clang
  • GCC

Supported platforms

  • Windows 10
  • Linux X11 (in development)
  • Linux Wayland
  • Android

Branches

  • master - branch for releases
  • dev - active development branch
  • features/* - branches for new features
  • tmp/* - temporary branches for dangerous experiments
  • release/* - branches for release candidates

Building

Important

Requirements:

  • 0.1. Install Clion 2020.1 or newer / Visual Studio 2019 or newer
  • 0.2. Install Vulkan SDK/Runtime 1.3.211.0 or newer
  • 0.3. Install CMake 3.16.0 or newer
  • 0.4. Install MS Build Tools for Visual Studio 16.11.29 or newer (if you are using CLion)
  1. Clone repository via the command "git clone https://github.com/SpaRcle-Studio/SREngine"
  2. Switch to the "dev" (or another one) branch via the command "git checkout branch_name"
  3. Run command "git submodule update --init --recursive" in repository folder
4. Working with CMake (if you're using Visual Studio):
- 4.1 Open CMake GUI

- 4.2 Choose the path to the SREngine folder (where the source code is located).

- 4.3 Choose the path where to build the binaries (SREngine/Build).
 
- 4.4 Press "Configure" and choose your VS version.

- 4.5 Press "Generate"

- 4.6 Open Visual Studio solution

- 4.7 Set as startap project SREngine 

- 4.8 Run build 
5. Working with CLion:
- 5.1 Press Ctrl + Alt + S to open Settings window

- 5.2. Select "Build, Execution, Deployment" on the left

- 5.3. Select "Toolchains"

- 5.4. Add (Alt + Insert) Visual Studio compiler

- 5.5. Select amd64 in "Architecture:"

- 5.6. Repeat 5.2

- 5.7. Select "CMake"

- 5.8. Pass "-j*" argument as "Build options", while * is a number of your logical processors minus 2

- 5.9. In Project window right-click SREngine folder and click "Reload CMake Project"

- 5.10. Click "Run 'SREngine'" (Shift + F10)

Used libraries

Features

  • SpaRcle Shader Language (SRSL)
  • SpaRcle Logical Machine (SRLM) aka Blueprints
  • Chunk system
  • Render passes
  • Custom framebuffers
  • C++ scripting system
  • Animations
  • SSAO
  • Cascaded shadow mapping
  • Ray-marching
  • Physics
  • Font renderer
  • Vulkan pipeline
  • Multi-cameras renderer
  • Geometry loader
  • Texture loader

FAQ

Why SpaRcle Engine?
It's a lightweight and simple Unity-like game engine that maximizes cross-platform 
compatibility and utilizes fast and efficient C++ for scripting. 

The engine offers the flexibility to customize the graphics pipeline 
according to specific requirements.

The ability to create endless procedurally generated worlds is provided 
wtih a system that divides the world into regions and chunks.

srengine's People

Contributors

babyy00da avatar captainslider avatar drakeme avatar glebshikovec avatar innerviewer avatar its5q avatar monika0000 avatar nikitamantsurov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

srengine's Issues

(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: cb8ffa8
Commit Branch: dev
Commit Author: innerviewer

(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: b6bb888
Commit Branch: dev
Commit Author: Monika0000

AudioSource crash

Describe the bug
Application crash (assertion) on scene launch.

To Reproduce

  1. Run the application in debug mode.
  2. Add a new game object with AudioSource component attached to it.
  3. Do not add a path, but you may try to change volume.
  4. Run the scene, get application crashed.

(Text) Advanced text editing.

Description of the feature to implement.

  • Ability to set formatting
  • Ability to set color for characters
  • Ability to set localization using tags, ex. "${text_id} some text".

While implementing this feature, you should consider existing architecture.

Classes that can help you implementing it:

  • ITextComponent
  • Text2D
  • Text3D
  • ComponentDrawer

(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: e4acb49
Commit Branch: dev
Commit Author: innerviewer

(CI) Caching dependencies.

Implement caching dependencies feature to boost workflow performance.
Following file is the main instruction for GitHub Actions.

.github/workflows/CI.yml

(Build) Fail on dev branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: 4fca16a
Commit Branch: dev
Commit Author: innerviewer

(Build) Fail on 60/merge branch.

This issue is created automatically by CI.
Linux Build State: failure
Windows Build State: success
Commit: 359911a
Commit Branch: 60/merge
Commit Author: innerviewer

(UI) Buttons using engine's UI.

Description of the feature to implement:

  • Create a new compoment UIButton.
  • Implement mouse hover detection using color buffer.
  • Button's callbacks

While implementing this feature, you should consider existing architecture.

Existing classes/files that can help you in implementation:

  • ComponentDrawer
  • Sprite
  • ColorBufferPass

Invalid source ID.

Describe the bug
Sometimes the bug may occur when the audio initializes.

Screenshots
Attached a screenshot of the error logs.

image

(Bug) Possible OS Command Injection.

Describe the bug
This causes a new process to execute and is difficult to use safely (CWE-78).

Specify the application path in the first argument, NOT as part of the second, or embedded spaces could allow an attacker to force a different program to run.

Additional context
SelfOpen()
Engine\Core\libs\Utils\src\Utils\Platform\PlatformWindows.cpp

Engine is shit

at this stage, the engine is shit. Congratulations, you've done shit ๐Ÿ˜„

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.