I've tried others like Unity, DirectX Studio, GameStudio... the list goes on. The bottom line is that programming your own engine is the best way to go.
If the engine is very fast and flexible, chances are you'll have to suffer from no documentation.
Writing your own version of something that "acts" as an engine is way less gay than writing something gay like an engine, or using engines that bring not enough help.
Ok so heres da true story.One day there was a girl named Gisela.She was 13
Every one a school thought she was weird cuz she was too friendly
But on 8-12-10 she decided to hang herself at 12:00
Every ones actions towards her death where careless.The only person tht cared was her mom.Her dad was never there because he was killed the same day and the same way
If u dont post this to 5 other videos within 45 m she will be in your mirror with a rope and she will be bloody
this guy says a couple of things that are incorrect. first, he says there are no people who do web and games. not true. myself, Zynga, processingjs. Secondly, he says you cannot incorporate javascript into flash -- not true, JS hooks exist and are built around the video players on this very website. plus, you can use JS to overlay flash applications. so, two strikes.
SVG has poor support on mobile devices. You shouldn't base a tech assessment off the absolute current version of something unless it has aggressive auto-update (like Chrome). iOS didn't have SVG until 4, and Android started supporting it in 2.2.
This comment has received too many negative votesshow
I know they based this game engine off html css and javascript but i wonder if they have ever heard of php because you could do all this stuff they were talking about a lot easier using php something thats close anough to what they were talking about that i can think of is called ikariam and another one is called battledawn but still if they also used php they could of done all of this a lot faster and easier
@pleabargain I think that SVG is more widely supported, even in mobile browsers (i think the latest version of android supports SVG). But I think that it does poorly when doing large complex animations. That maybe their reason to use canvas.
i think this isometric transformation is too better than yours: -moz-transform-origin: left top; -webkit-transform-origin: left top; -moz-transform: rotate(45deg) skew(-15deg, -15deg); -webkit-transform: rotate(45deg) skew(-15deg, -15deg);
I don't believe the argument about canvas elements. There's no reason to hold an Image instance for each image at all - simply blit all images to a second canvas from the start, and use that as a sprite sheet, before deleting your reference to the images (and freeing RAM).
Sometimes i think nobody remembers how to do 2d games efficiently any more - I've seen lots of reports about how slow canvas apparently is, but they've all been trying to do things in a very inefficient manner.
@folcwine No, I'm talking about loading sprite sheets to a different graphics context first (and scaling them etc before that). That avoids all the extra memory overhead from javascript image objects that the speaker mentioned. It also means the graphics should already be in the right format and can just be blitted to the main canvas displayed.
Thanks Paul. This introduces the concept of pixel transparency to me using Canvas. Something I need to help with collision detection in my games. Just now I have sprites colliding in code but not visually.
Paul is giving divs an id and referencing them with those ids in javascript an option? Or is it too slow when you have lots of divs on the screen? Is referencing elements with $(" *",container) the only way?
@macoronicheez Actually AIR via flash is horribly slow. lots of overhead. There are a lot of 3rd party tools that allow you to compile HTML5/CSS3/JS via Webkit to iOS and Android ( and other mobile devices ). The performance generally tends to be a lot better.
You mention you have a pixel based transparency check for clicked pngs. Now I'm wondering what you do about semi-transparent pixels or transparent pixels within the object, e.g. if I have a house with an inner courtyard and I want it to be clickable as well? Further I'd love to know why you didn't dynamically build image maps, i.e. why you've chosen this "pixel transparency detection" way.
@Onyxagargaryll I'm simply checking for all complete transparent pixels in an image right now, regardless of their position, so a courtyard works. What do you mean by dynamically building the map? Isn't this dynamic enough? :)
@pbprojects Thanks for your answer! What about semi-transparence, like a street light with a wide glow?
According to your answer a courtyard would not work, since I want it to be clickable, though it's transparent.
Hehe it is :) I was just interested because I can't see the advantage of your pixel wise way. Why did you implement something proprietary instead of the already existing "map area" image maps? (since in case of hover effects you'd have to constantly check your immense pixel array)
@Onyxagargaryll semi-transparence is right now taken as non-transparent, thus clickable. Courtyard would right now not work, you're right :) if you'd use HTML image maps, the event would still not blend-through to the image below I think, to i.e. hover a house behind another house. Anyway, a work in progress!
Sure it is - an area shape can take any form and size, and its anchors are its edge coordinates. Having several such shapes laying on each other is very well possible. And in case you need all hovered elements (i.e. a tree completely covered by a big building) you can work with the coordinates.
Simply another idea ofc :)
There's an example in my channel of it, and don't hesitate to contact me if you want to see the realtime example
Excellent talk! I find it amazing that drawing thousands of divs in a string and re-parsing the whole DOM is quicker than pixel-bashing a single canvas, but if that's what your experiments show then I have to believe it! I'm playing around with making an isometric RTS engine (like Command and Conquer) using YUI3 and canvas and I have to agree that the rendering time can be painfully slow for large canvases.
@ThreeFatSlags Do you have any demo or a proof-of-concept? I have been thinking a long long time about creating a browser-based online RTS in C&C style like you've described (but without any framework to increase the performance) so I may give you a hand if you would like to cooperate with me.
Great talk. I have done some experiments using an Image Map overlay with polygon's that determine the clickable area of an object, and it did the job pretty well. I was able to build a very simple isometric engine, with clickable tiles and scrollable view this way. I haven't compared the performance with an array based solution, but it was as fast as normal DOM click events.
@pbprojects You're right that you need a DOM image to render them to canvas, but it doesn't need to be IN the DOM to render it to canvas, just in memory. Further, you can much more efficiently use sprites since you're not taking any performance hit for having a larger image in DOM, only for the initial drawImage call (and the performance hit here is small). This ultimately results in a single DOM element for the entire game and you're only limited by the drawImage speed.
I've done this for a company called moblyng and you've come to all the wrong conclusions.
First, canvas is vastly vaster than img nodes because you only have ONE element on the page. As long as you don't have hundreds of animations going, it will always be faster.
Second, using canvas to detect opacity does NOT work on a mobile device, which is one of your targets. You NEED to pre-cache all the alpha data for compatibility.
@cwolves actually I disagree. I've been testing canvas performance and it just doesn't scale, as you always need to have DOM representations of images before you can render them to canvas. In fact, in the case were you just have to animate all kinds of things, canvas works pretty well, but not with lots of graphics, that's just my experience though. Anyway, feel free to contact me at paul.bakaus@dextrose.com to chat a bit, maybe you got some interesting insights!
@rondlite yup... the guy behind the engine told me that they do some "technique" to acheive that kinda framerate.... which is pretty complicated, My game engine is going to written in canvas :D
Maybe important to note is that the framerate is actually much higher than it seems here, probably an encoding-issue. Search for the Aves Engine E3 Prototype on Youtube to get more ingame-video.
Javascript is as fast as c?
Ok, i am stopping this here.
KnolanCross 1 week ago
in the backend javascript is almost as fast as c? wait what ?
NeroSNT 2 weeks ago
@cminusminus1 youtube com slash html5 and you watch it in html5.
alehander42 2 weeks ago
thats good
CDSNamaghi 3 weeks ago
Remind me never to have idiot background screaming kids of doom!
MateiAlexandruBogdan 1 month ago
jQuery is cool and easy.so we must study this object language.
flowewritharoma 1 month ago
38:47 Youtube translation fail, Harbour Hotel.... It's Habbo.
casiothestrong 1 month ago
He says "right" too many times. It is annoying.
saaawa 1 month ago
@saaawa at least its a condensed version of "is it right?"
Ioganstone 3 weeks ago
this video is very easy to masturbate to
dragonzball24 2 months ago
The search for AwesomeCrazyDude's comment begins
monkeyvonspencer 2 months ago 3
This has been flagged as spam show
@monkeyvonspencer AwesomeCrazyDude said "BORING>>>>>>"
OSDolphin 2 months ago
canvasrider com has very good engine in js
raskec1 3 months ago
Game engines are a pain in the ass.
I've tried others like Unity, DirectX Studio, GameStudio... the list goes on. The bottom line is that programming your own engine is the best way to go.
If the engine is very fast and flexible, chances are you'll have to suffer from no documentation.
Writing your own version of something that "acts" as an engine is way less gay than writing something gay like an engine, or using engines that bring not enough help.
Write games raw.
-Anti-Engine Team.
GameEnginesAreGay 3 months ago
Lol at "the Duke".
cb2198 3 months ago
Watch youtube video, learning java script*
LennyOyea 3 months ago
I got here by Minecraft.
Jasperfritse 3 months ago
BORING>>>>>>
AwesomeCrazyDude 3 months ago
@AwesomeCrazyDude You are clearly an idiot
agrs700 3 months ago
Did I build a javascript gameEngine? Yes. Did I ever release it? No.
MadWizard777 4 months ago
Like praising JS and HTML5 on youtube in a Flash movie!
True hypocrisy!
cminusminus1 4 months ago 14
@cminusminus1 Not if you played it by HTML5 player =)
erickpatrick1988 4 months ago
@cminusminus1: see → youtube /html5 ...
1337knarF 4 months ago
@cminusminus1 Youtube supports HTML5 as well.
beppo05 3 months ago
@cminusminus1 well, it's available in html 5 if you want...
BleuShan 2 months ago
@cminusminus1 watching this in html5 right now
Nyocurio 2 months ago
@cminusminus1
It's not like they had choice. YouTube was around before HTML5. Google is, however, testing a new HTML5 player that you can try out right now.
zc456 2 months ago
@cminusminus1 Youtube is not necessarily Flash. Flash is just one of the options among which you can access youtube.
saaawa 1 month ago
@saaawa The videos are played back using Flash. All though recently google are trying to move to HTML5.
RedofYellow 1 month ago
@cminusminus1 you're the weakest link... go to youtube com html5 and step into the light ;)
JohannLau 1 month ago 15
@JohannLau xDDD nice one. I ran the beta video player the day it came out. How cool am I? :PP
DoomedYouth666 1 month ago
@cminusminus1 Nerd.
ATOGAMESJ 3 weeks ago
@cminusminus1 Woooww we have a badass here.
suleymanmanadigital 1 week ago
As I suspected Javascript programmers are morons. You can create games with Flash... and you don't need premium to upload long duration videos.
6580006247 4 months ago
This has been flagged as spam show
Your reaction?
Ok so heres da true story.One day there was a girl named Gisela.She was 13
Every one a school thought she was weird cuz she was too friendly
But on 8-12-10 she decided to hang herself at 12:00
Every ones actions towards her death where careless.The only person tht cared was her mom.Her dad was never there because he was killed the same day and the same way
If u dont post this to 5 other videos within 45 m she will be in your mirror with a rope and she will be bloody
superkillerbunny 4 months ago
Ironically. Won't work on a Chromebook. :-D
TheYeomanDroid 5 months ago
Interesting
MrRobert422 6 months ago
how de fuck did u make a video of 49 minute?!
SuperBader1980 6 months ago
@SuperBader1980 premium youtube account
camarenalove 6 months ago
@camarenalove premium i have a 58 minute vid im not pre
hunterslolvideos 6 months ago
@SuperBader1980 It is a Google Video, Google owns Youtube...
bellicjr 6 months ago
i really dont feel .like watching a 58 minute video
444004541 7 months ago
it didnt start till 40:53
NerdBryant64 7 months ago
Unity 3D supports web players, if you wanna make a game, use it.
callepro 8 months ago
This has been flagged as spam show
@callepro Yes, it's free and you can play full screen.
IronFreee 8 months ago
this guy says a couple of things that are incorrect. first, he says there are no people who do web and games. not true. myself, Zynga, processingjs. Secondly, he says you cannot incorporate javascript into flash -- not true, JS hooks exist and are built around the video players on this very website. plus, you can use JS to overlay flash applications. so, two strikes.
herbg3 8 months ago
DAMN! 48 Minutes! WTF! I never knew you could go that long!
baozer900 10 months ago
This has been flagged as spam show
@baozer900 there's a vid on youtube that is 48 HOURS in length
thevladdo 9 months ago
Comment removed
altu892 11 months ago
FROSTBITE 2.0 FTW!!!!!!!!!!!
D34N6232 11 months ago
Reminds me of 1999 mmporg games :D
Ultima Online!
ToXedVirus1 11 months ago
great lecture
drums4woodstock 11 months ago
SVG has poor support on mobile devices. You shouldn't base a tech assessment off the absolute current version of something unless it has aggressive auto-update (like Chrome). iOS didn't have SVG until 4, and Android started supporting it in 2.2.
developitca 11 months ago
This comment has received too many negative votes show
I know they based this game engine off html css and javascript but i wonder if they have ever heard of php because you could do all this stuff they were talking about a lot easier using php something thats close anough to what they were talking about that i can think of is called ikariam and another one is called battledawn but still if they also used php they could of done all of this a lot faster and easier
jack08642qazw 11 months ago
@jack08642qazw You don't know what you're talking about
mrPhero 10 months ago
crytek started over LOL they made cryengine 3 and used it for crysis 2
BassPounderX 11 months ago
@pleabargain I think that SVG is more widely supported, even in mobile browsers (i think the latest version of android supports SVG). But I think that it does poorly when doing large complex animations. That maybe their reason to use canvas.
reshba 1 year ago
What is wrong with using SVG to render games on the browser?
reshba 1 year ago
6:10 that fist has six fingers LOL
LocalLongBorders 1 year ago
@LocalLongBorders LOOOL Holy shit XD
QwertzTV 1 year ago
i think this isometric transformation is too better than yours: -moz-transform-origin: left top; -webkit-transform-origin: left top; -moz-transform: rotate(45deg) skew(-15deg, -15deg); -webkit-transform: rotate(45deg) skew(-15deg, -15deg);
folcwine 1 year ago
he said allrighty
bloodychan 1 year ago
I don't believe the argument about canvas elements. There's no reason to hold an Image instance for each image at all - simply blit all images to a second canvas from the start, and use that as a sprite sheet, before deleting your reference to the images (and freeing RAM).
Sometimes i think nobody remembers how to do 2d games efficiently any more - I've seen lots of reports about how slow canvas apparently is, but they've all been trying to do things in a very inefficient manner.
timwintle 1 year ago
@timwintle You are talking about double-buffering in, for example, 3D games with opengl? But... now with canvas.
Thanks.
folcwine 1 year ago
@folcwine No, I'm talking about loading sprite sheets to a different graphics context first (and scaling them etc before that). That avoids all the extra memory overhead from javascript image objects that the speaker mentioned. It also means the graphics should already be in the right format and can just be blitted to the main canvas displayed.
timwintle 1 year ago
SHIT!
i was gonna watch this befor i saw: 48:11... -.-
Mongify1 1 year ago
Wow, JS game dev sounds like a complete cluster-f. But Dextrose got bought by Zynga before anyone could try out their engine.
cybersalad 1 year ago
pro tip: don't use dark blue font on black background -.-
spamero2 1 year ago
@spamero2 Waiiittt :], Is there a designer talking :]?
timtallisman 1 year ago
This has been flagged as spam show
lol some NPC says 'The cake is a lie'
Monty6Pythons 1 year ago
wow, someone else is making isometric game demos in javascript, look for werewolf soon
jacob303 1 year ago
Browser games will never be fullscreen. Reason: ads.
Scarabus82 1 year ago
@Scarabus82 true, even if you look at runescape, if you want completely full screen, you need to be a member which costs money
DaFuseBomb 1 year ago
Cool
617jorge 1 year ago
node.js
wangjulia 1 year ago
Great. Two big hinderences for me have been the difficulty and the publishing. JavaScript should handle both nicely.
killerpacdot 1 year ago
Feels like a big mess to me...
0000000rel 1 year ago
@Thecashflowman it is a new feature of HTML5
lonnmaj15 1 year ago
Thanks Paul. This introduces the concept of pixel transparency to me using Canvas. Something I need to help with collision detection in my games. Just now I have sprites colliding in code but not visually.
wilfscorner 1 year ago
Paul is giving divs an id and referencing them with those ids in javascript an option? Or is it too slow when you have lots of divs on the screen? Is referencing elements with $(" *",container) the only way?
barisusakli 1 year ago
This has been flagged as spam show
Free Energy is real and it's here but the coverup is strong, if u r interested in a REAL free energy magnet motor
just go to LT-MAGNET-MOTORdotCOM and download the blueprints ,it's probably the ONLY working magnet
motor out there. Join the free energy revolution!!
cloudburstlenepmhq 1 year ago
This has been flagged as spam show
The big bad Oil corporations r trying their best to stop free energy technology from spreading to common ppl.
We need to put an end to this corruption ,start generating ur own electricity now.
Visit LT-MAGNET-MOTORdotCOM and get the blueprints . Join the Revolution!!
offertorycardiacml 1 year ago
Get a life.
iferio 1 year ago
Crappy graphics and no audio? I wanna have it!
MrManuelNoriega 1 year ago
HTML5 games = future. Flash games = past
mike73340 1 year ago 13
@mike73340 html games are fucking shit :L now that flash can make iphone and android apps means its never gonna die
macoronicheez 7 months ago
Comment removed
MonsuerLePlague 7 months ago
@macoronicheez Actually AIR via flash is horribly slow. lots of overhead. There are a lot of 3rd party tools that allow you to compile HTML5/CSS3/JS via Webkit to iOS and Android ( and other mobile devices ). The performance generally tends to be a lot better.
MonsuerLePlague 7 months ago
@macoronicheez Too bad Flash games are just as fucking shit.
DaVince21 6 months ago
Comment removed
OfficialJerla 3 months ago
@mike73340 I dare you to name one great HTML5 game for ten great Flash Games issued in 2011
StoukiStudio 3 months ago
@StoukiStudio Angry Birds. :) It's among the many, many games that Google now has in their Google Plus (Google+) games section.
dncounty 1 month ago
You mention you have a pixel based transparency check for clicked pngs. Now I'm wondering what you do about semi-transparent pixels or transparent pixels within the object, e.g. if I have a house with an inner courtyard and I want it to be clickable as well? Further I'd love to know why you didn't dynamically build image maps, i.e. why you've chosen this "pixel transparency detection" way.
Onyxagargaryll 1 year ago
@Onyxagargaryll I'm simply checking for all complete transparent pixels in an image right now, regardless of their position, so a courtyard works. What do you mean by dynamically building the map? Isn't this dynamic enough? :)
pbprojects 1 year ago
@pbprojects Thanks for your answer! What about semi-transparence, like a street light with a wide glow?
According to your answer a courtyard would not work, since I want it to be clickable, though it's transparent.
Hehe it is :) I was just interested because I can't see the advantage of your pixel wise way. Why did you implement something proprietary instead of the already existing "map area" image maps? (since in case of hover effects you'd have to constantly check your immense pixel array)
Onyxagargaryll 1 year ago
@Onyxagargaryll semi-transparence is right now taken as non-transparent, thus clickable. Courtyard would right now not work, you're right :) if you'd use HTML image maps, the event would still not blend-through to the image below I think, to i.e. hover a house behind another house. Anyway, a work in progress!
pbprojects 1 year ago
@pbprojects Thanks again for the quick answer
Sure it is - an area shape can take any form and size, and its anchors are its edge coordinates. Having several such shapes laying on each other is very well possible. And in case you need all hovered elements (i.e. a tree completely covered by a big building) you can work with the coordinates.
Simply another idea ofc :)
There's an example in my channel of it, and don't hesitate to contact me if you want to see the realtime example
Thanks for all!
Onyxagargaryll 1 year ago
Excellent talk! I find it amazing that drawing thousands of divs in a string and re-parsing the whole DOM is quicker than pixel-bashing a single canvas, but if that's what your experiments show then I have to believe it! I'm playing around with making an isometric RTS engine (like Command and Conquer) using YUI3 and canvas and I have to agree that the rendering time can be painfully slow for large canvases.
ThreeFatSlags 1 year ago
@ThreeFatSlags Do you have any demo or a proof-of-concept? I have been thinking a long long time about creating a browser-based online RTS in C&C style like you've described (but without any framework to increase the performance) so I may give you a hand if you would like to cooperate with me.
DevelX666 1 year ago
Great talk. I have done some experiments using an Image Map overlay with polygon's that determine the clickable area of an object, and it did the job pretty well. I was able to build a very simple isometric engine, with clickable tiles and scrollable view this way. I haven't compared the performance with an array based solution, but it was as fast as normal DOM click events.
boukeversteegh 1 year ago
Steve Jobs is a n00b. :p
davitodude 1 year ago
FLASH SUCKS ASS
davitodude 1 year ago
@davitodude steve jobs sucks
sin331 1 year ago
@davitodude why
MonsuerLePlague 1 year ago
@pbprojects You're right that you need a DOM image to render them to canvas, but it doesn't need to be IN the DOM to render it to canvas, just in memory. Further, you can much more efficiently use sprites since you're not taking any performance hit for having a larger image in DOM, only for the initial drawImage call (and the performance hit here is small). This ultimately results in a single DOM element for the entire game and you're only limited by the drawImage speed.
cwolves 1 year ago
what cwolves said. use canvas, this messing with the dom tree to get imgs... not worth it.
mama95962 1 year ago
I've done this for a company called moblyng and you've come to all the wrong conclusions.
First, canvas is vastly vaster than img nodes because you only have ONE element on the page. As long as you don't have hundreds of animations going, it will always be faster.
Second, using canvas to detect opacity does NOT work on a mobile device, which is one of your targets. You NEED to pre-cache all the alpha data for compatibility.
I'd comment more but am at my length limit...
cwolves 1 year ago 34
@cwolves actually I disagree. I've been testing canvas performance and it just doesn't scale, as you always need to have DOM representations of images before you can render them to canvas. In fact, in the case were you just have to animate all kinds of things, canvas works pretty well, but not with lots of graphics, that's just my experience though. Anyway, feel free to contact me at paul.bakaus@dextrose.com to chat a bit, maybe you got some interesting insights!
pbprojects 1 year ago
@cwolves he said he wanted 2000.... more than a few hundred.
anmvamp 1 year ago
@cwolves read the disclaimer at the begginning. Don't take this alll personally.
BasiltheBatlord377 1 year ago
@cwolves for my opinion, canvas is sucks on redrawing... And if you use css transformation, it got hardware acceleration
altu892 9 months ago
@altu892 you seen isogenic game engine? canvas doing pretty well on there (90+ fps)
rondlite 9 months ago
@rondlite yup... the guy behind the engine told me that they do some "technique" to acheive that kinda framerate.... which is pretty complicated, My game engine is going to written in canvas :D
altu892 9 months ago
Whoever it is that's making a noise in the background needs a big punch on the nose
jeromewilson 1 year ago 90
Maybe important to note is that the framerate is actually much higher than it seems here, probably an encoding-issue. Search for the Aves Engine E3 Prototype on Youtube to get more ingame-video.
actraiser 1 year ago
Faved, Looks like a great piece of code, just the something I was longing for.
DevelX666 1 year ago
this owns
baconspam 1 year ago