Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

In Development: Dusk 1.0
Started by Caleb P Feb 23 2016 12:28 PM

28 replies to this topic
dusk dusk-engine
[TOPIC CONTROLS]
Page 1 of 2 1 2
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

If you're a fairly active Dusk user, you might have noticed that very little has been pushed to the Dusk repository lately. Though this seems like inactivity, the truth is that I've been hard at work on Dusk. Dusk has been around for quite a while, but (believe it or not!) it's not even out of beta. I recently decided it was time to push for the 1.0 release. Thus, in my personal project, I completely overhauled Dusk for improved stability and usability. This version of Dusk, which has been several months in the making, is my first candidate for Dusk 1.0!

 

Dusk 1.0 is a completely remade version of Dusk which retains most of the current Dusk mechanisms but which isn't completely backwards-compatible. That said, it's definitely a big improvement and worth switching to when it's released. It has a much smaller memory footprint, is cleaner for development, and will be the new base for all further advancement.

 

Dusk 1.0 isn't ready for the public yet. Why am I posting about it, then? I need your input. I have a list of features and improvements I've seen multiple people ask for (API docs, anyone?), but if you have something you really want in Dusk, now is the time to ask for it. Dusk is used by a lot of people, but developed by only me. What fits really well in the engine for me may not fit the same for other people. If no one gives any suggestions, I'll continue in the direction I've been going, but I'd really appreciate some user input. Any ideas?

 

Caleb

 

P.S. I just had to attach a screenshot of an upcoming demo for Dusk's 1.0 branch...Attached File  demo.gif   54.05KB   11 downloads



[TOPIC: post.html]
#2

egruttner

[GLOBAL: userInfoPane.html]
egruttner
  • Enthusiast

  • 73 posts
  • Corona SDK

Wow, excellent news Caleb!!!

 

If you need any help to test or whatever, please count on me!

 

Please keep up your amazing job.

 

Best regards,

 

Erich.



[TOPIC: post.html]
#3

Danny

[GLOBAL: userInfoPane.html]
Danny
  • Corona Geek

  • 2,597 posts
  • Corona Staff

Awesome Caleb!

I'm planning on using Dusk for a game I'm working on in my spare time.

Can't wait to see what you have in store!

[TOPIC: post.html]
#4

bendikr5

[GLOBAL: userInfoPane.html]
bendikr5
  • Observer

  • 21 posts
  • Corona SDK

Sounds great, cant wait for this!

 

Since you ask, I would love for the support of isometric maps!



[TOPIC: post.html]
#5

bitinn

[GLOBAL: userInfoPane.html]
bitinn
  • Enthusiast

  • 71 posts
  • Corona SDK

Cool stuffs, I have opened some feature requests on github.

 

https://github.com/GymbylCoding/Dusk-Engine/issues

 

PS: I am currently prototyping a few games with corona sdk and dusk :)



[TOPIC: post.html]
#6

c.noeth

[GLOBAL: userInfoPane.html]
c.noeth
  • Contributor

  • 217 posts
  • Corona SDK

We struggled a little bit with the object culling when we have animated tiles for example. So it would be great to have a good access to tile animations and the things happening to the sprites when they move outside of the screen and re-enter the screen. Normally it would make sense animations continue playing outside the visible screen area like in a real world.

 

What really would help is a good documentation with all possible things you can do in dusk ;)



[TOPIC: post.html]
#7

runewinse

[GLOBAL: userInfoPane.html]
runewinse
  • Contributor

  • 485 posts
  • Corona SDK

Tile rotation, just like in Tiled.

 

But I guess you already have that on the list for 1.0...

 

-------------

 

BTW in the FEATURES.md file you can read this:

 

### Dusk Engine Feature List
 
- Flipped and rotated tiles
 
Even though rotated tiles are not currently supported


[TOPIC: post.html]
#8

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

@runewinse:

Definitely on the list. Dusk has been through a number of iterations (some people here may even remember the two-person collaboration named CoronaTiled!), and in some of them rotated tiles were supported. Evidently they were accidentally left on the feature list. Sorry about that!

 

@Everyone Else:

I will be leaving for China tomorrow and will have very little (if any at all) forum and email access until I return in April. I won't be able to answer any questions during that time, but Dusk will continue to be developed. Please bear with me here; it's been pretty crazy lately. Thanks so much to everyone for your support!

 

- Caleb



[TOPIC: post.html]
#9

runewinse

[GLOBAL: userInfoPane.html]
runewinse
  • Contributor

  • 485 posts
  • Corona SDK

