На Reddit появилась большая дискуссия о языках программирования, которые в разное время использовались для разработки видеоигр. Пользователи вспомнили написанные на BASIC игры, эпоху ассемблера и переход на C++, а также поделились историями из собственной практики.
Язык ассемблера использовали в 80-е и начале 90-х. В качестве примера можно привести первые три части Sonic The Hedgehog, Super Mario, а также ряд других проектов той эпохи.
Однако, как заметил Raidenkyu, для разных платформ использовался разный синтаксис в зависимости от типов процессора. 68000 — для Sega Genesis, 6502 — для NES, 65816 — для SNES.
Часть пользователей отметила, что некоторые ранние игры были написаны на BASIC. Большинство из них не были коммерчески успешными или не продавались вовсе, но были и исключения. Например, версия Sid Meier’s Pirates для Commodore 64 была преимущественно написана на BASIC.
Некоторые коммерческие игры в 80-х все же были написаны на BASIC. В то время разработчики-одиночки копировали их на кассеты и продавали в местных компьютерных магазинах. Насколько я помню, первая версия оригинальной Ultima была написана на Applesoft BASIC.
Самые популярные Python приложения и веб-сайты
пользователь SocksOnHands об играх, написанных на BASIC
По словам пользователя codethulu, игры для первой PlayStation, Nintendo 64 и других консолей того поколения уже писали на C. Со временем распространение получил C++ и стал одним из стандартов на игровом рынке.
Пользователь philbgarner заметил, что разработчики игр для PC одними из первых перешли на языки C и C++, поскольку персональные компьютеры меньше зависели от ограничений памяти. Он также подчеркнул, что в те времена часто применялся гибридный подход: для создания графики использовали низкоуровневые языки программирования вроде ассемблера, а игровую логику писали на C/C++.
Я сталкивался с таким гибридным программированием на одном из занятий по компьютерное архитектуре. Мы писали части программы на ассемблере, в которых использовалось аппаратное обеспечение низкого уровня (например, установка частотного множителя и привязка выходного сигнала генератора к внутреннему динамику для генерации тонов), а другие части — на C++ (например, генерация песен).
пользователь Bad_Chicken_2 об использовании гибридного подхода
Пользователь SanityInAnarchy отметил, что многие известные видеоигры из 90-х использовали и ассемблер, и байт-код. В качестве примера он привел Quake, в котором низкоуровневые элементы писались на ассемблере, а высокоуровневая игровая логика — на QuakeC, специальном языке, разработанном Джоном Кармаком (John Carmack) в 1996 году.
Несмотря на то, что массовая разработка на ассемблере осталась в прошлом, некоторые разработчики по-прежнему использовали этот язык в конце 90-х и начале нулевых. Например, Крис Сойер (Chris Sawyer) полностью написал RollerCoaster Tycoon на ассемблере x86.
Разработка игр | Языки программирования и Программы
Naughty Dog на заре PlayStation 2 написала собственный диалект языка Lisp — Game Oriented Assembly Lisp (GOAL). Впервые он был использован для разработки Jak and Daxter: The Precursor Legacy. Со временем студия отказалась от GOAL, но иногда использовала его для скриптов в эпоху PlayStation 3 — например, в первой The Last of Us.
BillyTenderness посчитал забавным, что сегодня C++ превратился, по сути, в низкоуровневый язык. Его часто используют для графики и физики, а сценарные языки вроде Blueprint и Lua — для игровой логики. Один из пользователей отметил, что никогда не слышал о применении сценарных языков в таком ключе. Однако в комментариях привели немало примеров использования такого подхода.
В играх серии Civilization для создания игровой логики как раз используется Lua (в четвертой части для этих целей применялся Python). По словам пользователя Noxime, по этой причине ходы на последних этапах игры традиционно становятся такими медленными. Для этих целей Lua используется и в Metal Gear Solid V. Также в нулевые разработчики нередко использовали собственные сценарные языки для создания игровой логики.
По словам Putnam3145, сценарные языки в 5-10 раз медленнее, но компьютеры становятся быстрее, и поэтому скриптовые части больше не являются узким местом. Вопрос лишь в оптимизации. В разговоре о языках программирования нельзя не упомянуть Java. В начале нулевых его использовали для разных игр, включая браузерную MMORPG RuneScape. Однако главным применением Java в эпоху до смартфонов были мобильные игры.
Примерно в нулевые J2ME (подмножество платформы Java) использовалось для разработки мобильных игр — например, для Nokia 3410. Такой код компилировали в байт-код, который затем на телефоне интерпретировался в машинный. Поэтому разработчикам приходилось делать несколько модификаций для разных платформ.
пользователь Valmond о мобильной разработке в 2000-х
Пользователь filisoft отметил, что мобильные игры для Symbian и Blackberry писались на C/C++. Некоторые устройства были достаточно мощными, чтобы вытянуть отдельные 3D-элементы, а потому пакет таких тайтлов мог достигать нескольких сотен килобайт. Для сравнения, у проектов на Java были куда более строгие ограничения на размер — например, 48 КБ. Поэтому разработчикам приходилась сильно сжимать свои игры.
Однако с выходом iPhone и распространением смартфонов Java как язык для мобильной разработки, по сути, умер. Сегодня зачастую используют C# (Unity) и C++ (Unreal Engine и некоторые собственные движки).
Источник: www.playground.ru
Известные программы написанные на c
Компьютерные игры — это большой бизнес. Суммарная выручка индустрии видеоигр в США достигла 23,5 миллиардов долларов в прошлом году, что на 5% больше, чем в 2014. За каждой великой игрой стоят программисты, которые вносят существенный вклад в конечный продукт. Конечно, для создания разных игр используются разные языки программирования. В данной статье мы представим вам несколько самых популярных.
Язык ассемблера
Многие игры для Sega и Dendy были написаны на различных диалектах языка ассемблера, включая Super Mario Brothers.
Игры серии Super Mario были проданы тиражом более 70 миллионов копий. IGN назвала третью часть Super Mario Brothers самой великой игрой всех времён.
Язык Си
Язык Си до сих пор остаётся одним из самых популярных языков программирования из-за своей относительной простоты и чёткой структуры. Компания id Software использовала Си для создания игры Doom, впервые выпущенной в 1993 году.
Doom была названа самой влиятельной FPS-игрой, став прообразом многих других игр от первого лица и 3D-игр в общем. По приблизительным оценкам Doom набрал около 10 миллионов установок в 1995 году.
Язык С++ использовался для создания многих современных операционных систем, софта, игр и игровых движков. Благодаря его гибкости, игры можно относительно несложно портировать с ПК на консоли и в обратном направлении. Одной из самых популярных игр, написанных на С++, является World of Warcraft.
С момента запуска было продано 14 миллионов копий. 48% подписчиков проживают в азиатском регионе, 22% из США. На вики по WoW содержится более 100 000 статей.
Разработанный компанией Microsoft в 2000 году, С# стал довольно популярен среди разработчиков игр. Движок Unity, широко используемый при создании игр для ПК, консолей и мобильных устройств, написан преимущественно на С#. Одна из самых заметных игр в данном классе — Angry Birds.
Angry Birds находится на третьем месте по популярности среди всех игры для iOS всех времён, сразу за Candy Crush Saga и Fruit Ninja. Стоимость разработки первой версии игры составила порядка $140 000, что является очень скромным числом в своём роде. Четыре человека работали над игрой суммарно порядка восьми месяцев.
Java является в некотором роде родственником C#. Они развиваются под влиянием друг друга, оба имеют сборщики мусора и объектно-ориентированы. Но Java изначально позиционируется как платформонезависимый язык, что означает, что он (по задумке) работает абсолютно одинаково на всех устройствах. Истории успешных игр, написанных на Java, включают в себя RuneScape и Minecraft.
Альфа-версия игры была создана всего за 6 дней. Minecraft — вторая самая продаваемая игра в мире. Изначально она называлась «Cave Game».
Хотите найти больше материалов по разработке игр и, может быть, даже разработать одну свою? Загляните в наш раздел по геймдеву.
Доброе время суток.
Я заканчиваю в университете базовый курс по С и задался вопросом:
Насколько серьезные программы были написаны на С? И в чем из этого можно попытаться разобраться, для совершенствования собственных навыков. Хочется знать реальные возможности этого языка.
- Вопрос задан более трёх лет назад
- 6565 просмотров
veZuk: Многие элементы Си потенциально опасны, а последствия неправильного использования этих элементов зачастую непредсказуемы. Керниган говорит: «Си — инструмент, острый, как бритва: с его помощью можно создать и элегантную программу, и кровавое месиво».
SARS: Quake тому пример ))
292 страницы КерниганаРитчи. Учитывая, что в С нет ничего кроме массивов, указателей и структур, то практически весь код на С выглядит примерно вот так : https://github.com/jonof/jfbuild/blob/master/kenbu.
Учитывая, что сейчас почти всё можно решить на Java и Python, то на С пишется такой лютейший хардкор, что даже с ходу не поймете что к чему. Посмотрите хотя бы ядро Linux.
Мде. Хардкор.
А я на сях вообще все пишу — мне эти вашы пхытоны с пыхпыхами 100 лет не втарахтелись: и GUI на сях (motif, gtk), и веб на сях (CGI), и числодробилки (в т.ч. с CUDA).
Пхытон — слишком примитивный язычок.
Сейчас я вообще склоняюсь к тому, что нечего извращаться с GUI: GTK скатился в GTK3, GTK2 уже практически объявили deprecated — в общем, лучше делать веб-морды для всего, что требует GUI, это даже сократит время разработки.
Здесь, со временем, будет много примеров программ на языке программирования C#…
Лабиринт 1.0
Всем привет, сегодня немного поиграем, я такой лабиринт делал когда то для жены, только он был побольше, я спрятал от нее подарок, а место его нахождения записал на финише. Весь прикол в том, что как только курсор касается стенки лабиринта его перекидывает в начальную точку. В общем, погнали! Вот проект для тех кому лень читать: […]
Делаем крутой парсер HTML страниц и парсим пару сайтов
Всем привет, На просторах интернета я обнаружил один интересный парсер, я добавил описание и немного доработав решил презентовать вам. Проект объемный поэтому запаситесь терпением. Лень читать статью вот готовый проект: Поехали, 1) Создаем проект WinForm, назовем его «SuperParser». 2) Сразу заходим в свойства формы и меняем св-ву Text значение на «SuperParser», size выставляем width 800 […]
Пример работы С#+Json
Всем привет, не давно меня попросили настроить интеграцию с внешним сервисом, я приступил к работе и после подумал, возможно кому то может пригодиться такой функционал, т.к. по большей части все взаимодействия между системами не находящимися в одном домене или просто закрытые по соглашению с вендером, они частенько так делают, в договоре это обычно прописано. Но […]
Делаем «однорукого бандита».
Всем привет, сегодня мы будем делать игровой автомат. Суть, у нас будет форма с 3 барабанами, каждый барабан будет содержать только цифры от 0 до 9. Игроку при старте игры будет даваться стартовые $100, он может делать ставки 5-10-15 и т.д до $50, после нажатия рычага, у игрока 5 попыток, выигрыш зависит от количества совпадений […]
Игра «Печатная машинка» на С#
Всем привет, сегодня мы напишем игрушку, суть следующая: В форме будут появляться случайные буквы. Если игрок вводит буквы правильно, они исчезают — уровень растет и буквы появляются все чаще. Если вся форма заполнена буквами игра окончена. Кому лень читать(ниже), могут сразу скачать проект Итак, начнем… 20+
Графическая «доска» на C# за 10 минут.
Всем привет, сегодня мы сделаем простую графическую программу. Кому лень читать (ниже) могут скачайте готовый проект Поехали. 1) Создаем WinForms проект, обзываем его «WinFormsApp_Paint» 2) Меняем для формы значение св-ва Text = «MyPaint» 3) Кидаем на форму 3 элемента Label, 1 элемент NumericUpDown, 1 кнопку. 4) Для label1 св-во Text = «Выбрать цвет». Расположить в […]
Создаем элемент управления для панели элементов(Toolbox) Visual Studio
Всем привет, Сегодня мы будем делать элемент управления(Control) для масштабирования изображений, мне на текущий момент известно 2 способа, один из них мы сегодня используем. Кому лень читать (ниже) могут скачайте готовый проект Поехали. 1) Создаем проект WinForm, называем его WinFormsApp_UserControls 2) Теперь добавляем элемент UserControl. 3) У нас открывается UserControl1.cs[Конструктор], переходим в свойства этого объекта, […]
Программа для просмотра изображений на C#
Всем привет, Сегодня сделаем софтину для просмотра картинок и гифок, программка будет короткой, но рабочей). Кому лень читать(ниже), могут сразу скачать готовый проект Поехали, 1) Cоздаем проект WinForms, даем название проекту WinFormsApp_ViewPicture 2) Свойству Text присваиваем значение «View Picture». 3) Кидаем на форму элемент PictureBox растягиваем его по краям, но оставляем снизу место для кнопки. […]
Делаем простой редактор txt
Всем привет, Сегодня мы будем делать редактор текстовых файлов, который будет уметь открывать уже существующие файлы и создать новые txt-файлы. Кому читать дальше лень, могут скачать готовый проект Поехали! 1)Создаем WinForms проект называем его, например, WinFormsApp_SimpleTextEditor 2) Кидаем на форму textBox и 2 кнопки, св-во name 1 кнопки = buttonOpen, 2-ой кнопки name = buttonSave. […]
Работает с картами в WinForms без использования JS! или Библиотека GMAP.net
Всем привет, Не давно был на одном из совещаний и там, один бизнес-аналитик показал, так называемую «тепловую» карту, на карту Москвы он вывел все торговые точки наших клиентов, в итоге можно было визуально оценить какие зоны у нас сильно загружены, средне и слабо. Однако, сделал он это с использованием JS+браузер. НО у меня с JS […]
Источник: kompter.ru
Какой язык программирования самый универсальный: рейтинг победителей
Идея создать самый универсальный язык программирования существует еще со времен создания самого программирования. Еще в те времена многие просто мечтали, что будет один язык программирования, который будет использоваться везде.
Наверное, в то время создать универсальный язык программирования и было возможным, так как поток задач, которые решались при помощи компьютерного кода, был очень узким.
Но взглянем на современную реальность. На данный момент список задач, которые решают программисты , о-о-очень разнообразный: от программирования смарт-часов до запуска ракет в космос. Тут и долго думать не надо, что настолько кардинально отличающиеся задачи, скорее всего , будут решаться разными языками программирования.
Кстати, на данный момент за всю историю IT-разработки насчитали около 3000 языков программирования.
Самый универсальный язык программирования, какой он должен быть
- В основном Линукс-программы пишут на «С», но если сравнивать «С» с «С++», то последний может сделать все , что может «С» , и даже лучше. Но его просто практически не используют в Линукс — системах.
- Есть 2 практически одинаковых по функционалу языка: Ruby и Python. Первый намного проще в изучении и понимании, однако именно Питон в лидерах.
- PHP и HTML;
- GIL и Python;
- Monkey Patching и Ruby;
- и др.
Наиболее универсальные языки программирования в web-среде
- С. Имеет широкое применение. Но в основном используют для сложных систем: операционные системы, ядра для ОС, библиотеки для других языков, сложные веб-приложения и т. д.
- Java. Это наиболее универсальный язык программирования в web — среде, потому что его можно встретить во многих местах: в Андроид-смартфонах, в «умных домах», в микроволновой печи, в автопилоте автомобиля, в машинном обучении и др.
- Python. Используют в нейронных сетях, веб-серверах, в сложных и простых приложениях и т. д.
- С++. Применяют при создании компьютерных игр, операционных систем, деск т опных программ, драйверов и др. Способен решать многие задачи, в которых популярны другие языки.
- C#. На нем были написаны первые версии Windows , и до сих пор многие приложения для данной ОС пишутся на этом языке. Также его используют при создании компьютерных и консольных игр, библиотек для других языков и др.
- JavaScript. Изначально этот язык использовался только для придания динамики веб-страницам. Однако теперь его еще можно заметить при создании браузерных игр или расширений для браузера, деск т опных приложений, обращений к веб-серверу и др.
Подытожим
Самый универсальный язык программирования — это , скорее , миф, чем реальность. Однако из всех языков самые широкие применения заметны у Java и С++, но их нельзя назвать универсальными из-за их ограничений.
Поэтому если вы хотите найти самый универсальный язык программирования, чтобы его изучить, то оставьте эту затею. Скорее всего , вам нужно применить несколько другой подход при подборе языка программирования для изучения.