Отделяемсветоттьмы3

Неровныемазки

Вы,вероятно,неждалиэтустатью,нояобещалдописать。 Такчтострадайте。 Вэтотразрасскажупроотрисовкуданныхвмоемгенераторекарт。 Прошлыечастиздесьиздесь。

Получилосьтак,чтогенераторподеленнанесколькобольшихчастей:генератор(перваячасть),симулятор(вторая),отрисовщик(этачасть)иприложение(этажечасть,тамгдепроинтерфейс)。 Эторазделениепризваносделатьнезависимымигенерированиеданныхииххотображение。 ,тооказалосьоченьполезным,когдаяпереписывалотрисовкунаслои。 Сегодняябудуговоритькакосложностяхстаройсистемырисования,такионовомварианте。 Однакосразураскроюкарты:ярешилперестатьразвиватьплоскуюверсиюисобираюсьпеределатьот。

ЖивопИсь?

Полагаю,надонемногорассказатьотом,каквообщепроисходитрисование。 Обычнофункцияотрисовкипредставляетизсебяциклвкоторомпроверяетсяналичиесобытий(нажатиекнопок,операциисокнами)ипроисходитрисованиеграфическихпримитивов。 Следуетпонимать,чтоговоря“примитивы”,яимеюввидудействительнооченьпростыевещи。 Есливынеиспользуетекакую-либобиблиотеку,т​​овамсамимпридетсяреализовыватьнерер Дачтотамговорить,дажепростонарисоватьлиниютак,чтобынетеклакровьизглаз—图库社论照片 Нообэтомпопозже。

Естьещевариантиспользовать“движки”,тоестьосновудляигр,вкоторуюобычноужевстроеномногодополнительного,вродефизики,своейиерархииобъектов,интерфейсаитакдалее。 Дляданнойзадачиэтоказалосьизлишним。 Однаковпроцессеработыяпонял,чтосделатьчто-товизуальнопривлекательноенеиесооенеин Поэтомудля3дябудуиспользоватьодинизихвеликогомножества。 Нообэтомвследующейстатье,еслиейсужденобыть。

Готовимкраски

Настартеприложениянамнужносделатьнекоторыеприготовления,以及именнозагрузитьвпамять:

  • Шрифты
  • Изображения
  • Шейдеры(возможно,вынезнаетечтоэто,нопереживайте,яподробнонаэтомостановлюсь)

Вобщемвсесводитсяктому,чтобызагрузитьуказанныефайлы,

:рифтыиспользуютсявдвухместах:длянадписейнакартеидляинтерфейса。 Инасамомделе,этоодинитотжешрифт,нотаккакдляотрисовкияиспользуюбиблиотекуSFML,адляинтерфейсаImGui,икаждаяизнихимеетсвоифункциидлязагрузкишрифтов,яделаюэтодвараза。 Весьмавероятно,чтоможнобылосчитыватьфайлодинразискармливатьегобиблиотекам,ноэтоизлишниесложности,особенноучитываяразделениеответственностиокоторомяписалвыше:отрисовщикрисуеткарту,приложениерисуетинтерфейс。

Впоследнейверсиигенераторакиконкамприсоединилисьтекстуры,которыетакжеявляютсяизображениями,поэтомусоответствиекартинка->тип_локациисмениласьнакартинка->строка,тоестьяпростохранюихпоименам。 Хотяструктурассоответствиемтипалокацийихиконкамоченьудобна,поэтомуяпростосделалеенад

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

ВеликоеибесконечноеНичто

,тобычто-тонарисовать,помимовсякоготехническогонамнадочтобыбылочторисовать。 Апреобразованиеабстрактнойкартывконкретныефигурызанимаетнекотороевремя。 Поэтомумыотправляемгенераторделатьсвоюработу,以及саминачинаемрисоватьхотябычто-то。

Мыгенерируемкартувотдельномпотоке,чтобынемешатьциклурисованияикаждыйкадробновляемположениепрогрессбараитексттекущейоперации,окоторойсообщаетгенератор。 Какможноувидетьприперегенерациикарты,насамомделефонзагрузкинесплошной,аполупрозрачный,нотаккактампоканичегонет,мывидимисключительнофонокна。

