2016 - C# 6.0. Справочник. Полное описание языка - 6-е издание - Джозеф Албахари, Бен Албахари
Несколько книг, потому что в одной книге одна тема может быть описана лучше, а в другой - другая.
.NET очень богатая платформа. Такая же богатая, как платформа Java. В .NET входит множество технологий по каждой из которых написано ещё немало книг: ASP.NET, WPF, WCF, ADO.NET, Entity Framework, SignalR, LINQ и многое другое.
Сообщение отредактировал 8Observer8 - Воскресенье, 27 Ноября 2016, 21:09
Пробовал тестить с Unity связки: - Node.js + socket.io + JavaScript - SignalR + ASP.NET + C# - UNet (Matchmaker и Headless) - TcpSocket'ы на C# по тутору с шашками
UNet Headless пробовал запускать на VirtualBox на Mint (Ubuntu) и подсоединял клиенты на Windows по этой и этой инструкциям
Если использовать Matchmaker от Unity, то есть ограничение, что бесплатно можно подключать не более 20 человек. А если использовать только нижние уровни на диаграмме и написать свой Matchmaker, то можно залить Headless сервер на VPS, тогда ограничений нет.
Как я понял, раньше предпочитали делать сервер на C++, а сейчас скорость .NET и Node.js стали достаточно высокими, особенно, по сравнению с сетевыми задержками. Для обхода сетевых задержек есть разные способы: предсказания, интерполяция позиций и т.д. Некоторые способы описаны в книге: Многопользовательские игры. Разработка сетевых приложений и в книге Multiplayer Game Development with HTML5
Это только некоторые туторы. На самом деле их огромное количество. Ещё необходимо изучать документацию, чужие примеры, статьи, ответы на форумах и очень много практиковаться.
Хочу заметить, что приёмы сокрытия задержек, о которых я упомянул выше, актуальны для НЕпошаговых игр, а у вас будет почти пошаговая игра, это упрощает задачу.
Я для себя решил, что лучше начать тренироваться делать пошаговые игры по сети: крестики-нолики, шашки, морской бой, карточные игры и т.д. Потом, что-то более динамичное, например, змейка и танчики с мультиплеером и т.д. Пока что я ни одной из этих игр-демок не сделал, но нахожусь в активном процессе изучения и практики.
Сообщение отредактировал 8Observer8 - Суббота, 03 Декабря 2016, 23:28
Причём вторая игра довольно популярная и сделана она на Unity. Можно играть в WebGL версию или скачать клиент (что очень удобно, чтобы не ждать каждый раз скачивания, если регулярно чистишь историю браузера). Это пока первая онлайн игра, которую я нашёл на Unity WebGL.
Если игра 2D, то клиентскую часть браузерной можно делать на игровом фреймворке Phaser
Цитатаigormamedov1 ()
Посоветуйте пожалуйста хостинг для таких игр
Во время изучения можно использовать бесплатный хостинг на github, называется GitHub Pages Правда, на нём нет серверного скриптинга, базы данных и нельзя сделать исходники и контент приватными. Зато на него не ругается VK
Цитатаigormamedov1 ()
Насколько актуальны браузерные
Сейчас актуальный так же браузерные многопользовательские игры. Можно писать на Node.js + socket.io, тогда у вас и на клиенте и на сервере будет код только на JavaScript. Можно расшаривать общий код между клиентом и сервером.
гоняю кружочки в diep.io в ожидании стимовской распродажи
Я змейку гоняю в curvefever.io Коплю деньги и кристаллы на змейку-приведение или сразу на змейку-улитку, которую ещё нужно открыть, заняв первое место на Arena 3. Пока гоняю на robot'e, но приведение лучше поворачивает.
Сообщение отредактировал 8Observer8 - Суббота, 10 Декабря 2016, 15:22
Если хотите бесплатно и чтобы ссылки работали в vk.com, то можно использовать Github Pages, вот пошаговая инструкция: GitHub как хостинг для сайтов
Добавлено (10 декабря 2016, 16:43) --------------------------------------------- А если вам нужна будет серверная сторона (мультиплеер, базы данных), например, на Node.js, то heroku.com (5 бесплатных приложений) и openshift.com (3 бесплатных приложения)
Сообщение отредактировал 8Observer8 - Суббота, 10 Декабря 2016, 19:11
Собственно сам вопрос : Стоит ли и дальше упорно учить относительно низкоуровневый SFML и тот же Box2D, когда на это нет спроса на рынке труда или лучше всего пока еще осталось время начать учить Unreal Engine ?
Сложный вопрос. С одной стороны, раз у вас есть опыт с SDL, SFML и C++, то хорошо бы делать для практики какие-нибудь клоны-демки. С другой стороны, можно начать программировать на C++ в Unreal Engine или в CryEngine 5 (который тоже стал бесплатным). Либо можно начать изучать новый для себя язык C# и перейти на Unity. А ещё можно начать изучать программирование браузерных игр на JavaScript + HTML5 на <canvas> элементе для соц. сетей. на фреймворках Phaser (2D), Babylon.js (3D) и т.д. или делать свой движок на WebGL. Сейчас довольно популярны HTML5 игры с мультиплеером, например, на Node.js, тогда на клиенте и сервере будет JavaScript. Сейчас можно начать изучать перспективный язык TypeScript, который поддерживают большинство игровых HTML5 фреймворков.
Сообщение отредактировал 8Observer8 - Понедельник, 12 Декабря 2016, 12:38
Как следствие, 2D игры сделанные на обоих движках весят неприлично много даже по меркам некоторых трехмерных игр
От 25 МБайт и выше на Untiy - это сейчас мало кого пугает, даже для Android и iOS. Неприлично много - это если делать 2D игру на Unreal Engine 4. Я помню делал демку Super Mario на UE4, когда собрал в Exe, то сборка весила толи 300, толи 600 МБайт. Если CryEngine 5 позволяет делать 2D игры, то там вообще нужно включать в сборку все файлы движка целиком, а это свыше 3 ГБайт.
Сообщение отредактировал 8Observer8 - Среда, 14 Декабря 2016, 16:02
Вот этот комментарий "тут все комбинации порядковых номеров. от нуля до 3" (точнее, будущий код под ним и что там должно быть?) как влияет на результат sStringResult?
Сообщение отредактировал 8Observer8 - Суббота, 24 Декабря 2016, 16:31
falcoware, хорошо, для тройного + двойной + одинарный алфавитов - ваш подход работает. Напишите, пожалуйста, подробнее, как быть со строками произвольной длины.
Вот что сейчас выдаёт программа: abc bc acb cb bac ac bca ca cab ab cba ba a b c
Код
using System; using System.Collections.Generic;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char[] arr = { 'a', 'b', 'c' };
List<string> result = getCombinations(arr);
// Show result foreach (var item in result) { Console.WriteLine(item); }
// Delay Console.ReadKey(); }
public static List<string> getCombinations(char[] arr) { List<string> resultList = new List<string>(); string sStringResult1; string sStringResult2;
for (int ix = 0; ix < arr.Length; ix++) { for (int iy = 0; iy < arr.Length; iy++) { for (int iz = 0; iz < arr.Length; iz++) { if (ix == iy) { continue; } if (ix == iz) { continue; } if (iy == iz) { continue; }
foreach (var item in arr) { resultList.Add(item.ToString()); }
return resultList; } } }
Добавлено (24 декабря 2016, 20:13) --------------------------------------------- Rean, отличная работа! Маленькое замечание. У меня VS ругнулся на строку "if (!lStr.Contains(ch))", что не может преобразовать "char" в "string", я добавил преобразование в строку "if (!lStr.Contains(ch.ToString()))"
Сообщение отредактировал 8Observer8 - Суббота, 24 Декабря 2016, 20:14
У меня мелькнула мысль, что до нас эту задачу решали. Выяснил, что у Кнут'а есть 4-й том разбитый на части: Искусство программирования, том 4А. Комбинаторные алгоритмы , часть 1 Искусство программирования, том 4, выпуск 2. Генерация всех кортежей и перестановок Искусство программирования, том 4, выпуск 3. Генерация всех сочетаний и разбиений
Если для автора темы всё ещё актуальна эта проблема, то возможно в книге он найдёт что-то полезное для себя.
Orlangor, вы умеете создавать текстуры в Blender'е? Я имею ввиду, не выходя из Blender'а слои Diffuse Map, а так же запекать Normal Map, AO, Spacular Map? Если да, то у меня вопрос такой: можно ли в Blender создавать текстуры не хуже чем в Substance Painter? Как считаете?