Error
Game data not found
Here you can compete online with other participants in speed typing and practise your typing skill.
Just create a new game or join the existing one in order to start your typing practice. You will see a text that you should type correctly and fast. Click "Create" or "Join", play games and become THE TOP one!
General


Guest-8706
General


Guest-7677

Guest-3148

Guest-2093

Guest-1639
General


Guest-9510

Guest-7643

Guest-1347
project news
- 16 Nov
While working on the new version of Keyboard Racing website I totally forgot about the current one… Shame of me! And what happened? Right! The current website became like an old house. The roof with holes, downspout is detached and overgrown garden. By translating to the technical language: broken login with Facebook or Google, non-parsable content for search-robots, bad makeup for tablets and mobile phones: YESYESYES, you actually can play with mobile phone ;)
Google said: At some point of time I got an email from Google, like “Hey body! Do you see? Your customers trust you, you have your traffic grows! And yeah, your site is sh..t, but I also trust you, Google said.”
I realised, that I must spend some time to fix all this small issues and make my old house clean and neat! Because I love this project and I hope you love it too.
Fix it!: So I spent my time to restore what were broken: Single sign-on page: Google and Facebook, I had a long negotiation between me and Google/Facebook, because now they require huuuuuge amount of checks and validations. They want to be sure that they can trust me and you can trust me. Now you can ;) I proved it :)
Also (I don’t know why) I updated my design and made it responsible! (still do not know why ¯\_(ツ)_/¯
Finally, I can continue working on the new project and I hope I will launch it as MVP very soon! Cross the fingers :)
BTW: These poster images are my “hobby project” created in Blender. If you want a source - ping me and will present it to you
- 23 Jun
Ah… I wrote a previous post about a new Key-Race backend for the project, but never mentioned the technologies…. :)
I though a lot about what to choose, like you have 100 suits but need to pick up one. In the modern world all the programming languages can offer huge amount of features, cool stuff and bonuses. Most of them have concurrency and parallelism out of the box.
You can choose C - you will get super performant application, but a headache when creating even a simple features. You can choose “modern” NodeJS - but no multithreading* (you can have it buy paying extra cost of complexity).
So I just threw the dice ;) And in the final battle of Go vs Java the winner is…… GO :)
Of course it’s a joke, but yeah, I chose Golang as good combination of performance and complexity.
- 23 Jun
The quieter you become, the more you are able to hear.
This motto I took from Kali linux and this motto perfectly describes the “silent” part of the project: The Backend.
For the past two weeks no visible changes, but I did a first step to add a real player communication. Today I would like to talk about one complex part - namely “Communication”.
In the Key-Race project each client will have permanent Socket connection and all the communication will be build on top of message exchanging. The problem with this approach is - chaos and anarchy. You need to control the message sequence, need to track message delivery, you need to react on specific unexpected messages…
In order to structure these issues and solve them we must use a special Data Protocol.
So say welcome to the KR message protocol and PDU (Protocol Data Unit)
This protocol is based on the message structure, that looks like this:
id: int64 (message id, requires for tracking)
action: string (controller/action/result)
body: any (any data to be parsed by controller)Probably it looks quite complex, but it’s not :) For example, here is the getting player data “dialog”:
Client -> Server
{“id”: 123, “action”: “player/info”, “body”: {“player_id”: “12”}}Server -> Client
{“id”: 123, “action”: “player/info/ok”, “body”: {“player_id”: “12”, “name”: “alexions”, “rank”: “racer”}}Some benefits and details:
1) By using the message ID we don’t care about any messages in between (in the socket channel we can get 1000 message before we get our). We can just await the message with ID 1232) By using **result** (ok or error) we can simplify result parsing. For example we can reply with “player/info/error” and {“error”: “Player not found”}
3) We do not need to take care about “body” structure. The initial sender knows how to parse the response and server, by using “controller/action” combination knows how to parse the body.
So this Protocol should work perfectly (will see soon :) )
I hope I will deploy the first backend version soon and you will get a change to compete with your friends and real racers!Cheers and stay safe!
- 29 May
Many moons ago I posted the last update and no more info since this time… shame of me :) I will try to publish more interesting details about the project. I promise! :)
So! What happened from those time? Many many things. But firstly: Now the project is in the BETA status! It means you can play this game and compete against bots!
Some highlights:
- I spent about 68 hours by writing the code
- I created 48 new C# filtes, added +1351 new lines of code and removed -284
- Finally I removed almost all the hardcode from the project and prepared it to work with the real backend
- Spent about 2 days to make the camera-in-the-fly effects. Try this out!If you worked with #unity by chance you know how hard is this to keep the structure of the project. You can get events everywhere and from every place: events, FSMs, UI interaction… So I tried to move all the behaviour into FSM. And it works! :) See the screenshot
Unfortunately I removed the physics component from the cars. I realised, that I need to have a smarter AI system, because cars could collide and they failed to solve this collision issue. But it’s a typing game and not a Gran Turismo :) Will see - I will try to restore it soon because I have some crazy ideas about typing fights (with rockets, bombs, etc).
What’s next? The next step is the Backend! Unfortunately it will be hard to provide nice screenshots, but still - I will keep you updated. I hope I will be able to run it shortly and then the project will move to the main domain key-race.com!
Thanks for reading! Type fast, type fun!