Caleb, do you have even the faintest idea about when Dusk 1.0 will be out?



[TOPIC: post.html]
#10

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Likely soon after I return from China, which would place it around the 10th of April or so. In the meantime, the current version of Dusk is very stable and has served many users well, so you can continue using it for now.

 

- Caleb



[TOPIC: post.html]
#11

c.noeth

[GLOBAL: userInfoPane.html]
c.noeth
  • Contributor

  • 217 posts
  • Corona SDK

Have a great time in China!

 

Some ideas for dusk:

- It would be great to get some features regarding the "wrapping" of layers (maps). Like for example to do an endless runner, where the map is always repeated... BUT maybe with some input on the parts which are repeated, so it is not always the same returning sequence.

 

- An we are using a lot of painted backgrounds in our game. We putting them in a background layer in TILED. And then using the parallax settings to move it with a foreground layer which is containing the tiles (32x32px). It would be great to have some "wrap" function for the background, so it isn't "cut off" when moving to far. Right now we are fixing this in the code, but it would be great to have something in TILED to control how often a filled layer (with a big Background image) is repeated or something like that.

 

- Some influence on the start frames of animated tiles would be great... like for example: you have two different sprite animations (animated tiles) and they should be in sync. Right now only each of them stays in sync with the same tile animations but not with a different one. This makes it impossible to create sprite animations which are in sync and span a bigger area than one tile.

 

- Easy to build "Fog of war" tiles. This also needs Tiles (animated) which can "remember" their frame index when beeing culled, so when re-entering the screen they have the status as they left the screen.

 

- Destroyable Tiles (sprites?). Like for example in "Shovel Knight"... Tiles which can be used to block the way, but can be destroyed. It can be done with objects, but having Tiles instead could be easier with map construction and physics. It would be nice to have something like this: player can hit a tile, then it gets damaged and with more hits more damaged, then finally it crumbles and is destroyed and not in the collision detection of this layers tiles anymore. AND this state is being remembered when the destroyed tile has left the screen is culled and re-enters the screen.

 

- And of course ISO Tiles support ;)

 

Thank you Caleb!



[TOPIC: post.html]
#12

bitinn

[GLOBAL: userInfoPane.html]
bitinn
  • Enthusiast

  • 71 posts
  • Corona SDK

Likely soon after I return from China, which would place it around the 10th of April or so. In the meantime, the current version of Dusk is very stable and has served many users well, so you can continue using it for now.

 

- Caleb

 

A warm welcome from a user based in China :)

 

Thanks for fixing current 0.x build for my specific issue!



[TOPIC: post.html]
#13

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Hi everyone - I'm back! I had a great time in China and managed to do quite a bit of coding on Dusk 1.0.

 

First off, I have some fairly big news. When 1.0's release date arrives, Dusk will become a pure-Lua Corona plugin. I have with CoronaLabs' Brent been communicating about this [edit: sorry for the grammar there, still adjusting from China], and I think it'll be a positive move for Dusk. It'll also solve a big issue Dusk has had since its creation date: documentation. Dusk's documentation will be hosted on CoronaLabs' plugin documentation page, and will use Corona's documentation platform. Awesome? Definitely.

 

Now, before everyone starts worrying: Dusk will remain open-source and will stay on GitHub. The code will be publicly available and about the only thing that'll change will be how you include it in your project.

 

Secondly, something a bit unfortunate. Well, unfortunate or fortunate, depending on how you look at it. This new development and slightly less-than-expected time for programming while in China will push Dusk's release date back a bit. In addition, I'd really like to get some beta testing in before releasing it. If you'd like to be a beta tester, let me know via PM or on this topic and I'll get you the engine when it's ready for testers. With an estimated 1 week for beta testing and a couple of days for conforming Dusk to Corona's plugin format, the release date will probably end up near the 16th to 20th of April. I'm really sorry for this delay in publishing; please bear with me. Again, however, I'd like to remind you that the current version of Dusk is highly stable and will work excellently for your projects right now.

 

Thirdly, as for current changes to Dusk 1.0: the vision has changed a good deal since 1.0's inception. Whereas before, it was a highly-polished rewrite of the current version of Dusk with better Lua practices and a couple of clarified methods, it's now become a fairly different beast. Semantically, everything will feel the same and converting to 1.0 will probably be a simple find-and-replace, but the API has been more Corona-fied based on Brent's suggestions. There are no longer convenience shorthand methods if there's another clearer way to do something, and the total number of functions has dropped because many functions have been genericized. For example, here's how layer iteration has changed:

