Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
Integrating into Steamworks was the first problem I needed to solve, as I needed to if I wanted achievements, DLC, player auth/cloud, etc. The first resource I found was Greenworks, which Game Dev Tycoon was built on. It's likely it may have worked ok, but it hasn't been supported for years. I didn't want to build on this. So, I decided on an alternative called Steamworks.js, which is open-source and built using Rust. This has worked pretty flawlessly and the dev is really good about continuing support. They didn't have a Mac build, so I was able to contribute a Mac build for the library (woot mac users!) that added support for DLC checks, etc. Highly recommend this.
Translations that are dynamic was a big system I wanted to start implementing from the start. I knew it can be annoying to go back and integrate translations. Luckily, with react and node, we get the use of libraries to make this really easy. I used i18next which made dynamic translations really easy with react hooks. Basically you setup a bunch of JSON files for each language you want and than use a key/pair value for retrieving specific words/sentences. The library has a function to switch the language anywhere, making it really easy to do. Basically, for my content, instead of storing names, I store the keys to the translations, making it easy to translate. I also have a dud value on each item that makes looking through the items not too bad. At the start of the game, users just select their language and it all works real nice.
Related posts
- Supercharge Your TypeScript App: Mastering i18next for Type-Safe Translations
- Steamworks integration with TypeScript project
- A template project for putting an Electron game on Steam - dev server / packaging / Steamworks SDK / macOS notarisation
- Steamworks.js - a modern HTML/JS/Nodejs implementation of Steamworks SDK
- What is the best way to handle a multi-language site?