Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyjor/julgame.jl
JulGame is a 2D game engine based on the Julia programming language with the help of SDL2.
https://github.com/kyjor/julgame.jl
2d creating-games game-dev game-engine games julgame julia julialang software
Last synced: 6 days ago
JSON representation
JulGame is a 2D game engine based on the Julia programming language with the help of SDL2.
- Host: GitHub
- URL: https://github.com/kyjor/julgame.jl
- Owner: Kyjor
- License: unlicense
- Created: 2021-08-30T13:19:15.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-02T15:10:13.000Z (18 days ago)
- Last Synced: 2024-11-14T02:06:02.635Z (6 days ago)
- Topics: 2d, creating-games, game-dev, game-engine, games, julgame, julia, julialang, software
- Language: Julia
- Homepage: https://docs.kyjor.io/JulGame.jl
- Size: 41 MB
- Stars: 119
- Watchers: 2
- Forks: 5
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
[![codecov](https://codecov.io/gh/Kyjor/JulGame.jl/graph/badge.svg?token=535VSQ21MJ)](https://codecov.io/gh/Kyjor/JulGame.jl)
[Documentation](https://docs.kyjor.io/JulGame.jl)
[Trello board](https://trello.com/b/M6uH0Jmy/julgame)
![JulGame Logo](https://github.com/Kyjor/JulGame.jl/assets/13784123/f68ece3a-62a1-48fb-a905-c7c8b9aa35c1)![The Jester](https://github.com/Kyjor/JulGame.jl/assets/13784123/61c51bab-557d-4712-86a8-59ab91350667)
![CoinGrabber](https://github.com/Kyjor/JulGame.jl/assets/13784123/43811fd4-781d-4530-9de0-59c282b27710)![JulGameEditor](https://github.com/Kyjor/JulGame.jl/assets/13784123/c4ad139f-4d78-47f9-9d13-7bfd150e81bf)
[Example Repo](https://github.com/Kyjor/JulGame-Example)
## Support
If you want to support development, feel free to check out my [discord server](https://discord.gg/RGMkdzW), or my [YouTube channel](https://www.youtube.com/@kyjor_) where I make videos about game development
## What is JulGame?
JulGame is an open-source game engine meant for creating 2D games (and 3d games... eventually) using the [Julia programming language](https://julialang.org/). JulGame uses [SDL2](https://github.com/JuliaMultimedia/SimpleDirectMediaLayer.jl/), and [CImGui](https://github.com/Gnimuc/CImGui.jl) for the editor. The plan for 3d will be to use OpenGL.
## Why did I make it?
Because I find Julia interesting and I've always wanted to create a game engine. I would like to see a game dev scene around it as there isn't much of one now. I am not a Julia programmer (nor an experienced game engine creator), so I am sure there is a lot I am doing wrong. If you see anything that I can fix, please just let me know with a discussion or an issue.
## Why JulGame?
I thought that JulGame would be a great play on Pygame. I also think it just rolls off the tongue. Also, I recently found out that "Jul" is the etymological root of β[jolly](https://en.m.wiktionary.org/wiki/j%C3%B3l#Icelandic)β, so it makes for a great pun :)
## How to get started?
`] add JulGame` for the latest in the package manager
`] add https://github.com/Kyjor/JulGame.jl` for main - RECOMMENDED as this should be the most stable branch.
`] add https://github.com/Kyjor/JulGame.jl#develop` for develop, which will have bleeding edge changes.
Either download the latest release of the editor, or run it by navigating to `JulGame\src\editor\Editor\src\Editor.jl`
and run `julia Editor.jl`## How do you use it?
Once you have the editor open, download the [example](https://github.com/Kyjor/JulGame-Example), unzip it, and then open the folder with the editor.
π΄Warningπ΄ Save often! The editor may crash! We do attempt to save a backup for unhandled errors though. But it is better to be safe than sorry.
![JulGameEditorOpenScene](https://github.com/Kyjor/JulGame.jl/assets/13784123/0e1ab178-c28e-4c9e-b820-6f2d17916085)
### How do you run your scene?
Navigate to your project, and cd to the directory with `Run.jl`, and run `julia Run.jl`, and it should start!## What needs to be done?
#### General
- [ ] Documentation
- [ ] Video tutorial
### 2D Engine
#### General
- [x] Entities can be children of other entities, with editor support
- [x] Tests (continuously improving)
- [ ] Prefabs (like Unity Engine)
- [ ] Engine time system
#### Visuals
- [X] Simple Rendering
- [ ] Basic particle system
#### Physics
- [ ] Implement box2d support
- [ ] Raycasting
#### Animation
- [ ] Animate all properties of entites
#### Input
- [ ] Controller support
#### Scene Management
- [x] Multiple scene support
#### Editor Features
- [x] Sprite cropping tool for animations
- [ ] Hot reloading with [Revise.jl](https://github.com/timholy/Revise.jl) if possible
- [ ] Profiling
- [x] Debug console
- [x] SDLRenderer Backend
- [x] Scene Grid
- [ ] Tilemap editor
- [ ] Multi-select entities in hierarchy and editor (in progress...)
- [ ] Right click context menus
### 3D Engine
- [ ] SDL renderer geometry
- [ ] OpenGL
- [ ] WebGPU
### Build Support
- [X] Windows
- [ ] Mac
- [ ] Linux
- [ ] Web
- [ ] Mobile
- [ ] Console## Inspirations/Credits
This is a list of references that I used in order to get JulGame where it is, along with people who inspired the creation of this (who you should definitely check out!)
- [Solar Lune](https://github.com/SolarLune/tetra3d), who is creating a 3d renderer. This format for the readme is also referencing theirs.
- [Coder Gopher](https://www.youtube.com/channel/UCfiC4q3AahU4Io-s83-CIbQ), who has tutorials that helped me get started with SDL.
- [Lazy foo](https://lazyfoo.net/), who has tutorials that brought me the rest of the way with SDL.
- and so many others who I will note some of in the future :)## Games Made With JulGame
Here I will be keeping a list for the first **original** games created with JulGame by external contributors (aka not me). If you would like to see games that I have made, check them out at https://kyjor.itch.io1.
2.
3.
4.
5.
6.
7.
8.
9.
10.