All Projects → dsrw → Enu

dsrw / Enu

Licence: mit
A Logo-like DSL for Godot, implemented in Nim

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to Enu

Godot Power Pitch
International pitch for the Godot Game Engine, made in Godot, available in 15+ languages
Stars: ✭ 348 (+197.44%)
Mutual labels:  game-development, godot
Godot
Godot Engine – Multi-platform 2D and 3D game engine
Stars: ✭ 44,556 (+37982.05%)
Mutual labels:  game-development, godot
Godot 2d Space Game
A 2D space exploration and mining game made with Godot and our AI framework
Stars: ✭ 462 (+294.87%)
Mutual labels:  game-development, godot
Luascript
Lua language support for Godot Engine
Stars: ✭ 240 (+105.13%)
Mutual labels:  game-development, godot
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+9898.29%)
Mutual labels:  game-development, godot
Godot Mixing Desk
A complete audio solution for Godot 3.2.x, making procedural sound and adaptive/procedural music possible with a few nodes and a couple lines of code.
Stars: ✭ 240 (+105.13%)
Mutual labels:  game-development, godot
Godot Make Pro 2d Games
A-RPG demo made with Godot, MIT-licensed, from our Godot course
Stars: ✭ 674 (+476.07%)
Mutual labels:  game-development, godot
Gamedev4noobs
Olá, sejam bem-vindos ao repositório _gamedev4noobs_ do Estúdio Vaca Roxa. O propósito desse repositório, além de contribuir para o projeto 4noobs, é ensinar o básico do desenvolvimento de jogos para iniciantes. Apresentando boas práticas e insumos para criar games incríveis.
Stars: ✭ 122 (+4.27%)
Mutual labels:  game-development, godot
Mdframework
A multiplayer C# game framework for Godot 3.2 Mono.
Stars: ✭ 34 (-70.94%)
Mutual labels:  game-development, godot
Space rocks
Asteroids-like game made with Godot Engine 3.0.
Stars: ✭ 20 (-82.91%)
Mutual labels:  game-development, godot
Awesome Godot
A curated list of free/libre plugins, scripts and add-ons for Godot
Stars: ✭ 3,092 (+2542.74%)
Mutual labels:  game-development, godot
Godot3 procgen demos
Exploring Procedural Generation algorithms in Godot
Stars: ✭ 85 (-27.35%)
Mutual labels:  game-development, godot
Godot Kickstarter 2019
Create your Own Games with Godot, the Free Game Engine: sources from the January Kickstarter project from GDQuest
Stars: ✭ 194 (+65.81%)
Mutual labels:  game-development, godot
Ecsrx
A reactive take on the ECS pattern for .net game developers
Stars: ✭ 288 (+146.15%)
Mutual labels:  game-development, godot
Godot Ink
Ink integration for Godot Engine.
Stars: ✭ 129 (+10.26%)
Mutual labels:  game-development, godot
Godot Steering Ai Framework
A complete framework for Godot to create beautiful and complex AI motion. Works both in 2D and in 3D.
Stars: ✭ 482 (+311.97%)
Mutual labels:  game-development, godot
Godot tutorials
Code and examples for KidsCanCode Godot Tutorials.
Stars: ✭ 119 (+1.71%)
Mutual labels:  game-development, godot
Godot Open Rpg
Learn to create turn-based combat with this Open Source RPG demo ⚔
Stars: ✭ 855 (+630.77%)
Mutual labels:  game-development, godot
Qurobullet
A powerful 2D projectile system module for Godot!
Stars: ✭ 78 (-33.33%)
Mutual labels:  game-development, godot
Circle jump
An open source mobile game made with Godot.
Stars: ✭ 94 (-19.66%)
Mutual labels:  game-development, godot

Enu

3D live coding, implemented in Nim.

Enu Screenshot

Enu lets you build and explore worlds using a familiar block-building interface and a Logo inspired API. It aspires to make 3D development more accessible, and will eventually be usable to create standalone games.

Install

Download from https://github.com/dsrw/enu/releases. The Windows version isn't signed, and UAC will warn that it's untrusted. This will be fixed in a future release.

