1-freelance.ru

Журнал "Фрилансер"
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как были написаны графические DOS-игры

Как были написаны графические DOS-игры?

Мне всегда было интересно, как были написаны такие игры , как Sky Roads , Turbo , Aladdin , Duke Nukem, Commander Keen 6 . Я не могу найти хороший источник. Если я напишу консольное приложение в C#, C++, Java и т. д.. Он всегда отображается и остается неподвижным. И это всегда текст.

  1. Как они создавали графику?
  2. Были ли там какие-нибудь библиотеки?
  3. Какие языки они использовали?

Любой хороший источник будет оценен по достоинству.

4 ответа

  • Почему (почти) все онлайн-игры написаны на ActionScript (Flash), а не на Java?

Я очень люблю хорошие игры защитника (например, Gemcraft, Protector: reclaiming the throne), поскольку они могут быть интеллектуально довольно сложными; это похоже на игру в шахматы, но немного меньше мышления и немного больше действия. К сожалению, хороших книг не так уж много, и я подумал, что.

Как я могу добавить button в c++ для DOS можно взять байк на прокат? Тот, где, когда вы нажимаете на него, он создает ответ из игры. (Если есть библиотека и файл A, я могу добавить их)

Ассемблер, Pascal и C были популярными языками. Графика создавалась путем непосредственного взаимодействия с оборудованием дисплея, например с цветным графическим адаптером . ( CGA )

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

Ресурс, который был бы актуален, скажем, в 1988 году, можно найти здесь:

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

Были ли какие-нибудь библиотеки для использования?

Библиотеки звуковых и сетевых драйверов были общими. Какие именно, я не знаю — в наши дни вам не нужно было бы предоставлять драйверы вместе с вашей игрой из-за уровня аппаратной абстракции , предоставляемого самим OS.

Кроме того, существовали стандартные библиотеки языка C/C++. Библиотеки среднего уровня игр не стали такими распространенными до тех пор, пока не наступила эта эпоха.

Примерами среднего уровня являются:

  • Физические библиотеки, такие как Havok
  • Библиотеки загрузчиков форматов изображений, такие как DevIL
  • Библиотеки загрузчиков звуковых форматов, такие как FMOD
  • Библиотеки обработчиков видео, такие как Bink

Тем не менее, 31 день был популярным рождением игрового движка . Примеры с того дня включают:

C и assembly были чрезвычайно распространены.

Реже Pascal , или больше других более непонятных языков.

Если вы хотите разработать низкоуровневое программное обеспечение, как это было сделано в DOS днях, программирование для старой игровой системы может быть хорошей идеей. NES, C64, Gameboy и программирование Gameboy Advance требуют, чтобы автор использовал прямой доступ к оборудованию, и требуют, чтобы вы знали C или какую-либо форму assembly. Вы можете использовать эмулятор для запуска и отладки готового продукта, поэтому он не является таким высоким барьером для входа, как консоли текущего поколения.

Если вы просто хотите разработать игру в стиле DOS, в наши дни у вас есть много доступных графических и звуковых библиотек. Вместо того, чтобы делать все точно так, как они делали, я рекомендую использовать одну из этих библиотек. Аллегро , SDL , PyGame , OpenAL и OpenGL , чтобы назвать некоторые из них.

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

  • Графические редакторы для программистов?

Технически это не вопрос программирования, но я считаю, что он все еще актуален для разработчиков программного обеспечения. Мой вопрос таков: какие существуют графические редакторы, ориентированные на программистов? В частности, редакторы с функциями, которые были у старшего поколения графических.

