Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Wow, what an impressive game for the web browser, and in such a small size!

I'm particularly impressed by the variable lighting of the bullets down hallways, that's really quite masterful work.

Kudos!

Edit: I am impressed because I'm impressed. I spent a few weekends recently messing around with pygame, and I had a really hard time organizing my code and my thoughts. I do primarily numerical, technical work, and I see that there is something challenging about writing a game that I haven't come across much in 25+ years.

Feel free to shit on my comment, but I still think it's a very cool project, and seeing it run so smooth in a web browser, in a vm, on a beat up box with a Celeron was surreal to me.



Making a sticky game is much harder that it seems.

Many of us could code something like this technically but it would play horribly and look worse - and would be more than 14kb of WASM

It is the little things, the lighting, the little sound effects, even the unlimited ammo


Your post it just fine. Shows enthusiasm, and provides argumentation why/what made you enthusiastic. Up voted for balance.


I think it's pretty cool too. The people shitting on your post should go try implementing the same thing.


Ok, I'm not trying to take anything away from the developer here but calling this "masterful" makes me think you must have incredibly low expectations for webtech games and/or developers.


Or incredibly low expectations for programmers in general, which is fair. If you pick 100 random run-of-the-mill programmers from any corporation, and ask them to repeat this exercise, 95 of them would not even get out of the starting blocks. I liked it.


The remaining 5 would talk like an elitist about their peers?


In my experience, those that are actually the smartest are also down-to-earth and approachable -- the sort that you can have very interesting, thoughtful conversations with and enjoy being around.

I suspect folks who had bad experiences with a "smart" person might have been dealing with someone who was a "big fish in a small pond", who hadn't been sufficiently humbled by going to (or trying to go to, haha) a more appropriately challenging level of education or professional practice.

So generally, I think the difference is that truly smart and knowledgeable people have serious respect for the vast body of knowledge they haven't acquired.


To piggyback on this, some of the people I've worked with in the past that could be called "smartest" are people with a natural aptitude for explaining things.

I've definitely met people who hadn't been humbled by life yet, and they're not too grating imo to deal with, provided they have good social skills and work ethic.

But there are those who innately understand that a lot of software team communication is about conveying an idea that is potentially unfamiliar to someone, and cooperating with them. I remember the first time someone showed me how to use Makefiles. I had seen them, I comprehended their usage, but when I was shown how easy it is to actually form them and use them for different purposes, it was incredibly eye-opening. That conversation couldn't have been but 7-8mins. That man was actually my boss for a while later on, before he had a bad car accident. Another example might be my old mentor who helped me grok syntax-rules for the first time, over a lunch break, with a pen and paper. It just clicked, and I learned.

My point is, the combination of social skills + intelligent explanations + teaching practice is a powerful one.


Maybe it sounded a bit elitist. I myself am not a game programmer, and I would indeed be among the 95 struggling to get out of the starting blocks. I do like low-level stuff, however, and I choose to be impressed by projects like this!


Being impressed by something and calling it "masterful" are very different things.


Nobody has ever called your work masterful, have they?

That must be why you've been so dismissive and rude in this thread, because you feel sad. :(


I don't feel I am being rude or dismissive. I have nothing negative to say about this project or its results. I just find the idea of calling a relatively simple bit of lighting "masterful" very strange. It'd be a bit like someone looking at something I have written, like a serialization routine, and saying that my use of bitshifting and masking was "masterful". That kind of thing is very basic for the domain.


Impressive? 2011 says hi.

"Unreal Engine 3 Support for Adobe Flash Player - Epic Citadel"

https://www.youtube.com/watch?v=xzyCTt5KLKU


That's something on the order of ~5,000 times the size and looks extremely bland/boring.


Might be boring, yet where are the WebGL/WASM versions that are the modern versions thereof?


Boring demos are available anywhere you care to search. https://playcanvas.com/explore is the typical goto for this kind of 3d market these days. Particularly popular in the mobile OS and web game (e.g. facebook) space. Robostorm, seemore, and After The Flood are their demos.

Unity and Unreal can both export large games to the Web just fine but people found out they didn't want to serve 50 GB games to a temporary client.


Demos that were released about 5 years ago.



The Citadel demo already works with Emscripten, so...still Citadel.


So nothing new since 2011.


"Turing machines can all do the same calculations. This is a novel and worthwhile thing to complain about on Hacker News that no one has ever heard before."


The halting problem - it's impossible to know whether a gripe will ever die off


Epic Citadel was a lot bigger than 14 KBytes ;)


True, the point was more about what was possible before Flash was sacked and is yet to be common with WebGL/WASM.



I know, but that wasn't the question, rather what has been actually produced with it, given that Infinity Blade was created with Unreal 3 for iOS in 2008.

An hardware that WebGL 2.0 is supposed to be much better.

Instead most online games look like Amiga 500 stuff instead.


This is more because there isn't an incentive (monetary or otherwise) to do that. When Flash gaming was big, web-based games were on the desktop but web games never took off on mobile which got pretty much all the audience they used to have on the desktop. Instead mobile games are largely native (or at least in app form).

I agree that it took many years for HTML5/JS to reach Flash's capabilities (and some stuff like easily swapping around SWF files is still not as easy to do) and i dislike how Flash was forcibly killed instead of losing its popularity "naturally" (though it being proprietary technology instead of some open standard or at least an open source project help its murder considerably), but the reason you do not see Citadel-level stuff on HTML5/JS has more to do with not being much of an incentive to do something like that than the technology being able or not (demos like After the Flood[0], which has as much gameplay as Citadel yet it shows more advanced rendering techniques - you can even look yourself in the glass reflections :-P - show that it is technically possible).

[0] https://playcanv.as/e/p/44MRmJRU/


After the flood is from 2017, and doesn't work on my Vulkan aware mobile GPU.


> After the flood is from 2017

Citadel is from 2011, but this doesn't matter, the point is that you can do stuff like that on the web.

> doesn't work on my Vulkan aware mobile GPU

If the GPU is Vulkan aware then it might be an issue with your browser, though from [0] it looks like only Apple's devices do not support it - which wouldn't support Vulkan either, so i'm not sure why you'd bring that up.

[0] https://caniuse.com/webgl2


Then go out and build your ideal web game. The barriers to entry have never been lower.

People still appreciate pixel art and simplicity. Some even love the Amiga.


I rather take advantage of the latest native games and APIs instead.

It up to Khronos and friends to keep the Web APIs relevants, after all why did they kill plugins?


Plugins were a security nightmare.

Webgames are generally more about free to play and accessibility. No install or trust required. They are usually more casual games and must work on the widest possible selection of devices.

That's what WebGL is all about. If your looking for a memory intensive behemoth of a game, it makes more sense to look at native as opposed to WebGL. There's nothing wrong with either approach, but the web lends itself to one more than the other.


And then everyone went to mobile native games instead, leaving WebGL behind for 3D visualizations of online shops, Google maps and shader toy demos, basically.


PWAs still have the advantage of avoiding app stores.


It is not an advantage when they look like Amiga 500 or PS2 games released in 2021, while the phone is capable of Metal and Vulkan.


Literally every major engine allows exporting to WebGL/WASM. So Unreal, Unity, Godot, etc... graphics can all be done in WebGL (without a few of the bleeding edge Vulkan/DirectX features).


A few of the bleeding edge features ? You obviously don't know what you're talking about - WebGL 2.0 is not supported on Safari and iOS [1] and WebGL 1.0 is based on an API that was released in 2007 ! Even WebGL 2.0 is based on ES 3.0 which is from 2008...

[1] https://caniuse.com/webgl2


Safari is already shipping experimental support for WebGL 2. It will be months, not years, before it is enabled by default.

Also, OpenGL ES 3.0 is not from 2008. The specification was publicly released in August 2012, and of course it took years before enough devices supported it well enough (lots of driver bugs…) for it to be worth targeting.

The web is certainly a few years behind the native-code state-of-the-art, but it's not a decade behind. There's a lot you can do with these mature APIs.


>It will be months, not years, before it is enabled by default.

So in a few months we'll have feature parity with 2012 mobile HW ?

I have quit 3D development around 2015 but I remember trying to use MRT on webgl to do some basic deferred shading and you could run on FF and Chrome desktop only. It's infuriating that 7 years later it's still the case. I used this technique when I was learning 3D programming in 2007. Calling this cutting edge is just...


It is definitely a real tragedy WebGL 2 didn't ship sooner, for sure. I want to underscore though that at least when it does ship, it will actually work on almost all devices out there, rather than being limited to desktops and high-end mobile devices. (And yeah MRT is not remotely cutting-edge. It might have been a decade ago on mobile, but mobile GPUs have caught up a lot in that time.)


Agreed, iOS 15 is finally going to make hundreds of millions of iPhones to be able to access 3D experiences on the web at good performance.

Shameless plug, but our startup is building better support for Unreal developers to target WebGL2, and we're working towards WebGPU support. We're offering an end-to-end ecosystem that includes our SDK for optimizing games/3D apps, which includes compression, an asset streamer tool, and networking libraries for the web. This goes hand in hand with our hosting platform where developers can deploy their projects to without having to go through walled gardens. The best part is no 30% fees!

We're going to have some demos here pretty soon as we approach general availability of the platform. If you or any other devs reading this are interested, you can join our Discord community here:

https://discord.gg/zUSZ3T8


And finally gets supported in Safari, on the year when graphics card are moving into mesh shaders and raytracing, with WebGPU still one year away as MVP 1.0.


Who cares about Apple? They intentionally don't implement open standards to keep their users boxed in. While they have decent market share in a few select countries, they don't matter to most of the world...


And yet nothing that can match something like Citadel or Infinity Blade has been produced.

Those "bleeding edge" features, are all GPU hardware advances since GL ES 3.0 was released.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: