Hacker News new | past | comments | ask | show | jobs | submit login
Soldat: a 2D (side-view) multiplayer action game (github.com/soldat)
410 points by albertzeyer on Feb 7, 2021 | hide | past | favorite | 121 comments



I was surprised and happy to see this also being open sourced. As a developer of OpenLieroX (http://www.openlierox.net/), we also took inspiration of Soldat. The main difference is mainly the way you control the game, i.e. with mouse aim cursor in Soldat, and purely with keyboard in Liero. And also the ninja rope.

Once we added mouse aim support to OpenLieroX as well, but the Liero community didn't liked it, and basically it became another game. Network play between both versions would be unfair. It would really need a different name.

Teeworlds (https://www.teeworlds.com/) is also a more recent very similar game, also with mouse aim, and ninja rope.

Interesting also that Soldat is implemented in Free Pascal / Lazarus.


We have replaced our daily table soccer break with a round of teeworlds at work. It's a great game for that purpose. Like table soccer, the game mechanics are simple enough that anyone can join and have fun instantly, but there is a lot of opportunity to gain skills by learning to use the rope efficiently, combined with "classic" FPS stunts such as rocket jumps. Highly recommended.

I also recall playing Soldat a lot back in high school. I think there wasn't a Linux version available, which I guess is why I stopped. Perhaps one will appear now that it is open source?


Forgot to say: I have also played Liero a lot with shared keyboard, and didn't know about OpenLieroX! I'll definitely try that out, as it sounds like it's right up my alley :)


> I think there wasn't a Linux version available, which I guess is why I stopped.

I just came in comments to see is there a Linux build.

Now I know.


It actually ran quite well in Wine even back than.


I haven't used Pascal for around 15 years, when I used to build Windows desktop apps using Delphi - nice to see some Pascal code for the first time in a while!

BTW, I found the screenshots at soldat.pl, but it would be nice to include a couple in the GitHub readme too.


Yeah good point, probably better to include the screenshot than an icon.

Will do.


Soldat 2 is available in early-access, which might have provided the motivation to open-source the original.


Ooh! What happened to OpenLieroX? I used to love it, but I see there hasn't been a release in ages. Is development still ongoing? Is it still tied to that quirky abandoned networking library that I can't remember the name of? How did it stand up to the original Liero being opened up?

(Rereading the above I sound super critical. That was not my intention!)


I really would love to continue working on OpenLieroX (OLX), but my priorities have shifted, and I just don't find the time anymore, although I still really would like to. I guess it's the same for the other developers. We used to be three main developers.

When I started working on it, I was in school, and then started studying at a university, and continued working on it during most of my studies (and I think my studies somewhat suffered from it, as I spent way more time on coding on OLX than on studying...). But then I started a PhD, got full-time job, now got kids, etc...

Also, this is kind of an infinite project. You can always improve things, implement nice new ideas, etc.

For reference, repo is here: https://github.com/albertz/openlierox

The code you find there is already more modern than all the published builds. It is based on SDL2 now, and has lots of cleanups. The merge of the Gusanos engine and OLX engine is much more completed and cleaned up. Although this could still further improved. I would like to use Lua as the pure scripting engine (from Gusanos engine), and port over all the OLX game logic to that as well, so that the core engine becomes much simpler.

The graphics effects and drawing should be optimized further. On the transition to SDL2 and due to code cleanup, graphics has become slower. And it was already somewhat slow before. This is maybe not much a problem on a modern machine, but this game really should not require a modern machine to run nicely. One reason is that this is all purely software pixel based, including all graphics effects. We definitely should move to OpenGL, Vulkan or so, but some of the graphics effects are a bit tricky to re-implement, and probably need some shader logic. But we also want to have it cross platform, really running anywhere.

I think you refer to HawkNL, which is used for the low level networking (UDP/TCP sockets, DNS)? Yea, we definitely could replace that. Although we anyway provide our own fork within OLX, and it's not so special. One of the many things you probably could replace by sth more modern.

The (higher level) network engine is probably a more important item which needs a reimplementation to support more players, be more stable, etc.

OpenLiero (https://www.liero.be/) is a reimplementation as well. We planned to provide this (the game physics / logic / weapons) as another mod inside OLX. It already has some mods which are similar, but not exactly the same.

And many more things...


Thanks for the writeup! I really hope you didn't take my comment as criticism. I can definitely understand!


No, not at all. I'm just feeling a bit sad about it myself. But I'm also doing very interesting things recently (research on deep learning), so it's okay.


What a surprise to see Soldat on hackernews :)

I maintained Soldat back from version 1.5+ to 1.7 before someone else took over for a few years.

The current version on Steam is Soldat 1.7 while the open source version is an unfinished Soldat 1.8 and needs some love before it can be released (gui is missing, new netcode, switch to lazarus/fpc, macOS and GNU/Linux support, new config file format to name a few.)

So don't expect everything to work out of the box if you compile it.

Any help is welcome btw ;)


Heya mate! Long time fan, since 2003!

You're not the original developer? Does he get any money from the Steam sale? The situation is rather weird and different people seem to know different things.

Could you shed some light on the situation?


Yes, the original developer gets the money from the steam sale.

He's hosting the lobby server, website and forum for the game.

Afaik the contributors didn't get any money and worked on the game in their spare time because they love Soldat.

One of the goals was to release it as FLOSS.


Thank you for your work! I used to play Soldat for hours a day when it was first released.


Thanks for your work on Soldat. I still remember a bunch of us sitting in our living room, all with our desktop PCs, and the floor being a mess of cables connecting to power banks and an old switch, playing Soldat for hours.


Thanks for maintaining it! I have fond memories of that game.

One time about 80% of my class in school ("Informatik-Berufsschule" in Switzerland) was playing that game while the teacher was talking about some boring Active Directory design topics. Suddenly one of the students screamed "HEADSHOT!", followed by an annoyed teacher and everyone quickly minimizing the game window :)


Former soldat/thd devs appear to be well-represented here


Looks super fun, I'll give it a try!

Something like 10 years ago I had a similar idea - a 2D shooter with the feel and gameplay of a FPS, only that in my case I thought of making it top-down, and the plan was that visibility would be a huge thing - your 2D character would only see things from their point of view that weren't blocked by the level geometry or other players.

I never completed that game, for various reasons. But in the course of making that prototype, I did a lot of research about the networking model. I read every article I could find about client-side prediction, server reconciliation, and entity interpolation. I didn't want all this effort to go to waste, so I wrote what I had learned in article form, and put it on my website.

That's the never-told-before origin story of my multiplayer networking articles :)

https://gabrielgambetta.com/client-server-game-architecture....


The game is nearly twenty years old. It's really a pity that you didn't play it at its peak. Do you know "Running with Rifles"? I think line of sight is not a thing there, but it still reminds me of your idea.


Oh wow, this is perfect timing. I do hacking on homemade from-scratch 2d game engines in C++ just for fun (and because it's about as far away from what I do at work as I can get). My projects never get super polished because they're more about learning experiences for me than making anything for sale/consumption. Anyways, my most recent project was a traditional roguelike (holy shit, GUI programming with only SDL for comfort is a challenge), so for my next one I'm wanting to do a top-down action game just for something different. I had decided that I thought making it online multiplayer would be a good focus for a challenge learning objective, but I've been a little hesitant because networking at that level is far outside my comfort zone, and it doesn't seem like something I could just hack my way through like I could for simple sprite rendering/movement physics/etc.

So basically you've lit a spark under me now. Thanks! And I'm now realizing oddly this is the 2nd thing I have of yours on my to-read list, I just saw the post here about computer graphics from scratch a few days ago. I (and I'm sure many others) appreciate your willingness to knowledge-share.


It's a fun rabbit hole, and Gabriel's articles are some of the best.


There's two things I wrote on your to-read list? I'm flattered :D


I've been trying to build that very game as a .io game using Phaser3, MatterJS and WebSockets. Thanks a lot for these ! Your articles are one of the most important ressource i've been refering to in order to build it. I'm still struggling with entity interpolation and reconcialiation, but i'm hanging in there and i hope to finish building a complete game loop sometime this year. There are still a lot of issues to fix before reaching that point, but I like what i've built so far: https://mtvs.chaz.pro

Thanks again for these truly useful articles !


Looks very promising, well done!

If your world is going to be tile-based, doing shadow-like visibility should be simpler than if you did arbitrary meshes :)


Soldat had a realistic game mode were it was like that. It also included ghosts of players if you would hear steps or them shooting.

I also wanted to do a realistic top down 2d shooter. My gimmick was to have akimbo guns and mouse look - view always centered, horizontal mouse move rotates the view, vertical changes the angle between player's hands. You would be able to run forward and shoot on both sides.


That's a very original idea! My first though is that it's a pretty unintuitive control scheme, how long did it take you to master it? Did other people "get it"? I can imagine that kind of thing being a barrier for adoption :(

OTOH if you can start playing just with the horizontal axis and WASD, and only user the vertical axis as an expert feature... I can see it becoming super compelling. The "easy to learn, hard to master" kind of thing.


I never went far with it. When I was more into gamedev I was one of those wasting time on trying to write a generic engine instead of just writing the damn game.

My initial tests with just the mouse look were promising. I did a lousy game for a small competition that used this part of the idea and it was fun for me, but you could barely call it a game.

With the akimbo play I hoped that the cool factor would win people if it would not be too easy to grasp.

Maybe some time in the future I will return to the idea, because I still have a small candle for gamedev. If anyone wants to experiment with the idea be my guest, I don't mind. Just let me know, because I would love to try it out myself ;)


Man. I always just assumed you were a grizzled netcode veteran that decided one day to share your hard-won-in-the-trenches knowledge with the rest of us plebs. Those articles are fantastic.

EDIT: Also, yes. If you have any interest in networked 2D games and haven't tried Soldat, I highly recommend it.


Sorry to disappoint! I'm not a grizzled netcode veteran. I guess my strength is explaining complex topics in an accessible way - that's the main contribution of these articles, and the same can be said about my Computer Graphics book. [IMPOSTOR SYNDROME INTENSIFIES]


I played around with the same idea last year! A top-down shooter with line of sight and peeking, inspired by CS. Didn't get very far with it myself, but the idea has tons of potential.

Visibility with partial cover/between different heights would look interesting in a Flatland sort of way, with the body shape morphing based on angle. And I think a 3D level is pretty readable from above if height is shown as a color gradient.


Surprised no one has mentioned https://en.wikipedia.org/wiki/Infantry_%28video_game%29 - spent many hours here when I was younger.

There is a reverse engineered version that is still running here: http://freeinfantry.com/


Your comment made me remember a game -- has anyone played Tremor Gold? I can only find a mention in this 13 years old article: https://www.tigsource.com/2008/02/20/multiplayer-on-one-keyb...

...I _think_ I have it on a shovelware CD somewhere...


Sounds like you are describing Foxhole (plus an always-on, massively multiplayer, multi-region, logistic-aided front warfare)

https://store.steampowered.com/app/505460/Foxhole/


https://closequarters.io/ This is similar to what you are describing, although development has sadly appeared to have stopped.


Wow, that does look super close to what I had in mind! Add the shadow-like line-of-sight visibility thing, and it's almost the exact same idea.


For those who are too lazy to compile the game to see what it looks like, here is the official page of Soldat: https://soldat.pl/en/ It has screenshots.


That's a blast from the bast. I played a lot of Soldat in high school in Poland like 15 years ago. We was virtually never doing any actual learning we just played MoH:AA, Unreal Tournament and Soldat for hours.


Soldat and UT for me as well :) And Trackmania. And of course some browser games like MotherLoad.


Good old days, oh we are soo old now :(


The video on this page reminds me so much of Terraria. I think I even saw rocket boots at a few points.



This is a great game. Used to play it quite a lot. Playing a lan game with 2 friends was incredibly fun. I'm too old and blind to play a game that needs this level of reaction now, but if you can actually play a modern FPS and if people are still playing this, it's quite unique.


Yeah we’d use it as our LAN opener so as people arrived they could just jump in. For me this game is tied to those memories of hefting your 19” CRT on the corner of a ping pong table and trying to get set up ASAP so you wouldn’t miss another round.

The weapons are balanced and controls are tight. This might be the nostalgia, but it felt as polished as Starcraft, in its own way.


Soldat's gameplay (particularly its jetpack momentum) brought many hours of fun to my childhood.

Capture The Flag (with ~5 people per team) is still my favorite game mode. Great game!


Pointing the minigun down and hovering for a few seconds was my personal favorite.


Last time I learned about this game I think was when someone shared WebLiero. Which was a pretty fun distraction for me and my son for a few hours :)

https://www.webliero.com/


I attended a presentation by the creator of this game, it was around 2010. The most fun part was the business model. I don't remember the exact numbers, but he made a lot of money on a free to play game before "free to play" model got really popular. One notable thing I remember is that the paid version had higher resolution options and it was one of the highly sought after features.


I've been meaning to clone the 2D FPS style of Soldat in the browser for years. I had no idea they had open sourced it! How long ago did that happen?

It's written in Pascal!? Man I can't wait to poke around this codebase.

EDIT: Looks like it went open source May 2020: https://store.steampowered.com/news/app/638490/view/21926360...


I don't think I've played this game for over 13 years now.

Such a pleasant surprise to see it open sourced.


I used to play this lunchtime at my old job, there was about a dozen of us that used to play. I wrote a log parser (in PERL!) that would generate stats of who was killing who the most, and who had the most kills with a particular weapon to display leaderboards. I'd run after a session and people would check out their stats.


Strange how I have been thinking about the soldat game a few times the last 2 months. Then a link on hacker news... the universe works in mysterious ways.


Oh wow, I love Soldat! I used to play it a lot in the mid 2000s and even bought a license to get rid of the nagware and support the developer. Been dreaming of having access to the code for some 17 years now, this is great news!


Used to play this with my cousins 10 years ago... what great game


I used to play this with my class mates 20 years ago... :D


About 15 for me :)

Great mechanics Great soundtrack (if you like heavier music) Great varied modes of play


OMG, I played this so much back in the day. It's super fun.

Soldat is to Quake as Terraria is to Minecraft.

Awesome to see it open sourced!

Side note: Soldat means "soldier" in several Slavic languages


And in German ;-)

I played this so much back in the days that it is the only game I can say I played it on a somewhat competitive level. A friend and I dominated the 2v2 games only some Scandinavian guys were better then us ... good times :-)


in french too


Apparently, it's from Latin "soldarius", so it's pretty much the same in all European languages :)

[1]https://www.etymonline.com/word/soldier


I learned alot about computers trying to set up LAN games on the school network with this game.


I saw mention of Pascal, so I had to take a quick peek:

https://github.com/Soldat/soldat/blob/develop/server/ServerC...

The last time I used Pascal was in the late 1980s on a VAX/VMS system. Very fond memories!


It's finally open source! Wow, I hosted a server back in 2006 and used to play this game all the time back then. The European players would annihilate me until I learned how to prone-fly with the sniper rifle. I still have a collection of maps I made back then that I included on the server. For anyone that remembers...

\smoke


The map editor (called Soldat PolyWorks) is also FLOSS. It is written in Visual Basic 6 and uses DirectX 8 though.

Might need to rewrite it or use one of the other community made map editors in the future, especially when people on other Platforms want to start mapping.


What a lovely game it was: even though very small and basic, it made into my top ten by the time played.


Wow, I remember playing this game back in 2006. It's in the same vein as Liero


Soldat 2 is in early access on steam - for those who might be interested.


I played hundreds of hours of Soldat back in my school days. Almost exclusively in realistic mode. There was a great community, I think realsold.org, truly a flashback to think about it now.

I think it's great that they opensourced it, although it somewhat faded not by the lack of development but by a slow and steady reduction in players (at least, as far as I remember, in realistic mode).

It's an amazing game. Ruger was overpowered though.


This is one of my all-time favorite games! I put hundreds of hours in back in high school. Haven't seen it in ages. Thanks for sharing!


I used to play this game so much back in the day. It was the first MMO I ever played.

Are there any popular public servers that we can join?


It's F2P on Steam so I guess there are servers for it:

https://store.steampowered.com/app/638490/Soldat/


You can see the server list here: https://soldat.pl/en/lobby Just sort by player count.


Man I remember this one, it was all the rage in its hey-day.

One other I would love to see resurrected is Babo Violent 2.


Something my brother and I enjoyed was to switch to the ballistic mortar / grenade launcher instagib weapon and then play. You could instagib but the weapon had a massive gravity effect so it was hard to aim. Deliciously fun in the air.


