Как стать автором
Обновить

Комментарии 134

Собственно, тоже следил за сообщениями на форуме Quarter To Three Forums и заметил ветку.
Можно добавить к статье обещаемые фичи:
Hard science fiction.
Lots of engineering.
Fully working computer system.
Space battles against the AI or other players.
Abandoned ships full of loot.
Duct tape!
Seamlessly landing on planets.
Advanced economy system.
Random encounters.
Mining, trading, and looting.
Single and multi player connected via the multiverse.
Добавил, а что такое Duct tape? :)
Зная чувство юмора Нотча нельзя исключать и первое.
Да почему юмор, duck tape — незаменимая вещь в любом ремонте! Видимо, надо будет в игре что-то чинить)
Спасибо за ссылку. Есть над чем подумать.
Это американский аналог нашей синей изоленты — материал, которым можно починить все, что угодно :) Должно хорошо сочетаться с «Lots of engineering».
По некоторым слухам, на американском луно-мобиле, чтобы уменьшить количество поднимаемой пыли, были удлинены брызговики с помощью куска карты и duct tape.
Это не «некоторые слухи».
image
Крыло сломано.
Duct tape — аналог изоленты, только усиленная, применялась американскими космонавтами для ремонта поглотителей CO2 и прочего. Нотч в твиттере писал, что duct tape будет применятся как универсальный ремонтный материал для косм. корабля, им можно будет починить все, но на ограниченное время.
В Mojang разве не разработкой Scrolls занимаются в данный момент?
И них куча проектов, можно сказать.
Джеб сейчас занят дальнейшей разработкой Minecraft, Нотч 0x10, еще они бывает что-то вместе или по отдельности небольшое напишут, Cobalt вообще с Oxeye Game Studio делали.
Да и про Scrolls давненько ничего не слышно, так что…
НЛО прилетело и опубликовало эту надпись здесь
Какое чудовищное предположение, никаких близзардов, руки прочь от моего майнкрафта!

По сути — согласен, фичи в апдейтах появляются бессистемно и хаотично.
теперь вы сможете написать свой майнкрафт без багов на DCPU-16
Да, меня совершенно расстраивает тот факт, что один фанатский мод IndustrialCraft 2 затыкает за пояс (это еще слабо сказано) всё, что было сделано Моджангом, наверное, с момента, когда Нотч перестал в одиночку разрабатывать Майн. Один ядерный реактор чего стОит! Однако Близзард бы никогда не сделал такой игры.
Обалденно. Дай бог ему сил, здоровья и новых шляп.
Ох, он наш герой!
Чую открытие 0x10c Store, появление новых вакансий на рынке труда, и статей как написать хлеллоу ворлд на DCPU-16.
Только-только я разобрался с построением логических схем в майнкрафте, хехе.
Вполне себе нормальный CISC процессор. Не совсем логично сделаны условные переходы.
Также в нем отсутствуют прерывания и поэтому он малопригоден для применения в реалтайм сиcтемах. Но для игры подойдет.

А «Hello Notch!» уложится в десяток команд.

	SET B, message
:loop	SET A, [B]
	IFE A, 0
	SET PC, crash
	JSR putchar
	ADD B, 0x1
	SET PC, loop

:crach	PC, crash

:putchar
;подпрограмма вывода символа. зависит от конфигурации "компьтера"
;в данный момент написать нереально
	SET PC, POP

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

:message dw 'H','e','l','l','o',0x20,'N','o','t','c','h','!',0x0


Скомпилировать можно в уме, но мне влом.
фигасе, еще на ASMе в играх я не писал.
К Майнкрафту есть плагинчик, добавляющий компьютер с возможность программировать на Lua, так с на нем получается в разы интереснее, проще, и доступнее значительно большему кругу людей.
Напишут компилятор :)
Уверен, вскоре под него напишут компилер и портируют vi :)
и запустят q3.
Нет! Сначала Doom.
The computer in the game is a fully functioning emulated 16 bit CPU that can be used to control your entire ship, or just to play games on while waiting for a large mining operation to finish.

Да, без Doom'а тут никуда.
НЛО прилетело и опубликовало эту надпись здесь
Условные переходы нормальные. Как частный случай условных команд, которые сами по себе удобнее для конвеера, чем возня с логикой управления.
Прерывания могут быть реализованы как вызовы по фиксированным адресам (вроде RST 38 для таймера в Z80). Стек есть, так что вернуться в ту же точку программы не проблема (не забыть только написать SET [--SP],O в начале, а то того и гляди испортится).
Деление у них интересное — с 16-битной дробной частью. В первый раз такое вижу :)
Программные прерывания не интересны. Фактически, это краткая форма вызова подпрограммы.
Интересно реагировать на внешние события. А вот внешнего прерывания нет. И лучше, если их будет несколько.

А «нелогичность» переходов в том, что можно не пропускать следующую комманду (которая в 99% будет командой перехода), а сразу прыгать на нужный адрес. Но ведь все в руках божьих Нотча. Как будет описан процессор — так и будут все вынуждены его программировать. Все одно процессор если и появится в железе, то будет сделан только каким либо фанатом в единичном экземпляре.
>> которая в 99% будет командой перехода
с чего бы?
На ARM, например, условное выполнение инструкций используется очень часто.
Обычно встречается много действий наподобии if (a>b) a = b
В режиме THUMB2 в 16 битном опкоде нет места для того чтобы держать маску условного выполнения, поэтому имеется специальная инструкция IT{pattern} {condition},
которая запускает 1-3 последующих команды в зависимости от результата if {condition}.

Опять же, программно-доступный регистр PC похож на ARM.

>>Программные прерывания не интересны. Фактически, это краткая форма вызова подпрограммы.
Ээээ. Mrrl и говорил о внешних прерываниях вызывающих переход в таблицу векторов прерываний расположенных по фиксированному адресу. Какая вам нужна поддержка? Запрет прерываний? Дык это действо реализуется за 5 минут.
Мне нужны прерывания в любом виде и чем их будет больше, тем лучше. В обсуждаемом процессоре (по крайней мере в текущей спецификации) я их не нашел. Но для игры они, наверное, и не нужны будут.

А вообще интересно будет посмотреть как компьютер на данном процессоре будет общаться с «внешним» для него окружением.
НЛО прилетело и опубликовало эту надпись здесь
Вот ведь бывает!
И даже в этой простейшей программе не обошлось без бага.
Я нашел только пропущенные три буквы. Есть что-то серьезнее?
:crach PC, crash

Метка написана с ошибкой. При компиляции получим ошибку.
да и команда SET пропущена.
2 ошибки на строчку кода это надо уметь.
>>>; подпрограмма вывода символа. зависит от конфигурации «компьтера»
>>>; в данный момент написать нереально
Пока не увидил этих комментариев, долго думал, как же вы собирались символы-то печатеть, раз Нотч не специфицировал ничего из IO.
Аналогичный пример от Нотча (заодно показано, как делается вывод на экран):

Кто-нибудь понял, что делает бит 0x80? Может быть, буква с этим битом мигает…
Бекграунд выставляет?
Нет, бэкграунд — младшие 4 бита в цвете (0x70 для серого по черному и 0xE1 для желтого по синему).
ну, может быть. Просто подумал, что 170 — серое, 1e1 — желтое, 2e1 — желтое на синем, 270 серое на синем… Вроди мейк сенс, не? ну, флажок бекграунда отдельно от цвета и бекграунда
Там же 100 и 200 отдельно разбирается в коде: 1xx — просто цвет xx, а 2xx — еще и с прибавлением 0x80 к каждому коду символа.
да, именно! если слово больше 100 значит оно не символ а цвет. Если оно еще и больше 200, то оно не только цвет, а цвет на синем фоне, чем не версия?
Временем, которое эмулирует игра. Для конца 80-х 4 бита на цвет и 4 на фон было в самый раз — и на 16-цветных EGA картах, и на MSX (про другие цветные дисплеи не знаю). Судя по тому, что синий — 1, а не 2, имитируются цвета EGA (однобитные RGB+бит яркости).
ну, значит мигает :)
Kaspersky 0x10 Antivirus, например
Ждём LLVM-бакэнда для DCPU-16.
Альфа-версия, конечно, но на простых примерах уже работает: github.com/krasin/llvm-dcpu16
«В космосе будут встречаться заброшенные космические корабли, нагруженные добром, возможна посадка на планеты. Будет майнинг, торговля и мародёрство
Я джва года хочу такую игру!
Корованы будут?
Кирилл?
alizar, ходи учи матчасть, да?
little endian, big endian — это порядок БАЙТ (октетов, таких восьмибитных штук) в представлении многобайтовых чисел (это которые не помещаются в один байт).

Вот только судя по примеру, байты там 0x10-битные…
Ну да, термин «байт», вообще говоря, не подразумевает битность (именно поэтому в RFC используют слово «октет»).
А вот endianless всёравно подразумевает порядок байт.
вроде байты как байты
0x10 бит — слово, память 0x10000 слов или 64 кбайт
Если бы были 8-битные байты, то 0x0000 0000 0000 0001 превратился бы в 0x0100 0000 0000 0000, и люди проспали бы еще в 0x100 раз больше.
Да, если присмотреться, Нотч нигде не упоминает слово байт. Так что то, что он называет word, можно считать байтом из определения понятия Little endian. Не удивительно, что при проектировании корабля возникла путаница.
Тогда бы не было игры. Потому как к этому времени галактика точно бы превратилась бы в одну большую черную дыру.
Осталась бы та же куча «искусственных коричневых карликов», что и через 2^48 лет. Только слегка потраченная на топливо для Звезды.
Если Нотч допускает путешествия быстрее скорости света, то там всё равно все законы физики летят. А вообще, через несколько десятков миллиардов лет уже можно ожидать big rip.
Нотчу опять пришла крутая идея, игра хоть и не будет такой популярной как Майн, зато, возможно, даже более горячо любимой игроками.
Жду.
Учитывая встроенный компьютер, а так же то, что всё это должно крутиться на ИХ серверах, то…
Ждём симулятор скайнета…
А графика как в майнкрафте?
Ага Кубические звезды )
Система команд очень напоминает старую добрую PDP11/70 — только порядок бит развернут (управляющая четверка в младших, а не в старших). И вместо условных переходов придумали новомодные условные команды.
У меня была почти 1 в 1 идея, я даже уже взялся делать её в jmonkeyengine.
>где космическая раса не имеет границ
скорее переводится как «где космическая гонка не кончалась» ( в оригинале «where the space race never ended» )
Она не твёрдая, а «жёсткая». Горе-переводчик, блин.
Жесткое это порно. А фантастика — твердая.
НЛО прилетело и опубликовало эту надпись здесь
Das ist fantastisch porn!
Чем тверже фантастиш — тем жёстче порно.
Справедливости ради, перевод hard sf как «твёрдая НФ» вполне употребим (и куда более популярен, чем «жёсткая НФ»), хоть и не совсем корректен. Вот «где космическая раса не имеет границ» — это, действительно, позор редкостный.
Согласен, лажанулся с расой.
Тогда уж суровая
Ну я примерно это и имел в виду. Хард в смысле хардкор, а не «не софт».
Труъ. В такое и пошпилить не грех.
Что бы Нотч не делал все равно получается minecraft =)
EVE-Online как бы говорит:
— Okay…
Программирование Ауры более интеллектуальное, чем автопилот ещё не ввели?
В названии, как представляется, отражён именно прикол с порядком бит: 0x010C --> 0xC001 --> «cool».
Не проходит. Пришлось бы переставлять 10-битные блоки, а 1 попадает в младший такой блок :( А если просто развернуть биты, получится что-то вроде 0x3080
Название должно быть 0x100xC, но в таком виде оно бы смотрелось хуже.
Хм.Интересно будет посмотреть на такую игру! Т.к. она MMO то вскоре найдуться различные сеньор разрабочики на Си, которые будут насиловать и грабить разных быдлокодеров:)
Все идет к тому, что лет через пять Нотч будет делать матрицу. В майнкрафте протестил земное взаимодействие, сейчас протестит космическое + социальное. А там, глядишь, и железо подоспеет…
Матрица. На джаве. Ага.
Не сечешь фишку. Суть 0х10 — заставить гиков бесплатно переписать движок с жабы на ассемблер. Только никому ни слова!
Главное, чтобы Oracle патентами не задавили, а то они это любят.
Движок Java?
То есть? JVM и иже с ней? Нет, конечно. Я имел в виду, что рано или поздно кто-то напишет майнкрафт на дцпу-16->можно будет использовать вместо джавовского движка ассемблерный->производительность->матрица->PROFIT!!! Но это была просто шутка, причем, судя по всему, не слишком удачная.
Удивительно, что еще никто не запостил: github.com/swetland/dcpu16
Я, пожалуй, поверх этого ассемблера реализую Forth =)
Кстати да, FORTH там должен хорошо смотреться. Уж не хуже чем на i8080.
Ну, FORTH и до i8080 неплохо смотрелся. Если не ошибаюсь, работа над языком начиналась в 50-е — 60-е годы. Тогдашние процессоры по набору инструкций не слишком отличались от нашего нового dcpu16. Да и памяти было, наверное, даже меньше.
Я по своим впечатлениям, в детстве писал транслятор для 8080.
Можно. Но зачем? Разве ассемблер не удобнее?
Ну как сказать… Во-первых, мне нравится форт, как язык, во-вторых, по-моему, его проще отлаживать, в-третьих, для форта уже существует огромная кодовая база. Ну и вообще, его использует AAS — как раз в космическую тему :)

Пока упёрся в отсутствие ввода-вывода. Думаю, что в итоге IO будет через DMA — где-нибудь в первых 256 байтах будут адреса портов, с ними и будем общаться…
Уж точно не в первых. Экран у них начинается с 0x8000, размер его — не более 0x10*0x20, сверху стек… Наверняка порты окажутся где-нибудь после экрана. Интересно, будет ли 2D-ввод :) Вообще все интересно.
Ну, в принципе, следуя традициям, в первых адресах можно было бы расположить какие-нибудь системные вызовы. Впрочем, на форуме поговаривают, что прерываний вообще не будет, так что, может быть всё, что угодно. Подождём следующих версий спецификации.
А откуда информация про экран?
С картинки, приведенной немного выше. Но и она может быть идеей автора очередного эмулятора. Про то, что прерываний не будет, написано здесь: twitter.com/#!/notch/status/187448370107912192
Учитывая, что нет прерываний, можно в качестве Forth-овского PC использовать регистр SP (чтобы SET PC,POP из каждой команды сразу переключал на следующую). Получится красиво, и в коде никто не разберется :)
Интересно, какую графику он возьмет за основу?
Маинкрафтовскую.Возможно, чуть улучшит.Наверняка, вскоре найдутся люди, которые будут писать код для игры за деньги)
Что-то вроде: пишу автоматическую систему наведения лазерных орудий под ключ"
Отсутствие закладок гарантирую :)
Вот это процессор… он имеет что-либо общее с современными системами? Будет ли практическая польза от такого программирования?
Его сейчас где-нибудь используют?
У него вообще нет физических реализаций. Практическая польза будет, если Вас вообще интересует программирование в жестких по времени и памяти условиях — общие принципы оптимизации везде одни и те же, различаются только конкретные приемы.
Сложно судить, я современных архитектур толком не знаю, более-менее знаком только с i8080 и i8086. Но почему-то когда читал описание системы команд, в голове возникло слово RISC (ни один RISC процессор не изучал даже азы, только теоретические описания на глаза попадались).
Интересно сравнить первоапрельский сайт marseffect.net/ и текущий 0x10c.com/.
Занятно, что из списка фич пропали две:
* A game ending that makes sense.
* Waist high walls.
На сайте Mars Effect
This was an April Fools joke. Or rather, the name was. The game is real.
Платформа для игры Инженерный Калькулятор в режиме Hex =)
Жанр игры — твёрдая научная фантастика с основой на прочный теоретический базис.

В наше время, твёрдая научная фантастика — это technological singularity.
Какими бы романтичными не казалась космические приключения, но с реальностью они имеют всё меньше и меньше общего. Скорее, Нотч хочет сделать не современную твёрдую НФ, а винтажную твёрдую НФ.
Вот небольшой список проектов по разработке эмуляторов и [диз]ассемблеров для DCPU-16.

C:
github.com/swetland/dcpu16/
github.com/abentzen/dcpu-simplec
github.com/discoloda/dcpu-16
github.com/noname22/dtools
github.com/sfackler/0x10cStuff
C++:
www.redpointsoftware.com.au/dcpu/
github.com/isamgray/DCPU-16-CPP
github.com/10098/dcpu16
github.com/ruediger/dcpu16
github.com/alex-somerville/0x10c-Compiler
C#:
github.com/sblom/dcpu16
github.com/jwvdiermen/DCPU-16
github.com/mblaine/DCPU-16
github.com/AustinWise/DcpuSharp
github.com/MOverhorst/DCPU-16-Emulator
github.com/nyu-zero/DCPU-16-Sharp
github.com/mmcgill/dcpu_sharp
github.com/gulbanana/quasar
CoffeeScript:
github.com/Janiczek/cfs-dcpu16
Delphi:
badsector.github.com/dcpustud/
Go:
github.com/kballard/dcpu16.go
github.com/Katharine/dcpu.go
github.com/quag/dcpu-16-tools
github.com/huin/dcpu16go
Haskell:
github.com/zhensydow/zdcpu16
github.com/amtal/0x10c
Java:
github.com/JEBailey/dcpu
github.com/RuneTekk/jDCPU-16
github.com/badlogic/dcpu-java
github.com/sticksoft/ADCPU-16Emu
github.com/leandromoreira/dcpu16
github.com/calzoneman/JDCPU
github.com/toby1984/dcpu16-assembler
github.com/aimozg/ja-dcpu
JS:
www.jonathanedgecombe.com/dcpu/
github.com/mappum/DCPU-16
github.com/AlexNisnevich/dcpu16-assembler
github.com/tscho/dcpu16-js
github.com/laCour/DCPU-16-Assemblers
github.com/leth/dcpu16
Python:
github.com/jtauber/dcpu16py
github.com/chrisforbes/dcpu-asm
short.csc.ncsu.edu/~isharacomix/stuff/0x10c.zip
github.com/rcxdude/dcpu16
github.com/ProCynic/dcpu-16
github.com/mikeboers/0x10c-toolkit
github.com/severb/0x10c-asm
Ruby:
github.com/toph/dcpu
github.com/rlane/scasm
Rust:
github.com/Jonanin/rust-dcpu16
Scala:
github.com/Nuriaion/DCPU-16-Scala

И да, близится к завершению такой проект: github.com/arbaal/llvm-dcpu16

Когда будет про 0x10c и DCPU-16 будет побольше информации, может даже напишу обзорную статью про существующий инструментарий. А пока тема сыровата (да и кармы нет).
Ничего себе популярность! А ведь даже альфы ещё нету.
Ну тогда заодно ещё мой запишите :)
denull.ru/dcpu/dcpu.htm (JS)
Нашёл у вас багу в «IFG a, b»:
должно проверять a>b, а у вас a>=b ( 0xe: IFG a, b — performs next instruction only if a>b )

Пример неправильного кода:
SET A, 10
IFG A, 10
SET [0x8010], 0x1632

Oops. Спасибо, поправил.
Вижу, появился input, но что-то не нашёл официальной спецификации, что да как. Поделитесь ссылкой или описанием, как оно у вас работает?

Я так понял, оно пишет в небольшой буфер в окрестностях 0x9000
Да, циклический буфер в 16 слов по адресу 0x9000.

Про него Нотч писал тут и тут. Пример кода:

; Reading characters from the keyboard
; by Markus Persson

#macro nextkey(target) {
	push(i)
	set i,[keypointer]
	add i,0x9000
	set target,[i]
	ife target,0
		jmp end
	
	set [i],0
	add [keypointer], 1
	and [keypointer], 0xf
:end
	pop(i)
}

:keypointer
dat 0
Очень ненадежная структура. Достаточно одного сбоя, и программа будет ждать заполнения следующей ячейки вечно (если пользователь не нажмет 16 кнопок, не дождавшись реакции программы).
LIVE EDIT ENVIRONMENT FOR MOJANG'S DCPU-16 MACHINE

dwilliamson.github.com/
0x10cforum.com/

Самое старое сообщение, которое мне удалось найти — 8 часов назад
Вот здесь: 0x10.cc/ собрана куча ответов на вопросы, в основном, из твиттера.
«f2p is a scam.»
Надеюсь так оно и останется.
Надеюсь, что не заставят платить через PayPal
В качестве произношения названия игры на форуме предлагают «Trillek» (название 16-ричного числа 16^12).
Форуму, посвященному игре, нет еще недели, а туда уже сбежалось 3000 участников, написано больше 16384 сообщений; для процессора, про который известна только система команд (и та будет меняться), и немного про ввод/вывод, написаны уже сотни килобайт кода и готовятся компиляторы… при этом от игры есть только скриншоты с начальных этапов разработки. Половина народа мечтают, какие хорошие корабли с каким мощным управлением на DCPU-16 они сделают, остальные пытаются выяснить, как бы побыстрее научиться писать на ассемблере.
С новыми играми всегда так? Я раньше никогда не интересовался, как форумы любителей развиваются на пре-альфа стадии. А оказывается вот оно как выглядит.
С новыми играми всегда так?

Нет, с новыми играми так очень и очень редко.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации