Gio May 8th, 2018 Hi all
We are getting close to the long-awaited WADE 4.0 release. It contains A LOT of changes, and although we've tested it as much as possible, there may be things that aren't working quite perfectly.
So I was thinking to give access to it to a few people only for a week or so before releasing it to everybody. It will still be missing some final touches but it's mostly done, so I'm calling it a beta version.
If you want to participate, you'll get access to it starting next week, and you could try it for a bit and report anything that you think is broken.
Anybody wants to help? If so please reply here or PM me.
Thanks
krumza May 8th, 2018 I'm ready, just loaded on the job, so I'll test that I can.
cleo May 11th, 2018 I am relatively new to Wade but sure I can try it. Not sure that as a user I am advanced enough to find any problems, but if you send me a link I will give it a try.
Indeed May 15th, 2018 Am I too late? I would like to try the beta too. Just finishing my game, curious to see if it's compatible with the next version...
Gio May 15th, 2018 Hi and thanks for your interest
You are not too late. I am going to send links to the beta version at some point tomorrow (Wednesday 16th)
Gio May 16th, 2018 I am posting the Change Log here and will send a link to the beta version via PM to those who replied or PM'd me.
For any comments or question please use this thread.
Thanks!
What's new in version 4.0
- A shiny new User Interface for the editor
- The new Repo Browser lets you browse remote assets that you can drag and drop into your projects
- Added lots of repos with pre-made objects, behaviors, scripts, tilesets, etc.
- New tilemap editor
- You can now open WADE projects from remote URL's
- New SceneObjectGroup API to perform actions on a set of SceneObjects
- The editor can now be downloaded and used offline (Win, Mac, Linux versions available)
- SceneObjects can have a gridType attribute specifying if they are locked to a grid (currently only the isometric grid is supported)
- As a consequence, isometric objects can now be handled exactly like regular objects
- Added support for prefabs, to instantiate objects multiple times and edit them from one central location
- Isometric terrain tiles and tilemap tiles are now prefabs
- The .its file format is now deprecated and replaced by the more generic .prefab format
- When editing a SceneObject in the editor, you can apply changes to all instances of that object in the scene
- wade.getSceneObjects, wade.getObjectsInArea, wade.getObjectsInScreenArea return a SceneObjectGroup instead of an Array
- SceneObject.getOverlappingObjects returns a SceneObjectGroup instead of an Array
- Added SceneObject.getBoundingBox() to get an axis-aligned bounding box that contains all the sprites of a scene object
- Added Sprite.getScreenBoundingBox() and SceneObject.getScreenBoundingBox() to get screen-space bounding boxes
- The data passed to onMouseDown, onMouseUp, onMouseWheel handlers now includes the state of shift, alt, ctrl and meta keys
- Timeline events now appear in the debugger under the Timeline folder in the wade.app domain (similar to SceneObjects)
- The editor supports editing draw modifiers (opacity, mirror, flip, additive) for TextSprites
- When cloning a SceneObject, the clone is assigned an "instanceOf" property reflecting the name of the source object or prefab
- When calling SceneObject.toGrid(), all objects in the new grid get a "gridCoordinates" property describing where they are in the grid
- Added an "anonymous" crossOrigin attribute by default to all images loaded through wade.loadImage
- When adding a new file to the project, the new file is opened automatically
- Added wade.getObjectByName() to get an object by name regardless of its type (whether it's a Path, SceneObject, SceneObjectGroup, etc)
- You can pass an object with x and y fields to Sprite.setSize (or two separate x and y arguments like you used to)
- Similarly, many functions now accept an object with (x, y) fields as well as two separate x and y arguments
- You can pass an optional "sorted" parameter to wade.getSpritesInScreenArea
- Changed the default animation names in IsoActionCharacter to match those used by IsoCharacter
- The bundle that you get when downloading the wade framework zip now comes with a default app.js file
- Added icons for audio files and font files in the editor
- wade.iso.createObject has been deprecated and replaced by wade.iso.addSceneObject
- wade.iso.deleteObject has been deprecated and replaced by wade.iso.removeSceneObject
- Removed wade.iso.spawnObjectNearObject()
- BugFix (B319): The data format of scene objects in saved isometric scenes contains a field called "internal__" that is not supposed to be there
- BugFix (B320): The tilemap position on the screen doesn't match values retrieved via wade.tilemap.getWorldCoordinates()
- BugFix (B321): The "start" parameter passed to wade.playAudioSegment doesn't actually change the starting point of the audio source
- BugFix (B322): Any "end" parameter passed to wade.playAudioSegment causes the sound to stop immediately
- BugFix (B323): Cached TextSprites can sometimes fail to draw on 2d canvas layers
- BugFix (B324): On Internet Explorer 11 only one click is detected by the wade.app, subsequent clicks fail to register
- BugFix (B325): wade.getSpritesInScreenArea() may return incomplete results when multiple layers are involved
- BugFix (B326): When renaming animations, using an existing animation name even temporarily during the renaming process, breaks the animation data
- BugFix (B327): Dragging physics fixtures in the behavior editor to rearrange them causes an error
- BugFix (B328): Games using IsoActionCharacter behaviors cannot be previewed correctly in the editor
- BugFix (B329): Pressing escape while editing code in the match-3 event editor closes the editor
krumza May 16th, 2018 Hi! Thank for new wade, it look that great work was make
I found something
When you try to add an object to the group, but if there are no free objects in the editor, an error is caused.,
wide_4.0.js:949 Uncaught TypeError: i is not a function
at HTMLImageElement.n (wide_4.0.js:949)
at HTMLImageElement.dispatch (jquery-1.9.1.js:3074)
at HTMLImageElement.elemData.handle (jquery-1.9.1.js:2750)
n @ wide_4.0.js:949
dispatch @ jquery-1.9.1.js:3074
elemData.handle @ jquery-1.9.1.js:2750
01:24:00.307
This is not significant, but I think that it is worth to put the handler
In General, groups are very useful, but I do not see the scale transformation function, although the editor is free to change the size of the group
And when you change the size of the transformed image only and not text elements, alas, it is clear why, of course, but nevertheless limits the scope
In the editor in General for groups as that is not enough functions - in fact only addition of objects. Of course, it would be convenient to add a path for example
I would like to know what kernel has been improved/changed?
cleo May 17th, 2018 Wow it must have been a lot of work, many improvements!
Only one problem that I noticed so far, in your new video tutorials you mention a "wade introduction" video, and I can see the preview but it is not clickable. Also right at the end, the videos are blank for like half a minute.
Gio May 17th, 2018 Thanks for your feedback
@krumza:
Yes there seems to be a problem when adding objects to a group via the editor interface. I will fix it before releasing the final version. Thanks for pointing it out.
I should have mentioned that you can also select multiple objects (select an object, then hold Ctrl and select another one - if selecting objects from the list on the left panel, you can also ctrl-click and shift-click). This will allow you to create a new group.The SceneObjectGroup API is certainly not finalised, it's just a start. Please let me know which features you would like to see - a function to scale the whole group is a good suggestion.
I have a different plan for Paths, adding them to a group may not be necessary after some new features I'm going to add in version 4.1. The idea is that Paths will be able to inherit their initial values (such as poisition, size, etc) from the values stored in the SceneObject. So no need to "move" a path with the Scene Object, because there will be a way to make tha path start always at the SceneObejct's current position. There's some work to be done for this still, so it will be in version 4.1.
@cleo
Yes you are right, those videos are still missing annotations and links (and subtitles). I will add them before releasing the final version. And the end of the videos (the blank bits) is where I'm going to add links to other videos and a button to subscribe - again, not finished yet but to be done before release.
For those who are wondering, I'm planning to release the final 4.0 version next Wednesday (May 23rd), so if you encounter any major problems please let me knoe asap so they can be fixed in time.
Thanks everybody for your help.
krumza May 18th, 2018 I think that for the groups most likely need all of functions for 2D transformations. Although I would like even 3d (see Pixi ->examples ->PROJECTION).
I have not seen in the new documentation the quick access function for connection/disconnection of the object to the group. I also don't see a feature for quick access to objects within a group. And I think that since a group of objects is an analog of an array, there must be a corresponding function for searching, filtering the elements of the group
Also Gio what about the text in groups - the fact that dinamic (if it change frequently and we cant use TextSprite.cache) text sprites can not be manipulated with" tween " increase/decrease greatly limits the ability to create an effective UI / Ux
Gio May 18th, 2018 I should have worded it better in the documentation, and I'm going to update the description of SceneObjectGroup now. Let me clarify:
A SceneObjectGroup IS an array. So you can do:
myGroup[0]
myGroup.indexOf(myObject)
myGroup.sort()
myGroup.slice()
// and all the things you can do with an array
All the wade functions such as wade.removeObjectFromArray(...) will also work with SceneObjectGroups.
However it's an array that has got some extra functions, so you can also do
myGroup.translateGroup()
myGroup.rotateGroup()
myGroup.setGroupCenter()
myGroup.serialize()
// and some more functions as documented
In addition, you can also call all of the SceneObject functions on a group. These will be executed for each object in the group.
myGroup.setVisible()
myGroup.fadeIn()
myGroup.schedule()
myGroup.setVelocity()
// and all the things you can do with a SceneObject
Other than resizing the group, what other functions for 2D transformations do you think are missing?
Regarding TextSprites and tweens: yes that is a good point. In reality it only applies to the size of the TextSprite, you can tween everything else (opacity, position, etc). So in practice, the only thing you cannot do is set a TextSprite on a path that changes its size while the text also changes. That is going to be a bit tricky, but I'll try to think if there is something we can do to make that possible.
cartyman May 19th, 2018 I played around with the beta version (thx for the link btw), and I have found only some minor problems. Maybe you want to fix them anyway? Here's what I found
- When I create a custom function, it still says "this function is passed a data object", with the details from the previous function that was selected. But it is actually a custom function that is passed no data object
- Same problem that @krumza was having when adding objects to groups
- I had an existing isometric project, and when I upgraded to wade 4, I had to change all the sprite offsets of my iso objects. Not a big deal as I noticed that the new editor lets you drag the whole object (when it's an isometric object) to change offsets for all sprites. Still somewhat inconvenient
But after using this version for a few days I could never go back to the previous version, overall this is much better.
krumza May 20th, 2018 Error when create new blank project - causes unknown/
Progress stopped at middle
Uncaught ReferenceError: fileEntry is not defined
at f (wide_4.0.js:672)
at c (wide_4.0.js:673)
f @ wide_4.0.js:672
c @ wide_4.0.js:673
14:27:56.688
I dont know why, maybe low disk space
yea - it low disk space
also when added 2 animation objects:
[DOM] Found 2 elements with non-unique id #speedInput_0: (More info: https://goo.gl/9p2vKq) <input class="smallTextInput" id="speedInput_0">…</input> <input id="speedInput_0" class="smallFloatInput ui-spinner-input" aria-valuenow="5" autocomplete="off" role="spinbutton" aria-valuemin="0">…</input>#shadow-root (user-agent)</input>
14:50:14.142
Shri May 20th, 2018 Gio,
I used Wade 4.0 beta to develop my latest post - no problems to report. The released version up on my site uses 3.8.1 - cheers
cartyman May 21st, 2018 One more, similar to @krumza's problem above. I noticed this in the console:
[DOM] Found 2 elements with non-unique id #offsetInputAngle_
I'm not sure when this happens exactly, I just saw it a couple of times when the debugging console was open
Gio May 21st, 2018 Thanks guys, this has been super useful.
I will try to fix most of these things now, some other things will take a bit more time - adding warning messages when you're running low or don't have enough disk space is something that I have in my list of things to do, but it will be after this release.
Gio May 23rd, 2018 I've released it now, fixed most of the things you guys mentioned. More fixes and features coming in version 4.1 - minor releases should happen more frequently now.
Thanks everyone for your help
krumza May 24th, 2018 Gio, please install ssl cert for online editor
but becase forum - ssl be with warnings - mixed content,
may be carry online editor on subdomain - like editor.clockworkchilli.com and get ssl for it
Gio May 25th, 2018 I do agree with you, but I want to move the entire site to https not just the editor.
Unfortunately this isn't very easy. It's actually not too difficult for the website and forum, but for the editor it's going to be a nightmare.
This is because once we move to https://clockworkchilli.com, it is technically a different domain. And the FileSystem API that we use to store all your projects is tied to a specific domain.
So the day after we do this, everyone will be complaining because their projects have disappeared, and they can no longer access them.
We can give advance warnings and provide ways to access the FileSystem on the old http domain to get your projects back, but I'm sure this won't stop people complaining :)
At some point I'm going to do it anyway though... and I think it should happen in the next few months.
krumza May 25th, 2018 I'm sorry if I'm saying the obvious things you know!
Gio, it so easy if use nginx as proxy
And I see that you and statics(css,js, images) hand out through Express
But give it not via Express but via nginx is much more profitable and cheaper for the server - read about it in more authoritative sources than me
Nginx is a lot faster than node at serving static files & performing optimizations such as gzip and caching.
moreover, the latest versions of nginx are very easy to configure to http/2
something like this :
http {
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##catch no-https requests and redirect them to https
server {
listen 80;
server_name clockworkchilli.com www.clockworkchilli.com;
proxy_set_header Host clockworkchilli.com;
location / {
rewrite ^(.*)$ https://clockworkchilli.com$1 permanent;
}
}
##catch request to https://www.... and redirect them to non-www version
server {
listen 443 ssl;
server_name www.clockworkchilli.com;
proxy_set_header Host clockworkchilli.com;
ssl on;
ssl_certificate /path_to.crt;
ssl_certificate_key /path_to.key;
location / {
rewrite ^(.*)$ https://clockworkchilli.com$1 permanent;
}
}
##main logic
server {
listen 443 ssl http2;
server_name clockworkchilli.com;
proxy_set_header Host clockworkchilli.com;
ssl on;
ssl_certificate /path_to.crt;
ssl_certificate_key /path.key;
root /where_now_your_public_dir/public/;
access_log off;
error_log /path_to_logs.log error;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
location ~* \.(jpg|jpeg|gif|png|ico|txt|woff|otf|eot|svg|ttf|html|xml|css|js|mp3)$ {
expires max;
error_page 404 @notfound;
}
location / {
proxy_pass http://52.25.187.234:your_port;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
location @notfound {
proxy_pass http://52.25.187.234:your_port$request_uri;
}
}
}
krumza May 25th, 2018 God, I just noticed you don't cache anything. In my opinion it is a crime)) the forum page should not be opened for 2 seconds.
Along the way, and my God how many mistakes(( you haven't set up a 404
app.get('blabla...', function(req, res){
...
})
...
//after main route sections add 404-cathcer
app.get('*', function(req, res){
res.status(404).render('404.ejs', {
//what you want
});
});
Gio May 25th, 2018 I appreciate the heads up but resources are spent where they are needed, the website is "good enough" for now. Sure it's not perfect but optimizing it is not a priority either, the server is running nowhere near its capacity (also there's a reason for the lack of 404's but it's a long story...).
Anyway I agree regarding the lack of https, that's something to do sooner rather than later. I'll try to see if we can make it happen in a way that's not too inconvenient for users with existing Wade projects that will need to be moved.
krumza May 25th, 2018 using nginx-really no one will notice anything even. the only problem is setup and installation -
but damn it a few minutes-
apt-get install nginx
apt-get service nginx start //there is likely to swear because you are on port 80
config for the file nginx.conf I wrote without errors
and there should be no problem with the file system
you can try to start a copy of your site on port 8080 for example and already there to look with the self-signed certificate - whether logic will break or not (but should not break anything if to use proxying) well it is not pleasant nginx- use apache2
Gio May 25th, 2018 That's not what I meant, sorry if I didn't explain it clearly above. It doesn't matter whether we do it with Express or nginx, the problem will be the same and is the following:
Now you use Wade on http://clockworkchilli.com, work on your projects and save them.
Even though these projects are saved on your hard drive, when you then use wade on https://clockworkchilli.com, you can NOT access those projects anymore. This is because the FileSystem API that we use to save your projects is sandboxed for each domain, and http://clockworkchilli.com is not the same domain as https://clockworkchilli.com
So for existing users their projects will disappear when we redirect http to https.
Something similar has happened before, when we started redirecting www.clockworkchilli.com to clockworkchilli.com (without www). We had to do it for SEO reasons, it was inevitable. But it did cause a lot of confusion and frustrated users.
I think I can probably figure out a way around the problem though, so hopefully we'll make the switch soon.