Каквыпонимаете(илинепонимаете),естьдвавариантарисования:залитьвсеокнокаким-тоцветом(очистить)инарисоватьповерхвсечтонужно,либорисоватьповерхужесуществующейкартинки。 Второезначительнобыстрее,ноимеетпонятныеограничениясвязанныесразнымиэффектамиирасчета。 Здесьяпростоскажу,чтопривозникновенииокназагрузкимыодинразрисуемполупрозрачныйпрямоугольникповерхпредыдущегокадра,азатемкаждыйкадрнакладываемчерныепрямоугольникистекстомипрогрессбаромповерхпрошлых。 Такунасперерисовываютсяоченьнебольшиеобластиэкрана。 Однакоэтолишилонасвизфонпрозрачным,таккаквпротивномслучаетамбыл。 Ахранитьвпамятиотдельнонужныйнамкусочекфона—слишкомжирнодлятакойерунды。

КакможноболеемаленькоеиконечноеЧто

Самыйпростой,ноисамыйглупыйспособнарисоватькарту:этокаждыйкадризданныхгенераторасобиратьсписокфигур,которыенадонарисовать,ивыводитьихнаэкран。 Такмыполучимпримерноодинкадрвсекунду。 ,тобылобыприемлемо,еслибымынехотелиинтерактивностиикомпьютерненачиналистошношуметь。

Окей,понятно,списокфигуриихсвойстванеменяютсябезкаких-либодействийснашейстороны,тоестьегоможнопересобирать,толькоеслимыпоменяликакие-топараметрыотрисовкииливсюкарту。 Однаконарисоватьдесятьтысячмногоугольников,сотнюиконокидесятоксплайнов—этовсеравнонене。 Во-первых,этодлянашегокода“нарисовать” – этовызватьоднуфункцию,адлянижележащегокодаэтовсеещемножестворасчетовоченьзначительнонагружающихпроцессор。 Аво-вторых,этоявноразличимаязадержкапередотрисовкойследующегокадра,азначиткогдамысоберемсявзаимодействоватьскартой,мыбудемвидеть“подтупливание”。

Еслиидальшеследоватьначатойлогическойцепочке,тобыстрородятсяещедвепростыхоптимизаци:

  • Можножеодинразвсенарисоватьибольшенеочищатьокно。 Увы,покудамыделаемнашукартуинтерактивной,этодалеконевсегдавозможно。 Вседвижущиесяобъектыиливыделение,которыемырисуемповерхнельзя“счистить”сокнанетериа。 Хотя,конечно,стоитиметь,чтоеслидействительноничегонепроисходит,топерерисовканам。
  • Хорошо,тогдаможетбытьотрисуемсложныефигурыодинраз,напримернакакую-нибудькартика Бинго! Именноэтаоптимизацияидастнамзаветные60кадроввсекунду。 Намдействительнобудеточеньудобноиметь“фотографию”нашейкарты,чтобыиспользоватькакфон。 Идляееотрисовкивовсененужноделатьсложныерасчетыисмешиванияполупрозрачныхцветов,этовсеголишьнаборразноцветныхточек,аименноихкомпьютерумеетрисоватьбыстреевсего。

Вобщем,этинехитрыеоптимизациибудутснаминапротяжениивсегоразговорапроотрисовку。 Однакоименноздесьследуетпоговоритьотом,почемужеярешилпеределатьэтоткусокпрограммы。 Во-первых,появилосьжеланиерисоватьнекоторыемногоугольникисприменениемразличныхэффектов,длячеготребуетсянетольковыделитьихвотдельныйсписок,ноещеирисоватьнаконкретной“высоте”относительнодругих。 Во-вторых,уменянетвозможностиуправлятьсплайнаминауровнеотдельныхпикселей,тоестьрекибытакипродолжалиоченьстраннымобразомвисетьнадводойилесами。 Нуидругиетехническиепроблемки,которыевсплывают,когдахочетсясделатькартинкубрлеекра。

Вавилонскаябашня

Далееследуетнемноготеенемное

ТочтоядальшебудуговоритьвосновномкасаетсябиблиотекиSFML,однако,этоможетварлх Совершенновнезапноможноузнать,чтототилиинойфункционал,которыйтысчитаешьбазовым,ооене。 ссовершеннонешучу。 Например,предложениедобавитьрисованиепомаскедатируется,2011年3月27日,更新日期为。 标记纹理RenderTexture,由которыенеподдерживаютантиалиасинг。 Менявсеэтонастолькорасстроило,чтоярешилуйтив3д。

