
Artillery is building a hardcore RTS with HTML5 and WebGL - statico
http://blog.artillery.com/2013/09/project-atlas-and-the-artillery-platform.html
======
Mikeb85
This is impressive and cool, but I think web-based gaming will never catch on
with the 'hardcore' for a few reasons.

For one, C++ and the native toolchain is still more efficient. But it mostly
comes down to perception and convenience. The perception of web-based games is
that they're casual and cheap. And most hardcore gamers like to have a copy of
the game on their computer - they paid for it, they want a copy that they can
keep (and at least store on their hard drive) for years. They don't want to
stop playing a game because the dev decided to end its life...

This is why platforms like Steam, Xbox, HumbleBundle, etc..., still rule for
distributing games (both AAA and indie).

~~~
CDRdude
I'm not convinced that web-based is automatically doomed among the hardcore. I
think that Quake Live the most popular game in it's subgenre (Arena FPS), and
it's still hanging on as an esport, with a slot in Dreamhack as well as weekly
tournaments. Granted, Quake Live has the massive advantage of being a
resurrected version of Quake 3 Arena--but it does make a precedent in people's
minds of a hardcore web-based game.

~~~
nickbarnwell
QL uses a native binary that you install, no? Like BF3, the only components
handled in the web browser are matchmaking, clan management, etc. For the
actual matches/gameplay, it invokes the native client

------
codexon
I think Javascript is too slow for 3d gaming.

If you look at this HTML5/WebGL minecraft engine, it stutters even without any
other players or bots in the environment.

[http://voxeljs.com/#gallery](http://voxeljs.com/#gallery)

Meanwhile Minecraft running in Java is smooth on even the slowest machines.

Benchmarks indicate that Javascript is 4x slower than Java.

[http://j15r.com/blog/2013/07/05/Box2d_Addendum](http://j15r.com/blog/2013/07/05/Box2d_Addendum)

The alternatives like ASM.js and PNACL are far from usable. ASM.js has no
support for threads and PNACL is unlikely to be supported outside of Chrome.
They also have no debugging support.

~~~
irrlichthn
Too slow? Then try this:
[http://www.endtime.at/demo.html#gamestart](http://www.endtime.at/demo.html#gamestart)

~~~
jsolson
That actually stutters rather a lot on my Chromebook Pixel :(

~~~
codexon
It also stutters on my i5-750. Not exactly the newest CPU, but it runs every
modern native game just fine.

------
IsTom
Many people trying to make "classic" RTSes miss critical points about feel and
gameplay which makes the games very unsatisfactory to play for somebody who
tried SC2 with its polished engine. Partnership with Day[9] might be just the
thing that they need. Graphics are passable, but it's enough. Many players
play SC2 on low graphics for readability of screen already.

~~~
girvo
I saw this over on /r/starcraft the other day; as a massive fan of Day[9] I
hope his input will be enough to create the F2P RTS that so many want.
Balanced, fun, reasonably fast paced... We don't know much about what he's
planning but we'll see!

Meanwhile, back to the ladder. Grandmaster can't be too far off... ;)

~~~
cpeterso
For us non-gamers, who is Day[9]? <:)

~~~
bkad
Former StarCraft: Brood War pro player, now a highly sought-after StarCraft 2
caster for virtual and live events. Maintains a popular daily vlog about
gaming at day9.tv.

------
Pxtl
I will be exceedingly impressed if they pull this off. RTS is probably the
gaming genre that offers the most "interesting" problems in programming, and
thus is the one that needs the most computing power beyond simply showing
stuff on the screen.

Pathfinding is Hard. Maintaining sync is Hard. Unit AI is Hard. And keeping
those performant is doubly so, especially using JS.

So yeah, I'll be impressed if they get anything playable out of this.

~~~
Arelius
I'm not sure I'd that path-finding and maintaining sync are hard problems,
especially since they are problems that in an RTS aren't quite as sensitive to
latency.

~~~
kevingadd
Ask anyone who's ever worked on an RTS and they'd disagree with you. It's not
even difficult to find evidence to support them being tough problems by
googling it:

[https://www.google.com/search?q=rts+pathfinding](https://www.google.com/search?q=rts+pathfinding)

Lots of people asking for solutions, lots of different solutions, lots of
caveats.

~~~
egeozcan
Even without any search, you can come up with a lot of problems: Will you
calculate an alternative route as soon as a route gets blocked? What if it is
a friendly unit? Should it move to open way? What if it's already moving? What
if it's too slow? What if there are more, moving to different locations with
different speeds and priorities (For example: A tank going to help defend the
base vs. a resource gathering vehicle)? What if the blocking unit is an enemy
unit? Attack it or move around? Can I attack while moving? What if I can't
move around? Can I crush it? Am I part of a formation? How to pass through a
narrow path? Should formation alter?

~~~
Arelius
As someone who _has_ worked on an RTS, among other games, I think I am
qualified to speak on the manner.

For starters, yes there are complex problems with lots of edge cases indeed.
But not one of the many problems you suggest are computationally difficult.
Now there are some computationally difficult problems to deal with in an RTS
but those are not among them.

Additionally, a large amount of the problems you just listed are common among
any game with AI. RTS pathfinding is hard, but so is pathfinding an an FPS,
and then add in how much more complicated a level is in a game such as
Assassin's Creed, to the more simplified structures you can manage in an RTS,
and it's easy to see why this isn't simply a matter of RTS games being simply
more difficult.

And within an RTS there very many problems that are much easier, both from a
complexity, and computationally then in other games. Visibility determination
is one thing in particular that's considered super difficult, and very
performance sensitive, that's very easy to solve with the fixed perspective of
an RTS.

And then there is networking, in which case you can use a lock-step model in
RTS due to being less sensitive to latency, that both vastly simplifies
networking. And also makes it possible to synchronize the large amount of
units in an RTS with minimal bandwidth.

~~~
egeozcan
I think I understand. I still play AoEII only so I wouldn't know Assassin's
Creed. My idea is that it would be complicated if you have massive amount of
units. The calculation could be very expensive when most units are moving. As
I said, that's just my idea because I'm not a game developer.

------
ebbv
This looks really great. I just think the claims of "console quality" or "AAA
quality" (which I heard associated with Day[9]'s announcement) are a bit
disingenuous.

I'm excited that you guys are pushing browser gaming, and what you've done so
far looks great. Just please don't fall into the trap of over hyping and then
disappointing customers.

~~~
anxman
CEO here: Thanks for the feedback. 'Console quality' and 'AAA' are very
subjective and we totally understand your points. Our job is to make Atlas and
anything on our platform objectively feel amazing and please keep in touch
with us.

~~~
bhouston
Dude, you should totally have a look at [http://clara.io](http://clara.io) It
is a perfect compliment to Artillery in that we are a web-based 3D content
creation platform -- but we are distinctly not a game engine or a game editor.
We would love to partner with you and I think there are a ton of
opportunities.

~~~
mikkom
Please stop spamming. I think you can find their email at the site.

------
TimJRobinson
Are you looking to make this run well on mobile too?

There are 2 main advantages of web over native games. The first is being able
to quickly jump in and play with a friend. The second is being cross platform
including all mobile devices.

These 2 reasons are why I'm building my multiplayer tower defense game
[http://www.towerstorm.com](http://www.towerstorm.com) in javascript. I'd be
interested in trying out your engine if you're looking to make it run fast on
mobile along with PC.

~~~
tieTYT
I'm also building a javascript game (I'm using canvas and 2d images). All the
comments here are freaking me out a bit. They all keep saying that html5 games
are too slow. My game has many significant features done and it seems to run
fine. But I'm using tiny sprites, very few animation frames and probably 10%
of the artwork I intend on having in the end.

How's your experience with your game? Is it really slow or does it run fine?
I'm asking regarding all platforms.

~~~
johnyzee
I am building an HTML5 game (canvas/2D) that is distributed both online and on
mobile. It is asset heavy with total assets weighing in around 600 MB, with an
initial download around 7 MB and progressive loading as the player advances.
Sprites are relatively large and a fair bit of animation and effects can be
going on at one time, although I try to keep scenes static to cut down on
rendering. I am happy with performance, both on mobile and desktop browsers.
You are welcome to check it out for reference:
[http://www.webworks.dk/enginetest](http://www.webworks.dk/enginetest)

------
justina1
It's been a while since I've played games like this, but if I could just point
my modern browser to a URL, subscribe for a few bucks a month, and start
playing, I might just start again.

------
kkshin
Whoa, that looks really sweet. I especially liked how simple the dev tools
looked, is that in the browser as well?

~~~
statico
Yep, all of the action you see runs in a browser -- except for the console
command that uploads assets to the CDN.

~~~
MysticFear
Do you have a planned payment model for the game, or is it still too early?

~~~
statico
Yep, it will indeed be free to play. Sean (Day9) discussed it a little on a
Reddit thread a few weeks ago:
[http://www.reddit.com/r/starcraft/comments/1lsgyz/day9_is_ma...](http://www.reddit.com/r/starcraft/comments/1lsgyz/day9_is_making_a_game_with_silicon_valley_tech/cc2ax1r)

------
civilian
Does anyone know how they're going to lock the cursor into the browser window?

A common feature required for RTS games is being able to just push your cursor
to the edge of the screen to move your viewport. (Since it's played full-
screen.) It seems like a browser game would be missing this key feature.

~~~
statico
Indeed! Mouse scroll in Project Atlas works pretty well at the moment. We
aren't using the Pointer Lock API yet due to some input latency problems. A
related Chromium issue is here:
[https://code.google.com/p/chromium/issues/detail?id=168459](https://code.google.com/p/chromium/issues/detail?id=168459)

------
mercurial
Who is "Artillery"? By the headline, it sounds like that's a company I should
know.

~~~
gnufied
Artilley is the platform/engine on which game is built and it is also name of
the company behind the platform and the game
([https://artillery.com/team](https://artillery.com/team))

------
catshirt
this is awesome. and wow they have been busy. devotees will remember the
bomberman clone 'powderkeg' that was on the front page about a year ago. i'm
even more impressed by the progress than the tech.

new favorite platform, and hopefully new favorite RTS.

------
DigitalSea
Wow. I wish I had even just half the talent of HTML/CSS/Javascript to pull
something off of this calibre. I am really impressed, I can't wait to get my
hands on this and deconstruct how they did it the best I can and play it too.

~~~
novalis
I think you should pickup openGL/webGL instead of that other stuff, if you are
serious and not trolling. Because I really can't tell at this point in the
thread.

~~~
DigitalSea
No trolling whatsoever. My day job is as a web developer, so I really meant it
when I said I wish I could do cool things like this, but given the fact I work
a 9/10 hour day, 5 days a week and have family and freelance commitments
learning something as complicated as this isn't really within my capability at
the moment.

I'll just remain appreciating what these developers have been able to do from
a distance until I can learn the basics myself. Programming these games is
only half the work, it's the art direction, storyline and mechanics that make
up the other 50% of the work to make a game in any language or framework.

~~~
novalis
Ok, thanks for the follow up. It can be easier and less daunting than it
looks, and I totally get your description on how you feel about it at this
point. Having your background in webdev you are closer to being able to do it
than you may think. If you take a look at something like the Haxe language
(hard ECMA influence so not that far away from javascript) with its OpenFL
framework, there are these:
[https://github.com/dazKind/foo3D](https://github.com/dazKind/foo3D)
[https://github.com/wighawag/openfl-
stage3d](https://github.com/wighawag/openfl-stage3d)

The first produces html5 and abstracts a lot of the complexity of the low
level that other approaches are based on. The second is more c++ oriented at
this point. Hope it helps, or at least leads you to finding your own path to
doing it. It also allows you to escape some of the js madness that happens
when you interact with this stuff for browser output. It allowed me to get to
a level of production that I could not imagine possible just by looking at the
opengl stuff.

------
sledmonkey
This looks incredible, well done. Maybe I can end my search for a modern Myth?

------
Sami_Lehtinen
Looks good. I personally really really hate installing any crap on my computer
or phone (apps). If it works just as regular web-site using browser only, it's
just perfect.

------
oconnor0
What does being a "hardcore RTS" mean?

~~~
TsiCClawOfLight
I assume they use it interchangeably with "e-sport capable"

~~~
qznc
I interpret it as "Don't bother unless you can pour hundreds of hours into
it".

------
bhouston
Whoa awesome and very well funded it seems.

I think Artillery.com would be a natural partner for our WebGL-based 3D
content creation platform. They should check it out at
[http://clara.io](http://clara.io) Similar to how Unity3D is a natural partner
to the desktop 3D content creations tools like Max/Maya.

------
Kiro
How does real-time multiplayer work in the browser when there's no support for
UDP?

~~~
TimJRobinson
TCP is great for RTS games as most use lock step networking so they need to
have zero packet loss. UDP is better for First person shooters and fast action
games where dropping a few packets isn't the end of the world.

------
joshuacc
Interestingly, the demo video hints that they are using CoffeeScript (see the
`./publish.coffee` command in terminal toward the end). Can anyone comment
about whether this is actually the case?

~~~
statico
Yes, the command "publish.coffee" is a CoffeeScript tool which publishes a
given game target to the CDN. The different colorful letters represent the
state of each asset as it moves through the upload pipeline, e.g. "U" for
unchanged and "F" for finished.

Our engine and Project Atlas are written entirely in CoffeeScript, but that's
not a requirement of game code.

~~~
joshuacc
Can you comment about your experience using CoffeeScript? Personally, I'd love
to see a whole blog post about that. :-)

~~~
statico
Totally. I've got a "18 Months of CoffeeScript" post drafted, in fact. Keep an
eye on our blog :)

~~~
ilaksh
Have you heard of ToffeeScript? It adds a nicer sync syntax as an alternative
to nested callbacks. please take a look. I have been using it a lot but I am
sort of concerned that no one knows about it so I am trying to promote it
everywhere.

------
tharshan09
This is what I have been waiting for...

------
runarb
The music in that video was quite catchy. Anyone know what its name is?

------
waterlion
Nowhere does it explain what "RTS" stands for.

~~~
lmartel
Real-Time Strategy [Game]. It's a genre.

------
Cakez0r
Are you going to sell your engine and toolchain too?

------
dmead
isnt this the project day9 is an adviser for?

~~~
asdfs
Yes. He's answered a number of questions about it in the reddit thread.

------
lorenzfx
What is it with these militaristic company names? Artillery, Firebase, etc. Or
is it just my European mindset?

~~~
lmm
It's a strategy game; artillery is going to be a key part. It's no different
from a racing game called "driver" or a platform game called "jump".

------
natmaster
Congratz Ian! GL;HF

------
monsterix
Wow! This is mesmerizing.

These posts on HTML5 stuff that pop-up on HN from time to time hint on what is
to come on the web in the near term. I think HTML5 is a huge Tsunami gathering
energy and steam out there! It will and _should_ beat all these "I-am-the-
best" closed systems (already does in some areas) sometime soon, and be on the
top.

System agnostic, immersive, inclusive, what not. Love it.

~~~
slacka
We may be seeing the same HTML5 demos on HN, but we're living in two different
universes. In my world, I always open up these demos in a browser that's
incompatible. If I do manage to get them working, my reaction is always like
wow, I saw better native demos 10 years ago, and those just worked.

Let's be honest. JavaScript, DOM, and CSS are terrible technologies to base
any gaming system off of. As a gamer, performance is critical and stuttering
ubiquitous in HTML5 games is unacceptable.

For a gamer who disables mouse acceleration, had a CRT until low latency
gaming LCDs were available, and tracks his Star Craft APM, what does HTML 5
buy me other than performance issues?

~~~
thefreeman
It's easy to talk trash on a technology that is in its infancy. Wait... WebGL
games are still not as good as game engines that have been developed for 20
years? SHOCKER.

The technology is only going to get better. The whole point of these demo's is
to show what is possible even now when the specs aren't finalized and the
technology is barely adopted. Give it 3-5 years and I would be willing to bet
you'll need to eat your words.

~~~
yen223
> Wait... WebGL games are still not as good as game engines that have been
> developed for 20 years? SHOCKER.

That's the point, isn't it? We already have all these fast, battle-tested game
engines Heck, we have 15-year-old game engines that run _on the browser_ (or
do Flash games no longer count?). Is it really worth it to toss all that out
and switch to WebGL?

~~~
fc2
Is it worth replacing a proprietary plugin (which the owner may stop
supporting at any time) with an open standard (which has guaranteed continued
development)? Yes, I believe it is.

