Text
The old house
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
0 notes
Photo
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.
0 notes
Photo
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 123
2) 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!
0 notes
Photo
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!
https://key-race.com/demo
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!
0 notes
Video
tumblr
KeyRace GUI and Scenes
This day ended with the new demo! http://key-race.com/demo
After spending a few days of researching different GUIs and interfaces I realised, that I cannot find the best one, the one I want to have for the KeyRace project. So I decided to create my own layout :) Simple, right?
You can find the MainMenu prototype (follow the demo link), ah and yeah, I create a HomePage scene. This scene now will welcome you and will guide you through the game process. Of cource now it's just a prototype, but I promise, it will be the most interactive "Main menu" you ever seen ;)
Stay healthy and PS: if you have question about Unity, GameDev or whatever - just ask in the comments!
0 notes
Photo
KeyRace development progress
Finally I made the thing I wanted the most! Collision manager and track control!
Now the race looks like a real race and not like an emulation. Cars are doing well, they try to beat each other, try to overtaking, try to move as fast as they can and more... they try to avoid collisions (if possible). If you remember, I mentioned, that in this project I want to use the real race physics.
Go to http://key-race.com/demo (at some point I will add HTTPS, I promise :) ) and enjoy the race (you can even run it as a screensaver ;)
Stay connected, like the post and play https://keyboard-racing.com to help me develop the new KeyRace v2 project!
0 notes
Photo
Optimization problems
Hello everyone!
I decided to publish a development progress of the Key-Race v2, like a dev blog. So after a first demo I realised one thing: BROWSERS ARE SLOW!
Not all of them, Chrome works pretty well, but others, like Safari - not. And chrome is also not perfect on slow machines (macbook 13''). As you can see, I added some tech info about mem usage and FPS. And yeah.... it's not perfect. And the problems are - amount of polygons to be rendered and the realtime light.
After 2 days of researching I was able to reduce amount of polygons from 3.3 million to 1.1 million. I optimized a car by dropping amount of poligons from 330 000 to 96 000. And even tried to use LowPoly AudiTT car. And of course I baked all the possible lights.
After all the total amount of polygons were dropped to 700k only! It allows me to run the mac-compiled app with the stable 120 FPS. But browsers... Safari shows 60 FPS but even though it renders the image too slow and not smooth. Chrome + Mac 13'' showed better performance, but also has some smoothing performance issues.
By testing this I realised that the max affordable num of polygons is about 200-300k max, so it means, that I need to change the concept to some LowPoly ideas. Because even the low-poly AudiTT generates ~70k polygons (+realtime light adds *3 multiplier) and yeah, it will be very hard to render the race with 10+ participants. Will see.
Stay connected, subscribe to this page and check the development state! Stay health!
Permanent demo link as usual: http://key-race.com
0 notes
Text
The Project is Still Alive!
As you could notice there were no fresh news for the last 3 years. Finally - I decided to continue working on this project, because I like typing, I like helping people become better. So say 'welcome' to the cra-a-a-a-a-z-y incredible Keyboard Racing 3D demo!
This demo works best with Google Chrome, FireFox or Opera. Safari has the worst optimization for now.
I would like to ask you to give me a favor and let me make this new project live! You don't need to donate me :) but still you can help! Just read the ads on this website! Read and click! Every time you start a new game. This will help me to move forward and give you something who has not yet given before and move the typing games to the next level!
Don't forget: Read the ads and click it ;)
0 notes
Text
We have fixed the problem with Competition and Drag races.
0 notes
Photo

Happy New Year, dear racers!
We wish you all the best and wish you to be the best in all aspects of your life! I want to say: Thank you for being with us!
A little statistic: total visitors increased by 30% this year and now it is about 10 000 uniq users per month.
Average session time increased to 16:08 min.
Happy races! Ho-ho-ho!
0 notes
Text
Chat improvements
No more empty messages.
Empty messages will not be pushed now. And be careful when sending "garbage messages" too fast, like "!@#$%^&". Some day such user will be banned ;)
0 notes
Photo

No more cheating! We knew that some players cheated with Marathon races by joining hundreds games at the same time. When a race finished - they got points even if they did type nothing.
We fixed such "bad thing” and we’re going to add a special achievement: “Cheater”. All players will see if you are not a fair player. Moreover - you will get 5 times less points and exp for races while achievement in progress.
Be aware and no cheats ;)
0 notes
Photo

We are tired to talk to bots and decided to add a captcha: https://keyboard-racing.com/about.html
Try to play with it. Sometimes it’s really fun! :)
0 notes
Photo

We forgot to update our SSL certificate :(
But now all is OK! :) And we promise that we will check the cert 24 times a day ;)
0 notes
Photo

Tiny changes in chatbox system:
- No personal names are allowed now. Only registered logins.
- All names in chatbox will link to the personal profile page.
0 notes
Text
New server software
We have completed the software upgrade. The new software should increase the server response time and increase the page loading speed.
If you find any errors: [email protected]
0 notes
Text
Site review
A popular tech blog ilovefreesoftware.com made a short review of our site. http://www.ilovefreesoftware.com/15/webware/free-websites-for-online-typing-competition.html
2 notes
·
View notes