flat assembler
Message board for the users of flat assembler.
 Home   FAQ   Search   Register 
 Profile   Log in to check your private messages   Log in 
flat assembler > Heap > Призываю всех русских занимающимися flat assembler'ом помочь

Author
Thread Post new topic Reply to topic
EvolutionEXE



Joined: 22 Nov 2014
Posts: 9
Location: Planet - Kuplinov ► Play
Призываю всех русских занимающимися flat assembler'ом помочь
Есть один довольно важный для меня ответ на вот этот вопрос.
Есть ли смысл пробовать flat assembler для разработки игр или игрового движка для последующей разработки на нем игр?
Если да то напишите почему! А если нет, то почему нет!

Ну вот у меня есть одна проба разработать миниатюрный игровой движок и игры на нем для теста. Но пока не знаю стоит ли продолжать дальше и заканчивать его до полной готовности.

Arrow С уважением EvolutionEXE.

_________________
(Rus) Делай игру-проект так чтобы она влюбляла в себя самого разработчика (тоесть себя).

(Eng)Make the game project so that it falls in love with himself developer (ie himself).
Post 08 Jan 2017, 20:44
View user's profile Send private message Visit poster's website Reply with quote
MrFox



Joined: 17 Aug 2016
Posts: 52
Location: Russia
Fasm - это просто ассемблер. Ничем не хуже других ассемблеров (MASM, TASM, SASM, YASM...). Т.е. это штука, которая переводит макроинструкции в машинный код и компонует исполняемый файл. Вся разница с другими ассемблерами - это то, что тут и компилятор и линковщик "в одном флаконе", в то время как в других они разделены.

Т.е. ваш вопрос можно перефразировать: Есть ли смысл использовать ассемблер вообще для разработки игр и игрового движка? (Is is worth using assembler at all to develop game engines and games themselves?).
Ответ: предположительно нет. (The answer is: probably, no.)
И вот почему: чаще всего с игровыми движками работают через HLL (языки высокого уровня) - C++ и другие. Также чаще всего используются графические ускорители (аппаратные и программные). Их интерфейс описан также в терминах языков высокого уровня (гляньте мануалки на Direct3D, OpenGL и т.д.). Например, тут (многопроходный рендеринг на сайте Microsoft Developers Network - MSDN): https://msdn.microsoft.com/en-us/library/windows/desktop/ff819064(v=vs.85).aspx
Берете C++, подключаете библиотеку, качаете мануал и вперёд!

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

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

Все ломанулись использовать HLL а на ассемблер забили.
Post 09 Jan 2017, 06:34
View user's profile Send private message Reply with quote
EvolutionEXE



Joined: 22 Nov 2014
Posts: 9
Location: Planet - Kuplinov ► Play

Quote:

предположительно нет


Ну мне так не кажется. Ведь есть кто его использует для разработки всего что потребуется. Вот эта ide для flat assembler https://fresh.flatassembler.net/ написана на нем.

Quote:

И вот почему: чаще всего с игровыми движками работают через HLL (языки высокого уровня) - C++ и другие


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

Quote:

Ассемблер иногда можно использовать, но ограниченно, в виде ассемблерных вставок в код


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

Quote:

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


Движок игры можно же компилировать как DLL библиотеку или как obj файл для подключения к коду на Си.

Quote:

Все ломанулись использовать HLL а на ассемблер забили.


А как же те кто его использует для написания демо сцен. Вот как пример http://www.theverge.com/2012/5/14/3014698/assembly-4k-demoscene-fractals

_________________
(Rus) Делай игру-проект так чтобы она влюбляла в себя самого разработчика (тоесть себя).

(Eng)Make the game project so that it falls in love with himself developer (ie himself).
Post 09 Jan 2017, 06:48
View user's profile Send private message Visit poster's website Reply with quote
MrFox



Joined: 17 Aug 2016
Posts: 52
Location: Russia
Конечно, можно все. Вопрос - нужно ли. И это решает сам разработчик, выбирая из доступных ему средств (языков программирования) те, которые максимально подходят для решения конкретной задачи. Я свое мнение выше привел, а вы уж решайте сами.

По сути сейчас весь код игры представляет собой вызовы функций движка с некоторой прослойкой пользовательского кода для вычислений и прочего. На каком языке делать эту прослойку - зависит от соотношения потраченное время/результат. Если результат не сильно отличается, то надо экономить свое время, т.к. на HLL процесс разработки всегда быстрее. До этого уже давно дошли во всем цивилизованном мире и используют асм исключительно там, где без него обойтись никак невозможно.

А вы решайте сами, хочется - почему бы и нет... не забывайте только документировать и интерфейс хотя бы с сями обеспечить, а то движок этот так и останется никому не нужной экзотикой.
Post 09 Jan 2017, 07:25
View user's profile Send private message Reply with quote
EvolutionEXE



Joined: 22 Nov 2014
Posts: 9
Location: Planet - Kuplinov ► Play

MrFox wrote:
Конечно, можно все. Вопрос - нужно ли. И это решает сам разработчик, выбирая из доступных ему средств (языков программирования) те, которые максимально подходят для решения конкретной задачи. Я свое мнение выше привел, а вы уж решайте сами.

