Technica

Posts

  • Building a Real-Time TCP WebSocket Multiplayer Engine in Rust for JavaScript Browser Clients
    This article provides a technical guide for engineers interested in developing an authoritative-server multiplayer system, based on the architecture used in the browser-based game Rainboids. It addresses challenges such as authority, latency, and cheating, proposing a solution with an authoritative server written in Rust and a JavaScript client that shares the same simulation logic. The design emphasizes maintaining synchronization between server and client with parity tests to ensure consistency. Additionally, the article covers the architecture, technical stack, actor model for matchmaking, simulation loop, and achieves determinism across languages using fixed-point math and structured logging. It concludes with practical steps to implement such a system.
  • Rainboids Dev Diary: Evolution of Fun
    The word “fun” is subjective. Everyone has a different notion of fun, and what appeals to one person may not be as engaging… Read more: Rainboids Dev Diary: Evolution of Fun
  • Rainboids Engine Documentation
    The Rainboids game engine documentation provides an in-depth overview of its architecture, detailing the main game loop, rendering pipeline, and game objects. The engine, a 2D space shooter designed on HTML5 Canvas, utilizes a delegation pattern, with the GameEngine class managing various specialized modules for functionality like collision detection and object management. Key design elements include a fixed timestep for logic updates, object pooling to optimize memory usage, and viewport culling for rendering efficiency. The engine features a state machine for game flow, a comprehensive input system, an audio manager, and a HUD system, ensuring a cohesive gameplay experience.
  • Computer Graphics: 3D Matrix Rotation, Perlin Noise, Worley Noise
    The text discusses 3D matrix rotation and homogeneous coordinates used in computer graphics for transformations such as translation, rotation, and scaling. It explains how 3D vertices are represented as four-dimensional column vectors and how linear rotation is achieved using specific rotation matrices for the X, Y, and Z axes. The importance of homogeneous coordinates is highlighted, enabling complex transformations to be performed simultaneously. Additionally, the text introduces Perlin and Worley noise, techniques for generating natural-looking textures and patterns. Perlin noise creates smooth transitions for landscapes and textures, while Worley noise generates cellular patterns based on distance calculations.
  • JavaScript Game Development Using Canvas: Performance Optimization And Benchmarking
    Rainboids is an HTML5 canvas-based browser game that utilizes JavaScript to create an overhead shooter with RPG elements, allowing players to upgrade through enemy drops. It uniquely renders graphics using mathematical techniques without sprites, creating complex visuals such as 3D wireframe asteroids and layered starfields through procedural noise algorithms. While the game leverages techniques like object pooling and batching to optimize rendering performance, it currently suffers from inefficiencies that cause lag, especially on mobile devices. To enhance performance, efforts include reducing draw calls, optimizing shadow handling, and considering spatial partitioning for collision detection, ensuring smoother gameplay.
  • Rainboids Dev Blog – 1
    I’ve been slowly porting Rainboids to C++ using SDL for input/window management and audio, while rendering using OpenGL. My main goal is to… Read more: Rainboids Dev Blog – 1
  • CRISPR: The Future & Narratives of Evolutionary Scenarios
    The content outlines the molecular foundations of DNA, CRISPR technology, future scenarios related to genetic modifications, and ethical concerns. It predicts potential risks, such as cognitive inequality and bioweapons, while emphasizing the need for vigilant governance to ensure equitable advancements in genetics. The future of humanity’s genetic landscape remains uncertain.
  • Building Rainboids: A JavaScript Asteroids Clone For The Browser
    Lately, I’ve been working on a small browser game called “Rainboids.” This is a modernized, browser-based Asteroids clone designed for Canvas 2d that… Read more: Building Rainboids: A JavaScript Asteroids Clone For The Browser
  • An Introduction to Semiconductor Physics: From Silicon to the P-N Junction
    Semiconductors are essential to modern electronics, enabling precise control of electrical conductivity. Silicon is the primary semiconductor due to its abundance and superior properties. Doping introduces charge carriers, creating n-type or p-type silicon. The p-n junction, crucial for diodes and transistors, regulates current flow, forming the foundation of complex electronic devices.
  • Rainboids: Browser Asteroids Clone
    Get it on itch.io:https://afeique.itch.io/rainboids Play the game at: https://rainboids.cat.computer/ View the source at:https://github.com/afeique/rainboids Background music by Karl Casey (White Bat)https://karlcasey.bandcamp.com/ Listen to the… Read more: Rainboids: Browser Asteroids Clone

Latest Notes

View Archive [ -> ]