LINUX.ORG.RU
ФорумGames

Хочу начать писать игру

 


5

6

Здравствуйте, я тут задумал написать игру, про карантин, про одиночество, про общежитие, в общем то что меня сейчас окружает и окружало. Хочу передать свои раздумья, атмосферу, мне кажется это можно было бы завернуть в интересный формат.

Во-первых, сценарий. У меня есть пару идей, но мне кажется эти идеи надо подкрепить профессиональной литературой, для лучшего эффекта. Посоветуйте легкую книгу в этом направлении.

Во-вторых, картинка. В плане пискельности, пропорций должно выглядеть как Dead cells, так же вид сбоку, но проходить должно в антураже условной хрущевки. И так как рисовать я не умею и друзей художников у меня нет, придется какую то часть ассетов накалякать самому, для другой части искать бесплатные ассеты. Порекомендуйте сайтик где есть большой выбор.

В-третьих, музыка. Тут все легче: у меня много друзей, которые играют на музыкальных инструментах. У меня есть представление что должно играть. Тут вопросов, вроде, нет.

В-четвертых, геймплей, жанр и механики. Пока это мое слабое место, я еще не придумал как в мир без магии, фентези и прочего добавить каких-то геймплейных механик. Днем герой мог бы ходить по общежитию, взаимодействовать с объектами и изучать их, выполнять задания, но потом я задумался:«А как еще можно разнообразить геймплей». Вспомнил, что была такая игра Catherine. Подумал, что тоже можно добавить некую мини-игру, которая бы происходила в конце игрового дня и влияла на героя в его реальности. Но, мне кажется что, эта мини-игра должна быть драйвовая, динамичная, чтобы щекотать игроку нервы, чтобы он понимал, что если он тут провалится, то это повлияет на персонажа.

В-пятых, яп. У меня есть пара требований к языку:

  • Без GC, чтобы картинка не лагала. Хотя, у меня есть ощущение, что у меня картинка будет не сильно сложная.
  • Удобная поддержка юникода и в Linux и в Windows. Все таки сценарий будет написан на русском.

И что у нас остается:

  • С. SDL2. (скорее всего придется крутить велосипед для юникода(?))

  • C++. SDL2, SFML.

  • Rust. биндинги к sdl2, sfml или же чисто растовсикй piston.

На самом деле, в какой-то степени в голове я уже сделал выбор(но колеблюсь), но вы сами знаете, хочется необычного. ;)

если ты хочешь делать игру - бери готовый движок и (частично)готовые ассеты. иначе это будет бесплодный и недолгий предолинг, который тебе надоест до принесения каких-то результатов

anonymous ()
Ответ на: комментарий от anonymous

Я делаю игру не только для того чтобы сделать игру, а и еще получить опыт в использовании графической библиотеки. Я еще давно хотел что-то сделать для того чтобы прокачать свои скиллы в графике, а тут муза проснулась.

snake266 ()
Ответ на: комментарий от snake266

Я делаю игру не только для того чтобы сделать игру, а и еще получить опыт в использовании графической библиотеки. Я еще давно хотел что-то сделать для того чтобы прокачать свои скиллы в графике, а тут муза проснулась.

Ну тогда советую не юзать SDL_Renderer а сразу использовать OpenGL (в SDL2), а то спецэффектов не добьешься нормальных.

про то что SDL2_ttf умеет в utf-8 я знаю, я не помню как у сишки с чтением русского текста из файла.

Замечательно.

stasolog ()
Ответ на: комментарий от stasolog

Ну ладно, сорян.

[georgii@snake test]$ cat text.txt 
Это текстовый файл
[georgii@snake test]$ cat main.c 
#include <stdio.h>

int main() {
    FILE* f = fopen("text.txt", "r");
    char c;
    while((c = getc(f)) != EOF) {
        printf("%c", c);
    }
    return 0;
}
[georgii@snake test]$ ./a.out 
Это текстовый файл

Я просто помню у давно меня были какие то траблы на винде. Тогда, да не прав.

snake266 ()
Последнее исправление: snake266 (всего исправлений: 1)
Ответ на: комментарий от OpenMind

@deep-purple

Ну ведь так не интересно.:D

Да, можно взять Godot, но мне также интересно поиграться с графическими либами. И да, осознаю, что при таком подходе запал может иссякнуть. Я все равно собираюсь все прогать в конце, то есть сценарий, музыка и ассеты у меня будут готовы, поэтому если мне надоест делать все это самому, то смогу перейти на тот же Godot.

snake266 ()
Ответ на: комментарий от anonymous

бабам юбки задирают

Помню была в 2000-х игра на мобилу про чувака, который ходил по этажам, жрал, срал, трахал девок и всё такое. И я тогда играл в неё на своём Siemens M55.

Было дело, я посоветовал эту игру знакомому. Он заинтересовался. Игру я ему передал по инфрарэду. У него была какая-то нокия намного моложе и круче. Так вот когда он запустил эту игру у себя — она заработала. Правда, он не успевал ничего сделать — время шло так быстро, что главный персонаж подыхал с голоду примерно за 1-2 секунды.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от snake266

это так только кажется, что прикольно взять С++ и наклепать типа «простую» игру. Я так когда-то на OGRE делал. Так вот: любой даже самый тупущий движёк часто заменяет более 9000 часов работы. Даже если вы создаёте графическую новеллу. Потому лучше наслаждаться процессом и прогрессом и использовать ГОТОВЫЙ ОПЕНСОРСНЫЙ ДВИЖЁК!

OpenMind ★★★ ()
Ответ на: комментарий от snake266

так не интересно

Лучше смирись сейчас. Иначе в итоге ни игру не напишешь, ни движок.

можно взять Godot

Нужно.

собираюсь все прогать

Годотовский скрипт же — хоть обпрограммируйся. И я знаю о чём говорю — сам на годоте кодил.

смогу перейти на тот же Godot

Сразу бери его и начинай делать в нём.

deep-purple ★★★★★ ()

И что у нас остается:

У вас остается единственный и важный вопрос, идущий под номером четыре - «геймплей, жанр и механики». Все остальное мелочи, которые нет смысла даже обсуждать.

andreyu ★★★★★ ()
Ответ на: комментарий от snake266

Тебе самое простое надо, а-ля бродилка. Делаешь зоны с вирусом, подсвечиваешь их каким-то эффектом, персонаж должен собрать маску и перчатки, чтобы пройти на следующий уровень. Если забрёл в заразу без маски или в маске, но потрогал (скажем дадим ему механику лазить по канатам, стенам, открывать двери) поверхность в заразном помещении без перчаток, он заболевает и game over. Если открыть заразное помещение, зараза распространяется по открытым комнатам. Хрущевку нафиг, пусть у тебя космическая станция будет или что-то более интересное.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от snake266

это была не шутка про смерть от старости. Как раз пятилетка пройдёт до более-менее юзебельного прототипа. Всё что было ранее будет представлять из себя кучу костылей и велосипедов, и переделывание каждого кусочка геймплея будет делать ОЧЕНЬ больно.

OpenMind ★★★ ()

Подкину пару идей:

  • Нужно избегать соседей, иначе — заразился, умер.
  • Сосед-алкаш, который постоянно пытается с тобой забухать.
  • Миниигра «поход в магазин»: нужно прокрасться мимо ментов, иначе они тебя побьют и оштрафуют.
  • Миниигра «дежутрство»: нужно убрать общагу, не пересекаясь с соседями.
  • Локация «круглосуточный минимаркет» и миниигра, где нужно найти туалетную бумагу и гречку за ограниченное время, избегая других посетителей.
  • Миссия «сшить маску», например из штор, ниток и ваты, которые и предстоит найти.
  • Миссия «раздобыть панацею»: для этого нужно занять у кого-нибудь денег, ибо она дорого стоит, а потом найти последнюю баночку имбиря в минимаркете.
WitcherGeralt ★★ ()
Ответ на: комментарий от peregrine

Да, мне надо что-то типо бродилки, но я не хочу делать еще одну бродилку без идеи. Возможно стоит еще подумать над жанром, потому что я хочу идти от идеи и сторителлинга.

snake266 ()
Ответ на: комментарий от OpenMind

Как раз пятилетка пройдёт до более-менее юзебельного прототипа.

Бредни. Метапрог свой прототип на тормознутом LabView за год уже сделал, а тут С, готовые библиотеки, туториалы и так далее.

stasolog ()
  • 1 Не колебайся, сделай железный чёткий выбор и точка, но так как железный выбор сделать надо разбей задачу на шаги и подумай сможешь ли ты в 1 рыло с выбранными инстрементами сделать всё?

    • Текст не беда разберёшься
    • Система 2D рендеринга, сам в состоянии написать? Анимации как будешь делать, скелетную или spritesheet? Осилишь? Частицы будут? Освещение типа фонариков с тенями? 2D физика есть и если да то какого уровня хватит своих расчётов или будут желеобразные монстры? Возьми более приглянувшийся инстумент и попробуй просто на коленке сделать локацию заполнить спрайтами, в качестве ГГ квадратик, пусть подойдёт к сундуку зарегистрируй коллизию и провзаимодействуй с сундуком (как угодно)

С такими инструментами делать всё с полного нуля, возьми каждый и запрограммируй на каждом маленький наколенный уровень, затем выбери более удобный тебе.

Делай записи мыслей, всегда сейчас у тебя идея и через минуту чайник закипел и всё отвлёкся и на веки забыл.

Когда будешь писать, если вдруг тебе нужно будет эммм нарисовать просто несколько линий и ты для этого сделаешь удобные тебе функции то не пиши целое API для линий! а только то что нужно, не более и не менее.

C + SDL2 + OpenGL2.1

Если по какой либо причине ты усомнишься в своих силах то бери готовое Godot или подобное. Времени на изучение ты потратишь столько же или больше нежели реализуя нужное самому. Но то будет гарантия что нужное ты сделать сможешь. Это я тебе как человек который уже 2 года не может выпустить простейшую игру (вернее игры которые одна за одной улетали в помойку) потому что при написании всего самому очень силён соблазн временно переключится на доработку движка или что хуже переписывание его (3 раза уже ,ага).

Удачи в общем. Пили прототип играйся с ним, а потом на основе него или заново начинай делать игру.

LINUX-ORG-RU ★★ ()
Ответ на: комментарий от stasolog

как показывает практика, обычно возникают проблемы в архитектуре проекта, которые мешают быстро и безболезненно впихивать новые возможности. Потому переписывание частей проекта будет частым.

Обычно будет цикл уровня: <цикл> в это неинтересно играть, нужно добавить фичу «А» -> фича «А» не пролазит в наш чудесный кодстайл -> переделываем -> тестируем. Как-то оно не так работает, как думал. Дописываем костыли -> при дебаге обнаружилось, что нужно половину костылей переписать, ибо баги -> вроде багов нет, но оно медленно работает - надо писать велосипеды -> вроде работает как задумано, но геймплейно как-то скучно. Даже если делать левелы под фичу, надоедает. Может убрать? </цикл>

OpenMind ★★★ ()
Последнее исправление: OpenMind (всего исправлений: 1)
Ответ на: комментарий от OpenMind

А если Godot не позволит что то сделать? Разбираться в движке, изучать плюсы, шаманить итд? Потом поддерживать свой форк? Переписывать Godot? (если движок захотелось переписать, то почему бы не захотеть переписать Godot?)

stasolog ()
Последнее исправление: stasolog (всего исправлений: 1)

Несмотря на то, что это не относится к обсуждаемой теме, все же это напишу. Иногда мне хочется увидеть какой-нибудь проект (дистрибутив linux, игру, клиент для форума и т.д.) от посетителей linux.org.ru, в который каждый бы вложил немного в меру своих возможностей, времени и желания. Любопытно, что из этого бы получилось?

Leupold_cat ★★★ ()
Последнее исправление: Leupold_cat (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Да, спасибо большое за советы. Анимацию думал сделать spritesheet. Частицы, скорее всего, понадобятся. Насчет фонариков и освещения еще не думал (но ray tracing не планирую). Для физики @stasolog порекомендовал https://chipmunk-physics.net/

Да я уже словил себя на том что надо все записывать, уже несколько дней записываю все по поводу игры.

Желаю вам закончить вашу игру!

snake266 ()
Ответ на: комментарий от stasolog

тормозят обычно очень жирные эффекты в GLES3, требующие много drawcall и обрабатывающие много объектов. 2D игруха с кучкой спрайтов в GLES2 пойдёт даже на хлебушке. Я на AMD E1-2500 сейчас пишу, 2х1.4Г. Даже на нём WebGL Sampless летают, при 1000 рыб выдаёт 30-40 кадров. Godot ещё быстрее работает. Автору хватит с головой сделать что угодно и работать оно будет на чём угодно.

OpenMind ★★★ ()