Первоначально. Я начал программировать в 40-м году, то есть 10 лет назад(в колледже). IDE, который я использовал, был Turbo C++ IDE. Все мои программы c были 16-битными. Модель Памяти: Огромная. Графика: 4 бит (16 цветов). Графический Драйвер: EGAVGA.BGI Разрешение: 640×480. OS: MS-DOS 6.0 (под.

Вы, вероятно, путаете понятие console/terminal,, то есть текстового окна, питаемого текстовыми потоками с несколькими командами escape, с самим компьютером DOS. Консоль не является DOS, и DOS не является консолью.

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

С другой стороны, сегодня существуют консоли (такие как xterm или командная строка windows), и они не имеют ничего общего с DOS.

Действительно старые игры иногда писались на ассемблере, как и графические библиотеки. Но C/C++ тоже часто использовался.

В тот раз я тоже пытался написать какой-то графический/игровой код, и я использовал C, Basic и ассемблер. Моим любимым был графический режим ’13’ , который был 320×200 в 256 цветах. Этот графический режим давал вам два буфера по 64000 байт, каждый байт представлял пиксель на экране. Один буфер для рисования, один буфер, который был отображен.

Этот очень эффективный режим позволял легко строить пиксы (каждый пиксель-байт). Из-за размера экрана вы можете легко найти нужный пиксель, изменив координату Y и добавив X. Из-за двух буферов вы можете рисовать в фоновом режиме и менять местами ‘display pointer’, когда хотите нарисовать следующий кадр.

Но я признаю, что это уже был режим VGA. У меня не было большого успеха с действительно старой видеокартой. CGA было сложнее, а запись в графический адаптер Hercules была действительно громоздкой, и я так и не освоился с ней.

Здесь вы можете найти пару старых игр DOS, включая исходный код (ни одна из них не моя): http://www.classicdosgames.com/разное/источник.html

Похожие вопросы:

У меня есть несколько статей, примерно от 1000 до 10000 слов каждая, которые были написаны несколькими авторами. Я не знаю автора ни одной статьи, но знаю, что некоторые авторы написали более одной.

У меня есть несколько необычный вопрос. Я запускаю старую игру DOS в dosbox под управлением windows xp и пытаюсь определить, когда и где она получает доступ к файлу данных. что я могу использовать.

прежде всего-заранее благодарю вас за все ответы. Во-вторых, я не спрашиваю ни о написании консольных программ, работающих на современных системах (например, Ubuntu 11.10 или Windows 7), ни о.

Читайте так же:
Игры на подобии готики

Я очень люблю хорошие игры защитника (например, Gemcraft, Protector: reclaiming the throne), поскольку они могут быть интеллектуально довольно сложными; это похоже на игру в шахматы, но немного.

Как я могу добавить button в c++ для DOS можно взять байк на прокат? Тот, где, когда вы нажимаете на него, он создает ответ из игры. (Если есть библиотека и файл A, я могу добавить их)

Технически это не вопрос программирования, но я считаю, что он все еще актуален для разработчиков программного обеспечения. Мой вопрос таков: какие существуют графические редакторы, ориентированные.

Первоначально. Я начал программировать в 40-м году, то есть 10 лет назад(в колледже). IDE, который я использовал, был Turbo C++ IDE. Все мои программы c были 16-битными. Модель Памяти: Огромная.

Я немного поразмыслил и кое-что выяснил сам, а также из некоторых раскопок . Совершенно очевидно, что в сочетании с отсутствием операционной системы для аппаратного обеспечения Playstation (первой).

Ошибка при попытке реализовать пользовательский dosbox.conf внутри установки js-dos. Всю свою жизнь я просто CANNOT выясняю, как, черт возьми, перезаписать конфигурационный файл js-dos dosbox.conf.

Я пытаюсь изменить детали трека файла mp3 с помощью библиотеки getID3, которую затем хочу сохранить в каталоге. Как сохранить файлы после того, как теги были написаны? <?php $remotefilename =.

Игры написанные на паскале

Программа обрисует характер человека, родившегося в указанный день

14.12.1997

12kCONVEY — Реализация игры Life в текстовом режимеВиктор Вагнер

CONVEY. Реализация игры Жизнь на поле 80×50 в экранном режиме 80×25 с использованием библиотеки Turbo Professional

17.06.1994

6kGO-MOKU 4.0 — Крестики-Нолики на поле 19х19Borland International

This program plays a very old Japanese game called GO-MOKU, perhaps better known as 5-in-line. The game is played on a board with 19 x 19 squares, and the object of the game is to get 5 stones in a row.

21.12.1987

8kKolumnz Game in Text-ModeAlexander Boychenko

Very-very old (1992) pascal program

12.11.1992

2kLIFE — Text Mode «Life» GameUnknown

This is the Game Of Life. It selects a random colony (8×8 cells) and then writes 10 generations in the text mode.

16.08.1989

1kMineSwipper in Text-ModeAlexander Boychenko

MineSweeper for Text Mode

30.04.1992

6kP-ROBOTS — Pascal-Coded Robots War (Text Mode)David Malmberg

P-ROBOTS («pee-robots») is a game based on computer programming in PASCAL. The objective of the game is to design and program a «robot» that can triumph over similar robots designed and programmed by others in a real-time battle of wits and flying missiles. You control your robot by writing a procedure in PASCAL to specify your robot’s behavior and strategy in its efforts to vanquish up to three other robots in a battle to the death.

04.06.1990

89kPackMan — Text Mode GameUnknown 🙁

Игра PACMAN в текстовом режиме с возможностью изменения лабиринтов

24.04.1989

2kSpace Investors 5.2 — The War with MarsiansTimothy Campbell

Text Mode Game. Save the Earth from the hideous terror in the skies! Fight off the evil alien claim-jumpers from Alpo Centurian!

16.07.1989

14kTetrisВиталий Barmin

Игра TETRIS в текстовом режиме

01.06.1996

1kWallGame — The Old Favorite BREAKOUT in Text ModeJ.P.Karjala

Destroy the wall by the bouncing ball. Use Shift-keys to move the paddle. Alt gives some extra speed. Don’t give up, there are many different walls coming !!

12.05.1991

15kYahWho — a Computerized Version of YahtzeeKeith Greer

YahWho is a computerized version of Yahtzee. BP7-TV source code is included. TVHC and HELPFILE is from BP examples (. EXAMPLESDOSTVDEMO)

19.07.1993

96kText Mode Snake GameAlex Frounze

Игра «Змея» в 40-колоночном текстовом режиме.

09.10.1996

6kHangMan — Classic Word Guess Game (Text Mode)Jason Linkhart

Старинная веселая детская игра «Виселица», в которой один игрок загадывает слово, а другой — пытается отгадать это слово по буквам. При каждой ошибке дорисовывается часть виселицы.31.05.1998

3kClassic Life Program in Text ModeUnknown

Игрушка «Жизнь» в текстовом режиме. Позволяет создавать произвольные начальные колонии, сохранять/считывать с диска, показывать неограниченное количество поколений.07.12.1996

1kMale Charmer v1.0 — Minesweeper Style GameLCC

Игрушка «Очарователь Женских Сердец» — почти то же самое, что и «Минёр», но вместо обезвреживания мин нужно очаровывать женские сердца 🙂24.07.1997

3kTwo Players Tic-Tac-Toe for Text ModeHagen

Игра «Крестики-Нолики 3×3» для двух игроков. Сначала ход делает один игрок, затем второй.

01.01.1997

16kAdventure Game Toolkit Version 1.7David R. Malmberg

Система для разработки собственных приключенческих (adventure) игр в ТЕКСТОВОМ режиме. Приведены исходники самой системы и пример реализации игры «Пещера Колоссов» (Colossal Cave). Adventure Game Toolkit — Turbo Pascal source code to AGT v1.7 — Freeware authoring system.

23.07.1994

235k52Cards — Shuffle a Deck of CardsUnknown

Программа рисует в текстовом режиме колоду из 52 карт. При нажатии пробела — «тусует» колоду.26.09.1990

6kP-ROBOTS v4.0 — Pascal Programmed Robots GameDavid Malmberg

P-ROBOTS — это давний прообраз современного шоу «Последний Герой» ;)))
Это игровой паскаль-компилятор для создания игр с программируемыми роботами. Каждый робот — это отдельная паскаль-программа, использующая свою собственную стратегию. В создаваемой вами игре вы можете поместить несколько роботов, а затем посмотреть, как они будут уживаться вместе. А они, скорее всего, уживаться не будут, а начнут войну за выживание с применением бомб, ракет, и прочих подручных материалов.
Приведены исходники как самого робото-компилятора, так и множество примеров построения роботов.
P-ROBOTS Version 4.0. A game for PASCAL programmers. Battle robots programmed by others in a fight with flying missiles, shields, cloaks, and bombs. Ideal for the PASCAL «pro» or beginner alike. Includes new «IDE» or Integrated Development Environment. *Freeware* Includes PASCAL source code!

Читайте так же:
Игры с сетевым режимом на пк

24.05.1994

377kTET7 v2.0 — Text Mode TetrisHOT_software

Тетрис для текстового режима. Звуковые эффекты через PC Speaker.
TETris7 v2.0 by HOT_software Copyright(c) 1990..1995
Slightly modified for BP7 compatibility.07.06.1995

16kTetris — Text Mode Tetris GameVictor Shantar

Простая но очень приятная реализация игры в Тетрис для текстового режима. Оценка редакции — Cool!29.05.1999

2kTola — Text Mode Snake Gamedark-cloud team

Простая игра в стиле «Удавчика». Каждый погибающий удавчик превращается в препятствие, усложняющее жизнь каждому следующему змеенышу. Игра имеет 9 уровней сложности.

20.06.1996

10kTwo Player Tic-Tac-Toe Game [Text Mode]Johnny Duraccio

Тривиальнейшая программа для игры в крестики-нолики для двух игроков. Игроки по очереди вводят номер строки и номер столбца, куда нужно поставить очередной крестик или нолик.
This program will play Tic Tac Toe against another person. Input — two integers per player. Output — A diagram of the board showing the ending positions and total wins.15.02.1996

2k26 Text Mode Games to Learn Pascal LanguageSome authors

Сборник из 26 простейших игровых программ для текстового режима. Интересное пособие для тех, кто начинает изучать Паскаль. Некоторые игры написаны еще на TP3.0, поэтому потребуется небольшая адаптация, например, замена read(kbd. ) на readkey.
These programs were put together to help me learn PASCAL. They function fairly well as games and are provided for your amusement. Although intructions are provided by each program, a brief description of each program is provided below.

Игра 2048 на Pascal ABC .NET

Попросил меня однажды один человек помочь ему с курсовой. Все делали что-то простенькое, а он вот решил выделиться, замахнулся на игру, даже начал, но потом он понял, что как-то не понимает некоторых вещей, поэтому обратился за помощью ко мне
Ну а я что… Помог ему, конечно же! Да и самому было интересно! А теперь расскажу о некоторых подробностях и «возможностях» игры, а также ниже можно будет ссылку на исходники найти

Если честно, до этого мало дел имел с паскалем, к тому же, с паскалем .net!
Открыв наброски, которые тот человек уже сделал, увидел модули GraphABC, ABCObjects, с которыми раньше не приходилось работать.
Но до меня уже была часть работы сделана, а именно создание окна нужного размера и размещение «сетки» квадратиков 4х4.
Это облегчило задачу, потому что я увидел, что много схожестей есть с обычными паскалевскими объектами или графическими примитивами, а тут ещё удобство было в том, что все эти объекты (квадратики, кружочки и другие штуки) сами отвечают за свою прорисовку, не нужно рисовать на canvas-е и т.д., тут можно просто указать новую позицию или ещё как-то изменить объект, а перерисуется он уже сам!
И тут началась разработка! Никогда не приходилось до этого делать игру 2048, но найдя на просторах интернетов браузерную реализацию данной игры, пришлось поиграть в неё, опробовать разные ситуации, чтобы наглядно ознакомиться с правилами. Оттуда же были стянуты цвета и записаны в несколько чудном формате, потому что оказалось, что данный паскаль не поддерживает запись цветов через $, как это сделано в том же Delphi, например )
Вот такой вышел код, который возвращал нужный цвет текста и фона, в зависимости от цифры.

TSquareColor — это запись, хранящая в себе фоновый цвет и цвет текста. Функция createColor принимает на вход первым параметром цвет фона, а вторым — цвет текста и возвращает уже заполненную запись TSquareColor, которая потом уже используется для задания цвета определённой клеточки )

Вообще, код неплохо откомментирован. В некоторых местах даже избыточно, т.к. это курсовая работа, пришлось комментировать почти всё
А некоторые куски кода, которые можно было бы оптимизировать и вынести в отдельную функцию, лишь изменяя некоторые параметры, пришлось оставить так, как есть, задублированными… )
Поэтому всякие объяснения можно найти в коде!
Сразу скажу, что настройки размера поля, отступов клеточек друг от друга, другие отступы, настройки анимации и т.д. можно задавать тоже в коде, эти константы вынесены специально для этих целей )

Настало время показать, как это дело выглядит! А вот так:

Игра 2048. Окно программы в самом разгаре игры!

Ничего особенного. Всё как обычно )

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

Также был написан небольшой класс для показа «диалоговых» окон, который содержит в себе простенькую реализацию некоего подобия окна подтверждения (которое содержит вопрос и кнопки ОК и Отмена). Суть в том, что можно динамически создавать эти диалоговые окошки, модально показывать их, реагируют они также на нажатия клавиши Esc (отмена) и Enter (ок).
Также можно показывать просто уведомление с кнопкой Ок!
Простенько, но большего и не нужно.. ) Даже это уже было лишним
Код класса этого находится в файле controlUtils.pas, который тоже находится в архиве
Выглядят окошки примерно вот так:

Игра 2048. Вопрос о начале новой игры (при нажатии на Esc) Игра 2048. Конец игры. Лол!

Про модальные диалоги я, конечно, загнул немножко )
Вся модальность работает вот так:

Обрабатываются нажатия в главном окне программы, а там уже идёт проверка, если открыто какое-то диалоговое окно, то нужно обрабатывать нажатия несколько иначе, а если же нет никаких окон, то там уж управлять игрой нужно )
При нажатии мышкой на кнопку ОК или Enter на клавиатуре срабатывает уже определённое заданное событие, которое передаётся как callback (типа того) при вызове функции dialogs.showConfirm. Как-то так оно и работает… )

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

Были некоторые идеи, типа сохранения состояния игры при закрытии и восстановление при открытии, но как-то не было в этом необходимости, да и интерес через некоторое время пропал, поэтому всё осталось на таком уровне, на котором есть сейчас. К тому же, для курсовой тому человеку всех этих окошек диалоговых не нужно, поэтому на каком-то этапе он просто оставил старую версию и стал дорабатывать её по-своему )

Читайте так же:
Игры на тему зомби апокалипсиса

Скачать исходник и готовый ехе-шник, который, кстати, весит довольно мало из-за .Net, можно вот в этом замечательном архиве: http://shpirat.net/etc/2048_PascalABC.NET.zip

Сделано это всё было ещё осенью, но сейчас стало можно это опубликовать, может, ещё кому-то пригодится или же просто интересно будет

Танчики на Паскале: как учили детей программированию в 90-х и что с этим было не так

Немного о том, что из себя представляла школьная «информатика» в 90-х, и почему все программисты тогда были исключительно самоучки.

На чем учили программировать детей

В начале 90-х московские школы начали выборочно оснащать классами ЭВМ. В помещениях сразу ставили решетки на окна и тяжелую обитую железом дверь. Откуда-то появлялся учитель информатики (выглядел как самый важный товарищ после директора), основной задачей которого было следить, чтобы никто ничего не трогал. Вообще ничего. Даже входную дверь.
В классах чаще всего можно было встретить системы БК-0010 (в его разновидностях) и БК-0011М.

Детям рассказывали про общее устройство, а также с десяток команд «Бейсика», чтобы могли нарисовать на экране линии и кружки. Для младших и средних классов, наверное, этого было достаточно.

С сохранением своих творений (программ) тогда были отдельные проблемы. Чаще всего компьютеры с помощью контроллеров моноканала объединяли в сеть с топологией «общая шина» и скоростью передачи 57600 бод. Дисковод, как правило, был один, и с ним частенько не ладилось. То работает, то не работает, то сеть подвисла, то дискетка не читается.

Я тогда таскал с собой вот это творение емкостью 360 кБ.

Шансы на то, что в очередной раз я вытащу с нее свою программку, были процентов 50-70.

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

Ближе к 1993 году в отдельных школах и лицеях появлялись нормальные классы с 286-ми машинами, а местами стояли даже «трешки». По части языков программирования было два варианта: там, где заканчивался «Бейсик», начинался «Турбо Паскаль».

Программирование на «Турбо Паскале» на примере «танчиков»

На «Паскале» детей учили строить циклы, отрисовывать всякие функции, работать с массивами. В физмат-лицее, где я одно время «обитал», на информатику отводили одну пару в неделю. И два года там была вот эта вот скукотища. Разумеется, хотелось сделать что-то посерьезнее, чем вывод на экран значений массива или некой синусоиды.

Танчики

Battle City была одной из самых популярных игр на приставках клонах NES (Dendy и др.).

В 1996-м популярность 8-биток прошла, они давно пылились в шкафах, и мне показалось прикольным в качестве чего-то масштабного сделать именно клон «Танчиков» для ПК. Далее как раз о том, как тогда надо было извернуться, чтобы запилить на «Паскале» что-то с графикой, мышкой и звуком.

Рисовать можно только палочки и кружочки

Начнем с графики.

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

Первый модуль, где в ход пошли спрайты – редактор карт.

В нем было размеченное игровое поле. Клик мышкой вызывал меню, где можно было выбрать один из четырех вариантов препятствий. Кстати о мышке…

Мышь – это уже конец 90-х

Мыши, разумеется, были у всех, но до середины 90-х пользовались ими лишь в Windows 3.11, графических пакетах и еще небольшом числе игр. В Wolf и Doom рубились только с клавиатуры. Да и в DOS-среде мышь была не особо нужна. Поэтому в Borland модуль работы с мышью даже не включали в стандартную поставку. Его надо было искать по знакомым, которые разводили руками и в ответ восклицали «а нафига он тебе?».

Однако найти модуль для опроса мышки – это лишь половина дела. Чтобы мышью клацать по экранным кнопкам, их надо было нарисовать. Причем в двух вариантах (нажатую и не нажатую). У не нажатой кнопки верх светлый, а под ней тень. У нажатой наоборот. И отрисовать затем на экране трижды (не нажатая, нажатая, потом опять не нажатая). Плюс не забыть поставить задержки на отображение, ну и спрятать курсор.

Например, обработка главного меню в коде выглядела вот так:

Звук – только пищалка PC Speaker

Отдельная история со звуком. В начале девяностых клоны Sound Blaster только готовились к своему победному шествию, и большинство приложений работали лишь со встроенным динамиком. Максимум его возможностей – это одновременное воспроизведение только одного тона. И именно это позволял сделать Turbo Pascal. Через процедуру sound можно было «попищать» разными частотами, чего достаточно для звуков выстрелов и взрывов, но для музыкальной заставки, как тогда было модно, это все не подходило. В итоге нашлось весьма хитрое решение: в собственном архиве софта обнаружился «экзешничек», скачанный когда-то с какой-то BBS-ки. Он умел творить чудеса – воспроизводить несжатые wav-ы через PC Speaker, причем делал это из командной строки и не имел собственно интерфейса. Все, что нужно было – это вызвать его через паскалевскую процедуру exec и проследить, чтобы эта конструкция не рухнула.

