TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #892 · 29.10

Frostpunk — весьма самобытная игра-стратегия с интересной стилистикой. Изначально это видеоигра, но по ней не так давно вышла настолка, которую будут локализовать и официально привезут в Россию. Сейчас уже идёт предзаказ у издательства Фабрика Игр. Чтобы понять, хочу ли я настолку, решил наконец попробовать компьютерную версию, которая давно лежала в листе ожидания. По сюжету климат на Земле превратился в вечную сверхсуровую зиму, цивилизация уничтожена, и только жалкие остатки человечества пытаются выжить. Они нашли огромный угольный генератор (о том, как он появился, рассказывает дополнение к игре) и потихоньку строят город вокруг него. Основные ресурсы это уголь, дерево, сталь и пища, которые нужно добывать разными способами, попутно выстраивая как экономику, так и социальные взаимоотношения. Симуляция в игре прорабатывает действия и состояние каждого отдельного человека. Отправил кого-то работать на плохо отапливаемый завод — у него растёт шанс заболеть, после чего он работать не сможет какое-то время, и эффективность завода снижается. В итоге, заботиться об отоплении нужно не просто так, потому что игра командует, а с вполне конкретной практичной целью. Температура в мире постоянно снижается. Начинаешь ты при -20, а заканчиваешь активные действия уже около -80. У населения есть уровень надежды и уровень недовольства: в мою первую игровую сессию я проиграл как раз из-за его превышения. Нужно правильно выстраивать цепочку законов и других управляющих воздействий, определять направление развития исследований, решать конфликты. Вообще, считаю стратегии такого плана очень полезным опытом, потому что они, хоть и с сильным упрощением, показывают работу процессов на уровень выше, чем индивидуальные потребности человека. Вот ты, как управляющий, видишь, что уголь заканчивается, и, если срочно не добыть его больше, то кухня замёрзнет, тогда не будет еды, все умрут. Отправляешь людей на суточные смены, они возмущаются и называют тебя тираном, но ты то понимаешь, что иначе им же станет хуже. Посылаешь на работу детей и калек — выживание требует, ничего не поделаешь. Чтобы возмущение не росло, строишь дозорные вышки и обучаешь побольше стражи. Кто-то умер — не отвлекаемся от работы, завтра минус семьдесят, если лазареты с больными не обогреть, то умрёт ещё больше. Город в виде концентрических колец вокруг источника тепла — не только очень красивое решение, но и прекрасный образец хорошего UX для стратегии. У тебя все точки контроля под рукой, не нужно постоянно мотать камеру через всю карту. Ну и в целом игра очень логичная, это и плюс и минус. Минус, потому что после двух сессий ты уже будешь хорошо знать, что делать, так что реиграбельность страдает. Ещё заметно, что разработчикам не хватило денег на более дорогие анимации, катсцены, и вообще полировку мелочей. Но первая часть очень популярна, уже анонсирована вторая, авторы заработали, так что ждём всего больше и лучше! А настолку, наверное, возьму. #games

Hashtags

Резултати

Намерени 6 подобни публикации

Търсене: #ksp

当前筛选 #ksp清除筛选
Android Broadcast

@android_broadcast · Post #9592 · 23.10.2025 г., 14:18

🏝 KSP стало независеть от версии Kotlin. Неужели API плагинов Kotlin компилятора стало стабильным? Обновляйтесь до версии KSP 2.3.0 (версии Kotlin в названии больше нету) Также KSP1 теперь deprecated, нужно чтобы всё умело работать с новой версией. #ksp#kotlin

Hashtags

Android Broadcast

@android_broadcast · Post #8922 · 09.04.2025 г., 13:23

Вышел KSP 2.0, который теперь работает на KSP2 по умолчанию. Теперь работает на K2 и отдельный генератор исходников с большей гибкостью #kotlin#ksp

Hashtags

Android Broadcast

@android_broadcast · Post #8912 · 07.04.2025 г., 06:04

Metro - Новый DI фреймворк на чистом Kotlin (ещё в разработке) @DependencyGraph interface AppGraph { val httpClient: HttpClient @Provides private fun provideFileSystem(): FileSystem = FileSystem.SYSTEM } @Inject class HttpClient(private val fileSystem: FileSystem) @Inject @Composable fun App(circuit: Circuit) #kotlin#di#ksp

Со спутника OTP-2 на частоте 400500 кГц каждые пять минут транслируют музыку из заставки игры Kerbal Space Program KSP — компьютерная игра в жанре симулятор, разработанная компанией Squad. События происходят в вымышленной вселенной, где человекоподобные инопланетяне «кербалы» начинают свою космическую программу, которая развивается под управлением игрока #KSP #игра #спутник #радио

Android Broadcast

@android_broadcast · Post #9301 · 06.07.2025 г., 18:53

🏝Проблемы с порядком Gradle Task при использовании KSP 2.0.2 Продолжаю разработку проекта FrameIO - Kotlin Multiplatform клиента для сервиса frame.io и стоклнулся с падением сборки из-за порядка задач (ниже стек с примером проблемы): Some problems were found with the configuration of task ':module:kspDebugKotlinAndroid' (type 'KspAATask'). - Gradle detected a problem with the following location: './module'. Reason: Task ':module:kspDebugKotlinAndroid' uses this output of task ':module:javaPreCompileDebug' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Possible solutions: 1. Declare task ':module:javaPreCompileDebug' as an input of ':module:kspDebugKotlinAndroid'. 2. Declare an explicit dependency on ':module:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#dependsOn. 3. Declare an explicit dependency on ':core:user-session:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#mustRunAfter. For more information, please refer to https://docs.gradle.org/8.14.2/userguide/validation_problems.html#implicit_dependency in the Gradle documentation. Стек для сборки: Gradle 8.14.2, Kotlin 2.2.0, KSP 2.2.0-2.0.2, AGP 8.11.0 Решения проблемы пока нету в KSP (одно из issue), поэтому я задаю порядок Gradle Task сам: // build.gradle.kts модуля где подключен ksp afterEvaluate { android.libraryVariants.forEach { variant -> val variantCapitalized = variant.name.capitalized() tasks.named("ksp${variantCapitalized}KotlinAndroid") { dependsOn( "${variant.name}AssetsCopyForAGP", "process${variantCapitalized}Manifest", "write${variantCapitalized}AarMetadata", "javaPreCompile${variantCapitalized}", "merge${variantCapitalized}Assets", "merge${variantCapitalized}JniLibFolders", "merge${variantCapitalized}NativeLibs", "copy${variantCapitalized}JniLibsProjectOnly", "generate${variantCapitalized}EmptyResourceFiles", "copy${variantCapitalized}JniLibsProjectAndLocalJars", "prepare${variantCapitalized}ArtProfile", "write${variantCapitalized}LintModelMetadata", "extractProguardFiles", "prepareLintJarForPublish", ) } } } #android#kmp#koltin#ksp