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

Получилосьтак,чтогенераторподеленнанесколькобольшихчастей:генератор(перваячасть),симулятор(вторая),отрисовщик(этачасть)иприложение(этажечасть,тамгдепроинтерфейс)。 Эторазделениепризваносделатьнезависимымигенерированиеданныхииххотображение。 ,тооказалосьоченьполезным,когдаяпереписывалотрисовкунаслои。 Сегодняябудуговоритькакосложностяхстаройсистемырисования,такионовомварианте。 Однакосразураскроюкарты:ярешилперестатьразвиватьплоскуюверсиюисобираюсьпеределатьот。
- 十亿美元的游戏开发产业 磨光以进入
- 我们如何在没有发布任何游戏的情况下筹集资金
- Udacity VR Jam Log 2 —合并问题和解决方案(最后!)
- 开发人员更新#8
- 如何在运行时为Unity中的碰撞计算正确的精灵范围
ЖивопИсь?
Полагаю,надонемногорассказатьотом,каквообщепроисходитрисование。 Обычнофункцияотрисовкипредставляетизсебяциклвкоторомпроверяетсяналичиесобытий(нажатиекнопок,операциисокнами)ипроисходитрисованиеграфическихпримитивов。 Следуетпонимать,чтоговоря“примитивы”,яимеюввидудействительнооченьпростыевещи。 Есливынеиспользуетекакую-либобиблиотеку,товамсамимпридетсяреализовыватьнерер Дачтотамговорить,дажепростонарисоватьлиниютак,чтобынетеклакровьизглаз—图库社论照片 Нообэтомпопозже。
Естьещевариантиспользовать“движки”,тоестьосновудляигр,вкоторуюобычноужевстроеномногодополнительного,вродефизики,своейиерархииобъектов,интерфейсаитакдалее。 Дляданнойзадачиэтоказалосьизлишним。 Однаковпроцессеработыяпонял,чтосделатьчто-товизуальнопривлекательноенеиесооенеин Поэтомудля3дябудуиспользоватьодинизихвеликогомножества。 Нообэтомвследующейстатье,еслиейсужденобыть。
Готовимкраски

Настартеприложениянамнужносделатьнекоторыеприготовления,以及именнозагрузитьвпамять:
- Шрифты
- Изображения
- Шейдеры(возможно,вынезнаетечтоэто,нопереживайте,яподробнонаэтомостановлюсь)
Вобщемвсесводитсяктому,чтобызагрузитьуказанныефайлы,
:рифтыиспользуютсявдвухместах:длянадписейнакартеидляинтерфейса。 Инасамомделе,этоодинитотжешрифт,нотаккакдляотрисовкияиспользуюбиблиотекуSFML,адляинтерфейсаImGui,икаждаяизнихимеетсвоифункциидлязагрузкишрифтов,яделаюэтодвараза。 Весьмавероятно,чтоможнобылосчитыватьфайлодинразискармливатьегобиблиотекам,ноэтоизлишниесложности,особенноучитываяразделениеответственностиокоторомяписалвыше:отрисовщикрисуеткарту,приложениерисуетинтерфейс。
Впоследнейверсиигенераторакиконкамприсоединилисьтекстуры,которыетакжеявляютсяизображениями,поэтомусоответствиекартинка->тип_локациисмениласьнакартинка->строка,тоестьяпростохранюихпоименам。 Хотяструктурассоответствиемтипалокацийихиконкамоченьудобна,поэтомуяпростосделалеенад
Шейдеры。 Звучитстрашно,нонасамомделеэтогораздоболеепростаявещь,чемужеописанные。 ,товсеголишьтекстовойфайликсмикропрограммой,котораясодержитинструкциидлявидеокарты。 Вопределенентябудуговорить,
ВеликоеибесконечноеНичто

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

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

Далееследуетнемноготеенемное
ТочтоядальшебудуговоритьвосновномкасаетсябиблиотекиSFML,однако,этоможетварлх Совершенновнезапноможноузнать,чтототилиинойфункционал,которыйтысчитаешьбазовым,ооене。 ссовершеннонешучу。 Например,предложениедобавитьрисованиепомаскедатируется,2011年3月27日,更新日期为。 标记纹理RenderTexture,由которыенеподдерживаютантиалиасинг。 Менявсеэтонастолькорасстроило,чтоярешилуйтив3д。
Исновапростымисловами。 Решениележащеенаповерхности – сделатьнекие“слои”,которыекакиобщаякартабудутотрисовыватьсянакартинки,которыепотомбудутсобиратьсяводнуобщую。 Такможнобудетманипулироватьихпорядком,прятатьнекоторыеи,чтонемаловажно,раздельнообновл。
Получаем“примитивы”болеевысокогоуровня,которыесамирешаюткакрисоваться(ирисоватьсяливообще),рисоватьфигурыиликартинку,икакиеприменятьэффектыкитоговомурезультату。 Вкачестве“бонуса”мыполучаемпрозрачность(которуюяпереоценилпоначалу)иотсутствиеантиалиасинга,которыйделаетнашукартинкунесколькоболееуродливой。 Обэтомярасскажуещениже,апока,янадеюсь,выследитезамысльюипонимаете,чтояобъединилнашиобъектывнекие“группы”,которымиудобнееманипулироватьчемоднимбольшиммассивом。 Сейчасбудемразбиратьсявчемжеудобство。
Хлябь

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

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

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

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

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

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

Нуонесть,да。 Имнепридетсяпронегорассказать,таккакэтоможетбытьинтересно=(Еслисовсемчестно,товообщевесьэтотпроектначалсястого,чтомнезахотелосьнаписатьчто-тосиспользованиемэтойбиблиотеки,аточтоэтобудетименногенераторкарт,стало понятноужепотом。БиблиотекаимеетназваниеImGuiипредназначенанедлянаписанияпривычныхвсемприложений,аименнодля“вспомогательного”интерфейсадляигрилидругогософтасвизуализацией。
Еслинеуглубляться,тоинтереснаонасвоимподходом,аименно“ 直接模式”,тоесть,вбольшинствесвоемэлементыинтерфейсанеявляютсяотдельными объектами ,которыеживутвместесприложением,апредставляютизсебяфункции,которыевыполняютсякаждыйциклотрисовки。 Есливынепрограммировалиинтерфейсыранее,атолькочитаетемоюстатью,длявасэтодолжноказатьсясовершенноочевиднымрешением,таккакостальнаяотрисовкапримернотакиработает。 Нонасамомделеобычныебиблиотекиинтерфейсовработаютабсолютнонетак。
Собственно,интерфейссостоитизследующихчастей:
- Главноеокно,вкоторомнаходятсяразнообразныенастройки。 Подниминаходитсявсеголидациякэшаотрисовщика,以及чтениемтекущегозначенияистановко
- Информационноеокно。 Онопоявляетсякогдавключенрежимподробнойинформации。 Внемкаждыйкадрвычисляетсярегион,находящийсяподкурсороммыши,以及окнонаполноонтерсеразлично Болеетогоздесьвычисляетсянабордополнительных,“информационных”полигонов,которовеоулентотрис Таккакониполупрозрачны,этобудетвыглядетькаквыделение,
- Похожимобразомработает“Окнообъектов”,котороесодержитдеревовсехкластеров,локариеирекнана。 Онопомогаетпроверитькорректностьвсехпараметровсгенерированныхобъектовинайтистраннестнакарт
- Нуиокносимуляции,котороесодержитнастройкиэкономическоймоделииграфикрезультатов。 Да,библиотекасодержититакиеконтролы,чтоделаетееотличнымвыборомдляподобныхпрототипов。
Будущее
Честноговоря,намоментнатисанияэтойстатьи,яужеоколодвухнедельненаписалнистроеквкодавг。 Во-первых,ятальный,которыеуменяестьвпритекущемвыбор。 Атаккакязаранееподумалобархитектуре,поидее,будетнесложносменитьтехнологиюотрисовк。 Мневсегдаимпонировалнизкополигональныйстиль,поэтомуяхочупостаратьсянебольшимикееид

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