enu

A Logo-like 3D environment, implemented in Nim

MIT License

Stars
453
Committers
4

Bot releases are hidden (Show)

enu - Enu 0.2.2 Latest Release

Published by dsrw 10 months ago

After a somewhat disastrous 0.2.1 release with a level corruption bug, 0.2.2 is mostly about safety. Segfaults should be handled properly and converted to NilAccessDefect on all platforms, and levels get automatically backed up every 15 minutes. Since the 0.2.1 release was pulled, here's the list of updates since 0.2:

  • Added docs for some missing keybindings.
  • VM max loop iterations is now int.high. Was previously 10_000_000.
  • Fixed an issue opening and running code for instances.
  • draw_position/draw_position= for getting/setting the draw position in Builds.
  • Units with errors flash red. Console errors are now clickable, and will open the appropriate unit.
  • Help menu on macOS.
  • Better exception handling. Defects are now logged. Unhandled exceptions on the main thread will be logged and ignored. Unhandled exceptions on the worker thread will save, then reload.
  • Automatic backups. The most recent 20 backups for each level will be kept. Backups are in the {world_name}/backups directory.
  • Keep 20 log files rather than 5.
  • Now only left Alt will apply code changes and navigate with the code or doc panes open, allowing right Alt to be used for extended character input.
  • Performance and stability improvements.
enu - Enu 0.2

Published by dsrw 11 months ago

Enu 0.2 is finally here! This is the biggest update to Enu by far, and adds a host of new features like multiplayer, worlds containing multiple levels, programmable level switching, level templates, in-world menus, and more.

Although there are still many missing features and rough edges, I think this release captures what Enu is all about, and should be usable by most people. Try it out! Make things! Tell your friends!

Check out the new Enu web site at https://ē.nu! Or, for folks who prefer boring urls without impossible to type characters, http://getenu.com! You can also join us on Discord.

The Windows version isn't signed, and you'll get a scary "Windows protected your PC" warning when you launch the installer. You'll need to press "Run anyway" which, depending on your windows version, may require clicking "More info" first. Enu will be on Steam soon(ish), which won't have this issue.

Thanks for checking out Enu. Have fun!

enu - Enu 0.1.99

Published by dsrw over 2 years ago

Enu 0.1.99 has been released! This is the final release before 0.2! Maybe!

I've also released a new demo video that uses Enu to create Inky: Isolation, a simple survival game that stars Inky, the blue ghost from Pac-Man. https://youtu.be/9e9sLsmsu_o

Inky: Isolation

0.1.99 is a big release, with a bunch of features that I wasn't planning to implement until after 0.2 that generally make it a better teaching tool. These include:

  • Signs. Text that can be shown in world, or displayed in the UI. These are written in a subset of markdown and support headers, lists, bold/italic text, links and inline code blocks. Notably absent are tables and multiple header sizes, but these will be added when I need them. Additionally, links can include nim:// urls, which take code that gets evaluated in the context of the script that created the sign. This + strformat makes it possible to create rudimentary dynamic UIs that can be used for things like menus.

  • Tutorials. It's now possible to set lock = true and visible = false in a script which will make the object non selectable/editable/visible by default (this can be overridden by enabling god_mode in the enu config file). Combined with signs above, it's now possible to create tutorials in Enu that can respond to player actions, hide/show objects, and offer information to the player, and by setting lock = true we can prevent the player from breaking anything by mistake. When enu is loaded for the first time a tutorial will be shown that explains the basics of the UI, and has the player code a robot to navigate a very simple maze. For 0.2 I plan to add tutorials around variables, loop, and conditionals, and post 0.2 there will be a tutorial that guides the player through the creation of the Inky: Isolation game. If you already have an Enu world on the go the tutorial won't be loaded, but you can see it by removing the world field from config.json, or setting its value to tutorial-1.

  • Lots of new commands and object properties. The docs have fallen out of date unfortunately, but I'll make sure they're current for 0.2.

Coding Enu

Still to do for 0.2:

  • Lots of bug fixes.

  • Update the docs.

  • Better testing of the Linux and Windows builds.

  • Automated builds.

  • An easy way to load worlds outside of the Enu data directory, to allow projects to be downloaded from Github.

  • An arrow that shows where the current draw position is, and which way forward will go.

  • Make the draw position the center rotation point for an object, allowing the rotation point to be changed. Right now it will always rotate around the first block you drop.

And post 0.2:

  • Move script execution off the main thread.

  • An inventory.

  • More object types.

  • Pathfinding/navigation.

  • Custom block colors and textures.

And post-post 0.2:

  • Multiplayer

Please report any bugs. I'm going to try to get some kind of forum up soon, but for now email [email protected] if you have questions. Thanks!

enu - Enu 0.1.98

Published by dsrw over 2 years ago

Since 0.1.97:

  • Better lighting and colors.
  • Better climbing. Don't try to climb > 1 block.
  • Climb up onto platforms if you slightly miss a jump.
  • Run across 1 block gaps Mario style.
  • Better handling of child edits.
  • Garbage collect manually deleted blocks if a script doesn't use them.

Note: No Linux build this time. My Ubuntu machine is at the shop. Linux will be back for 0.1.99 and 0.2.

Full Changelog: https://github.com/dsrw/enu/compare/v0.1.97...v0.1.98

enu - Enu 0.1.97

Published by dsrw over 2 years ago

Enu 0.1.97 is the first preview of Enu 0.2, which will be released in a few weeks. Significant new features since 0.1.2:

  • A prototype based object system for instancing new units.
  • Action Loops, simple state machines for managing unit behavior.
  • API simplifications and improvements.
  • A new somewhat forward compatible level format. Levels created in 0.1.97 will open in future versions, but may require edits to account for API and feature changes.
  • Extensive internal changes. There's still some cruft, but I'm generally quite happy with the architecture.
  • Expanded docs.
  • Many old bugs fixed. Many new bugs created.
  • Player can now stand on moving platforms, and will automatically climb 1 block elevations.
  • Enu is a little bit smarter about merging builds together. This still needs work.
  • Brown blocks! Added specifically for building potatoes.
  • Native arm support under macos.
  • Lots of other things that I'm not thinking of.

Still required for 0.2: https://github.com/dsrw/enu/tree/ce7d57109c8a24dd942ab9e74a29bed79ef9d475#todo-for-02

None of the builds are signed. The mac build will be signed from 0.2, and the windows build from 0.3.

Special thanks to @moigagoo for encouragement and support, and for sticking by the project after a full year without a release. Thank you!

Full Changelog: https://github.com/dsrw/enu/compare/v0.1.2...v0.1.97

enu - Enu 0.1.2

Published by dsrw over 3 years ago

Since 0.1.1:

  • Fixed a showstopper regression that made it impossible to drop blocks or objects on the ground.

Since 0.1.0:

  • Enu will no longer crash if it encounters a script error during startup.
  • It is no longer possible to fly through the ground.
  • Falling off the world will snap you back to the starting location.
enu - Enu 0.1

Published by dsrw over 3 years ago

Enu's first real release. There are still crash-bugs, and a huge number of missing features, but I think things will mostly work, most of the time, for most people.

Notes:

  • The Linux build has been tested, but not very well. I'll try my best to get any reported issue sorted out quickly.
  • Only the Mac version is signed. Windows will complain loudly, but will run with enough convincing.
  • All builds are x64.
  • Worlds created in 0.1 probably won't work in future versions.
  • I'll be sending my Mac in for service very soon, so it may be a few weeks before I can fix Mac issues.
  • The code is a mess. 0.2 will mostly focus on refactoring.
  • In some situations, in game code can take down the app. This will be fixed.
  • There's a limit to how many different voxel objects can be created. I can't remember what the limit is, and I'm not sure what happens when you hit it. Consider this a challenge!
enu - Enu 0.0.10

Published by dsrw over 3 years ago

Enu 0.1 prerelease 2

  • Asset fixes.
  • Don't create a vm for scripts that haven't been changed.
enu - Enu v0.0.9

Published by dsrw over 3 years ago

Prerelease of Enu 0.1. Expect bugs.

Related Projects