Re: Novelate - Visual Novel Engine

2020-01-23 Thread bauss via Digitalmars-d-announce

On Thursday, 23 January 2020 at 19:11:19 UTC, Jordan Wilson wrote:

On Thursday, 23 January 2020 at 15:19:34 UTC, bauss wrote:

Novelate is a visual novel engine written in D.

It officially binds to SFML but the engine itself has no 
direct dependencies on SFML as there's plans for supporting 
libraries such as SDL etc. in the future too.


It's still a work-in-progress but the basics are done as of 
now and it has reached a point where publishing it as 
open-source is possible.


Preview:

https://i.imgur.com/YyoIWkp.png

For more information see:

Github: https://github.com/Novelate/NovelateEngine
Dub: https://code.dlang.org/packages/novelate

A website with documentation etc. is coming soon as well!

Thank you!


Cool! I been toying with a 2D game engine myself, having been 
inspired by Godot (I know, it begs the question why I don't use 
the available D bindings), so your project will be a nice 
additional reference point for me.


Also nice to see that dsfml seems to still be maintained, for 
some reason I switched to the derelict sfml bindings, but I 
can't remember why now...


Keep up the good work!

Jordan


Planning to support Derelict too so it can be used along with 
those bindings and SDL too.


The reason why I went with dsfml initially was just that it was 
easier to start out with rather than fiddling with Derelict. 
However Derelict supports SFML 2.4 which dsfml doesn't (It's SFML 
2.1) so that might be why you went with it and also why I want to 
support that as well.


The engine itself doesn't depend on dsfml, there is a module that 
interfaces to it but for any other bindings you just create the 
same interfaces and encapsulates it in its own version scope.


https://github.com/Novelate/NovelateEngine/tree/master/source/novelate/external

The reason for it is to make sure the engine can be used with 
existing projects or be implemented into existing games etc.


Re: Novelate - Visual Novel Engine

2020-01-23 Thread bauss via Digitalmars-d-announce

On Thursday, 23 January 2020 at 18:00:30 UTC, Cym13 wrote:

On Thursday, 23 January 2020 at 15:19:34 UTC, bauss wrote:

Novelate is a visual novel engine written in D.

It officially binds to SFML but the engine itself has no 
direct dependencies on SFML as there's plans for supporting 
libraries such as SDL etc. in the future too.


It's still a work-in-progress but the basics are done as of 
now and it has reached a point where publishing it as 
open-source is possible.


Preview:

https://i.imgur.com/YyoIWkp.png

For more information see:

Github: https://github.com/Novelate/NovelateEngine
Dub: https://code.dlang.org/packages/novelate

A website with documentation etc. is coming soon as well!

Thank you!


Love the initiative, I'll be sure to keep an eye on this!


Thank you!


Re: dud: A dub replacement

2020-01-23 Thread Sebastiaan Koppe via Digitalmars-d-announce
On Thursday, 23 January 2020 at 17:05:10 UTC, Robert Schadek 
wrote:

DESTROY!


Tried:

---
unittest {
  immutable SemVer v1 = SemVer(1,1,1);
  immutable SemVer v2 = SemVer(2,2,2);
  immutable SemVer v3 = SemVer(3,3,3);
  immutable SemVer v4 = SemVer(4,4,4);
  immutable VersionRange a = VersionRange(v1, Inclusive.yes, v2, 
Inclusive.yes);
  immutable VersionRange b = VersionRange(v3, Inclusive.yes, v4, 
Inclusive.yes);
  immutable VersionRange c = VersionRange(v2, Inclusive.yes, v3, 
Inclusive.yes);


  assert(intersectionOf(a, invert(a)).ranges.length == 0);
  assert(intersectionOf(a, a) == a);
  assert(intersectionOf(a, b) != a);
  assert(intersectionOf(a, b) != b);
  assert(intersectionOf(b, a) != a);
  assert(intersectionOf(b, a) != b);
  assert(intersectionOf(invert(a), invert(a)) == invert(a));
  assert(invert(intersectionOf(a, invert(b))) == 
invert(intersectionOf(a,a)));


  auto add(T, P)(T a, P b) {
return invert(intersectionOf(invert(a), invert(b)));
  }
  auto remove(T, P)(T a, P b) {
return intersectionOf(a, invert(b));
  }

  assert(add(a,b) == add(b,a));

  assert(invert(invert(a)) == add(intersectionOf(a,c), 
remove(a,c)));

  assert(differenceOf(a, a).ranges.length == 0);
  assert(invert(intersectionOf(invert(a), invert(a))) == 
invert(invert(a)));
  assert(invert(invert(differenceOf(a, invert(a == 
invert(invert(a)));
  assert(invert(invert(intersectionOf(a, c))) == 
invert(invert(remove(a, remove(a, c);

}
---

Everything green. Nice work.

Haven't tried Inclusive.no yet. I'll leave that to someone else.


Re: Novelate - Visual Novel Engine

2020-01-23 Thread Jordan Wilson via Digitalmars-d-announce

On Thursday, 23 January 2020 at 15:19:34 UTC, bauss wrote:

Novelate is a visual novel engine written in D.

It officially binds to SFML but the engine itself has no direct 
dependencies on SFML as there's plans for supporting libraries 
such as SDL etc. in the future too.


It's still a work-in-progress but the basics are done as of now 
and it has reached a point where publishing it as open-source 
is possible.


Preview:

https://i.imgur.com/YyoIWkp.png

For more information see:

Github: https://github.com/Novelate/NovelateEngine
Dub: https://code.dlang.org/packages/novelate

A website with documentation etc. is coming soon as well!

Thank you!


Cool! I been toying with a 2D game engine myself, having been 
inspired by Godot (I know, it begs the question why I don't use 
the available D bindings), so your project will be a nice 
additional reference point for me.


Also nice to see that dsfml seems to still be maintained, for 
some reason I switched to the derelict sfml bindings, but I can't 
remember why now...


Keep up the good work!

Jordan


Re: Novelate - Visual Novel Engine

2020-01-23 Thread Cym13 via Digitalmars-d-announce

On Thursday, 23 January 2020 at 15:19:34 UTC, bauss wrote:

Novelate is a visual novel engine written in D.

It officially binds to SFML but the engine itself has no direct 
dependencies on SFML as there's plans for supporting libraries 
such as SDL etc. in the future too.


It's still a work-in-progress but the basics are done as of now 
and it has reached a point where publishing it as open-source 
is possible.


Preview:

https://i.imgur.com/YyoIWkp.png

For more information see:

Github: https://github.com/Novelate/NovelateEngine
Dub: https://code.dlang.org/packages/novelate

A website with documentation etc. is coming soon as well!

Thank you!


Love the initiative, I'll be sure to keep an eye on this!


Re: dud: A dub replacement

2020-01-23 Thread Robert Schadek via Digitalmars-d-announce

dud needs your help.

I'm starting work on the dependency resolution and for that I had
to implement proper handling for Semantic Versions, Version 
Ranges,

and Version Unions(VersionUnion is basically a VersionRange[]).
The dependency resolution algorithm I want to implement (based on
the algorithm used by Dart) needs a few checks and operations on
those types.

```D
SemVer parseSemVer(string input);

Nullable!VersionRange parseVersionRange(string input);

alias Types = AliasSeq!((SemVer,VersionRange,VersionUnion);
static foreach(T, Types) {
auto inv = invert(T);
static foreach(S, Types) {
bool allowsAll(T, T);
bool allowsAll(T, S);
bool allowsAll(S, T);

bool allowsAny(T, T);
bool allowsAny(T, S);
bool allowsAny(S, T);

auto unionOf(T, T);
auto unionOf(T, S);
auto unionOf(S, T);

auto intersectionOf(T, T);
auto intersectionOf(T, S);
auto intersectionOf(S, T);

auto differenceOf(T, T);
auto differenceOf(T, S);
auto differenceOf(S, T);
}
}
```

I think I did okay work and the tests cover all/most cases.
But that's properly being a bit overconfident.

Therefore, it would be awesome if you could try to break
these functions and create PRs that break the functions.

The code can be found in the git here 
https://github.com/symmetryinvestments/dud

the relevant folder is semver.
The tests are located in the files:

allowsAny: semver/source/dud/semver/checkstest.d
allowsAll: semver/source/dud/semver/checkstest1.d
allowsAll: semver/source/dud/semver/setoperationtest.d
intersectionOf: semver/source/dud/semver/setoperationtest1.d
invert, differenceOf: semver/source/dud/semver/setoperationtest2.d
semver/source/dud/semver/versionrangetest.d

Building dud, and semver should be as easy as cloning and typing 
dud, dub test.


```sh
git clone https://github.com/symmetryinvestments/dud.git
cd dud/semver
dub test
```
should get you going.

DESTROY!




Novelate - Visual Novel Engine

2020-01-23 Thread bauss via Digitalmars-d-announce

Novelate is a visual novel engine written in D.

It officially binds to SFML but the engine itself has no direct 
dependencies on SFML as there's plans for supporting libraries 
such as SDL etc. in the future too.


It's still a work-in-progress but the basics are done as of now 
and it has reached a point where publishing it as open-source is 
possible.


Preview:

https://i.imgur.com/YyoIWkp.png

For more information see:

Github: https://github.com/Novelate/NovelateEngine
Dub: https://code.dlang.org/packages/novelate

A website with documentation etc. is coming soon as well!

Thank you!