This looks very similar to the mobile multiplayer Mini Militia: https://www.minimilitia.mobi/

We used to play this a lot among friends a few years ago in college.


Except this is like 20 years older :-)


I remember paying a grand total of 18,75PLN for a copy in 2004 - I think me and my friends got a group discount for buying five keys.

That was back when the company currently known as CDPR only started work on the first game from The Witcher series.


Also played Soldat years ago - another classic indy from the Soldat period was Tetrinet. For a modern casual side-scroller that's cooperative and kid-friendly rather than pure violence, try Spelunky 2.


Story of Soldat (short) video narrated by the creator. https://www.youtube.com/watch?v=FpWuOOs0TMg


Ah good memories ... The 8 was much fun, perhaps broken. I developed an uncanny precision with it. But also 6 was great, with more ammo, but still great precision. And the jetpack tricks ...


I played the hell out of this back in the day. Was this open sourced recently, or has it been open for a while and I just never noticed? It's been at least a decade since I last played.


For some reason this reminded me of Cannon Fodder from the early 90s.


Is this similar to Abuse?


Is there a list of games like this? I remember playing a free side scroller sci-fi FPS game on windows ~12 years ago. That I liked a lot but never found again.


Maybe Armajet? I think we've done a pretty good job with the alternatives here (I work off and on at AlternativeTo): https://alternativeto.net/software/soldat/


The control scheme is similar, but this is player vs player only.


It's more from Liero family.


Glad to see this published. I really miss the follow-up Link Dead. I played the alpha releases and thought it had lots of potential as a deliberate 2D tactical shooter.


Used to play this game all the time back in the late 2000's. Honestly thought it died out long ago. Really glad to see it still alive with an active community.


There is a very similar browser version on https://thd.itch.io/commando

I enjoy a lot.


Something around 15 years ago, we've been playing a lot with some friends. Simple, much more dynamic than Worms...

Glad to see that this great game has gone open-source.


Oh man, I played this a ton back maybe 15 years ago. I haven't played it in forever and a half, but it's a really solid game and a lot of fun!


Soldat was a really excellent game for LAN parties back in the day! Really fast to install, small download, and loads of fun.


FYI: Soldat means "soldier" in Russian.

So not the most creative name, but it didn't matter since this game is awesome.


The creator is Polish, and it means soldier in Polish too.


No. The Polish word for soldier is żołnierz. There is a Polish word "sołdat", which is a borrowing of the Russian солдат, and it's mostly used to describe Russian/Soviet soldiers and comes with a negative connotations.


The developer hosts the game on a Polish domain (https://soldat.pl/), and even has a FAQ entry regarding the name: https://soldat.pl/en/page/faq

Q: What does "Soldat" mean!?

A: "Soldat" or "Soldaat" means "soldier" in the following languages: german, dutch, norwegian, swedish, danish, french, slovenian, afrikaans, russian, catalan and romanian.


> 11. Can you give me the source code of Soldat?

> Eeee, no?


Even funnier, "no" in polish is "yep".


Thanks for the clarification.


Also in German


Also, french.


And Romanian :).

Based on https://en.wiktionary.org/wiki/soldat it seems to originally come from Italian?


And Swedish.


Also, Catalan (close cousins with French)


Oh wow blast from the past. I played so much Soldat, and probably spent nearly as much time in the map editor.


This was a favourite game in the high school computing lab for students who finished their work early. :)


I love that this is coded in pascal


So… multiplayer gravity shmup?


I used to do maps for Soldat. You can get creative with the included editor


Give me back the years I spent playing this absolute masterpiece!


No way! This is one of my fav childhood games! It ages well too!


This is the type of game I'd like to see a console port of.


I remember play SolDat In highschools with friends.


Well, shazbot!


I miss tribes 1. There's still servers, but the only folk still playing are too hardcore.


I guess I shouldn't be surprised so many Soldat players also played Tribes. We love jetpacks. And yeah, the community that is left in T1 is hardcore, but if you join the US (any time) or EU (21:00GMT, 3pm CST) LT servers on the weekends there's occasionally less hardcore pick-up games.

As Dynamix would say, "Join us!"


I love this game since 2003!


ahhh so many hours of my high school life consumed by this game


I used to play soldat back in 2003. That is 18 years ago.




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

Search: