Полностью согласен с вами, Valve идут в правильном направлении и я уверен, что они перевернут весь GameDev благодаря Source 2 и SteamOS.
Только вот это пока вилами по воде Программистам есть хочется именно сегодня, а не потом. Ситуация такая, что вакансии в основном на Unreal и Unity. Я думаю, конторы не особенно любят переходить на другой движок. Это нужно переучивать или перенабирать команду. Время - деньги.
Сообщение отредактировал 8Observer8 - Вторник, 29 Марта 2016, 17:38
Я делал так: переместил все нужные объекты мелкие объекты на одну сцену в блендере, выделил их все в режиме "Object Mode", объединил их в одну модель (команда "Join", по-моему, клавиши Ctrl+J) Когда все объекты преставляют одну модель, то можно сделать для них общий Unwrap в режиме "Edit Mode"
Мне понравился профит от этого, что для кучи мелких объектов не нужно делать кучу мелких файлов с текстурами. Наверное, это ещё лучше для производительности. Для кучи мелких файлов в Unity ещё есть Sprite Packer: http://docs.unity3d.com/Manual/SpritePacker.html Поэтому, мне кажется, особой нет разницы: что на одном атласе делать, что потом применить Sprite Packer для кучи файлов. Я не уверен, если что, то поправьте или дополните.
Нет ли у Flash возможности игры по сети? За одним комьпьютером очень мало возможностей поиграть с друзьями. Было бы веселее общаться по скайпу и играть.
Посмотрел в первом сообщении темы: RPG Maker MV. Возможно у него встроенный мультиплеер, как у Unity. Сейчас многие движки имеют поддержку сети. Так-то да, нужет специалист/программист в этом движке.
Сообщение отредактировал 8Observer8 - Четверг, 31 Марта 2016, 15:38
"что стоит учить" зависит оттого какой движок вы выбрали, какой язык программирования, какие игры решили делать: PC, браузерные, мобильные, консольные, VR и т.д.
Нужно изучать: книги, туториалы, видео курсы, статьи, чужие игры и т.д. Делать свои игры, выкладывать их на свой сайт и на форум для поиска багов и советов от более опытных товарищей
if (!empty($_POST["str"])) { $str = $_POST["str"]; echo "Ok, we get: ".$str; } else { echo "Error: cannot get str"; }
Добавлено (29 декабря 2015, 21:37) --------------------------------------------- Не получилось так как я выше написал. Опять из редактора приходит строка от сервера, а когда собираю в WebGL, то приходит пустая строка. Я нашёл такую же проблему, то там человек отправляет CORS вместе с данными.
Добавлено (29 декабря 2015, 22:47) --------------------------------------------- И если задавать CORS в C# скрипте - тоже не катит:
Код
using UnityEngine; using System.Collections; using UnityEngine.UI; using System.Collections.Generic;
public class UIManager : MonoBehaviour { public InputField output;
public void SaveStrOnClick() { StartCoroutine("SaveStr"); }
IEnumerator SaveStr() { WWWForm form = new WWWForm();
Добавлено (29 декабря 2015, 23:40) --------------------------------------------- Я решил проблему! Вместо Google Drive Hosting я отгрузил на другой бесплатный хостинг.
Вот мои скрипты:
Unity side:
Код
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class UIManager : MonoBehaviour { public InputField output;
public void SaveStrOnClick() { StartCoroutine("SaveStr"); }
IEnumerator SaveStr() { WWWForm form = new WWWForm(); form.AddField("str", "Hello"); WWW www = new WWW("http://dev3dapps.freeoda.com/unity/Polyglot/database.php", form); yield return www; output.text = www.text; } }
if (!empty($_POST["str"])) { $str = $_POST["str"]; echo "Ok, we get: ".$str; } else { echo "Error: cannot get str"; }
Добавлено (04 апреля 2016, 17:04) --------------------------------------------- Вариант ASP.NET и Unity (ПК клиент). Из скрипта на Unity отправляю имя "Ivan", а с сервера ASP.NET возвращается "Hello, Ivan"
P.S. Лично для меня удобнее использовать ASP.NET, так как это тоже C# и не нужно изучать новый язык (то есть PHP). Вместо MySQL использую SQLite в связке с ASP.NET, что тоже удобно, так как на ПК и андройде можно использовать SQLite, значит, не нужно пока изучать MySQL. К тому же, скорее всего, на всех платформах можно использовать LinqToSql, что удобнее чистого SQL и единообразно
Добавлено (05 апреля 2016, 18:47) --------------------------------------------- Хотя с другой стороны изучать PHP и MySQL тоже интересно и полезно. Я сейчас делаю на MySQL регистрацию и логин с клиента на Unity
На Books.ru, кстати, появилось русское издание 2016 года (http://www.books.ru/books/sheidery-i-effekty-v-unity-kniga-retseptov-4320119/?show=1).
Эта книга уже давно появилась (на русском в 2014). Это перевод этой книги 2013 года. То что там написано 2016 год - это говорит только о том, что выпустили новую партию книг (точно таких же, как в 2014, ну может какие-то опечатки исправили)
Цитатаphbelov ()
Unity 5.x Shaders and Effects Cookbook - Packtpub - Alan Zucconi, Kenneth Lammers
Это уже новая книга по Unity5. Оригинал вышел в феврале 2016. Перевод будет не раньше, чем через год
Добавлено (06 апреля 2016, 10:44) --------------------------------------------- Добавил вышедшие книги на английском, переводов которых ещё нет:
Я бы прикупил, но по нынешнему курсу, жаба удушит покупать книгу объёмом методички
Допустим, что мы покупаем 20 книг в формате PDF на 100 человек. Каждая книга стоит 500 рублей. Всего нужно заплатить 20 * 500 = 10000 рублей. На 100 человек - это 10000 / 100 = 100 рублей
Но там есть и толще. Тем более, что можно купить 20 книг и каждый заплатит всего по 100 рублей. Правда, 100 человек вряд ли наберём. Пусть даже 20 человек, но по 500 рублуй, а не 20 * 500 = 10000 рублей за все книги
Сообщение отредактировал 8Observer8 - Среда, 06 Апреля 2016, 16:41
Временно скопирую сюда список книг, потом оформлю со ссылками на исходники к книгам в первом сообщении темы
2016 - Unity.5.x Shaders and Effects Cookbook 2016 - Unity 5.x Game AI Programming Cookbook 2016 - Learning C# by Developing Games with Unity 5.x - Second Edition 2015 - Unity Virtual Reality Projects - Jonathan Linowes 2015 - Unity UI Cookbook - Francesco Sapio 2015 - Unity in Action Multiplatform Game Development in C# with Unity 5 1st Edition 2015 - Unity AI Game Programming - Second Edition - Ray Barrera et al 2015 - Unity 5 Game Optimization - Chris Dickinson 2015 - Unity 5 for Android Essentials - Valera Cogut 2015 - Unity 2D Game Development Cookbook - Claudio Scolastici 2015 - Simon Jackson - Unity 3D UI Essentials 2015 - Learning Unity iOS Game Development - Kyle Langley 2015 - Learning Unity Android Game Development - Finnegan 2015 - Learning C Sharp Programming With Unity 3D - Alex Okita 2015 - Getting Started with Unity 5 - Dr Edward Lavieri 2015 - Extending Unity with Editor Scripting - Angelo Tadres 2015 - Building Levels in Unity - Volodymyr Gerasimov 2015 - Building an FPS Game with Unity - John P. Doran 2015 - Building a Game with Unity and Blender 2015 - August 31st - Oculus Rift in Action 1st edition - BinanGotit 2015 - Animation Essentials - Alat Thorn 2015 - 02 - Mastering Unity Scripting - Alan Thorn 2014 - Unity Game Development Scripting - Kyle D'Aoust 2014 - Unity Game Development Blueprints - John P. Doran 2014 - Unity AI Programming Essentials - Curtis Bennett, Dan Violet Sagmiller 2014 - Unity 2D Game Development - Dave Calabrese 2014 - Mastering Unity 2D Game Development - Simon Jackson 2014 - Learning Unity Physics - K. Aava Rani 2014 - Learning Unity 2D Game Development by Example - Venita Pereira 2014 - Introduction To Game Design, Prototyping, And Development 2014 - C# Game Programming Cookbook for Unity 3D - Jeff Murray 2014 - Beginning 3D Game Development with Unity 4, 2nd Edition 2013 - Unity Shaders and Effects Cookbook - Kenneth Lammers 2013 - Unity Multiplayer Games - Alan R. Stagner 2013 - Learning C Sharp by Developing Games - Terry Norton 2013 - Alan Thorn - Learn Unity for 2D Game Development 2012 - Unity iOS Game Development Beginners Guide - Gregory Pierce
Сообщение отредактировал 8Observer8 - Пятница, 08 Апреля 2016, 11:55
# add-pixels-to-tiles v1.0: Python-fu plugin for GIMP 2.8 # Copyright Ivan Enzhaev (8Observer8) [http://ivan.enzhaev.name], 2015 # Licence GPL-2 # Installation: put the file into /GIMP 2/lib/gimp/2.0/plug-ins
from gimpfu import * import os
def python_fu_add_pixels_to_tiles(tile_size = 16): # Get image image = gimp.image_list()[0] # Get drawable drawable = pdb.gimp_image_get_active_drawable(image) # Get width and height width = pdb.gimp_image_width(image) height = pdb.gimp_image_height(image)
# Right x = 17 y = 2 spacing = 5 y_counter = 0
while y < height: while x < width: # Get color color = pdb.gimp_color_picker(image, drawable, x, y, FALSE, FALSE, 0) # Set end point ctrlPoints = [x+1,y,x+2,y] if color.a == 1: # Set color pdb.gimp_context_set_foreground(color) # Draw points pdb.gimp_pencil(drawable, 4, ctrlPoints) x = x + spacing + tile_size x = 17 if y_counter < tile_size: y = y + 1 else: y = y + spacing y_counter = 0
# Top x = 2 y = 2 spacing = 5 x_counter = 0
while x < width: while y < height: # Get color color = pdb.gimp_color_picker(image, drawable, x, y, FALSE, FALSE, 0) # Set end point ctrlPoints = [x,y-1,x,y-2] if color.a == 1: # Set color pdb.gimp_context_set_foreground(color) # Draw points pdb.gimp_pencil(drawable, 4, ctrlPoints) y = y + spacing + tile_size y = 2 if x_counter < tile_size: x = x + 1 else: x = x + spacing x_counter = 0
# Left x = 2 y = 2 spacing = 5 y_counter = 0
while y < height: while x < width: # Get color color = pdb.gimp_color_picker(image, drawable, x, y, FALSE, FALSE, 0) # Set end point ctrlPoints = [x-1,y,x-2,y] if color.a == 1: # Set color pdb.gimp_context_set_foreground(color) # Draw points pdb.gimp_pencil(drawable, 4, ctrlPoints) x = x + spacing + tile_size x = 2 if y_counter < tile_size: y = y + 1 else: y = y + spacing y_counter = 0
# Down x = 2 y = 17 spacing = 5 x_counter = 0
while x < width: while y < height: # Get color color = pdb.gimp_color_picker(image, drawable, x, y, FALSE, FALSE, 0) # Set end point ctrlPoints = [x,y+1,x,y+2] if color.a == 1: # Set color pdb.gimp_context_set_foreground(color) # Draw points pdb.gimp_pencil(drawable, 4, ctrlPoints) y = y + spacing + tile_size y = 17 if x_counter < tile_size: x = x + 1 else: x = x + spacing x_counter = 0
register( "python_fu_add_pixels_to_tiles", "Add a few pixels to tiles", "Add a few pixels to tiles", "Ivan Enzhaev (nickname: 8Observer8; email: 8observer8@gmail.com)", "Ivan Enzhaev (nickname: 8Observer8; email: 8observer8@gmail.com)", "8/18/2015", "AddPxToTiles", "*", [ (PF_INT, "tile_size", "Tile Size", 16) ], [], python_fu_add_pixels_to_tiles, menu="<Image>/Filters/Map", )
main()
Для установки, скрипты нужно поместить в директорию: /GIMP 2/lib/gimp/2.0/plug-ins После копирования, скорее всего, нужно перезапустить GIMP
Первый скрипт появится в меню: Filters -> Map -> TileSet -> "Add spacing and margin" Второй скрипт появится в меню: Filters -> Map -> AddPxToTiles
Решение показано на рисунке:
Добавлено (08 апреля 2016, 23:12) --------------------------------------------- По поводу моего сообщения выше: проблема с просветами и бликами на границе тайлов/спрайтов. И о её решении с помощью добавления одного или двух пикселей по периметру тайла/спрайта
Оказывается (сам сегодня обнаружил), проблема решается проще, чем писать свой скрипт на Python для GIMP. Блики и просветы можно убрать одним и тем же плагином
Я на сриншоте покожу эти два пункта: первый пункт "Add spacing and margin" добавляет расстояние от края (то есть Margin, это как Offset в Unity) и расстояние между тайлами (то есть Spacing, это как Padding в Unity), а второй пункт "Fill Spaces" добавляет по периметру, например, один пиксель
Вот эти пункты меню:
Далее, в Unity нужно указать соответсвующие Offset и Padding:
Сообщение отредактировал 8Observer8 - Пятница, 08 Апреля 2016, 23:27
Сайт мне понравился. А вот игр на Unity можно было бы сделать побольше, разных жанров и максимально показать что вы умеете: сделать кучу видео демонстраций. Например, показать какие UI вы умеете делать, какой разнообразный геймплей, жанры, шейдеры, алгоритмы поиска пути и т.д.
Я изучаю Unity и C# ровно год. За это время я научился делать разные игры из списка Нубтутс Чтобы зарабатывать нужно писать код на уровне Intermediate, иначе это будет халтура и обман. Нужно очень много практики и сделанных проектов разной сложности и жанров
Нужно дать свой код на проверку опытному программисту со стажем 5-10 лет. Намётанный глаз не обманешь
Я думаю, что можно ещё определить по уровням книг (и проф. курсов), которые человек читает и как он применяет знания на практике. Книги\курсы же тоже разделяются на Beginner, Intermediate и Advanced
В конечном счёте точно может определить только опытный программист, который проанализирует проекты
Сообщение отредактировал 8Observer8 - Вторник, 12 Апреля 2016, 11:52
Я имел ввиду, что должны быть полностью реализованные проекты, а по степени говнокода можно судить об уровне. Красивость - это архитектура проекта и оптимизация. У нас в стране нет понятия кодера и разработчика, как отдельных личностей. Разработчик сам разрабатывает архитектуру, пишет код и занимается оптимизацией (то есть рефакторингом)
Сообщение отредактировал 8Observer8 - Вторник, 12 Апреля 2016, 15:40
Вот ведущий, это тот самый который организует, придумывает и воплощает идеи, все остальные просто кодеры.
Не знаю, как там в больших командах программистов. Может и правда есть один тимлидер, а все остальные кодеры. Он им рисует блок схемы, а они как мартышки тупо печатают. В моём понимании, всё по-другому. Есть программисты с большим опытом, на коде которых можно учиться
P.S. Ладно, что-то мы засрали резюме человеку. Модераторы, удалите мои сообщения
Сообщение отредактировал 8Observer8 - Вторник, 12 Апреля 2016, 18:10