Hacker News new | past | comments | ask | show | jobs | submit login
Permafrost engine – An OpenGL RTS game engine written in C (github.com/eduard-permyakov)
181 points by rysertio on April 9, 2023 | hide | past | favorite | 70 comments



Pulled the Everglory demo down on Steam Deck.

Because of the small display on the Steam Deck, the text on the menu buttons on the right hand side were nearly indecipherable.

I wonder to what degree game devs should be testing their games on a small display like the Steam Deck/Switch.


I work on games that go on many platforms. I've got a secret debug menu that lets me simulate a bunch of screen sizes, then I've got some internal stuff to let me scale just the UI, and control the viewable distance of the in game world (it's all 2d games).

Safe Areas are a PITA because I can't find a reference of every devices safe area.

Our designer is also good at designing things that work across screen sizes.

The mobile world has forced us to get good at this. It's been a few years of struggle though.


Unfortunately it seems par for the course. The steam UI itself is unusable on laptops with smaller screens and relatively high DPIs, since the minimum window size is larger than the screen


Depends on the game I suppose. I think most would agree that for a typical RTS game, that's a niche within a niche.


How does it compare to other open source RTS engines, like 0 A.D., OpenRA or the Spring RTS engine?


Very nice :). I'd recommend picking a font that produces clearer text though, since the current font is hardly readable and dimishes the experience.


You mean for the game Everglory? I wanted to say the same, but also the red/white is not a great choice for the ui.


Awesome! I keep hoping RTS will make a comeback in popularity


Back in ~2016, I spent a year of my life trying to make this happen. I ended up with a very cheap looking version of age of empires, which runs in the browser... It's still up! http://feudalwars.net/


It looks interesting, honestly. Shame the RTS market is relatively small.


As a die hard command and conquer fan (I play exactly one game these days, C&C generals), me as well. I have a recurring dream of creating a successor to C&C.

What obstacles do you see to the RTS genre? Any reason why the big dogs (EA, etc) have not gone back into the genre?


The market's moved elsewhere, developing a triple-A game of any genre takes roughly the same amount of effort, however strategy has a small overall market share compared to FPS, RPG, mobile, etc. FPS games might have around an 8x larger market, but don't take 8x as much effort to build, so that's what gets approved.

https://www.statista.com/statistics/189592/breakdown-of-us-v...

Couple that with studios (or publishers...) often preferring to re-skin their existing IP and you get Call of Modern Warfare XVII: Rehash Edition, or Skyrim for your Smart Fridge.


Makes sense. Do you think there's space for an indie shop to make a successful RTS? Successful being, say, $1M in sales?


Yeah I think that an indie studio would be best placed to thrive in that genre. If they could create an RTS that scratches the itch just right, the lack of big name competition would probably be an advantage that would make it easier for them to make a splash.


Stormgate is being hyped p hard as the next big indie RTS.


Hello fellow Generals fan! Truly an amazing game, the gameplay videos of the unreleased Generals 2 game make me really sad.


Just finished a match. GLA demolition vs China nuke general.

I've seen that video - looked really nice. Disappointed as well.


not grandparent, but this topic is oft-discussed (but with no clear resolution!) on r/realtimestrategy

imo, the biggest obstacle is the combination of

a) RTS not being well-understood

b) sweaty streamers broadcasting the idea that the games are "solved"...but only enough to criticize you for not being "optimal," not enough to actually help you approach the game.

These add up to a very intimidating picture, unwelcoming for newcomers.


I hate "meta" culture in gaming (as in "this is the 'perfect meta' and you're an idiot if you do anything different").

How do people think "new metas" get discovered? By people trying new stuff! This kind of cargo cult thinking means that we lose all creativity in gaming while also getting stuck on local optima.


+1 to this. I've been learning Supreme Commander FAF, which has a cool little community and open source matchmaking servers. I read this blog post recently which piqued my interest: https://anarchonomicon.substack.com/p/the-most-beautiful-gam...

Might be worth checking out!


Actually they are ideal for touch devices.


Are they? A traditional RTS like Age of Empires 2 or a Starcraft requires quite a lot of accuracy in quick-selection and movement orders, it would drive me nuts to try and do that on a mobile screen with no mouse. I know MOBA-style games are popular on mobile, but there's only one unit to control there.

The only non-keyboard-and-mouse RTS I can think of is Tooth and Tail[0], designed to play nicely with controllers (in a similar way that that Halo Wars was back in 2009), and while I'm sure high-level play in those games was indeed very high-level, the whole experience nonetheless just doesn't work for me, it feels 'dumbed down' still.

[0] - https://store.steampowered.com/app/286000/Tooth_and_Tail/


I guess 40K Dawn of War–style squad-based RTS would work decently with touch, as there are no individual units to select (with few exceptions, but e.g. Ork builder is also a squad), and there's way less micro compared to e.g. Starcraft.

That said, I'd still prefer keyboard and mouse over a touch screen.


Tooth and Tail really did it for me. The granularity of eco vs army, and the targeting micro, added up to a perfect mini-RTS imo.


Game design is the key here.


Could you expand? I'm a video game designer myself, so I enjoy thinking about these things - how can you get around the hunt-and-peck nature of a mobile phone screen, where your thumb or finger covers up the unit you're selecting? And then how do you ensure accuracy in the exact spot they move to?


One way is to decrease the granularity possible, so a finger can easily pick the “exact spot”. Basically make movement discrete (maybe not the animation, but the locations you can be at from a game logic perspective).


Ok but you're losing complexity, and still need accuracy in that case. I think your suggestion would work for a turn-based game, I just don't think mobile is a good media for RTS.


I don't think the poster was suggesting porting Starcraft to a touchscreen. It's a design challenge to figure out what changes need to be made to accommodate the genre for touchscreens. It's not obvious because people haven't put in the work yet.

It was a also a design challenge to make the genre work in the first place for mouse and keyboard.


I would argue you cannot port any RTS game, not just Starcraft. Mouse and keyboard are not a constraint, they are excellent for RTS, which is why the genre is also not so strong in consoles.


And none of us are saying anything about "porting" we are talking about adapting the medium to a new format, but you seem convinced the only way to see it is exactly how it was designed in the 90s.



You can play Doom on your phone as well. That's not an argument that it is a suitable media for FPS.


Check out Line War, fwiw


I do not think that is the case for traditional RTS games. At first glance, sure you touch the unit you want and you touch where you want them to go. But there is a reason why single button mouse to two button mouse was a huge improvement for RTS. You don't always want to do one thing or have it be context aware. The other is that RTS games typically involve you dealing with hundreds of units, all across a map, so things like hot keys to build additional units, or control groups to manage different unit groups is critical. Mobile seems like it could work for some casual RTS games, with small numbers of units. But not for a traditional RTS.


One might assume that and it is mostly true for round based games, but for real-time you just cannot achieve the actions per minute needed on touch. A game like Starcraft or similar is barely playable


I’d love to see an RTS that broke out of those constraints, mostly because I find the whole APM heavy approach to them kind of boring. It’s not strategy, it’s clicking fast, and while I recognise the skill involved it bears little relation to actual strategy.

My ideal RTS would support delegation of armies, and giving broad stroke orders (hold that area, attack this base, provide air cover), with either AI or human players picking up those responsibilities.


Sure, my remark was about controlling, how the game is designed is another matter.


Controls essentially define game design.


Yeah there’s so much skepticism but you’re right on that this genre can thrive on mobile. It’s a way more natural fit than FPS for example.


Hardcore “competitive” RTS (StarCraft/Age of Empires) can’t since it’s not competitive enough if you can’t hit a meaningful 300+ actions per minute, which is impossible without hotkeys. Even IF they could, I am skeptical you’d get converts. Even IF all of them converted, hardcore RTS is not thriving right now. You’d have to create the perfect game and you’d be rewarded with less players than a Minecraft clone.

Some numbers: AoE players 16k https://steamcharts.com/app/813780 SC2 players ~100k https://www.rankedftw.com/stats/population/1v1/#v=2&r=-2&sy=... Minecraft ~178M https://activeplayer.io/minecraft/


Naturally I wasn't talking about competitive esports on a phone or tablet.

There are plenty of people that are happy to play games without having the dream of becoming an esports player as career.


DOTA, Rocket League, CSGO, etc. are e-sports friendly but don’t have this population problem. It’s not about being “hardcore”; it’s about having broad appeal to hit a wide market segment. RTS has struggled with that historically. Tower defense and MOBA are two examples where RTS was simplified to a broader appeal game.


You're comparing apples to oranges.

StarCraft 2: Wings of Liberty sold 6 million, but only small fraction of the playerbase is interested in competitve aspect.

Minecraft is just an online sandbox. Most people will play it like that.

Plus a gamedev doesn't need to take into account what sells, but what kind of competition you have. How will your Minecraft clone exist in market with Minecraft vs how will your M RTS live in a market with StarCraft 2.


I could see a casual RTS working, one where you select groups of soldiers rather than individual units.


Company of Heroes works like that and it's on iPad.


The best game I've ever played on mobile is Eufloria, which is an RTS. I wish there were more games like it.


Isn't Eufloria just a GalCon clone? There are a bunch of games like that, albeit without the plant theme.


It's true, but Eufloria looks better to the point that I'd prefer it for the style alone


I have always been partial to Warzone 2100. It started off closed source but was opened after the studio closed.

https://wz2100.net/


I'm currently partial to https://www.beyondallreason.info/ Also FOSS.


Obligatory mention of another open source RTS engine (lineage tracing back to the original Total Annihilation): https://springrts.com/


One great example of Spring RTS being used in a game is Beyond All Reasons, A Open Source RTS: https://www.beyondallreason.info

> All units and projectiles are simulated in real-time. The game offers fully simulated projectile ballistics, explosion physics and terrain deformation.

> The shape of every battlefield in-game imposes which strategies work and which units are effective. No two maps will play the same. Radar cannot penetrate mountains and nuclear warfare will physically alter the terrain.

Unexpectedly fun game.


I'm going to have to try this on a low-dpi monitor. I just fired it up on my Surface and couldn't really see anything.


Did you also play ZeroK?


Also, see:

* Glest http://glest.org/en/index.php which is modded by editing config files. There are lots of mods that add “factions” to the base game, as well as mods that are standalone games.

* 0ad https://play0ad.com/


OpenRA is another open engine!


Spring engine games do tend to end up feeling like TA which is fine if that's your thing, but I think the mainstream RTS audience these days expects SCII.


For some reason this made me think of Frostpunk, not quite an RTS game though


Cool, but why use OpenGL 3 and Python 2 instead of newer counterparts?


python2 is easier to embed.


Why is that? In this case why not opt for Lua which is basically made to embed in C?


Not that I'm a fan of using an old version of python, but my experience using/teaching Lua to my kid is that it's rather horrible. Felt like a jumbled collection of language design bad ideas.

Would be great if someone made an easily embeddable scripting language that doesn't feel hacked together.


There are fundamental design choices in Lua that can certainly put some people off, such as prototype-based inheritance or the union of arrays and maps.

It certainly wasn't casually hacked together, though. Ierusalimschy et. al. have thoroughly documented the language and its development rationale with admirable clarity.

In particular, the paper "C APIs in extension and extensible languages"[2] will be of special interest to prospective embeddable language developers. "Passing a Language through the Eye of a Needle: How the embeddability of Lua impacted its design" is also a good read, for those who can summon bits through the ACM hellm... er, portal.

1. http://www.inf.puc-rio.br/~roberto/docs/sblp-2007.pdf


Cool. Can one build a game using this but by only using Python?


It can be done if you can offload some the work to C libraries and the gpu, preferably with zero copy. It will be very constrained, because you won't have parallel threads and a fast game loop to begin with.


PyGame is probably better there - for simple 2D games.


Perhaps using Cython?


That game looks a bit like MegaGlest.

http://megaglest.org/


I was hoping this was an open source implementation of the Frostbite engine.




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

Search: