Onlinja
- 8 Devlogs
- 51 Total hours
An online board game, inspired by the real game Linja
An online board game, inspired by the real game Linja
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:
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.
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!
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:
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:
And I think it’s a fair update :)
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!
This devlog brings new ways to control your experience with Onlinja not only as a user, but also a developer.
With the latest update in Onlinja, new systems have launched:
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!
By finally implementing PWA (Progressive Web Application) support to Onlinja, you can simply install it from any mobile browser.
This update features several enhancements:
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!
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!
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.
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!
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!
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.
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!
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!
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!
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.
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!
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.
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.
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.
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!
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 is simple - making a local bot and online application that lets anyone enjoy a Linja-inspired game from their phones and browsers!
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.
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!