вторник, 29 апреля 2008 г.

пятница, 18 апреля 2008 г.

Система взаимодействия

Попытаемся реализовать систему взаимодействия кораблей клиент-сервер.
Ниже показана схема интерфейсов корабля.

Меню входа в игру


Общий концепт интерфейса будет таким

четверг, 17 апреля 2008 г.

Векторное движение


Реализован алгоритм векторного перемещения объекта.
Пример работы тут:
http://zed.rmap.ru/files/sample1.zip

среда, 16 апреля 2008 г.

3D координаты в Экранные

Вот и написал ф-ию перевода 3д Координат в Экранные.
public static Position2D ScreenFrom3D(Vector3D pos, Matrix4 camWorldMatrix, Matrix4 camProjectionMatrix, Matrix4 camViewMatrix, Dimension2D screenSize)
{
Position2D res = new Position2D();
Matrix4 MatrixViewWorld = camViewMatrix * camWorldMatrix;
Vector3D VectorOut = MatrixViewWorld.TransformVect(ref pos);
res.X = (int)Math.Round(((VectorOut.X / VectorOut.Z) * camProjectionMatrix.GetM(0, 0) + 1.0f) * (float)screenSize.Width / 2.0f);
res.Y = -(int)Math.Round((((VectorOut.Y / VectorOut.Z) * camProjectionMatrix.GetM(1, 1) - 1.0f) * (float)screenSize.Height / 2.0f));
return res;
}


Обратная ф-ия тут: http://galaxonline.blogspot.com/2008/04/blog-post_5151.html

Векторные перемещения


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

Статичная камера и перемещение

Сделана статичная камера и перемещение. Посмотреть пример работы можно тут:
http://zed.rmap.ru/files/mooving3d.zip

вторник, 15 апреля 2008 г.

Необходимо сделать

Перед началом реализации клиент-сервер приложения необходимо сделать некоторую часть клиента.
1. Сделать статичную камеру.
2. Сделать перемещение камеры по клику мыши.
3. Продумать и определить структуру карты галактики.

Задний фон


Вот так примерно будет выглядеть задний фон с системой частиц. Покрайней мере пока на этом остановимся.

Космичиские величины


В игре "Космические рейнджеры" использовался масштаб кораблей к планетам 3/1 (2 корабля = 1 планете). Естественно это не верно, но для динамичной Аркадо-стратегии это подойдет.

3D Движок


В Качестве 3D двигателя для проекта будет использован IrrlichtNETCP.
Адрес проекта: http://irrlichtnetcp.sourceforge.net/wiki/index.php/Main_Page

Как надо рисовать Двигатели у кароблей

Вот тут показано как надо рисовать двигатели у кароблей:

http://www.linux.org.ru/gallery/bigBng5Sv.png

Координаты

Долго бились над переводом координат из 3-х мерной системы в 2-у мерную и обратно.
И Вот наконец-то!

/// Расчет проэкции точки экрана на плоскость z=0
Matrix4 camProjectionMatrix,Matrix4 camViewMatrix,Dimension2D screenSize)
{
Vector3D vPickRayDir;
Vector3D vPickRayOrig;

Matrix4 m = camViewMatrix;
m.MakeInverse();

vPickRayDir.X = vX * m.GetM(0, 0) + vY * m.GetM(1, 0) + vZ * m.GetM(2, 0);
vPickRayDir.Y = vX * m.GetM(0, 1) + vY * m.GetM(1, 1) + vZ * m.GetM(2, 1);
vPickRayDir.Z = vX * m.GetM(0, 2) + vY * m.GetM(1, 2) + vZ * m.GetM(2, 2);

vPickRayOrig.X = camPosition.X;
vPickRayOrig.Y = camPosition.Y;
vPickRayOrig.Z = camPosition.Z;

float t = -vPickRayOrig.Z / vPickRayDir.Z;
float Px = vPickRayOrig.X + vPickRayDir.X * t;
float Py = vPickRayOrig.Y + vPickRayDir.Y * t;

return new Vector3D(Px, Py, 0);
}

Туманность


Вот красивая туманность, но её использовать не возможно из за черного фона.

Galax
Galax - космичиский симулятор, с ролевыми и экономическими элементами. В Основе игры положен сюжет космического симулятора "Космические Рейнджеры".


1. Средства разработки
1.1 Выбрано средства разработки кода Microsoft Visual Studio 2008. (www.microsoft.com)
1.2 3D Враппер IrrlichtNETCP (http://irrlichtnetcp.sourceforge.net/wiki/index.php/Main_Page)
1.3 База Данных MySQL (www.mysql.com)

2. Разработка концепции
2.1 На первой стадии разработки системы необходимо определить вид планетарно-игрового экрана. Масштабы объектов и игровую механику.



3. Необходимые инструменты для разработки


4. Клиент-Сервер (Данные и протоколы)




Солнце


Вот и определились как должно выглядеть солнце.

Создание Блога

Создан блог по разработке он-лайн игры Codename:Galax.