Исновапростымисловами。 Решениележащеенаповерхности – сделатьнекие“слои”,которыекакиобщаякартабудутотрисовыватьсянакартинки,которыепотомбудутсобиратьсяводнуобщую。 Такможнобудетманипулироватьихпорядком,прятатьнекоторыеи,чтонемаловажно,раздельнообновл。

Получаем“примитивы”болеевысокогоуровня,которыесамирешаюткакрисоваться(ирисоватьсяливообще),рисоватьфигурыиликартинку,икакиеприменятьэффектыкитоговомурезультату。 Вкачестве“бонуса”мыполучаемпрозрачность(которуюяпереоценилпоначалу)иотсутствиеантиалиасинга,которыйделаетнашукартинкунесколькоболееуродливой。 Обэтомярасскажуещениже,апока,янадеюсь,выследитезамысльюипонимаете,чтояобъединилнашиобъектывнекие“группы”,которымиудобнееманипулироватьчемоднимбольшиммассивом。 Сейчасбудемразбиратьсявчемжеудобство。

Хлябь

Сердцемотрисовщикаявляетсяметод,который,получаярегион,отдаетнаммногоугольник,готовыйдл。 Именноздесьрешаетсякакогоонбудетцветаиформы。 Казалосьбы,всеоченьпросто,ноеслирисоватьвтупую,тополучитсянеоченькрасиво。 Напримерсовсемплоскиевариантывывиделивпервойстатье。 Нарисункевышеможноувидетьчутьболеепродвинутыйвариант。 Еслиприглядетьнязаметеннебольшой“шум”когдасоседниерегионычуть-чутьотличаютсяповвету。 ,тоделаетсясознательно,чтобыпридатьнекого“объема”。 Проэтояскажувконцестатьи,таккакрезультатыэтойигрывреализмпривеликнескоенонеожи

Всерегионыразбитынаслои,чтобыотрисовыватьсявразномпорядке。 Самымнижнимидетслойсвводой。 Возвращаяськрисункувыше,видно,что,отличииотсуши,кводеприменяетсядвадополнитель。 Сначала—“размазывание”цветадлятого,чтобыграницыбылинетакиеявные。 Это,намойвзгляд,добавляетвизуальнойпривлекательности,всеенеоставаясьврамкахпринятого。

是 Уменявпрограммеиспользуетсядваразличныхпредставленияцвета:RGBиHSL。

Каквиднопоиллюстрации,цветможетбытьпредставлениливвидеотношениятрехцветовыхкомпонент(красного,зеленогоисинего)иликакнабордругихтрехпараметров:оттенок,насыщенностьияркость。 Обапредставленияобычноимеютещеипоказательпрозрачности。 RGB格式的“краснее”или“синее”。 Этотформатпростврасчетахиудобендляусредненияразличныхцветов,таккакмыможемпростопосчитатьсреднееарифметическоедлякаждойизкомпонентиобъединитьводинцвет。 Однакосделать“темнее”,“насыщеннее”илисделатьблизкий,новтевремяотличающинооцветбуд。 ДляэтогоудобнееHSL,когдамырегулируявсегоодинпоказательполучаем,например,ооесветлый。 Упомянутыйвыше“шум”достигаетсянезначительнымсдвигомпоказателяоттенка。

Второйэффект,которыйприменяетсякводнымрегионам—размытие。 Иговоряпронегомывернемсякпонятиюшейдера。 Этоиправдаоченьпростаяштука。 Таккакясейчасговорюо,такназываемом,фрагментномшейдере,этовсеголишькод,которыйвидеокартаприменяетковсемпикселямскормленнойейкартинки。 Тоестьдлякаждоговызованавходподаетсятекущаяточкаиполнаякартинка。 Ия,например,могувзятьцветтекущейточкииподредактироватьегоотносительнососедних。 Да,именнотак,какяэтоделалсусреднениемцвета,нодлякаждойточки。 Дляразмытияуказываетсяещеирадиус,накоторыйразмываетсяцвет,чтоделаеткартинку“гладкой”противтого,какаяонабыларазбитойнамногоугольники。 втооченькрасивыйэффективподходящемместевызывающий“вау-эффект”。 Темнеменее,современеммненачалоказаться,чтоздесьонлишний。

