Hacker News new | past | comments | ask | show | jobs | submit login
Halley: Lightweight Game Engine Written in C++14 (github.com/amzeratul)
301 points by ingve on Feb 23, 2019 | hide | past | favorite | 41 comments



I grew up with the author of this library. He was absurdly intelligent. He started studying quantum physics in high school because he was bored with the “normal” content of our classes. And, of course, he always dreamed on working in the games industry :)


Hmm maybe your friend has forsaken physics. He did not implement any physics in his engine! (not yet?) =D


He has a famous blog post somewhere teaching beginners how to do physics on 2D platformers.


Link?


I'm not the OP, but here you go: http://higherorderfun.com/blog/2012/05/20/the-guide-to-imple...

It looks quite nice.


This is probably the most comprehensive single written guide to how platformers are implemented. Definitely worth a read.


this is mostly sprite/collision well known patterns summaries. not much on physics.


it has quantum physics, which can be approximated to zero based on experiments on the applicable scales :D


Right, tell that to your semiconductor based computing device.


To a first approximation, this would be something like

    vec3 pos = {0f, 0f, 0f};
which I think was the joke, you may now laugh.


For those interested in what was built with build with this engine, in the docs it says wargroove:

https://wargroove.com/

Definitely, a 2D game engine, but the game looks fun enough.


As a sibling to this post said, it reminds me of Advanced Wars (Sturm!), and also a little of Tactics Ogre.

I love the art style quite a lot.


This is basicaly a huge love letter to advance wars. The gameplay of capturing income producing buildings, then making unit types, and the units themselves all map directly to advance wars units.

There are a few key innovations (COs as units on the map, archers can fire and move in the same turn (which are more like rangers from Warbits than artillery because they are infantry), some units have abilities that cost money, units have crit conditions, and the building capture mechanic). But the basic loop is there: Swordsman are infantry, pikemen are heavy infantry/mech, dogs are recons, knights are tanks, mages are anti air guns, trebuchets are rockets and ballista are missles, etc etc. Terrain bonuses are similar, costs are tweaked, but it plays exactly like advance wars.

And that is a really good thing. Can’t recomend the game enough.


Eh--I tried a little Wargroove but I thought its maps were pretty unbalanced. It became really easy to end up in a meat-grinder fight where in Advance Wars you had to mess up to find yourself in that state.

The art style (particularly the human portraits) also did not work for me.


I mean, the reason there was less meat grinding in advance wars was broken CO powers IMO. I’m more of a fan of the wargroove balance and slow pushes.


fire emblem is the direct influence. this is exactly like fire emblem with worse voice acting.


I've had that game in mind for a while, ever since I heard about it from them calling out Sony for only enabling cross-play for the big publishers. I think between that and this, it's pushing me to buying it.


The crossplay issue is getting a bit silly, really. Come on Sony, get with the game!

I have a hard time believing that Sony will really loose anything valuable by allowing crossplay.


I would buy this in an instant if it were available for macos. Looks great!


Wargroove is on macOS. Steam displays only the Windows icon because the macOS client is still beta-ish, but once you’ve bought it you can install it like normal. Has full cross-platform multiplayer and everything.


Really? That’s great news! Thank you for letting me know! Going to buy a copy now!


awesome, looks like a reboot of Advance Wars. Loved it back in the day


Another one to check out then is WarBits, which is an excellent advance wars game for iOS.


If nothing else, providing a clean implementation of a working Entity system will be a great boon to those learning gamedev. Kudos!


I found entt to be a good, reasonably approachable entity system for C++. It written in a modern, very generic style, but I don't find it to be obscure.

https://github.com/skypjack/entt


yep its great and very active


This is still far from a learning-from project. The template doesn't even have a README file or instructions anywhere.


I'm reading the source and it's pretty smooth. Feels like reading english.


This is great.

I usually roll my eyes at game-engine posts. But seeing an open source engine that has successfully shipped on multiple platforms, including console, is fantastic.


Video playback is inefficient.

The code uses media foundation for decode (this part is good), but then it downloads NV12 data to system RAM, then uploads back to VRAM.

Better approach is making it work entirely on GPU. The simple way to implement that is to drop Windows 7 support already, and use IMFMediaEngine interface. That object decodes video directly into D3D 11 textures, with very little work required, doesn't even need any custom shaders.

Here’s a working example: https://github.com/Const-me/vis_avs_dx/tree/master/avs_dx/Dx...


its a 2D engine. (just clarifying because it wasn't immediately clear)


Even better!


well said! +1


Does Starbound use this engine?


I don't think so. I believe the Starbound development was led by someone else. This is an interesting article written by that person. https://kyren.github.io/2018/09/14/rustconf-talk.html


> Chucklefish games that are made 100% in house: Starbound obviously, also Wargroove (made with the generic C++ engine halley, but the main dev for the engine is the main dev of Wargroove).

Hmm...


link to samples is broken (octo-cat 404) https://github.com/amzeratul/halley-samples



Doesn't compile - header files are missing from the project.


This looks like its probably the latest one, updated 7 days ago:

https://github.com/amzeratul/halley-template


I like it but having to fiddle with dependencies makes it harder to get started, maybe submodule them?




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

Search: