Как написать мод для гта 5 рп

@Vanetti прав, так то…

Для начала, необходимо понять, осилите ли вы сами (1 человек) написать мод. Даже зная все языки, которые перечислил Vanetti (а не создатель темы), то врядли вам хватит как минимум силы воли каждый день сидеть и писать мод. У вас должны быть не мечта/желание, а цель. 

Допустим, я предложил своим двум друзьям написать мод вместе. Один хорошо разбирается в C#, а другой — в Web и SQL. Я же разбираюсь в html+css+js. Мы каждый день сидим вместе в дискорде и каждый пишет свою часть мода. Это помогает нам работать, то есть, если так можно сказать, то мы работаем, контролируя друг-друга.

Во вторую очередь, следует уже с сформированной командой сесть в диск (или если есть возможность — в реальности) и продумать мод (не до мельчайших подробностей), после чего, распределить по инструментам разработки и возможностям сами обязанности. То есть, например, за серверную часть (в нашем случае — C#) отвечает один, за клиентскую (в данном случае только интерфейс) — второй, а за сайт/форум и связь игры с сайтом — третий. 

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

И только потом — приступаем к написанию мода. Разумеется, мы не всезнайки, и не можем знать язык полностью (если бы знали, то уже давно работали бы в каких-то крупных компаниях), по-этому советую всегда в браузере иметь под рукой wiki Рейджа. Если что то не знаете — посмотрите в вики.

Это и есть — написание мода по полочкам, только вот, в моём варианте. Советую на будущее не писать «поискал на форуме, не нашел похожего». Похожего, что написали Вы, к сожалению, а может и к счастью, не форуме действительно нет. По-крайней мере, на русско-язычном форуме, не знаю, что там на основном.

Привет. Меня зовут Пейдж. В ближайшее время я буду твоим персональным наставником. Ты хочешь научиться создавать скрипты для GTA 5 на языке C#? Ты пришёл по адресу.

Знай, что я не смогу дать тебе все навыки владения языком. Но не беспокойся, для этого существует множество различных туториалов, книг, видео-лекций. Но как и в случае с иностранными языками, чтобы понять язык программирования, необходимо использовать его на практике. Поэтому мы будем писать с тобой скрипты для GTA 5.

Какие скрипты?

Какие ты захочешь. Только не читерские. Я, конечно, могу взломать любую защиту, но этому учить тебя не буду, хорошо? Мы с тобой займемся скриптами для одиночной игры. Ты познакомишься с внутренним функционалом GTA 5, который довольно обширен. Он настолько огромен, что ещё не был до конца изучен, представляешь?

Но не бойся. Всё, что нужно для создания полноценного мода, уже давно известно. С этим не возникнет никаких проблем.

Прежде, чем приступить, тебе нужен софт. Скачай и установи

Visual Studio

. Именно в этом редакторе мы создадим с тобой первый скрипт.

Установил? Хорошо, открывай программу. Не пугайся, найди в верхнем углу пункт «Файл» — «Создать» — «Проект». В появившемся окне найди раздел «C#», «Классическое приложение Windows», «Библиотека классов (.NET Framework»). Нажми ОК.

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Перед тобой открылась рабочая область и начальные строчки кода. Но к этому мы вернемся позже. В правой колонке найди «Обозреватель решений». Там будет отображаться созданный тобою проект. Найти там пункт «Ссылки», нажми на него правой кнопкой мыши — «Добавить ссылку». Нажми кнопку обзор и добавь файл ScriptHookVDotNet2.dll. Он должен быть установлен у тебя в игре, если ты всё же решил заниматься скриптингом :)

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Так же к проекту необходимо подключить стандартную библиотеку Windows — System.Windows.Forms

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Теперь необходимо добавить пространство имен в начало скрипта:

using GTA;using GTA.Native;using GTA.Math;using System;using System.Collections.Generic;using System.Drawing;using System.Reflection;using System.Windows.Forms;

В наш уже готовый код допишем настройки, чтобы наш класс унаследовал GTA.Script:

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Теперь добавим в наш код конструктор. Конструктор запускается один раз при запуске игры, поэтому добавляй туда только то, что должно быть запущено один раз. Давай впишем туда KeyDown события:

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Как видишь, редактор подчеркивает эти строчки красным, якобы там ошибка. Ошибка в том, что мы только что объявили события, но не вписали их в код. Давай это исправим:

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Ошибка исправлена. Теперь этот код можно запустить в игре. Но ничего не произойдет, потому что он пустой. Давай добавим что-нибудь. Например… Дадим игроку 5 звезд розыска при нажатии определенной клавиши. Что для этого нужно? Нам необходимо перехватить нажатие клавиши! Для этого мы и добавили событие KeyDown: оно срабатывает при каждом нажатии клавиш на клавиатуре, а класс KeyEventArgs содержит все данные о нажатой клавише. С помощью оператора IF мы можем узнать, нажата ли нужная нам клавиша, и если да, то мы выдадим игроку звезды розыска.

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Теперь усложним наш скрипт. Если игрок уже выдал себе 5 звезд розыска и пытается выдать их ещё раз, уведомим его об этом сообщением на экране. Вывести текст на экран можно командой UI.ShowSubtitle(«Твой текст»);

Обрати внимание, GTA 5 поддерживает стандарт Unicode, это значит, что ты можешь писать на русском языке без всяких проблем.

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Наш скрипт готов. Найди в верхнем меню пункт «Сборка» — «Собрать решение».

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Если всё прошло успешно, в окне ты найдешь путь к своему dll файлу. Если в процессе сборки вылезли ошибки, скидывай скриншот в комментарии, я попытаюсь тебе помочь.

Скрипт необходимо положить в папку Scripts, которая находится в корневой папке GTA 5. Если её нет, то просто создай и положи туда свой скрипт.

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Давай зайдем в игру, и убедимся, что наш скрипт работает. Звезды розыска выдаются на английскую клавишу H, ты же можешь выбрать любую другую на своё усмотрение.

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Создание скриптов в GTA 5 на C#: c чего начать? Часть первая

Поздравляю! Ты сделал свой первый скрипт. Изучай особенности C#, чтобы в полной мере владеть им, и читай мои гайды по скриптингу в GTA 5. В некоторых из них ты можешь найти уникальное задание, за выполнение которого сможешь получить различные плюшки на этом сайте. Желаю удачи!

Всем привет, не нашел подобных статей на этом портале, и решил сделать свою :)

Сегодня я постараюсь вам показать как писать клиентскую часть для RAGEMP на C#
Сегодня мы создадим и настроим C# проект для разработки клиентской части, а именно подключим сборку rage-sharp.dll для подсказок и копирования всех *.cs файлов после успешного билда в папку client_packages/cs_packages

Что вам понадобиться, для того чтобы понять этот урок


1- Мозг
2- Прямые руки (но это не обязательно)
3- Ну и желательно не быть Питонистмом
4- Также предполагается что до этого вы прошли два предыдущих урока

Предыдущие Уроки

  1. Настройка окружения
  2. Настройка серверной части

Создания и настройка проекта где будем хранить все исходники
1-В папке с сервером создайте папку src(source) где будут храниться все исходники нашего мода
2-Внутри папки src создайте папку client где будут храниться исходники для клиента
3-Дальше откройте терминал и перейдите в src, и напишете команду «dotnet new classlib -f netcoreapp2.1» где аргумент -f указывает на версию .net которая будет использоваться в этом проекте в нашем случае это .NET Core 2.1
4-Дальше вам надо найти сборку rage-sharp.dll которая лежит где-то в папке dotnet клиента ragemp, в моём случае это «F:RAGEMPdotnetrage-sharp.dll» и скопировать её в папку libs которую надо создать рядом с папкой client
5-Теперь добавьте этот код в файл *.csproj

XML:

<ItemGroup>
    <Reference Include="rage-sharp">
        <HintPath>../libs/rage-sharp.dll</HintPath>
    </Reference>
</ItemGroup>

6-После этого добавьте этот код в тот же *.csproj файл (Этот код берёт все *.cs файлы из client и копирует их в папку с клиентскими скриптам которые в итоге будут компилироваться на стороне клиента, если хотите -> могу как-то сделать урок где разберу основные команды msbuild и покажу как писать простые конфигурации)

XML:

<Target Name="CopyBuildFiles" AfterTargets="build">
    <ItemGroup>
        <AllOutputFiles Include="./**/*.cs" Exclude="./obj/**/*.*;./bin/**/*.*" />
    </ItemGroup>

    <Copy SourceFiles="@(AllOutputFiles)" DestinationFiles="@(AllOutputFiles->'../../client_packages/cs_packages/%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="false" />
</Target>

Создания первого скрипта
1-Рядом с файлом *.csproj создайте файл с любым именем (например: Client.cs)
2-И вставьте туда этот код

C#:

using RAGE;

namespace Client
{
    public class Client : Events.Script //Для того чтобы указать что это скрип надо унаследовать этот класс от абстрактного класса RAGE.Events.Script
    {
        public Client()
        {
            Events.OnPlayerSpawn += OnPlayerSpawn; //Здесь мы добавляем Обработчик события спавна игрока
        }

        public void OnPlayerSpawn(Events.CancelEventArgs cancel) //Этот метод будет обрабатывать сам спавн игрока
        {
            Chat.Output("Player successfully spawned"); //Этот метод выводит сообщение в дефолтный чат
        }
    }
}

3- Теперь откройте терминал -> перейдите в папку src/client -> и запустите dotnet build после чего файл Client.cs должен был появиться в папке client_packages/cs_packages
4- А теперь запустить сервер и подключитесь к нем, если все ОК то чат должен выглядеть примерно ТАК

]

Взаимодействие между Сервером и Клиентом

В этом разделе мы создадим несколько клиентских и серверных событий, а именно ->

  • Для сервера это будет событие, которое будет создавать машину и помещать туда игрока.
  • А для клиента это будет событие, которое будет просто выводить сообщение в чат

1- Откройте файл Server.cs который создали ранее в одном из предыдущих уроков и вставьте туда этот код

C#:

[RemoteEvent("Vehicle:Create")]
public void CreateVehicle(GTANetworkAPI.Player player, string hash, int color1 = 0, int color2 = 0)
{
    VehicleHash vehicleHash = NAPI.Util.VehicleNameToModel($"{hash}");

    var vehicle = NAPI.Vehicle.CreateVehicle(
        vehicleHash,
        player.Position,
        player.Rotation,
        color1,
        color2);

    player.SetIntoVehicle(vehicle , 0);

    player.TriggerEvent("Chat:Push" , $"Successfully spawned {hash} car!"); // Этот метод тригерит событие на клиенте (первый аргумент это имя события)
        }
}

2-Откройте файл Client.cs который создали ранее и вставьте туда этот код

C#:

using RAGE;

namespace Client
{
    public class Client : Events.Script
    {
        public Client()
        {
            Events.Add("Chat:Push" , PushMsgToChat); //Регистрируем событие
            Events.OnPlayerSpawn += OnPlayerSpawn;
        }

        public void OnPlayerSpawn(Events.CancelEventArgs cancel)
        {
            Chat.Output("Player successfully spawned");

            RAGE.Events.CallRemote("Vehicle:Create" , "Issi5" , 1 , 5); // Этот метод тригерит событие на сервере (первый аргумент это имя события)
        }

        public void PushMsgToChat(object[] args)
        {
            Chat.Output($"{args[0]}"); // В массиве args лежат все аргументы переданные с сервера
        }
    }
}

Если все ОК, то при спавне на карте должна спавниться машина

Буду надеяться что я вам как-то помог, также желаю вам удачи в жизни и разработке
Если есть какие-то пожелание, рекомендации, или замечания, то пишите их ниже в ответах к данному посту
Также вы можете писать свои отзывы в комментариях под этим уроком

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

GTAV.PS4.HD_SCREENCAPS.PROLOGUE.1.jpg

Требования
Установленные файлы сервера (Rage MP updater)
Базовые знания программирования на JavaScript / NodeJS
Среда разработки или текстовый редактор на ваш выбор (например, Visual Studio Code или Notepad ++).

Запуск сервера
При загрузке Rage MP updater и его запуске вы получите файлы сервера. Имя папки будет называться server-files. Откройте папку, и вы найдете это:
1591022895596.png
client_packages: папка, в которой клиентские сценарии находятся и загружаются клиентом. (Клиентская часть позволяет вам рисовать GUI или выполнять CEF)
packages: папка, в которой серверные сценарии находятся и загружаются сервером. (Серверная часть позволяет вам управлять игроком и создавать свой собственный мир)
maps: папка, в которой файлы карт (в формате JSON) загружаются в игровой мир.
plugins: позволяет загружать пользовательские плагины .dll в сервер.
conf.json: содержит конфигурацию сервера в формате JSON. Подробнее о настройках сервера читайте здесь.
server.exe: исполняемый файл сервера, который при запуске запускает игровой сервер.

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

Создание вашего первого ресурса
Rage Multiplayer содержит скрипты двух типов:

Клиентские скрипты

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

Серверный скрипты

. На стороне сервера вы можете манипулировать самим сервером, например, управлять всеми игроками, транспортными средствами, маркерами и т. д.
Мы создадим наш первый серверный ресурс и посмотрим, как он работает в игре.

Прежде всего, зайдите в пакеты и создайте папку (название игрового режима, что угодно).

Добавляем серверные команды
В папке с режимом игры создайте файл index.js. После этого откройте файл и напишите следующее:

JavaScript:

//init Commands file
require('./commands.js')

Теперь сохраните и закройте файл, затем создайте другой файл с именем commands.js и откройте его.

Добавьте эти простые команды в ваш файл:

JavaScript:

mp.events.addCommand('hp', (player) => {
    player.health = 100;
});

mp.events.addCommand('armor', (player) => {
    player.armour = 100;
});

mp.events.addCommand('kill', (player) => {
    player.health = 0;
});

Другие примеры команд можно посмотреть в этом уроке.
Теперь мы создали простой исходник с 3 основными командами. Тот, который дает здоровье, тот, который дает броню, и тот, который убивает вас.

Теперь сохраните файл и закройте его.

Серверные события
Вы заметили что-то не так с кодом, который мы только что написали? Если нет, позвольте мне дать вам подсказку. Если вы активируете команду kill, это означает, что она убьет игрока, но вернёт ли вас обратно? У меня есть решение для вас!

Создайте файл JSON и назовите его spawn_points.json, а затем добавьте следующий код:

JSON:

{
    "SpawnPoints": [
        { "x": -425.517, "y": 1123.620, "z": 325.8544 },
        { "x": -415.777, "y": 1168.791, "z": 325.854 },
        { "x": -432.534, "y": 1157.461, "z": 325.854 },
        { "x": -401.850, "y": 1149.482, "z": 325.854 }
    ]
}

Готово? Теперь сохраните его и закройте.

Создайте новый файл с именем events.js и добавьте следующий код:

JavaScript:

let spawnPoints = require('./spawn_points.json').SpawnPoints;

mp.events.add('playerDeath', (player) => {
    player.spawn(spawnPoints[Math.floor(Math.random() * spawnPoints.length)]);
    player.health = 100;
});

Мы определили наши точки спавна, в которых мы хотим, чтобы игрок появился, и затем мы добавили событие, которое сработает когда игрок умирает. Когда это событие вызывается, игрок заспавнится в одной из указанных точек. Также не забудьте восстановить здоровье игрока снова до 100, иначе он может телепортироваться, будучи мертвым, к точке возрождения.

ВАЖНО: не забудьте подключить events.js в index.js.

Собираем все вместе
В итоге ваш файл index.js должен выглядеть так:

JavaScript:

//init Commands file
require('./commands.js')

//init Events file
require('./events.js')

Теперь сохраните все, затем запустите свой сервер и протестируйте то, что вы только что написали!

Надеюсь, вам понравился ваш первый скрипт в RAGE: MP. Мы обязательно создадим для вас дополнительные туториалы, чтобы вы могли узнать больше. Удачной игры!

Другие уроки которые могут Вас заинтересовать

  • Делаем бинды для кнопок
  • Создание команд / работа с командами RAGE MP
  • Работа с файлами
  • Работа с браузером CEF
  • Подключение к MySQL

Цитата Nazar_Conors ()

Ребятки, вообщето я здесь собрался писать сразу с Text Draw, тоесть не на диалогах всё.
Ктому же версия 0.3.7, еще нету уроков на подобе вот этого.
Если вы не хотите, это не значит что другие не хотят.

А, собственно, где тут отличие от предыдущих версий? Правильно, их нет.
Даже разработчик сампика это подтверждает:

Цитата

— Over 500 new object IDs added, including stunt objects and land objects.
— Interface font size changing.
— Some new variations of the San Andreas cop skins.
— Server control of the car doors and windows.
— The ability to add sirens for unmarked cop cars.
— A simple static actor system to more easily create actor NPCs for shops.
— Many bug fixes and new scripting features.

Я просто тебе выскажу мнение, как человек, который в pawn ушел не намного дальше среднестатистического хелловордера:
Это муть. Стоит рассматривать что-то более существенное, чем разбор интуитивно понятного файла человеку, который хоть чуть чуть владеет логикой и англ.языком.
Давай что то посущественнее и более объёмно, чтоль. Ябпочитал.

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

* Вызову нативных функций;
* Знакомству с векторами: что это, как с ними работать и как написать с их помощью простенький спавнер автомобилей;
* Как проводить различные манипуляции с автомобилем с помощью скрипта;

Если будут вопросы по данному материалу, ты можешь обращаться в комментарии под этим руководством!

В игре свыше 5 тысяч различных функций, которые можно использовать в скриптинге. Все они представлены в виде так называемых хэшей. Для удобства им были придуманы читабельные названия. ScriptHookVDotNet уже имеет встроенные функции, но далеко не все из них были добавлены.

Alexander Blade, создатель ScriptHookV, собрал все функции в едино, их можно найти, перейдя по этой ссылке. Мы с редакцией LibertyCity работаем над собственной базой функций и в будущем обязательно представим её пользователям.

Эти функции предназначены для использования в C++. Но как написать их на языке C#? Довольно просто:

GTA.Native.Function.Call(GTA.Native.Hash._НАЗВАНИЕ ФУНКЦИИ, ПАРАМЕТРЫ);

Например, отключить свет во всем штате Сан Андреас можно функцией World.SetBlackout(true);

А можно вызвать её таким образом:

GTA.Native.Function.Call(GTA.Native.Hash._SET_BLACKOUT, true);

Интересный факт: данная функция была добавлена в игру с обновлением «Ограбления» и используется в ограблении Humane Labs. Данная функция полностью отключает все световые эффекты на объектах, машинах и персонажах, создавая самую натуральную темноту.

Создание скриптов в GTA 5 на C#: c чего начать? Часть вторая

Векторы

Для определения позиции в GTA 5 использует векторы. Существует два типа векторов: Vector2 и Vector3. Vector3 используется для определения позиции в пространстве и состоит из трёх координат: X, Y и Z . Vector2 определяют позицию экрана и состоит из двух параметров: X и Y. Пока что не будем вдаваться в подробности Vector2, а сразу перейдем к примеру использования Vector3, чтобы вам было понятнее. Например, я хочу создать автомобиль в пяти метрах от игрока. Для этого мы получим позицию игрока, прибавим к координате Y 5 игровых метров и создадим автомобиль в этой позиции.

var position = Game.Player.Character.GetOffsetInWorldCoords(new Vector3(0, 5, 0));

Game.Player.Character — ваш персонаж. Более подробно об её использовании мы поговорим в другой части нашего урока. В position записывается наш вектор с позицией.

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

var heading = Game.Player.Character.Heading — 90;

Теперь создаем на этих координатах наш автомобиль:

var vehicle = World.CreateVehicle(VehicleHash.Dubsta, position, heading); // создаем машину под названием Dubsta

Манипуляции с автомобилем (и не только)

Создавая любой игровой предмет в игре, его данные записываются в переменную — так называемый хендл. Говоря простым языком — мы можем легко выделить предмет и манипулировать этим предметом.

Возьмем в пример автомобиль, который мы создавали раннее.

var vehicle = World.CreateVehicle(VehicleHash.Dubsta, position, heading);

Данные об автомобиле были записаны в переменную vehicle. Вы можете дать переменной любое имя. Используя эту переменную, мы можем совершать различные действия с этим автомобилем. Например, я его взорву. :)

GTA.Native.Function.Call(GTA.Native.Hash.EXPLODE_VEHICLE, vehicle, true, true);

Первый параметр — хэндл нашего автомобиля
Второй параметр — звук взрыва (true — звук есть, false — звука нет)
Третий параметр — видимость эффекта (true — видимый взрыв, false — невидимый взрыв).

Всё это я посмотрела в базе от Alexander Blade. Правда она на английском, поэтому базовые владения английским языком (или переводчиком) будут кстати. Я и администрация сайта работаем над русификацией базы и уведомим тебя и остальных пользователей, когда она будет готова.

Ожидайте следующую часть урока! Добавьте меня в друзья, чтобы не пропускать новых руководств. Удачи с освоением скриптинга!

NurFO. Вообще для игр самый лучший язык программирования — C++. Он самый быстрый. На нем ни одна игра тормозить не будет. Даже игрушки, собранные на C++ не будут так сильно тормозить на Pentium 4 с видеокартой 256 Mb 64 бит, как например собранные на Basic’е. Вообщем для игр хорошо подойдет C++. Он лучше всего.
Второе, GTA V собрана с использованием DirectX. DirectX лучше всего подходит для игр. Я даже сделал свою игру типа Counter Strike на C++ с использованием
C++ и DirectX. Там надо было в орлов из ружья стрелять. Игра была трехмерная. И также написал мод для нее — новое оружие.
В общем, как это делается:
Сначала на языке программирования пишут игру. Затем также пишут еще один файл исходного кода.
Это может быть звук, текст, миссия, оружие, автомобиль и.т.д. И вставляют в папку с игрой.
Ну например, папка Gta Vice City User Files для всякой ерунды Gta. В Gta Vice City запрограммировано так, что папка Gta Vice City User Files для песен и остальных файлов, и если игрок кинет какую-нибудь песню туда, ее надо воспроизвести по радио. Ваша песня — уже мод.
Видите, как все просто!!! Вы все поняли?
Но вам не понять всех тонкостей разработки игр, пока вы сами не начнете этим заниматься.

Добавлено через 1 минуту
DirectX — графическая библиотека.
Все компьютерные игры создали там.

Добавлено через 13 минут
Если вы хотите заниматься разработкой трехмерных(и двумерных) игр, вам понядобятся:

1) Мозги (судя по такому интересному вопросу, они у вас есть, и даже много)

2) Язык программирования (C++, как я советовал)

3) Оконная библиотека (WinAPI — Виндовская, и еще потому что игры DirectX только на WinAPI пишут)

И еще кое-что (на всякий случай, если вы хотите создавать крупные, красивые и стоящие игры):

1)3D-аниматор — для создания 3D-объектов(трехмерных, типа людей, машин, зданий, деревьев и.т.д. (3D-max — лучший для игр, лучше чем Blender)

2)Хороший Paint (на всякий случай)

3) Редактор текстур (картинок) (Corel Draw или Photoshop(лучший в мире))
Текстурой может плслужить небо, окна для зданий, земля и.т.д.

Добавлено через 3 минуты
Главное, хорошо освойте основы C++, от «Hello World» до классов и структур (и достаточно), в WinAPI достаточно лишь создать простое окно и функции WM_CREATE и WM_COMMAND, а дальше не обязательно, и DirectX — для 3D-объектов и эффектов.

Добавлено через 3 минуты
Книги:
По C++ — Бъярн Страуструп
По WinAPI — статья «Основы программирования Win32 API»
По DirectX — «Введение в программирование трехмерных игр Direct3D» Франка Луна

Добавлено через 4 минуты
Желаю огромной удачи!!! Если будут вопросы — пишите мне. Я сталкивался со всеми проблемами с которыми сталкивается начинающий разработчик и решал их.
Так что, обращайтесь, всегда рад помочь. Тем более что сам таких не встречал. Моим одноклассникам вообще ничего не нужно. А вы молодец!!!

Добавлено через 3 минуты
Да, и ещё, есть среда разработки программ на C++. Ну редактор C++ программ — DevC++. Просто скачайте DevC++ и все. Там ничего дополнительного как в других не нужно. Там уже все готоао и встроено.
Компилятор и отладчик уже там встроены.
Ну все!!! Успехов и больших достижений вам!!!

Добавлено через 1 час 47 минут
Да и кстати, знание алгебры с геометрией может пригодится.

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

Понравилась статья? Поделить с друзьями:
  • Как написать мобильное приложение на java
  • Как написать многозначное слово
  • Как написать многое другое
  • Как написать много символов
  • Как написать много раз я тебя люблю