The Linux version hasn't been tested particularly well, but it works for me under Ubuntu 20.04. Please report any issues.

The world format will change in a future release. Worlds created in 0.1 won't be supported in future versions.

Demo

See the Enu 0.1 demo video:

Enu 0.1 Demo

Outdated Demos

Examples

Draw a square:

forward 10
right 10
back 10
left 10

or:

4.times:
  forward 10
  turn_right()

Square Example Create a twisting tower:

var
  length = 20
  height = 50

height.times:
  left length / 2
  back length / 2
  4.times:
    forward length
    turn_right()
  forward length / 2
  right length / 2
  turn_right 5
  up()

Tower Example

Draw randomly:

up 10
forward 10
(50..100).times:
  forward 2..5
  turn_right -180..180
  up 0..2

Random Example

Set the color to blue randomly with a 1 in 50 chance. Otherwise set it to white:

if 1 in 50:
  color = blue
else:
  color = white

or as a one-liner:

color = if 1 in 50: blue else: white

Random Color Example

Move forward 10 times, cycling through colors:

for i in 0..9:
  next_color()
  forward()

or:

10.times:
  color = cycle(red, black, blue)
  forward()

Color Cycle Example

Build and Run

$ nimble prereqs
$ nimble build
$ nimble import_assets
$ nimble start

Notes

Enu requires a custom Godot version, which lives in vendor/godot. This will be fetched and built as part of nimble prereqs.

See https://docs.godotengine.org/en/3.2/development/compiling/index.html

Usage

Keyboard/Mouse

  • ESC - toggle mouse capture and to dismiss editor windows. Reloads script changes.
  • W, A, S, D - move around when mouse is captured.
  • Space - jump. Double jump to toggle flying. Hold to go up while flying.
  • Shift - run.
  • C - go down while flying.
  • ~ - toggle the console.
  • F - toggle fullscreen.
  • 1 - enter edit mode.
  • 2 - 9 - change active action.
  • Mouse Wheel Up/Down - change active action.
  • Ctrl - reload script changes. Hold to temporarily capture the mouse and move, so you can change your view without having to switch away from what you're doing.
  • Cmd+P / Ctrl+P - Pause the current script.
  • Left Click - Place a block/object or open the code for the currently selected object.
  • Right Click - Remove a block/object.

XBox / Playstation Controller

  • Left Stick - move.
  • Right Stick - change view.
  • A / X - jump. Double jump to toggle flying. Hold to go up while flying.
  • B / ◯ - go down while flying. Dismiss code editor.
  • Y / △ - toggle edit mode.
  • L1 / R1 - change active action.
  • L2 - place a block/object or open the code for the currently selected object.
  • R2 - remove a block/object.
  • L3 - run.

Enu currently includes 5 block types/colors, and 1 object model (a robot). This will be greatly expanded in the future.

Building

Drop a block or robot with the left mouse button/controller trigger, remove it with the right. Adjoining blocks will be combined into a single structure. With the mouse captured, building works more or less like MineCraft. Release the mouse by pressing ESC to draw blocks using the mouse cursor.

Code by switching to the code tool by left clicking/triggering on an object or structure. Changes are applied when the code window is closed (ESC key) or CTRL is pressed. Holding CTRL will also temprarly grab the mouse and allow you to change your position.

Config

The Enu data directory lives in ~/Library/Application Support/enu on Mac, %AppData%\enu on Windows, and ~/.local/share/enu on Linux. config.json has a few configurable options:

downscale: Increase to render at a lower resolution to improve performance. Should be an integer.

font_size: The font size. DPI is currently ignored, so hidpi screens will require a higher number.

dock_icon_size: Size of the icons in the dock. DPI is currently ignored, so hidpi screens will require a higher number.

world: The world/project to load. Change this to create a new world.

show_stats: Show FPS and other stats.

Tasks

v0.2

  • [ ] Slim down Godot classes. Move out most of the state.
  • [ ] General refactoring and cleanups.
  • [X] Rethink Nim VM usage. Ideally, everything will run in a single VM.
  • [ ] State machines to manage UI and player behavior.

v0.2.1

  • [ ] iOS support.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].