В итоге забойный музон на заставке появился, но с ним вышла забавная штука. В 1996 году у меня была система на Pentium 75, раскочегаренным до 90. На нем все работало прекрасно. В вузе же, где нам на второй семестр поставили Pascal, в учебном классе стояли видавшие виды «трешки». По договоренности с преподавателем я потащил на второе занятие эти танчики, чтобы получить зачет и больше туда не ходить. И вот, после запуска из спикера повалил громкий рев вперемешку с булькающими гортанными звуками. В общем, 33-мегагерцовой «трешке» DX оказалось не под силу нормально крутить тот самый «экзешничек». Но в остальном все было нормально. Конечно, не считая заторможенного опроса клавиатуры, который портил весь геймплей вне зависимости от производительности ПК.

Читайте так же:
Игры про поезда на пк список

Но основная проблема не в «Паскале»

В моем понимании «Танчики» — это максимум, что можно было выжать из Turbo Pascal без ассемблерных вставок. Из явных недостатков конечного продукта – медленный опрос клавиатуры и медленная отрисовка графики. Усугубляло ситуацию крайне малое число сторонних библиотек и модулей. Их можно было сосчитать по пальцам одной руки.

Но больше всего меня расстраивал подход в школьном образовании. Детям никто тогда не рассказывал о преимуществах и возможностях других языков. На уроках практически сразу начинали говорить про begin, println и if, что запирало учеников внутри бейсико-паскалевской парадигмы. Оба эти языка можно считать исключительно учебными. Их «боевое» применение — редкое явление.

Зачем учить старшеклассников фейковым языкам – для меня загадка. Пусть они более наглядные. Пусть разновидности «Бейсика» кое-где используются. Но, в любом случае, если человек задумает связать свое будущее с программированием, ему придется учить с нуля другие языки. Так почему бы детям не ставить те же учебные задачи, но только уже на нормальной платформе (языке), в рамках которой они могли бы развиваться дальше самостоятельно?

Кстати о задачах. В школе и институте они всегда были абстрактные: посчитать то-то, построить функцию, нарисовать что-то. Я учился в трех разных школах, плюс у нас был «Паскаль» на первом курсе института, и ни разу преподаватели не ставили сколь-нибудь реальной прикладной задачи. Например сделать записную книжку или еще что-то полезное. Все было надуманное. А когда человек месяцами решает пустые задачи, которые потом идут в корзину… В общем, из института люди уже выходят выгоревшими.

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

Игры написанные на паскале


Sergeef   ( 2003-11-28 00:19 ) [0]

Вопрос у меня вот какой: Я знаком с Delphi, прямо скажу — вещ супер.
Решил занятся С++. Учить начал, и знаете кое-где даже легче показалось(сам принцип действия)! Так вот вопрос:
Я слышал, что программы, написанные на Delphi весьма весящие и "ЖРУТ"
ресурсов много. Грузят процессор и т.д чего во многом не скажешь о С++!
Разумно ли писать на "ЖРУЩЕМ" Delphi?


Mihey   ( 2003-11-28 00:20 ) [1]

2 Sergeef:

Да, разумно. Чесное слово, это так.


Думкин   ( 2003-11-28 07:45 ) [2]

Ты вполне можешь писать не "ЖРУЩИЕ". Пиши на Делфи+АПИ.
Вопрос в ином — что ты хочешь?


MeF88   ( 2003-11-28 15:18 ) [3]


> Я слышал, что программы, написанные на Delphi весьма весящие
> и "ЖРУТ"
> ресурсов много. Грузят процессор и т.д чего во многом не
> скажешь о С++!

Забей. Всё это слухи, распространяемые. Если писать нормально, то и на С++ и на Delphi всё будет ОК.


Micah’GF   ( 2003-11-28 15:41 ) [4]

чайник и в Сях, и в Дельфях напишет одинаково "ЖРУЩУЮ" прогу.
Такой вопрос здесь уже много раз задавался — ответ один: "умело написанная на Дельфи прога ничем не уступит проге, написаной на Си".


hexone   ( 2003-11-28 15:59 ) [5]

Я могу с уверенностью вам сказать, что писать сложные игры на Delphi это вообще редкостное извращение. Тому есть ряд причин:
1) Паскаль плох как язык для эффективного описания матем. функций, требующих перегрузку операторов (векторы, матрицы)
2) Delphi плох как компилятор, потому что не позволяет нормально экспортировать классы из DLL
3) В нем нет статических классов, т.е. код перегружен методами ненужными методами Create/Free
4) Класс и структура — разные вещи в корне. То есть нельзя класс привести к структуре и наоборот. (всегда есть поинтер на VMT (бред))
5) Нет поддержки шаблонов классов
6) Нет эффективного аналога STL шаблонов по причине 5
7) Классы компонентов работают не эффективно.
8) Код паскаля очень перегружен ненужными словами типа

begin
if then
begin
if then
begin
end;
end;
end;

9) Оптимизатор кода в Delphi работает с ошибками
10) Нет стороннего оптимизирующего компилятора типа IntelC
11) Обновления версий — полный отстой, никаких принципиальных изменений
12) Наконец очень неудобная организация работы с большим проектом
13) Покажите мне хотябы одну нормальную игру написанную на дельфи кроме , ВЕНОМА
14) Под C++ огромное количество уже созданных библиотек и примеров, гораздо больше чем для дельфи

И наконец, ну не для этого Delphi, не для ЭТОГО. Ну базы данных, ну на худой конец отчетики в Excel, ну интерфейсик набросать. На самом деле круг задач этого языка очень сильно ограничен. На C/C++ пишут все виды программ, на дельфи же только определенный круг задач! Вы никогда не задумывались над тем почему все autorunы в играх написаны на Delphi, а вот сами игры на C?
Вот вам и ответ.


miek   ( 2003-11-28 16:33 ) [6]

КОНЧАЙТЕ ФЛУД!
Ау, модератор на линии? Скиньте это в "Потрепаться".


hexone   ( 2003-11-28 16:45 ) [7]


> КОНЧАЙТЕ ФЛУД!
> Ау, модератор на линии? Скиньте это в "Потрепаться".

Тебе что, глаза режет?


Darthman   ( 2003-11-28 16:48 ) [8]

2hexone:
C некоторыми пунктами согласен. Не со всеми, указывать не буду. Игры и программы еще как пишут на делфи. Хм. Базы данных — удобно безумно. Интерфейс набросать — тоже. Но и программировать серьезные приложения тоже можно без особого геммороя.

ЗЫ: кстати, коллега, мы почти в один день родились 😉


TButton   ( 2003-11-28 18:21 ) [9]

знаете что я вам скажу?


TButton   ( 2003-11-28 18:25 ) [10]

🙂
а скажу я вам, что глядя на обзоры современных игр (на системные требования в частности) я не вижу игр "НЕ ЖРУЩИХ", вот чес слово, можно подумать что разработчики считают что у всех дома стоит P4-1200 с 256 оперативы и 3D видюхой со 128Мб на борту. а вот, не у всех.

Читайте так же:
Игры для playstation move ps3


Mihey   ( 2003-11-28 18:32 ) [11]

Вообще, опять же, какие игры конкретно?


Sergeef   ( 2003-11-28 21:48 ) [12]

hexone
Опять же ситуация конкретно не прояснилась, а только споры.
Игры "НЕ ЖРУЩИЕ" — это конечно вопрос трудный, но решимый(частично!)
Так чему же предпочтение в большей степени?
Delphi или C++ — ВОТ В ЧЁМ ВОПРОС!
Не подскажете ли мне, о други мои, где для С++ достать что-нибудь для разработки 2d и 3d — игр.


Omar2002   ( 2003-11-28 22:20 ) [13]

Народ, вобще ,на мой взгляд, код в Дельфи намного проще читается. Но кто мешает соединять два мощных языка Delphi и C++. Допустим все вычисления и сложную арифметику скинуть в Dll-ку на С++, а остальное делать на Дельфи, иснользуя эту Dll-ку.
Сам я пишу на Дельфи, но в институте пришлось и С++ немного изучить.
На счет игр сделанных на С++ и на Дельфи могу сказать вот что: Как известно сейчас основную массу игр выпускают Blizzard, Westwood(которой сейчас нет как таковой), Sierra и другие. Они появились еще в те времена, когда Дельфи только появился, а паскаль , как известно был учебным языком(в основном его так и использовали). Что касается С++, то могу сказать, что на то время это был пожалуй единственный вариант для создателей коммерческих игр. Ну а теперь, когда фирмы разрослись и набрали обороты им не выгодно переходить на новый язык программирования, а они и являются достаточно серьезным конкурентом для новых групп. Т.е. даже если появляются энтузиасты, которые могут сделать хорошую игру на Дельфи, хотя и на другом языке, то их либо задавливают крупные фирмы, либо скупают их за приличные суммы. Вот моя точка зрения.


> 8) Код паскаля очень перегружен ненужными словами типа
>
> begin
> if then
> begin
> if then
> begin
> end;
> end;
> end;

По моему такой код лучше читать, чем <<<<>>>>. И вобще это привычка к коду, и я не считаю что она вредная.


Ixion   ( 2003-11-30 02:08 ) [14]

hexone © (28.11.03 15:59) [5]
1) Паскаль плох как язык для эффективного описания матем. функций, требующих перегрузку операторов (векторы, матрицы)
Что подразумевается по словом "эффективное" ? То что на Си можно написать A = A + B а на Паскале придеться писать A = Sum(A, B) ? Ну так это субъективное восприятие человека, а не признак эффективности.

2) Delphi плох как компилятор, потому что не позволяет нормально экспортировать классы из DLL
Оно так категорически необходимо для игр ?

3) В нем нет статических классов, т.е. код перегружен методами ненужными методами Create/Free
Хотите сказать, что для у статических классов нет конструкторов и деструкторов ?

4) Класс и структура — разные вещи в корне. То есть нельзя класс привести к структуре и наоборот. (всегда есть поинтер на VMT (бред))
Уважаемый, вы явно незнакомы с Object Pascal — по крайней мере про "object" явно не слышали.

5) Нет поддержки шаблонов классов
6) Нет эффективного аналога STL шаблонов по причине 5

А вы считаете, что без шаблонов не написать хорошей игры ?

7) Классы компонентов работают не эффективно.
Игру на VCL писать собрались ? Кроме того вышесказанное нужно еще доказать — я тоже могу сказать, что MFC — работает неэффективено :))

8) Код паскаля очень перегружен ненужными словами типа

begin
if then
begin
if then
begin
end;
end;
end;

Код Си жутко перегружен трудночитаемыми конструкциями
<
if () <
if () <
>
>
> — ну просто бред какой-то 😉

9) Оптимизатор кода в Delphi работает с ошибками
Правда ? А примерчик привети слабо ?

10) Нет стороннего оптимизирующего компилятора типа IntelC
Сторонние оптимизируещие компиляторы есть, а то что вы про них не слышали, еще ничего не значит.

11) Обновления версий — полный отстой, никаких принципиальных изменений
Ну тут вообще сказать нечего — равносильно сказать, что в MSVC++ ничего не изменялось от версии к версии :))

12) Наконец очень неудобная организация работы с большим проектом
Про TeamSource слышали ? Видимо нет.

13) Покажите мне хотябы одну нормальную игру написанную на дельфи кроме , ВЕНОМА
См. Omar2002 © (28.11.03 22:20) [13]

14) Под C++ огромное количество уже созданных библиотек и примеров, гораздо больше чем для дельфи
Если человек значет синтаксис Си, то разобраться в примерах не составит труда, ну а библиотеки можно и перевести — это не так сложно.

И наконец, ну не для этого Delphi, не для ЭТОГО. Ну базы данных, ну на худой конец отчетики в Excel, ну интерфейсик набросать. На самом деле круг задач этого языка очень сильно ограничен.
На Delphi НЕЛЬЗЯ написать только драйвер режима ядра Linear модели — т.к. для этого нужен специальный линкер. А jcnfkmyjq круг задач Delphi ограничен ТОЛЬКО способностями программиста, равно как и на Си. Да и еще, для справки, Delphi — это не язык, а оболочка, язык — это Object Pascal. И базы данных на нем не пишут, на нем пишут СУБД.

На C/C++ пишут все виды программ, на дельфи же только определенный круг задач! Вы никогда не задумывались над тем почему все autorunы в играх написаны на Delphi, а вот сами игры на C?
Вот вам и ответ.

А вы никогда не задумывались почему все Autorunы пишут не на Си 🙂 Кроме того, это самый "определенный круг задач" к которым, как вы правильно заметили, входят СУБД — а это сейчас более 80% всех промышленных задач 😉 Обратите внимание на то, на чем написаны многие задачи промышленной автоматизации — например широко известная в этих кругах "ТБ корпорация". А знаете, что МинАтом России работает на Pascal"e, а не на Си.

Вот вам другой ответ 🙂


Dean   ( 2003-11-30 06:57 ) [15]

Добавьте сюды ещё и то, что 90% VCL для BC++Builder написан на Object Pascal.


Думкин   ( 2003-11-30 07:00 ) [16]


> [14] Ixion © (30.11.03 02:08)

Да ладно, не воспринимай его серьезно. %-)
Просто чем больше невежества, тем силнее растопыривание пальцев.
Но язык уже Delphi Language. IMHO — красивый язык.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector