Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

NON - Free 2D Lua and MoonScript Game Engine


YourBestNightmare
 Share

Recommended Posts

Lol I coded that IDE from scratch only using different Swing L&F called WebLAF. And I am not calling everything mine, I have all credits in Wiki in Introduction. Or you don't believe that I can create something that good as Non is without ripping code from other people? Then I must dissapoint you. This is still "good" old Eclipse even when owner changed 2 times, you guys are happy only when you throw **** at other peoples hard work. You are trying to say that I wrapped some features of graphic library what I am using? You did same in Mavra. But you stopped there and gave up. I created tool what allows developers to write games in JavaScript and Lua and publish them to all platforms and I am not even half done. I made IDE for it. Still not enough? I have planned visual editors extension for IDE what will allow developers to make games without writing even a single line of code and I believe that I can do it. You don't believe in me? Okay, I don't even care about moderate Windows-oriented programmer.
Link to comment
Share on other sites

  • Replies 146
  • Created
  • Last Reply

Top Posters In This Topic

> Lol I coded that IDE from scratch only using different Swing L&F called WebLAF. And I am not calling everything mine, I have all credits in Wiki in Introduction. Or you don't believe that I can create something that good as Non is without ripping code from other people? Then I must dissapoint you. This is still "good" old Eclipse even when owner changed 2 times, you guys are happy only when you throw **** at other peoples hard work. You are trying to say that I wrapped some features of graphic library what I am using? You did same in Mavra. But you stopped there and gave up. I created tool what allows developers to write games in JavaScript and Lua and publish them to all platforms and I am not even half done. I made IDE for it. Still not enough? I have planned visual editors extension for IDE what will allow developers to make games without writing even a single line of code and I believe that I can do it. You don't believe in me? Okay, I don't even care about moderate Windows-oriented programmer.

There are two things in Mavra that are not mine: TiledSharp which is NOT a part of my project and is compiled separately, and the very simple state machine which has 100% of it's original copyright headers and a license is included with my source.  Otherwise, 100% written, compiled, and owned by me.  Gave up?  It's finished, sir.  I've recently added physics components and several other things, all written exclusively by me, owned by me, and from scratch.  

I honestly don't care what you use or how it's thrown together; your project is 95% other peoples work and as long as you give credit to the original authors it's a non-issue.  This new little IDE you're writing?  No, I don't think you're capable of it at all.  You're suspicious and your ethics suck.  What's more to say?

Ps. I get nothing, especially not a hard-on, from calling you out.  I don't do it in spite of you or because I'm "angry".  I do it out of principle.
Link to comment
Share on other sites

100% yours? Okay. Cause I am using gradle, all source code in Non repository on github is 100% mine exceptgradlew one. All dependencies are downloaded separately and are not even present in Non repo. Not enough? Also, only part of Nide which I do not wrote is WebLAF library. And you are trying to say that you are something more when you are using only 1 library for your small generic 2d game framework compared to my project where I am using 1 library for IDE and 5 libraries for main project (which is cross-platform compiler, game framework and supports 3 different programming languages) and calling me not capable to finish something trivial as IDE? And as I said earlier, all credits are given and present. And my work is my work, I am not ripping other people's code.
Link to comment
Share on other sites

**New 3.5.0 release**
- added awesome module engine similar to node.js but better ;)
- removed non.require as it was never working
- moved launcher source code to separate repository to decrease amount of downloaded data for each update and to split versioning of launcher and Non
- added checks for outdated non.jar version
- replaced Lua support with CoffeeScript and optional JavaScript
- removed support for custom scripting languages (sorry folks :/)
- removed need of adding "language" to non.cfg

Also, wiki is updated for CoffeeScript and I created tutorial for new modules system here: [https://github.com/non-dev/non/wiki/Working-with-multiple-script-files](https://github.com/non-dev/non/wiki/Working-with-multiple-script-files)

![](http://non-dev.github.io/img/nide.png)
Link to comment
Share on other sites

When I was working on the .NET version I used third party libraries and credited them. The biggest thing in my opinion is making sure that the implementation of them makes sense and is optimal. I wouldn't throw anything into an engine if it doesn't perform well. You should post some specs of the framework, stress test it - given the bare functionality, how long does it take for scripts to compile, how many sprites can you draw at once, etc… that's the important part.
Link to comment
Share on other sites

Thanks for clearing that out [email protected][member="JeffSventora"] I didn't did any performance tests except physics one with few hundreds objects colliding eachother and it do not caused any performance loss, but I didn't checked CPS, but FPS was stable at 60\. But to be honest, when on Android, my engine runs on Rhino VM what runs on Java VM what runs on Dalvik VM, so but it causes only around 30 percent performance loss as they are optimized for eachother. In future I am planning to switch to V8 javascript engine, what is using natives, so performance drop will be 5-10 percent only. As this is 2d engine, it shouldn't be problem. But for compare, if I will render 100 sprites in EO 3.0, it will cause same performance drop as drawing few tousands of them with my engine (but still slower than compared to native LibGDX :( )

**New 3.6.0 release**

- added destroy(..) method for destroying bodies and joints to physics (usage physics.destroy(joint) or physics.destroy(body))

- added many new methods to physics module for different types of joints and joint definitions

- added physics example (usage java -jar non.jar gen:physics)

- added example of require function (usage java -jar non.jar gen:require)

- added support for classes to JavaScript engine (read Wiki for example usage)

- removed CoffeeScript support, now engine only supports JavaScript

- renamed non.cfg to config.json to actually show in what language is it and to support external editors

- removed plugin system, replaced it with module system introduced in last patch (prefix "non" is used for determining non modules)

- moved non.buffer to network.buffer

- split input module to parts, so now f.e input.keyboard is keyboard, input.mouse is mouse etc

- fixed bug when clearing screen via graphics.clear method caused to erase all text from screen permanently (now calling clear method is required before drawing anything on screen and not optional as before)

- added queryAABB method to physics

- optimized calling of functions from scripts by storing them properly in variables

- fixed unproject method from graphics module

And again I rewrote wiki and created new tutorial for all Non modules: [https://github.com/non-dev/non/wiki/Non-modules](https://github.com/non-dev/non/wiki/Non-modules)

Below is screenie of new variable tree in Nide:

![](http://non-dev.github.io/img/nide.png)
Link to comment
Share on other sites

**New 3.9.0 release**
- created GUI sample (usage java -jar non.jar gen:gui)
- added setVisible(boolean) method to keyboard and mouse modules
- added measureText(text) and measureText(text, width) methods to graphics module
- started working on GUI system (for now only button, label and text box)
- overhauled physics and graphics module (read wiki again please)
- fixed Pong example
- speeded up engine (at start it is slower than before, but after "warming up" it is a bit faster)
- changed non.touchdown(position, pointer, button) to non.touchdown(x, y, pointer, button)
- changed non.touchup(position, pointer, button) to non.touchup(x, y, pointer, button)
- changed non.touchdragged(position, pointer) to non.touchdragged(x, y, pointer)
- changed non.mousemoved(position) to non.mousemoved(x, y)
- fixed non.keytyped(character) event
- added support for setBlending from strings (additive, alpha, subtractive, multiplicative, premultiplied, replace, screen)
- added uniqueNumber and uniqueString methods to math module
- added getTint() method to graphics module
Link to comment
Share on other sites

So, first thing I need to say that now I am very very close to start adding support for web platform. I made some big changes in source code structure what will enable me to do it without much pain.

**GUI module**

So first thing on what I was working on in this update was GUI system. I decided to use immediate mode GUI system, because for simple 2D games retained GUIs are overkill imo. New GUI module currently supports only few widgets:

* Button
* Label
* Text area
* Horizontal scroll bar
* Vertical scroll bar

Also, for simplicity, new GUI module do not ships with ANY default renderer, you need to create yourown one or use renderer from GUI example project what can be found on GitHub or using gen:gui task. You can for example create label renderer like this:
```
this.label = function(id, text, x, y) {
var color = graphics.getTint();
graphics.tint('white');
graphics.print({text: text, position: [x, y]});
graphics.tint(color);
};

```Here is small GIF demonstrating new GUI module:

[![](http://media.indiedb.com/cache/images/engines/1/1/680/thumb_620x2000/gui.gif)](http://www.indiedb.com/engines/no-nonsense/images/gui-system-update)

**New example projects**

Many people asked me how to do that and how to do this in Non, so I decided I need to create more example projects. Creating example project is simple, you can do it via Nide:

[![](http://media.indiedb.com/cache/images/engines/1/1/680/thumb_620x2000/project_select.png)](http://www.indiedb.com/engines/no-nonsense/images/new-sample-system-in-nide)

or via gen: task. Current samples included in Non are:

* require - demonstrates "require" method and modules system
* GUI - demonstrates GUI system and widgets, comes with nice renderer (you can see it in GUI GIF what I posted above)
* network - demonstrates networking engine with simple client/server connection
* physics - demonstrates physics and lights engine
* pong - demonstrates input and shape rendering

Here is bigger GIF of physics sample:

[![](http://media.indiedb.com/cache/images/engines/1/1/680/thumb_620x2000/ezgif.com-optimize.gif)](http://www.indiedb.com/engines/no-nonsense/images/light-engine)

So, for now it is all.You can download new update from [official site](http://non-dev.github.io) or browse the [source code](https://github.com/non-dev).
Link to comment
Share on other sites

  • 2 weeks later...
I was working on NON and I moved from JavaScript to Ruby. Also, NON is now available via RubyGems:

```
gem install non
```
Above code will install NON command line, so after installing it you can use non like this:

```
non hello
```
to generate Hello World project in current directory.

Also, updated website: [http://non2d.github.io/](http://non2d.github.io/)
Link to comment
Share on other sites

  • 3 weeks later...
Hello everyone :) New update is finally here.I updated website (again). You can check it here: [http://non2d.github.io/](http://non2d.github.io/). Also, new logo:

![](http://media.indiedb.com/images/articles/1/182/181041/auto/logo.png)

So, stop talking, start showcasing.I created new super awesome splash screen which now also logs progress.

![](http://media.indiedb.com/images/articles/1/182/181041/auto/CurHB9w.png)

Here is example of old method of drawing images and text (with resource loading displayed on splash screen):

```
require "non/graphics"

def init(assets)
  assets.add :image, "nokia_logo.png"
end

def ready
  @image = Graphics.image "nokia_logo.png"
end

def render(dt)
  Graphics.print "What hath Matz wrought?", position: [10, 10]
  Graphics.draw @image, position: [50, 50]
end

```And here is same functionality with new API:

```
@image = NON.graphics.image "nokia_logo.png"

def draw
  NON.graphics.print "What hath Matz wrought?", position: [10, 10]
  NON.graphics.draw @image, position: [50, 50]
end

```Awesome right? Same applies to rest of NÖN functionality. Also, added new file API. Reading from files:

```
file = NON.files.internal "myfile.txt"
text = file.read_string

```Writing to files:

```
file = NON.files.local "myfile.txt"
file.write_string "My god, it's full of stars"

```Also, added support for parsing YAML, JSON and XML files. Small example of parsing YAML:

```
@file = NON.files.internal "non/config.yml"
@config = NON.files.parse_yaml @file.read_string
puts @config["name"]

```
Link to comment
Share on other sites

  • 2 weeks later...
Hey everyone!

I released new version of engine. Some major updates are
* updated LibGDX backend to v1.5.5
* updated RoboVM backend to v1.0.0
* updated and optimized Lua backend
* added MoonScript support
* fully documented entire API
* new non.system module
* speeded up engine (a lot)
* fixed all known (and unknown) bugs
* reduced build times by 95% (really)

To see full changelog, navigate [here](https://raw.githubusercontent.com/non2d/non/master/CHANGES).

New documentation is uploaded to official site.
You can see full documentation [here](http://nononsense.science/docs/).

Also, engine have new icon (looks great mainly on mobile devices):

![](https://raw.githubusercontent.com/non2d/non/master/lib/engine/resources/icon.png)
Link to comment
Share on other sites

Hello, hello ;)

Right now I finished new version (v0.6.4). It includes one awesome feature what is unique to every other Lua game engine, and that is direct interoperability with Java. Small example on how to use Apache Commons IO (popular Java library with many IO utilities).

1\. We will add dependency to config.yml
```
libs:
- "commons-io:commons-io:2.4"

```2\. Now, we can use it:

```
function non.ready()
fsu = non.java.bind("org.apache.commons.io.FileSystemUtils")
freeSpace = fsu:freeSpaceKb()
end

``````
non.ready = ->
fsu = non.java.bind "org.apache.commons.io.FileSystemUtils"
freeSpace = fsu\freeSpaceKb!

```Also, I added documentation for new non.java module [here](http://nononsense.science/docs/modules/non.java.html).

[Click here to see full changelog](https://github.com/non2d/non/blob/master/CHANGES)
Link to comment
Share on other sites

  • 1 month later...
Hello everyone.

I just wanted to tell that this project is not dead yet (and still under active development). I just do not had time to post updates here. I changed API totatlly to match [Love2D](https://love2d.org) API.

Here are some images of running random Love2D games in NON:

>! ![](http://i.imgur.com/s1F2bof.jpg)
>! ![](http://i.imgur.com/ujPxPkJ.jpg)
>! ![](http://i.imgur.com/caUSbnb.jpg)
>! ![](http://i.imgur.com/bXKQkFk.jpg)

Also, here is image of IDE for NON called NIDE what is WIP:

>! ![](http://i.imgur.com/RyflZyk.png)

Love2D Passing clouds demo on

- my Android x86 quad-core 2GHz, 1GB ram tablet:

>! ![](http://i.imgur.com/Fs9RLms.jpg)

- my Android arm-v7 single-core 1GHz, 512MB ram phone

>! ![](http://i.imgur.com/31j3AYd.jpg)

I want to replace LuaJ with [luajava](https://github.com/jasonsantos/luajava) for big performance boost. I just need pre-compiled luajava (along with latest Lua for iOS and for rest of platforms with latest LuaJIT) natives for

* android32
* ios32
* linux32
* linux64
* macosx32
* macosx64
* windows32
* windows64

If anyone is able to cross-compile natives for any of that platforms (for Android it must be for both ARM and x86) it would be great and will save me tons of work. Maybe we can use something like libGDX is doing [here](https://github.com/libgdx/libgdx/tree/master/gdx/jni) but as I do not own Mac I cannot make natives for iOS and Mac OS X.
Link to comment
Share on other sites

  • 1 month later...
I thought about sort of extensions or addons to engine.
My idea is that there will be nondev/non.extensions repository, where people will simply create pull request to add new extension. Each extension will have its own config.yml file with extension name, license, author, version etc.

And then, after installation, engine will download extensions repository somewhere. Then, after creating a project, user will be able to type

```
non install
```
and it will extract specified extension to project directory to extensions folder. Then, during build, extension will be included into project.
What do you think about it?
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...