Надеюсь,ярассказываютак,чтовсекажетсяоченьпростым。 Яупускаютемоменты,когдатывовсенепонимаешь,чтонужноиспользоватьчтобыналожитьэффект,разбираешьсястемкакиефункциивызыватьиищешьнужныйкодшейдера,таккакхотьизнаешьчтоэтотакое,писатьихнедоводилось。 Помимопроблемсверсиями,косякамиприпереносемеждуплатенеитакдалее,естьинтересны Например,вотмынарисоваливоду。 Ихотимсделатьразмытиеупикселя,которыйсовсемнедалекоотберега。 Стоп,какогоберега? Унаснетберега。 Тамфонтекстуры。 Таккакфонокначерный,тобудьтекстурачернойилипрозрачной,неважно,водауберегабудетсильно“чернить”,таккакнанейореолчерныхпикселейсуши。 Поэтомуприходитсярисоватьереирегионысуши,которыеявляютсябереговыми,чтобывветасмешиа Казалосьбы,взялводуиразмазал。 Увы,такихмелочейвсплываетогромноемножество,когдаделодоходитдореализации。

Твердь

Несколькоиначеобрабатываетсявнешнийвидрегионовнасуше。 Дляначалапоговоримовысоте。 Обычнообъемдемонстрируетсяспомощьюсветаитени,однакоявсвоейпрограмметакинедошелдорасчетаосвещенности,поэтомуяпростокорректироваляркость。 ОднакотогдаменяененебылопреобразованияпредставленийцветаииспользуяRGBэтосложнобыло。 Ияпоступилхитро:яварьировалпрозрачность,чтовкупестемнымфономменялояркостьцвета。 Такврамкаходногобиомаунасбылградиентвысот。 Темнеменее,когдаяначалбаловатьсяэффектами,японял,чтопрозрачностьможетсыгратьипротв。 Например,когдаяхотелрисоватьграницумеждусушейиморем,самымпростымрешениембылорисоватьподсушейещеодинтакойжеслой,ностолстымиграницамимногоугольников。 Поверьте,этобылокудапрощечемстроитьновыймногугольник-остров,которыйбудетрисоватьтолькону。 Тожесамоепроисходилокогдаяделал“тень”подлесом。 Естественно,просвечивающиесквозьверхнийслойполигонынетолькоменяливнешнийвид,ноиделалиэтонеравномерно,таккакбылиилисдвинутыилиимелицветныеграницы。 HSL,请在HSL,котороепозволяломенятьяркостьцвета中完成。 Правда,этовсеравнотаксеберешение,таккакхорошоработаетдляодногоцвета,ауменянесколькобиомови,по-хорошему,надобыменятьяркостьвдиапазонедопустимыхвысотконкретногобиома,анеглобальныхмаксимумаиминимума。 Нудаэтоуженеважно。

Вторымотличиемявляютсятекстуры。 Ихвнешнийвидмненененравится,ноянеудержалсяоттого,чтобыпопробоватьихиспользоватьпри。 Взависимостиоииспользуюразныетекстуры,нонасамомделетекстурвсегочетые,е Вседеловтом,чтотекстура“умножается”навветполигона,приобретаяегоцвет,сохраняярисунок。 Такможноиспользоватьоднуитужетекстурунаразныхбиомах,сохраняяихразличия。 Поэтомуменяестьдветекстурысразнымибазовымицветами,которыепотомоказываюовоине

Нуитакнравящийсямнеэффект,который“приподнимает”полигон,добавляяемуобъема。 Онсделанотвратительнововсехотношениях,включаятотфакт,чтоиз-занегогорывыглянетсовсе。 Техническаяжеотвратительностьзаключаетсявкрайнейнеоптимальности,таккакярисуюещеодинполныйслойсуши,несколькоегозатемняяисдвигаявниз,атакжевбагах,потомучтоесливстречаютсяострыеуглы,тотампроглядываетморевместонастоящей“грани”земнойтверди。

Отдельновыделенылосеиозера,

Стоиттакжеупомянутьипро“режимы”,вкоторыхотображаетсявлажность,высотаитакдалее。 Этототженаборполигонов,носдругимцветом,которыйзависитотвыбраннооорежима。 ,хотелсделатьихотдельнымислоями,норукинедошли,以及сейчасониужеврядлипонадобятся。 Слои,неруки=)

Прочее。 Иподобноеидалее

Дороги。 Помните,якак-тоговорил,чтодажепрямуюлиниюнарисовать—图库照片。 Делодаженевет,чтонадознатьуравнениепрямой(ктомужеужрисоватьлинииумеетлюбаяоберта)。 Втупуюнарисованнаялиния,особеннокривая,будетрезатьглазпилообразнымикраями。 Вообщеэтодействительнооченьбольшаяпроблема,особенноеслиговоритьпротекст。 Дляменяжеэтобылокритичновотношениидорогирек。 Онисмотрятсяотвратительно。

Таквот,когдаярисуючто-тоневокно,以及невидимыйслой,нетвозможностиприменитьсглажва。 Насколькояпонял,естьразнообразныетехникисиспользованиемшейдеров,которыемогутчто-топохожеесделать,новсеэтоделаетсявнесколькопроходовснесколькимиэкземплярамитекстуритакдалее。

Всвязисэтимконкретнослойсдорог,накоторыхэтоособеннозаметно, Этоконечносовсемнедело。 ,тонетолькоограничиваетвозможностиманипуляции,ноисильнопросаживаетпроизводительность。

Почемужеянеделаюэтоисреками? Деловтом,чтовомногомначинаниепопереписываниюбылозадуманоичтобы“красиво”рисоватьреки。 Красивонеполучилось,ноестьочемрассказать。 Помнитекакотвратительнораньшерекивиселинадморем,кудавпадали? Атеперьещеразпосмотритенакартинкусреками。 Видите,какониобрезаныпокраюсуши? Заэтимстоитцелаяистория。

Еслипропуститьвсенецензурныевыраженияибездарнопотраченныйвыходной,товсесводитсяквоплю“Нукаквызасемьлетнереализовалимаски?”ирешениюиспользоватьшейдер。 Да,посути,маска—этоинструкциягдерисоватьпиксели,以及гденерисовать。 Ненарисованныепиксели – этопикселипрозрачные,азначитможнопосчитатьэтошейдером,используяслойсушикакуказаниенато,чтоэтипикселиненадоделатьпрозрачными。 Вотивсе,ясмогунылейшимобразомрассказатьто,гдеможнобылоцелуюувлекательнуюстатьюсв。 Не,нуправда,есливыспервогоразадочиталидосюда,товычитаетеужедляинформаии,а。 Поэтомудальшебудемкратко。

Оставшиесяслоивключаютвсебя:

  • Границыгосударств,которыерисуютсясплайнами。 Тут,правда,тожеетьхитрость。 Какпонять,откудаикударисоватьлинию? Длятогочтобынайтиэти“угловые”точкимнеприходитсяфильтроватьрегионытак,чтобывычислитьтот,которыйявляетсяграничнымиимееттолькоодногососеда,которыйявляется“берегом”。 Тоестьяищу,гдеидущаяпоберегуграница“заворачивает”иначинаетидтипосуше。 Затемярекурсивно,похоженаалгоритмнахожденияпути,ищуследующуюсухопутнуюграноненоякодо。 Из-занеровностиполигоновслучаютсясложности,когда,например,在угладвасоседа ,то-тоизэтогояисправил,以及что-тооставилнанеопределенноеивсеболеетуманноебудущее。
  • Подписи。 Тоестьтесамыетабличкисименамигородов。 Тутбылобычтонаписать,будьуменяалгоритмихумногоразмещения,ноэтотоженевэтотраз。 Хотяязнаю,чтоестьтоварищи,которыеубилинаэтупроблемууймувремени。 Оцените。
  • Локации。 Простоспрайтыскартинками。 Ничегоинтересного。
  • Исамоеглавное:надписьобавторствеиверсия。 Да,конечно,заслуживаетотдельногослоя=)

Ох,да,чутьнезабыл! “Бродяги”。 Тесамыебегающиеточки。 Ихнеимеетсмыслакэшировать,таккаконикаждыйкадримеютновуюпозицию。 Еслиговоритьпросто,тоэтовсеголишьсчетчик,которыйувеличиваетсякаждыйкадр。 Изэтогосчетчикавыводитсяпозиция“бродяги”。 Делаетсяэтоэлементарнымвзятиемочереднойточкиизсплайнавыбраннойдороги。 Онивыбираютсяслучайнокогдазаканчиваетсяпредыдущая。 Единственное,чтостоитучитывать – то,чтодорогаможетвестинеизэтогогорода,авнего,ипоэтому“тик”счетчикабудетегоуменьшать,анеувеличивать,чтобыдвигатьсясправильногоконцадороги。

Вот,наверноеивсе,чтоямогурассказатьинтересногопроотрисовку。 Естественно,япропустилуймутехническихтонкостейитого,какядоэтогодоходил。 Нокомуэтоинтересно?

Интерфейс

Нуонесть,да。 Имнепридетсяпронегорассказать,таккакэтоможетбытьинтересно=(Еслисовсемчестно,товообщевесьэтотпроектначалсястого,чтомнезахотелосьнаписатьчто-тосиспользованиемэтойбиблиотеки,аточтоэтобудетименногенераторкарт,стало понятноужепотом。БиблиотекаимеетназваниеImGuiипредназначенанедлянаписанияпривычныхвсемприложений,аименнодля“вспомогательного”интерфейсадляигрилидругогософтасвизуализацией。

Еслинеуглубляться,тоинтереснаонасвоимподходом,аименно“ 直接模式”,тоесть,вбольшинствесвоемэлементыинтерфейсанеявляютсяотдельными объектами ,которыеживутвместесприложением,апредставляютизсебяфункции,которыевыполняютсякаждыйциклотрисовки。 Есливынепрограммировалиинтерфейсыранее,атолькочитаетемоюстатью,длявасэтодолжноказатьсясовершенноочевиднымрешением,таккакостальнаяотрисовкапримернотакиработает。 Нонасамомделеобычныебиблиотекиинтерфейсовработаютабсолютнонетак。

Собственно,интерфейссостоитизследующихчастей:

  • Главноеокно,вкоторомнаходятсяразнообразныенастройки。 Подниминаходитсявсеголидациякэшаотрисовщика,以及чтениемтекущегозначенияистановко
  • Информационноеокно。 Онопоявляетсякогдавключенрежимподробнойинформации。 Внемкаждыйкадрвычисляетсярегион,находящийсяподкурсороммыши,以及окнонаполноонтерсеразлично Болеетогоздесьвычисляетсянабордополнительных,“информационных”полигонов,которовеоулентотрис Таккакониполупрозрачны,этобудетвыглядетькаквыделение,
  • Похожимобразомработает“Окнообъектов”,котороесодержитдеревовсехкластеров,локариеирекнана。 Онопомогаетпроверитькорректностьвсехпараметровсгенерированныхобъектовинайтистраннестнакарт
  • Нуиокносимуляции,котороесодержитнастройкиэкономическоймоделииграфикрезультатов。 Да,библиотекасодержититакиеконтролы,чтоделаетееотличнымвыборомдляподобныхпрототипов。

Будущее

Честноговоря,намоментнатисанияэтойстатьи,яужеоколодвухнедельненаписалнистроеквкодавг。 Во-первых,ятальный,которыеуменяестьвпритекущемвыбор。 Атаккакязаранееподумалобархитектуре,поидее,будетнесложносменитьтехнологиюотрисовк。 Мневсегдаимпонировалнизкополигональныйстиль,поэтомуяхочупостаратьсянебольшимикееид

Втораяпричина,котораяпривелакотказуот2д,этодостигнутыйэффект“зловещейдолины”。 Тоестьвоеэффектыиулучшениякартинкипривеликтому,чтопотерялсясиематичныйстиль,н Поэтомуяирешилсделатькачественныйшагвнаправленииреализма,которыйрасширитвозможностиоставатьсяв“мультяшном”стиле,которыйтребуеткудаменьшихтрудозатрат。 Даиассетыстояткудаменьшихденег=)

Да,этопрыжоквсовершеннодругуюикатегорическинеизведаннуюобласть,новэтомизначальноиб。 Вообщеябыхотелотметитьто,чтоя,благодаряэтомунебольшомугенератору,поднялснулядоприемлемого“джуна”знанияодногоизсамыхиспользуемыхиуважаемыхязыковпрограммирования – С++,узналмножествоотвлеченных,ачастоисовершеннонетехническихвещей,пообщался синтереснымилюдьмиизразныхстран,атакжепонял,наскольковажноделитьсясвоиморезультатам。 Этонетолькомотивируетнапродолжениеразработки,ноиучитделатьнекие“минимальнополезные”версии,которыенестыднопоказать,дажееслионисовсемещеничегонеумеют。 Нуинельзяумалятьтого,скольконовыхидеймнедалилюди,которыепробовалимоидемо-вероиилин。

Вобщем,спасибо,чтобылисомнойвсеэтовремя,надеюсь,мнеещенайдетсячтовамрассказать。