You are browsing as a guest. Sign up (or log in) to start making projects!

Onlinja

  • 8 Devlogs
  • 51 Total hours

An online board game, inspired by the real game Linja

Ship #2

This is Onlinja, and it's probably one of the best "easy to understand, hard to master" board games you will ever play. It's built as a passion project, taking the game Linja as inspiration, but adapting it to be accessible anytime, anywhere!

This is the second ship and it focuses entirely on making the most out of this app as possible, without making it feel janky.

New additions are heavily impacted by community's own responses to what should be improved, such as clearer indication of turns, tutorial progress saving, and a bit of my own additions, such as the Settings tab and Post-Game Statistics.

While the game itself was kept true to its original core look and feel, the codebase underneath was heavily redefined! With new architecture decisions and SoC (separation of concerns) implementations, now it's not only easy to expand the code, but easy to use in-person too!

I really hope you will like this project and show much support for it. Let's grow a beautiful and open source world together!

  • 3 devlogs
  • 23h
  • 17.29x multiplier
  • 394 Stardust
Try project → See source code →
Open comments for this post

8h 53m 48s logged

You want it, I got it!

How feedback from the community helped me improve Onlinja

When I shipped Onlinja, I did not think about much. I had plans, and I still do, but the most important direction this project went to, I think, is the direction real users wanted the project to evolve in.

I am super glad that the community’s notes are actually reported back to the developers. And, to my surprise, many opinions were highly similar. This shows 2 aspects:

  1. I am doing something well, when most of the personalized reviews say they love the same features.
  2. I missed some crucial points, when the same reviews point out similar improvements to be made, even without knowing what others pointed out.

Happily, I wasn’t lazy and I read through the opinions. Not only did they make my heart warmer, but also shown that I was not moving forward with the right features.

What exactly did I improve?

Although the UI/UX experience was regarded as one of THE best by some, it lacked one thing - clarity when playing. Whose turn was it? No clear indication when a turn changed if you didn’t notice small text changing in the header when staring down to a monitor for minutes straight. This is now fixed.

Also, a very simple addition included a “save and resume” feature within the tutorial. Now, even if you refresh the tab or browser crashes, you can’t lose tutorial progress!

What won’t likely be implemented and why that makes me sad

All of the things I said seem great - feedback-based improvements, better clarity and quality-of-life updates that make a project be worth the time spent creating it. But the 2 features I wish I could’ve added were:

  1. BotLabs (custom bot maker)
  2. Post-game analysis (like in Chess.com)

First feature was impossible to make the way I wanted due to how the game’s layout is constructed. I sacrificed this feature for a better overall coding experience. It’s not as vital for the project to live, but sad that I could not implement it.

The second feature was entirely possible, but very difficult to plan out. What should be the data flow? What controls what? That led to me making a compromise - post-game statistics, that tell you these things:

  1. How many moves each player took?
  2. How many extra turns each player got?
  3. How many pieces ran all the way to the opponent’s base?

And I think it’s a fair update :)

In conclusion

I am very pleased with the reviews and Stardance in general. I get to create what I love and share it with people who might love it as well. I am happy that the feedback made me grow stronger and I am thankful for every single person that helped me improve this project anyhow, opening my eyes on what were the real issues.


This project is one of my most ambitious yet, and if you want to check it out, the latest version is out at Onlinja’s official site!

If you can, also follow me and star the project on GitHub!

0
0
2
Open comments for this post

8h 38m 36s logged

Control and power - that’s all that I’m after!

This devlog brings new ways to control your experience with Onlinja not only as a user, but also a developer.

Great news all along!

With the latest update in Onlinja, new systems have launched:

  1. Settings System: A system where you can tweak your settings and default preferences for when you launch the app (also, replay the tutorial, as the old dedicated tab is now gone).
  2. Tab System: More important for developers, but now the development of Onlinja can speed up significantly because of a convenient tab making system.
  3. Major Architecture Overhaul: By working on the imports and general structure, the codebase can feel free of 400-lined files that choked the app.
  4. New Animations: Although it’s a side effect of that new Tab System, it makes the tab animations feel consistent, and the UX undoubtedly better.
  5. Mobile app issues fixed: Even when a dedicated app is not Onlinja’s primary choice for delivery, I will not abandon it as that’s why I picked React Native instead of normal React (this, and animation issues with normal React). So, now the mobile port functions almost exactly as intended, but if you want to have the designed experience, and are a fan of dedicated apps, you can always click “Add to home screen” in your browser!

That sounds great! What about BotLabs?

BotLabs are currently in the works. I am still thinking about how to make the architecture right and the UX smooth, but they’re soon to be implemented, letting users customize bots and make Bot vs Bot matches or have personalized bots to play against.


A playable demo is live with latest changes! Check out Onlinja’s official site!

0
0
10
Open comments for this post

5h 14m 26s logged

PWA and updated experience

That’s right, now you can enjoy Onlinja as a pseudo-standalone app!

By finally implementing PWA (Progressive Web Application) support to Onlinja, you can simply install it from any mobile browser.

Updated experience? What’s it about?

This update features several enhancements:

  1. The tutorial was revamped to be easier to follow for anyone. This means no more confusing terms and big text chunks where unnecessary.
  2. The app is now excluded from any dark mode settings (possible that some rare instances might change the color scheme, but popular plugins and systems should not alter any styling).
  3. Slight performance and UX tweaks to make the game feel smoother.

Any more updates planned?

Yes! I want to implement an analysis tool to every match or “Bot Labs” where everyone can tweak bot parameters and experiment with the algorithms freely. A second ship should be issued when these are implemented. Online crossplay isn’t in any of my near-future plans.


A huge thank you for everyone that supports, tests and anyhow helps me build this project!

0
0
8
Ship #1

After gifting Linja game to my dad on father's day, I fell in love with it. And I thought to myself - what if there was a digital version?

There was none when I started working on the project, so I decided to give it a shot myself.

Just imagine - two players face off across eight parallel lanes, calculating every shift in momentum, where one misstep can cause the opponent to leap past. A game, where you need to balance your positions and plan your moves. And, of course, have fun!

Inspired by the classic board game Linja, Onlinja brings minimalist, tactical warfare straight to your pocket.

Onlinja features Aggressive (one piece moves twice) and Strategic (two different pieces move) gameplay modes, smart UI, bots, and a lightweight mono-repository utilizing React Native/Expo for the frontend, plus a way to both learn the game and play with your friends, not only against highly competitive bots.

This game is very portable, as it was designed to be responsive to your screen size.

You can try out the Live Demo instantly at https://onlinja.domax.lt

Happy playing! I hope you enjoy this game and become a fan of Onlinja yourself!

  • 5 devlogs
  • 29h
  • 19.24x multiplier
  • 552 Stardust
Try project → See source code →
Open comments for this post

9h 49m 22s logged

How to play this game??

Great news! No more wondering of how this game works!

Today I implemented a fully working tutorial system to Onlinja, and it tells everyone about any aspect of the game you could think of. Onboarding will be really easy now!

What do I see there? A ship?

Correct! Only a good README, logos and deployment left until a ship can be made. The rest of time will be dedicated just for that.

What about standalone, non-web builds? This is React Native!

Well, I have some good news and some bad news. Good news is that when I tested it, the standalone app build succeeded. Bad news is that it’s full of visual bugs and inconsistencies with the web build. So web builds will be the primary target of this app before I dedicate a separate week just for transformation to a unified solution. But I see no priority for this as web builds work wonderfully!

0
0
5
Open comments for this post

7h 10m 1s logged

A very friendly update!

Want to play Onlinja with your friends? No problem, not anymore!

Today I finalized implementing the Pass & Play mode, together with some UI and bot logic enhancements. Gameplay is smoother than ever, offering a very pleasing experience!

UI upgrades? Finally!

After many thoughts of making the game not feel like a slideshow with very static-feeling updates, this devlog’s changes also include a whole new animation overhaul! With fade transitions and more movement the app finally feels responsive.

Anything more?

Yes! An architectural refactor and a bot logic upgrade was issued. This makes the game both easier to develop and the bot less prone to errors. Previously, if the second move of a turn was illegal, the bot (and the whole game) had no way of knowing and would just freeze. Today it’s been fixed!

So, when’s the ship?

Soon. Only thing left is a tutorial before playing to easily onboard everyone. As expected, I can’t dedicate myself fully towards this project and the first ship won’t include any networking code. But it might include an analysis tool inspired by chess.com, so stay tuned!

0
0
5
Open comments for this post

3h 9m 5s logged

A bot-tacular evening!

What’s new in today’s devlog

Finally I have implemented a working bot within Onlinja - it’s configurable, and damn it plays well!

The reason it can be so competitive is because it uses a deep-search minimax algorithm, always assuming you make the best move and making the best move itself (with some randomness sparkled on top). Also, it reacts to awards, where more benefit created for itself through several moves, even if 2 distinct move sequences create same amount of value in points, is valued higher for the bot. This helps create insane accuracy, exploitation of game features and more!

Note: there’s an easter egg hidden somewhere in plain sight, try to find it!

Next steps

Aside from the bot, I made the game capable of receiving different controller settings. A controller is the setting of who controls your opponent, current available settings being HUMAN, BOT and SERVER (for future implementation).

As the next step I’m planning to make a local one-phone mode to share like a physical board across 2 people.

Also, a pre-game tutorial awaits.

I’d very much love to implement more whacky gamemodes, that would include powerups, more configuration, different piece setups and more. But I am not sure how much time that would cost me.

Conclusion

With the first ship of Onlinja coming closer everyday, I am trying to make the user experience as polished as can be. I really hope everyone playing will enjoy this game as much as I do!

0
0
4
Open comments for this post

5h 22m 22s logged

User interface has been implemented!

The good

After long hours of development, countless design choices gone through and many thoughts of how to structure the project, its base has been laid and it finally features a working UI with an easy to understand UX.

The bad

It wasn’t easy to set correct boundaries and enginner instructions for AI in a way that it doesn’t have too much freedom hallucinating. After many iterations of edits within AGENTS.md file I hope it won’t eat as much time ever again (but I don’t know). Even though everything seems fine so far, nothing is promised this early in development, and the instruction document may change.

What does the current code offer?

In the current version of Onlinja players can’t do much - only play with themselves. This was done just to show off how the game will look.

Next devlog will most likely include the full bot implementation.

What are my further plans?

The first ship most likely won’t have any networking code (unless I can learn websockets within the next 5 days), but will offer a human-like bot.

Subsequent ships will offer enhanced online capabilities, accounts, leveling, and friend systems, as well as an anonymous mode. I want to make the game similar in mechanics to chess.com - a fully fledged Linja-inspired game, with an online hub!

0
0
6
Open comments for this post

3h 11m 42s logged

Today I started working on my project Onlinja!

Storytime

When I was searching gift ideas for father’s day I suddenly thought of board games. He loves them! And was learning chess at that time too.

Having no exact ideas in mind, I went searching. Many games were too complex for me to teach, and I wanted that game to be 3D-printable.

I stumbled upon Linja - an abstract and simple strategy game for 2 players. It’s no too popular, but I fell in love with it, made 3D files myself and printed it out! After gifting it, I feel like it’s very much underrated, so I got an idea!

The idea

The idea is simple - making a local bot and online application that lets anyone enjoy a Linja-inspired game from their phones and browsers!

The plan

The plan is to take React Native and target web, Android and iOS builds of the app, code a server architecture and a bot algorithm.

Why’s it a great project?

Not only will I be able to develop my skills in agent harness engineering, testing, web deelopment and websockets (things I haven’t touched yet), but the completed project will be fully functional and entertaining!


I have nothing to show off yet, as only the initialization stage is being completed, but I will update you all as soon as I finish doing something!

0
0
3

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…