По сути сейчас весь код игры представляет собой вызовы функций движка с некоторой прослойкой пользовательского кода для вычислений и прочего. На каком языке делать эту прослойку - зависит от соотношения потраченное время/результат. Если результат не сильно отличается, то надо экономить свое время, т.к. на HLL процесс разработки всегда быстрее. До этого уже давно дошли во всем цивилизованном мире и используют асм исключительно там, где без него обойтись никак невозможно.

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



Ну у меня есть разработанный на нем игровой движок в 129 кб. А для упрощения я сделал некий упрощенный интерфейс работы через макросы и подобные вещи которые мне помогли упростить степень сложности при разработки на чистом ассемблере.

П.С. И тем кому будет интересно какие возможности у этого движка. То хочу обрадовать их вполне достаточно как функционально так и графически и скоростью он просто прекрасен. Возможности движка можно сравнить с OpenSource игровым движком как Godot Engine версии 2.1.1 и будущей 3.0.

_________________
(Rus) Делай игру-проект так чтобы она влюбляла в себя самого разработчика (тоесть себя).

(Eng)Make the game project so that it falls in love with himself developer (ie himself).
Post 09 Jan 2017, 12:19
View user's profile Send private message Visit poster's website Reply with quote
comrade



Joined: 16 Jun 2003
Posts: 1104
Location: Russian Federation
Re: Призываю всех русских занимающимися flat assembler'ом помочь

EvolutionEXE wrote:
Есть ли смысл пробовать flat assembler для разработки игр или игрового движка для последующей разработки на нем игр?



Согласен здесь с MrFox: зная все языки программирования достаточно одинаково, думаю разумный человек выбрал бы C/C++.

На азме тоже можно, с целью расширит собственные умственные способности (complexity management через макросы как ты сам сказал, просто практика, и т.д.); доказать себе свои возможности как программист (повысить уверенность в самом себе и в своих возможностей; increase self-confidency and self-esteem).

Думаю если Томаш спросил бы на каком языке ему писать FASM, так же бы ему ответили HLL (C/C++/Python). Но FASM интересный пример который противоречит этому. Правда, думаю кроме самого Томаша, мало кто может (за относительно короткое время) взяться за поддержку FASM'а. Предполагаю что Томашу тоже в начале хотелось доказать себе, что он способен сотворить что-то довольно сложное (ассемблер) на довольно низком уровне (ассемблер). Ну и вообще в среде ассемблеров и компиляторов, считается уважительно когда продукт может скомпилировать самого себя (self-compiling/self-assembling).

Пере-напрягаться над этим вопросом не следует. Главное начать. Потом, гляди, и вторую версию движка напишешь на совсем другом языке.

Удачи Вам!

_________________
comrade (comrade64@live.com; http://comrade.ownz.com/)
Post 17 Jan 2017, 04:10
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger ICQ Number Reply with quote
EvolutionEXE



Joined: 22 Nov 2014
Posts: 9
Location: Planet - Kuplinov ► Play

Quote:

Думаю если Томаш спросил бы на каком языке ему писать FASM, так же бы ему ответили HLL (C/C++/Python).


fasm написан на самом себе на fasm.


Quote:

думаю разумный человек выбрал бы C/C++


Я лучше выбрал бы для написания (игр, программ, ОС) именно Си.
А для быстрого создания прототипа я лучше выбрал бы Java версии 1.8.
А в новой версии Java 1.9 обещают нативную компиляцию без байт-кода.


Quote:

Пере-напрягаться над этим вопросом не следует. Главное начать. Потом, гляди, и вторую версию движка напишешь на совсем другом языке.


Если начну на асме кодить то на нем и продолжу. А если сильно сложно станет то перепишу ядро движка на Си в DLL модуль.


Quote:

Удачи Вам!


Спасибо. И вам так-же в своих проектах и начинаниях.

_________________
(Rus) Делай игру-проект так чтобы она влюбляла в себя самого разработчика (тоесть себя).

(Eng)Make the game project so that it falls in love with himself developer (ie himself).
Post 17 Jan 2017, 10:17
View user's profile Send private message Visit poster's website Reply with quote
JohnFound



Joined: 16 Jun 2003
Posts: 3415
Location: Bulgaria
Кстати, я не думаю что написания чего либо на ассемблере медленнее чем на C. Быстро и качественно можно писать на тот язык которого знает программист. И никак иначе. То же самое в силе и насчет поддержки кода.
Post 17 Jan 2017, 21:20
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
EvolutionEXE



Joined: 22 Nov 2014
Posts: 9
Location: Planet - Kuplinov ► Play

Quote:

Кстати, я не думаю что написания чего либо на ассемблере медленнее чем на C.


Согласен с вашими словами. Я тоже так считаю, ведь на flat assembler разрабатывая игру и в тоже время ее же и на Си скорости в разработки я не заметил. Разве что в сложности, а так все почти одинаково.

_________________
(Rus) Делай игру-проект так чтобы она влюбляла в себя самого разработчика (тоесть себя).

(Eng)Make the game project so that it falls in love with himself developer (ie himself).
Post 18 Jan 2017, 10:05
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >

Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001-2005 phpBB Group.

Main index   Download   Documentation   Examples   Message board
Copyright © 2004-2016, Tomasz Grysztar.