Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Здравствуйте, уважаемые фрилансеры!

Несколько лет назад в качестве одного стартапа (главным программистом которого был я) разрабатывался игровой развлекательный проект. Основной платформой рассматривалась Windows, но был желателен запуск на Линукс и Маке. Поскольку в проекте обильно используется произвольная динамичная векторная 2D-графика и присутствует несложный пользовательский GUI, программа была разработана целиком на C# Windows Forms (вся графика GDI+). На Mono проверено - в X11 работает. У трезвых программистов созреет вопрос почему графика не на OpenGL? Сразу отвечу: нужно было искать/цеплять какие-то библиотеки рисования сплайнов, произвольных фигур, закрашивание радиальными градиентами, удобство перьев и кистей, и прочее и прочее. А нагрузка там не большая - в производительность все прекрасно укладывалось

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

Недавно наткнулся на довольно интересную графическую библиотеку AltSketch Vector Graphics Library (http://www.altsoftlab.com/). Она полностью написана на C#, имеет софтверный и хардверный рендер и что самое интересное - ее программный интерфейс аналогичен (схож) с System.Drawing (GDIPlus). Они даже FreeType портировали на C#, чтобы иметь меньше нативных зависимостей. Есть куча открытых расширений GUI, физика, SVG, графики и прочее; грубый и гладкий рендер, интеграции во многие игровые и графические движки (Unity, XNA, OGRE и т.д.) и стандартные GUI фрэймворки (в том числе Windows Forms).

Короче говоря, у меня тут же созрела идея возобновить проект, но теперь уже на более широком спектре платформ. Я возобновил отношения с инвесторами, расписав перспективу и она согласились на финансирование. Но сейчас (это еще на несколько месяцев) я занят в другом большом проекте, поэтому смогу выступать лишь руководителем и консультантом.

Сама реализация найденной библиотеки мне подсказала характер планируемой работы. Итак, работа поэтапная на несколько месяцев. Этапы следующие:

1. Поскольку AltSketch имеет интеграцию с Windows Forms (по сути она может быть использована вместо GDI+), то первым этапом будет перевести всю графику на эту библиотеку, не трогая интерфейс пользователя.

2. В качестве расширений у AltSketch есть GUI (на нем сделаны все примеры SDK). О его функциональности судить не могу - не было времени разобраться. Но чисто внешне, практически все, что требуется на первый взгляд там есть. Если у вас есть опыт и предложите что-то лучшее, то само собой - это приветствуется.

3. Запуск и отладка на мобильных девайсах (версии библиотеки есть под основные платформы). Пока думаю использовать XNA/MonoGame в качестве программной среды. Может быть и Unity рассмотрим.

4. Запуск и отладка на Silverlight (библиотека там тоже работает).

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

Максимальный бюджет я указал. Выбирать буду 2-3 человека. Если есть напарник или маленькая команда - это приветствуется (мне проще).

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

Можете в качестве предложений кидать мне свои мысли и в приват.

================================================================

Ответ на предложение Тюневой Елены - Unlimsoft (предложение смотрите ниже):

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

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

1. "Во-первых, мы затратим время на портирование существующего кода на AltSketch."

Исходное приложение использует очень большое количество графики GDIPlus (System.Drawing). Переписывать всю графику - это значит либо написать такой же GDIPlus интерфейс (по сути, написать AltSketch), конвертирующий команды в вызовы определенной графической системы (в Вашем варианте Unity), либо вообще переписывать всю графику - это, поверьте, очень большая задача, ибо проект развлекательно-учебный и там не одна сотня примеров.

Я немного поигрался с AltSketch и ответ очень прост: программный интерфейс библиотеки построен по принципу интерфейса System.Drawing. Более того - он практически скопирован, за исключения переименования пары типов. В качестве доказательства этого на AltSktch работает куча библиотек (именно библиотек, а не каких-то примеров), которые разработаны и работают только на System.Drawing (ZedGraph, NPlot, OxyPlot, SVG.NET, HTML Renderer и т.д.). Т.е. портирование сводится по большей части к переименованию ряда объектов. Ну, например, я заметил, что Rectangle там RectI, Size - SizeI, SolidBrush - SolidColorBrush.

2. "Во-вторых, придется полностью сравнить функционал и производительность старых наработок и новой библиотеки."

Это не наработки! Это рабочая программа! Так вот, того объема, который "летает" в AltSketch (как при софтверном, так и при хардверном рендеринге) и на половину не достигается в исходном ПО. Оно легче по графике. Но ее очень много! И много логики и математики.

3. "Так что в любом случае придется использовать MONO. И тут возникает вопрос - а зачем вообще AltSketch? Мне кажется, будет намного проще реализовать проект на Unity"

Чтобы не задавать подобный вопрос даже не нужно было знакомиться с AltSketch! Достаточно было внимательно прочитать мое задание! AltSketch - это полностью C# библиотека (и для MS .NET, и для MONO, и для Silverlight, и для мобильных платформ), которая встраивается в различные движки. В том числе и в Unity! Т.е. для своего рендера она может использовать Unity. Причем на этапе разработки совершенно не нужно использовать Unity (это тоже написано в моем ТЗ)! AltSketch в софтверном режиме летает и на WinForms (удобно для портирования, ибо часть интерфейса исходной проги построена на формах) и на Silverlight (кстати, это к вопросу о будущем XNA). Т.е. вы тупо пишете переносите код на AltSketch, а потом запустить можете в чем хотите! Хотите - в Silverlight, хотите - в Unity, хотите - на чем-либо другом! И еще интересно как вы будете работать с разным текстом (шрифтами), используя только убогие возможности Unity?! Очень много текста пишется разными шрифтами и кистями в исходной программе.

И еще: вот только не нужно мне рассказывать про "хорошую" документированность Unity и его комьюнити!!! Я просидел на нем 2 года. И 9 из 10 моих вопросов (на тему чуть сложнее "Hello world") на форуме оставались без ответа! При их размахах можно было бы писарей посадить на нормальную документацию и на форуме отвечать. Посему уже давно не пугаюсь недокументированности при большом количестве примеров, которые рассказывают порой гораздо больше, чем документация.

На будущее всем соискателям - пожалуйста, читайте ТЗ ВНИМАТЕЛЬНО!!!

10 лет назад
AlexProger
Трембач 
43 годаРоссия
10 лет в сервисе
Был
10 лет назад