-- In the old Dusk:
for layer in map.tileLayers() do

end

for layer in map.objectLayers() do

end

for layer in map.layers() do

end

-- In the new Dusk:
for layer in map:getLayers("tile") do

end

for layer in map:getLayers("object") do

end

for layer in map:getLayers() do

end

As I said before, semantically, everything remains about the same. You're still iterating layers of different types, but rather than having four functions, each of which iterates a different type of layer, you have one function whose behaviour changes based on what you pass to it.

 

Finally, thanks everyone for your support. As a single developer working on this engine, I really appreciate it.

 

- Caleb



[TOPIC: post.html]
#14

redninjacat

[GLOBAL: userInfoPane.html]
redninjacat
  • Contributor

  • 196 posts
  • Corona SDK

Hey Caleb,

 

I am really excited about Dusk 1.0! I have been using your CBE library and am very impressed. I am not actively working on a Tiled-based game but if you still need beta testers I can make myself available.

 

In regards to feature requests, I personally just want to see what you've done in the initial 1.0 release and then maybe I might want to make a feature request. That said, what I would really like to see are API docs, at least 3 demos/examples, and a tutorial. The tutorial is probably the biggest thing for me. Ideally, there would be two, one for a top-down game and another for a side-scroller.

 

I understand that my requests are quite significant and that you are doing this for free so I totally understand if you take a long time for this or even don't do it at all.

 

Regardless, I think you do great work and I am looking forward to Dusk 1.0!



[TOPIC: post.html]
#15

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

I know, I know... It's May 3rd and the engine still isn't out. The engine is going very, very well, but I've had a couple of questions about the actual Corona-side plugin development and getting it to users for testing. As I mentioned, I've been in touch with Corona's Brent, but the engineering side has yet to get back to me about the technical questions as of this post. I don't want people to start feeling like this is vapourware - the coding is in excellent shape. I'm using it actively in my personal very-much-Dusk-intensive metroidvania, and it's very stable so far. There have been a couple of delays in development since February when I announced this project, but overall it's in good shape and is definitely getting released.... at some point.... I think.

 

Now for some cold hard facts about Dusk 1.0:

 

Firstly, as I think I've mentioned before, I actually rewrote the entire library nearly from scratch for better code practices, lower memory use, and better Lua OOP. This was actually a huge amount of work, but all the end user will see is: all the map and layer methods use colons. The overall result, however, is that the engine is lighter in memory footprint and maps load a tad faster.

 

Secondly, again as I've mentioned before, I've changed a lot of function names to line up more with Corona's style. Most of these changes are either purely cosmetic (map:setTrackingLevel() -> map:setCameraTrackingLevel()), but a couple of them actually change the functionality a bit (the iterators, for example). Dusk's core ideas and most semantics remain intact.

 

Thirdly, I've pushed quite a bit on being more "unobtrusively feature-filled". Dusk now supports some more of Tiled's minor features like the collision editor (alas, no animation editor yet) and now fully supports tile rotating and flipping. In addition to Tiled features, some of Dusk has been invisibly improved. For example, if you set a sprite tile's (with "!isSprite!" property) frame to something, it will keep the frame you set when it's erased and re-drawn rather than resetting to what Tiled originally displayed it as. There are a number of these minor features that I've implemented to improve Dusk's general well-rounditude.

 

Lastly, documentation. Textual documentation is coming, but in the meantime I'm hard at work on a series of four- to five-minute-long screencasts demonstrating various features of Dusk and how to use them in your code. Examples of the topics I cover are the basics, Box2D physics and the collision editor, the camera system, general know-how like map structure and coordinate conversions, etc. If you have a topic you'd like me to add to this list, feel free to let me know and, if it feels like something everyone could benefit from, I'll definitely do one on it.

 

Now that I've buttered everyone up with good news :D.... let me add that I and my family are going to be on vacation until the 17th. We'll be leaving on Friday. Hopefully this won't be too big a deal for people. Again, the current version of Dusk is extremely stable and very feature-rich.

 

- Caleb



[TOPIC: post.html]
#16

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Hey guys! Last call for beta testing! I have a number of people who've signed on, but I can always do with more. I'll be releasing the first beta test version sometime next week for sure.

 

- Caleb



[TOPIC: post.html]
#17

Scott Harrison

[GLOBAL: userInfoPane.html]
Scott Harrison
  • Corona Geek

  • 1,780 posts
  • Enterprise

Hey guys! Last call for beta testing! I have a number of people who've signed on, but I can always do with more. I'll be releasing the first beta test version sometime next week for sure.

- Caleb

Can I jump the beta boat?

[TOPIC: post.html]
#18

andrewmurraywhite7

[GLOBAL: userInfoPane.html]
andrewmurraywhite7
  • Observer

  • 3 posts
  • Corona SDK

Please add me to the beta if not too late, thanks.



[TOPIC: post.html]
#19

bitinn

[GLOBAL: userInfoPane.html]
bitinn
  • Enthusiast

  • 71 posts
  • Corona SDK

I do look forward to test 1.0, but I am not sure why you decide to serve it as a plugin instead of putting it up at github, that way you can find as many testers as possible. 



[TOPIC: post.html]
#20

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

@bitinn: I'm going the plugin route for several reasons. For one thing, plugins are easy to keep updated. Just require the plugin and you automatically get the most recent version. For another, I've been in contact with the Corona team, and we don't know yet but Dusk may possibly get further integrated with Corona in the future. Turning Dusk into a plugin is the first step. Plugins are also very clean for developers. After you put your entry in the plugin registry, you don't ever have to worry about the plugin again. The directory remains clean and you get your functionality invisibly, again along with automatic updates.

 

To clarify, Dusk will remain on GitHub; nothing will change on that front (save the file structure). You'll still technically be able to download the engine and use it that way. Also, bleeding-edge updates will be pushed to that front, so, if you want, you'll be able to use the newest features by dropping the engine into your project. Each stable update will be pushed to the plugin version, thereby assuring anyone using the plugin that they're using the most recent stable feature set.

 

I'm not doing an open beta with Dusk 1.0 because I'd rather be in personal contact with each tester. That way, I can get opinions on different features as well as bug reports directly and work through issues with people a scaled-down way. Publicly releasing Dusk 1.0 for beta as the comparatively untested engine that it currently is would have the potential to be overwhelming and could allow bugs or concerns to sneak by unknown.

 

@Everyone Else: Today or tomorrow will be the big day. For everyone who signed up for beta testing, start your testing engines! I'll be sending a PM to each of you with a link to the engine, so watch your messenger.

 

- Caleb



[TOPIC: post.html]
#21

sublimegamedev

[GLOBAL: userInfoPane.html]
sublimegamedev
  • Observer

  • 1 posts
  • Corona SDK

Hi @Caleb P

Just read info from blog, please count on me!



[TOPIC: post.html]
#22

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Hey all; this is just a quick update to let everyone know how testing is going. I sent the engine out to quite a few people, and they've been testing it for almost two weeks. There have been no real bugs yet; most of the issues people have had have been with transferring from previous versions to 1.0.

 

Textual documentation is still coming, but it may not be complete by the engine's public release. I've been doing a serious code focus on my personal metroidvania and have made incredible progress in it, but that means other (icky) stuff like Dusk textual documentation hasn't been developing quite as well (read: code is fun but docs are not). My video tutorial series is also in the works, though, and, though I don't have a very good tutorial voice (There's nothing like listening to a recording of yourself for building low self-esteem. Until I started this tutorial series, I didn't even know I had a slight lisp or that I sound like I'm perpetually pursing my lips when I talk.), the series should be very helpful for beginning Dusk users.

 

- Caleb



[TOPIC: post.html]
#23

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Hello, all! I'll keep things short. You probably won't believe it, but there's a public version of Dusk 1.0 up on GitHub right now.

 

Full docs aren't here yet, and the video tutorials aren't complete by any means yet, but you're welcome to get it and try it out. I've published it because I've kind of reached a plateau with 1.0's development and my perfectionism (it's gotta be completely perfect!) and I'm afraid 1.0 will never actually be published if I don't publish it now.

 

The plugin format is coming soon; I've been in contact with Corona and it's in the workings, I believe.

 

- Caleb



[TOPIC: post.html]
#24

redninjacat

[GLOBAL: userInfoPane.html]
redninjacat
  • Contributor

  • 196 posts
  • Corona SDK

For those that are less familiar with GitHub, here is a direct link to the 1.0 branch of Dusk:

 

https://github.com/GymbylCoding/Dusk-Engine/tree/public-1.0

 

Enjoy everyone! And thank you Caleb!



[TOPIC: post.html]
#25

Caleb P

[GLOBAL: userInfoPane.html]
Caleb P
  • Corona Geek

  • 1,424 posts
  • Corona SDK

Pardon me; I completely forgot to add that. Thanks for the link @jerejigga!

 

- Caleb




[topic_controls]
Page 1 of 2 1 2
 
[/topic_controls]