Сторінка 1 з 2

Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 17:20
monoxrom
У мене появилася одна ідея для гри. І я би хотів попробувати її реалізувати.
Але я не знаю для чого і на чому її писати. Гра можлива як і для одного учасника так і для двох, але я думаю для двох воно буде цікавіше.
Часто коли проходять зустрічі любителів старих комп'ютерів хочеться щось швидко зіграти двом, що було без супер наворотів, складного сценарію і не шкода було пройденого коли треба починати спочатку (наприклад завис старий компютер чи відійшов джойстик) :)

Отже ідея у мене є. Здається нова, принаймні я щось не пригадую щоб я зустрічав ігри на цю "тему"
Я думаю гра можлива для всіх ретро платформ так як для її реалізації потрібен тільки текстовий режим, можна навіть монохромний варіант.
Двоє користувачів можуть грати як клавіатурою так і джойстиками.

Але тут мене зразу цікавлять наступні питання:
1) потрібно щоб у мові програмування був генератор випадкових числел
2) потрібно щоб відстежувалась реакція комп'ютера на кнопку клавіатури чи джойстика. А саме щоб користувач не тримав весь час кнопку затисненою і так грав, а щоб треба було її весь час відпускати, після того як дія один раз зроблена.

Чи ці функції можливі у бейсіку?

Тепер про залізо. На руках у мене немає нічого крім атарі ст. У якому середовищі розроблялися ігри під цей комп'ютер? Чи можна якусь свою програму розробити у емуляторі. І потім щоб компілятор програмного середовища зробив загрузочну дискету з цією програмою? Чи хоть просто програму, яку я зможу імпортувати в якийсь чистий імідж і записати на реальну дискету?
Просто в атарі ст якщо підключені два джойстика і дискета не самозавантажувальна то запускається ТОС, а як там без мишки відкрити дискету?

Якщо такого немає під атарі ст, можливо є емулятор і середовище розробки для комодор 64 ?
Може бути і для спектрума. Хоча на спектрумах для джойстиків потрібен окремий контролер.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 17:36
Mak7ym
Якщо щось, що не потребує швидкості і ресурсів, то бейсік підійде. Для спєка то точно.

Але якщо порібно щось складніше і без лагів, то тільки ассемблер.

1. Спєковскій бейсік має рандом, але він убогий і починає повторюватися дуже швидко - там дуже простий генератор псевдо випадкових чисел. Хоча написати свій не є великою проблемою, зараз багато інфи на цю тему і імплементанути якісний генератор можна, хоча він і буде не сильно швидкий...

2. Читати клаву або джойстік теж без проблем, єдине що, треба буде вибрати правильно кнопки для кожного гравця, в спєку специфічна організація клави, щоб не давати комусь первеснство в скані кнопок і потенційно бути в виграші частіше

Для спєка:
1. Бейсік
2. Ассемблери, я рекомендую ALASM+STS, є готові TRD - підключаєш і вперед
3. Емуль... ну самий доступний на всих платформах - FUSE, я використовую ZEsarUX, бо він активно розробляється і можна додавати свої фічі в нього, хоча він трохи дивний.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 17:59
Alex_LG
Я писал на РС в ТАSM, с генератором рандома пришлось помучаться , потом тестил в эмуле и уже потом перетаскивал на ретрокомп. Если очень большой скорости не надо, то да, луше в эмуле писать на Бейсике - намного быстрее скорость разработки, чем на асме и проще.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 18:05
monoxrom
Alex_LG А як можна писати на тасм-і під проци інші ніж х86? чи все ж таки можна?
Швидкості мені як такої не треба, та і генератор випадкових чисел може бути не складний, з повтореннями, там всеодно більше буде потрібна реакція людини.

Mak7ym Цікавий нюанс з клавіатурою у спектрумі. Це типу якось є масив клавіш і останні кнопки в ньому опрацьовуються пізніше за ті що перші? Дас іст інтересант )))

Я все ж таки схиляюся щоб написати гру для атарі ст, наступний рік буде 40 років від початку серії. Якщо гра сподобається то можна тоді вже буде її експортувати.
Я так розумію мені треба шукати в сторону бейсіка, його можливостей мало б цілком вистачити

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 18:21
Alex_LG
monoxrom писав: 13 травня 2024, 18:05 Alex_LG А як можна писати на тасм-і під проци інші ніж х86? чи все ж таки можна?
Можна, там куча раазных процев выбирается. Сейчас не за компом, позже закину список, но можно погуглить... :)

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 18:28
Alex_LG
Понял в чем вопрос - ТАСМы разные бывают, я кажись на этом делал Telemark Assembler (TASM):

The microprocessor families supported by TASM are:

6502
6800/6801/68HC11
6805
8048
8051
8080/8085, Z80
TMS32010, TMS320C25
TMS7000
8096/80196

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 22:32
monoxrom
Alex_LG ну так, тепер ясно, я спершу думав що те турбо ассемблер від фірми Борланд, колись щось трохи писав але про вибір не х86 проців чую вперше.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 13 травня 2024, 23:43
igor0f803h
Колись, дуже дуже давно, ще у дитинстві, я використовував алгоритм для випадкових чисел з книги Т.Романовського "Микрокалькуляторы в рассказах и играх".
Думаю, що схожі алгоритми можна відшукати і в книжці Дональда Кнута або у вікіпедії - див. List of random number generators або ж, можливо, Pseudorandomness.
У ньому можна було задавати початковий стан / seed / randomize, що було дуже зручно для генерації цілого гірського 2d ландшафту однією цифрою.
У вас дещо інша задача, тож можна просто використати як є, а можна коригувати seed в залежності від "часової" затримки перед натисканням "Старт", натискань клавіш або інших подій.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 14 травня 2024, 00:01
igor0f803h
Загалом, якщо Ви задаєте такі питання, то скоріше всього Вам дуже зарано користуватись будь-чим, крім мов високого рівня. Тобто - зробіть спочатку на Basic.
Особливо якщо там є підтримка спрайтів у Basic (і якщо вам потрібні спрайти, бо є різні техніки).

А коли навчитеся впевнено використовувати цикли, if, змінні, клавіатуру, координати, і коли все зробите на Basic по максимуму красиво і повністю (бо може банально не хватити життя на всі ці штуки на різних мовах і різних платформах),

тоді вже можна думати про щось інше, наприклад можна спочатку робити гібридні програми (більша частина на Basic а якісь невеликі частини - на асемблері, зазвичай Basic таке дозволяють, правда не знаю як на Atari ST), або ж перейти на використання Сі.
Власне, Сі, мабуть дозволило б робити частину коду мультиплатформним.

IMO: але, поки не навчитесь впевнено працювати з базовими речами на Basic, не чіпайте Сі.
хоча з іншої сторони, Basic у якому потрібно використовувати номера строк та goto - трохи нетипова і неприємна річ, як на сьогодні, для будь-кого хто відійшов від цих технік.

Втім, якщо це просто хобі, для заспокоєння нервів, то чому б і ні, Basic теж норм, сидиш собі пишеш тихенько, нікуди не спішіш. Бажано, частково у зошиті спочатку, а потім на комп'ютері.

Re: Підкажіть на чому можна програмувати під ретро платформи

Додано: 14 травня 2024, 00:12
igor0f803h
Реакцію на клавіатуру (або джойстик) можна опрацьовувати програмно. Ви просто запам'ятовуєте останню команду у змінній (натиснуту та відпущену клавішу, або напрям джойстика). Втім, це якщо дозволить сам Basic. Ще може бути можливість виклику функцій з ROM прямо в Basic.
Проблема у тому що це гра на 2-х, і тут потрібно зчитувати досить часто стан клавіатури, а для цього, вивід на екран чи якісь довгі розрахунки - ділити на невеликі частини.
Заочно точно не скажу, а тим більше, що я Atari ST не використовував.