Разработка рогалика как способ выучить plain C

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Аватара пользователя
barabansheg
Сообщения: 12
Зарегистрирован: 10 апр 2013, 11:06

Разработка рогалика как способ выучить plain C

Сообщение barabansheg » 10 апр 2013, 11:20

Доброго времени суток!) Стоит ли делать рогалик для изучения чистого си? Си нужен в целях общеобразовательных. Из опыта программирования: php, js, базовые основы lisp, на работе пишу на python(django). Игры раньше не писал, имею лишь общее представление об этом.
Jabber конференция по nethack: nethack@conference.jabber.ru

Аватара пользователя
alexbard
Сообщения: 670
Зарегистрирован: 22 апр 2011, 17:15
Откуда: Украина
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение alexbard » 10 апр 2013, 11:26

barabansheg писал(а):Доброго времени суток!) Стоит ли делать рогалик для изучения чистого си? Си нужен в целях общеобразовательных. Из опыта программирования: php, js, базовые основы lisp, на работе пишу на python(django). Игры раньше не писал, имею лишь общее представление об этом.
Написание рогалика (или любой другой игры) - хороший и интересный способ выучить новый язык программирования.
У самого с C# подобная история была.
На этом форуме есть целые гайды о том, как написать игру.
Но если не найдешь и не боишься английского, то вот тебе ultimate source http://roguebasin.com/index.php?title=Articles в котором трудно не найти ответ на вопрос: "как написать свой рогалик?".

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Разработка рогалика как способ выучить plain C

Сообщение Jolly Roger » 10 апр 2013, 11:27

Не вижу причин почему бы нет?
Если целью стоит именно изучение, то даже можно уделять особое внимание изобретению велосипедов.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение Jesus05 » 10 апр 2013, 11:27

Могу сказать одно :) хуже точно не будет!
да и лучше что-то сделать и сожалеть о том что сделал, чем чего-то не сделать и сожалеть о том что не сделал. (в вольном пересказе фраза кого-то из умных мира сего).

Аватара пользователя
alexbard
Сообщения: 670
Зарегистрирован: 22 апр 2011, 17:15
Откуда: Украина
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение alexbard » 10 апр 2013, 11:34

Jesus05 писал(а):да и лучше что-то сделать и сожалеть о том что сделал, чем чего-то не сделать и сожалеть о том что не сделал. (в вольном пересказе фраза кого-то из умных мира сего).
Лучше - сделать и не сожалеть :)

Аватара пользователя
barabansheg
Сообщения: 12
Зарегистрирован: 10 апр 2013, 11:06

Re: Разработка рогалика как способ выучить plain C

Сообщение barabansheg » 10 апр 2013, 11:44

Значит направление выбрано верно, спасибо за поддержку :) Как закончу(если закончу так как вторую неделю сижу с этим) генерацию подземелий попробую выложить сорцы того что есть. С английским некоторые проблемы, но мануалы вполне читаются.
Jabber конференция по nethack: nethack@conference.jabber.ru

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Разработка рогалика как способ выучить plain C

Сообщение Jolly Roger » 10 апр 2013, 11:51

Давай, выкладывай, посмотрим.
Как метод изучения, рогалик будет очень даже хорош,
другое дело, если бы написал, моя цель сделать рогалик, беру plain C.
Имхо делать рогалик на чистом Си это садо-мазо ещё то.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
barabansheg
Сообщения: 12
Зарегистрирован: 10 апр 2013, 11:06

Re: Разработка рогалика как способ выучить plain C

Сообщение barabansheg » 10 апр 2013, 11:57

Jolly Roger писал(а):Имхо делать рогалик на чистом Си это садо-мазо ещё то.
Согласен, видел исходники nethack(мало что понял) :) Но хочется понять как же оно там внутри устроено, что и как можно оптимизировать и т.п.
Jabber конференция по nethack: nethack@conference.jabber.ru

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение Jesus05 » 10 апр 2013, 11:58

Jolly Roger писал(а):Давай, выкладывай, посмотрим.
Как метод изучения, рогалик будет очень даже хорош,
другое дело, если бы написал, моя цель сделать рогалик, беру plain C.
Имхо делать рогалик на чистом Си это садо-мазо ещё то.
Мне кажется пофигу на чем, язык программирования это только инструмент.
Просто на С подольше чем на С# наверняка, но явно быстрее чем на ассемблере.

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Разработка рогалика как способ выучить plain C

Сообщение Jolly Roger » 10 апр 2013, 12:02

Нет, я не пытаюсь развязать старый холивар "какой язык лучше для разработки рогалика". Имхо за это нужно банить с расстрелом, за толстенный троллинг.

Понятно дело, что написать рогалик можно и на Brainfuck, и на GWbasic, и даже на ассемблере в конце концов, если есть запасная жизнь.
Другое дело зачем?
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение Jesus05 » 10 апр 2013, 12:26

Jolly Roger писал(а):Нет, я не пытаюсь развязать старый холивар "какой язык лучше для разработки рогалика". Имхо за это нужно банить с расстрелом, за толстенный троллинг.

Понятно дело, что написать рогалик можно и на Brainfuck, и на GWbasic, и даже на ассемблере в конце концов, если есть запасная жизнь.
Другое дело зачем?
Интуиция мне подсказывает, что писать на Brainfuck придется дольше чем на ассемблере :)

Особенно весело на Brainfuck наверное отладку делать :)

Аватара пользователя
Sirion
Сообщения: 689
Зарегистрирован: 21 авг 2010, 19:33

Re: Разработка рогалика как способ выучить plain C

Сообщение Sirion » 10 апр 2013, 20:02

Когда-нибудь на пенсии я сяду и напишу рогалик на Prolog,

Аватара пользователя
barabansheg
Сообщения: 12
Зарегистрирован: 10 апр 2013, 11:06

Re: Разработка рогалика как способ выучить plain C

Сообщение barabansheg » 28 апр 2013, 13:24

В связи с дипломом и работой к коду подхожу редко, но последние пару дней все таки мучаю рандомные подземелья. Комнаты случайно рисуются и то не всегда, как выяснилось, иногда программа вылетает(core dumped), с коридорами вообще все плохо, т.к. если комнаты рядом, то между ними нет коридора. Или что-то вроде того как тут(в левой части не айс). Хочется видеть что-то на подобии nethack'овских dungeons of doom. Очень уж они аккуратные. Может кто подскажет чего?
Jabber конференция по nethack: nethack@conference.jabber.ru

Аватара пользователя
Xecutor
Мастер
Сообщения: 758
Зарегистрирован: 25 мар 2008, 08:32

Re: Разработка рогалика как способ выучить plain C

Сообщение Xecutor » 28 апр 2013, 14:50

Я генерирую так:
Раскидываю случайно комнаты, с некоторым минимальным расстоянием между ними. Далее беру случайную комнату, и соединяю её с другой случайной, только тут случайность с весами, чем ближе комната, тем больше вероятность, что она будет выбрана. Для соединения комнат корридором в каждой комнате случайно назначаю выход, а потом подключаю A*, который не может копать сквозь комнаты, но может использовать существующие корридоры. Этот алгоритм гоняется пока все комнаты не будут соединены.

Аватара пользователя
Uvadzucumi
Сообщения: 365
Зарегистрирован: 29 ноя 2011, 07:13
Откуда: Дубай, ОАЭ (Минск, Беларусь)
Контактная информация:

Re: Разработка рогалика как способ выучить plain C

Сообщение Uvadzucumi » 28 апр 2013, 20:20

@Xecutor
достаточно сложно и по производительности не очень хорошо
в роше (как и в нетхаке), исаользется такое: http://uvadzucumi.blogspot.ae/2012/03/07.html
на открытых пространствах, тоже самое можно делать, немно модифицировав.
если не понятен бейсик, то у меня в гите похожая генерация (разумеется, отделена почти от всего).
Меня окружали милые, добрые люди... медленно сжимая кольцо

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей