Articles

Mongodb

EN

MongoDB is a popular open-source NoSQL database management system that offers a flexible and scalable approach to data storage. Instead of using the traditional table-based relational database structure, MongoDB stores data in flexible, JSON-like documents, which means fields can vary from document ...

Mysql

EN

MySQL is a popular open-source RDBMS known for its reliability, performance, and ease of use. Developed by Oracle Corporation, it powers numerous web applications, content management systems, and enterprise solutions. Its robust architecture efficiently manages large databases, making it a top choic...

Neo4J

EN

Neo4j is a leading open-source graph database management system that specializes in handling data with complex and interconnected relationships. Unlike traditional relational databases that use tables and rows, Neo4j stores data in nodes and relationships, allowing for more natural and efficient mod...

Multi Master Replication

EN

Multi-primary replication—also called multi-master or active-active replication—allows more than one database node to accept writes...

Master Standby Replication

EN

Primary–standby replication is a replication topology in which one database server acts as the authoritative writer and one or more standby servers follow the primary's changes...

Intro to Replication

EN

Replication keeps database data on more than one node by transferring changes from one database instance to another...

Synchronous vs Asynchronous Replication

EN

The fundamental difference between synchronous and asynchronous replication is...

Camera Controls

EN

The RTS camera supports nine ways to move or restore the view. The same control definitions feed the in-battle legend and field manual, while automated tests cover the underlying geometry and input rules. This page explains the complete control model and ends with the manual regression pass needed f...

Double Booking Problem

EN

The double-booking problem is a common issue in database systems, particularly in applications like booking platforms, reservation systems, and inventory management. It occurs when multiple transactions simultaneously attempt to reserve or modify the same resource, leading to conflicts and inconsist...

Ambient Wildlife

EN

Ambient wildlife makes battlefields feel inhabited rather than staged. Sheep occupy pasture, wolves work the edges of settlement and cover, and bird flocks move through the sky or burst away from nearby threats...

Dziedziczenie

PL

Przykłady w tej notatce wymagają C++14. Używają std::make_unique, wprowadzonego w C++14...

Stl

PL

Program często przechowuje wiele podobnych danych: oceny, nazwy produktów albo liczby wczytane z pliku. Można samodzielnie zbudować tablicę i napisać pętle wyszukujące czy sortujące, ale trzeba wtedy osobno pilnować pamięci, zakresów i poprawności operacji. Biblioteka standardowa C++ daje gotowe nar...

Tablice

PL

Wbudowana tablica C++ przechowuje ustaloną liczbę elementów tego samego typu. Elementy leżą kolejno w pamięci, a indeksy zaczynają się od zera. Tablica zawiera wiele elementów; wskaźnik jest osobną zmienną, która może przechowywać adres jednego z nich...

Wskazniki

PL

Wskaźnik jest osobną zmienną, której wartością jest adres innego obiektu. Jeśli obiekt number przechowuje liczbę 42, wskaźnik pointer może przechowywać adres tego obiektu. Operator * pozwala wtedy dotrzeć do obiektu pod tym adresem...

Preprocesor

PL

W poprzedniej notatce zobaczyliśmy, że przed analizą kodu kompilator przetwarza dyrektywy takie jak #include. Robi to preprocesor. Jego zadaniem jest przygotowanie tekstu źródłowego: dołącza wskazane pliki, rozwija makra i wybiera fragmenty objęte kompilacją warunkową...

Instrukcja Warunkowa

PL

Do tej pory program mógł wypisać tekst lub odczytać dane, ale instrukcje wykonywały się zawsze w tej samej kolejności. Instrukcja warunkowa pozwala wybrać dalsze działanie na podstawie wartości danych: program oblicza warunek, a potem wykonuje odpowiednią gałąź...

L Wartosci R Wartosci

PL

Ta lekcja rozdziela trzy pojęcia: wartość obiektu, kategorię wyrażenia i referencję. Ma to znaczenie przy przypisywaniu do zmiennych, przekazywaniu argumentów funkcjom i przenoszeniu obiektów...

Interakcja z Konsola

PL

Program często musi pokazać użytkownikowi wynik albo poprosić go o dane. Konsola jest jednym ze sposobów takiej komunikacji. Warto myśleć o niej jak o dwóch kierunkach przepływu informacji: program wysyła tekst na zewnątrz, a dane wpisane przez użytkownika trafiają do programu...

Proces Kompilacji

PL

Programista zapisuje instrukcje w pliku źródłowym, na przykład main.cpp. Procesor nie wykonuje bezpośrednio takiego tekstu: potrzebuje instrukcji maszynowych przygotowanych dla konkretnej architektury. Kompilacja przekształca więc kod źródłowy w program, który system operacyjny może uruchomić...

Praca z Plikami

PL

Plik przechowuje dane poza pamięcią programu, więc można z nich skorzystać także po jego ponownym uruchomieniu. Niezależnie od języka, praca z plikiem składa się z czterech kroków: wybierz tryb, otwórz plik, czytaj lub zapisuj, zamknij. Każdy krok może się nie powieść, dlatego sprawdzamy jego wynik...

Wyjatki

PL

Wyjątek to sposób przekazania informacji o problemie z miejsca, w którym go wykryto, do miejsca, które może zdecydować, co dalej zrobić. Najczęściej używa się go wtedy, gdy funkcja nie może wykonać swojego zadania i nie ma sensownego sposobu, by naprawić sytuację lokalnie...

Petle

PL

Instrukcje zapisane kilka razy można zastąpić pętlą. Pętla wykonuje swoje ciało, sprawdza, czy ma wykonać je ponownie, i kończy się, gdy warunek kontynuacji przestaje być spełniony. To ta sama logika warunków z poprzedniej lekcji, użyta do sterowania powtarzaniem...

Konwersje

PL

Program często łączy wartości różnych typów: dzieli liczbę całkowitą przez zmiennoprzecinkową, przekazuje wskaźnik do funkcji albo zamienia obiekt jednego rodzaju na drugi. Konwersja to zmiana wartości lub sposobu, w jaki program może z niej korzystać, na inny typ. Może wykonać się niejawnie albo na...

Lambdy

PL

Lambda to zapis zachowania w miejscu, w którym jest potrzebne. Najczęściej przekazujemy ją do algorytmu jako kryterium sortowania, wyszukiwania lub przekształcania elementów. Zamiast tworzyć osobną nazwaną funkcję, zapisujemy krótką operację obok jej użycia. Jej parametry działają jak parametry zwyk...

Szablony

PL

Szablon jest przepisem na funkcję lub typ, który działa dla wielu typów albo wartości. Zamiast pisać osobną funkcję max2_int, max2_double i max2_string, zapisujemy wspólną regułę raz, a kompilator tworzy potrzebną wersję, gdy szablon jest użyty...

Zmienne i Typy Danych

PL

Preprocesor przygotowuje tekst programu, a kompilator sprawdza, czy jego instrukcje mają poprawną składnię i znaczenie. Żeby ocenić znaczenie wyrażenia, kompilator musi wiedzieć, jakiego rodzaju wartości w nim występują. Tę informację opisuje typ...

Typ Wyliczeniowy

PL

Poprzednia notatka pokazała, że generator zwraca wartość, na przykład liczbę oczek na kostce. Sama liczba nie zawsze mówi, jakie ma znaczenie w programie. Typ wyliczeniowy pozwala opisać niewielki, z góry określony zestaw możliwości pod czytelnymi nazwami...

Funkcje

PL

Poprzednia notatka pokazała, jak opisać możliwe kategorie za pomocą enum class. Gdy program ma wykonać działanie na danych — na przykład sklasyfikować wynik rzutu kostką — warto zamknąć tę czynność w funkcji. Funkcje pomagają nazwać zadanie, uniknąć powtarzania kodu i oddzielić szczegóły wykonania o...

Save Load System

EN

Standard of Iron stores match saves in a versioned SQLite database. A save is more than a serialized entity list: it combines the authoritative battlefield, non-entity session state, campaign/mission metadata, and a preview image, then stores that snapshot with compression, checksums, transactional ...

Farm Activity

EN

Roman and Carthaginian farms show presentation-only field workers. They are the nation's own civilian humanoids -- the same rig, proportions, equipment archetypes and palette the real civilian and builder units use, driven by the baked clip bank through CreaturePipeline::submit_requests. They are no...

Trailer

EN

standard_of_iron_trailer.mp4 is built entirely from Standard of Iron's own renderer, simulation and audio. Nothing in it is offline CGI: every image is a deterministic arena scenario photographed by an authored camera, and every sound is either the game's own library or synthesis in scripts/trailer...

Macos Signing

EN

macOS packaging is implemented in .github/workflows/build-macos.yml. The workflow is reusable: the weekly packaging job and the release workflow both call it. Developer ID signing and notarization are done by scripts/sign-and-notarize-macos.sh, which has two modes, app and dmg...

Difficulty

EN

Single-player difficulty is one shared system across the campaign, standalone missions and skirmish. It gives the enemy more or fewer resources, starting troops and scripted reinforcements. It does not make the opponent think better, and it does not touch combat statistics...

Marketplace

EN

Both nations' marketplaces are open courts on a stepped plinth, entered from the local −X side through a gateway, with a row of three shops along the back (+X) wall. The plinth stays 2.80 local units wide so the drawn body matches the collider (BuildingBodyFootprint tests)...

Accessibility

EN

Standard of Iron exposes accessibility and input options from Settings in both the main menu and pause menu. Every option has a default that reproduces the shipped presentation and controls, so accessibility features can be enabled deliberately without changing the experience for a fresh installatio...