Quit on gm assembler

Posted by Chaz on Sept. 14, 2008, 11:52 p.m.

It's simply the most insane Idea for me to keep working on this in gamemaker, it's far too limited and direct linear data structure manipulation(such as in C) are a necessity. So I'm writing it in C instead, check out my desktop at my deviant profile to see the project going at www.chazzeromus.deviantart.com .

I've also been working on Revolution, the OS I'm making. I'm trying to load up the kernel at the first megabyte of memory and I need to enable to A20 line on the 8042. So far, I really don't like copy/pasting code so I download a specification for the 8042 and trying to develop a way safely detect and enable A20 instead of using the crap given in that crap community OSdev.

When the assemblers done, I'll use it as a DLL instead. Hopefully, that will be as equally impressive.

So, that's what's been going on, that and me trying to mess with v-ray in 3dsmax. Trying to be an artist and a developer too.

Comments

SteveKB 16 years, 3 months ago

lol i like how my simple comment turn into multiple replies. anyways it's not that the programmer is bad it's that you'll also be able to do much more. And if you are a good programmer you programming skills will be reflected better than if using game maker.

Chaz 16 years, 3 months ago

Sorry, I've worded my statement wrong. GM can support data structures but due to the limitations of the syntax of GML(and the script engine), you cannot manipulate structure as you would in C. Actually GameMaker's data structures aren't as efficient as a bare data structure in C. Though, you can create a data structure in GM, it is highly inefficient to use double precision float units wherever manipulating anything. In C, you can nest data structures within each other without any overhead like gamemaker. Nesting a data structure in GM would require you to make a data structure for each entry within a parent structure and causing you to make a hierarchy of structures that will take up a lot memory. A simple insert in a GM would take about 15 times more instructions as in insert in C. Though C has very limited overhead in lists and stacks, a grid in GM is about the closest thing to an optimized and linear structure. Lists and Stacks are as optimized as possible in GM, GM already reserves space for these structures so that speed is the first priority when manipulating them. In C, the language itself is the closest thing to translate to assembly, where a simple value assignment is one line of assembly, this means that C is a direct high to low level programming language. And data is manipulated with the least of work compared to any other language(especially scripting) besides assembly. On another note is C's small syntax of work, in gamemaker retrieving a value within a 4 byte data structure is simple, whereas A is a byte being assigned from the structure and B is the 4 byte data structure with each byte being addressable:

A = B[2][1]; //Locating the 2nd byte within the 3 element in the linear array of struct B. Or 2-dimensional array in GM.

The the GM equivalent of this statement is so, if using lists(You can use a grid, but it would be far more difficult to manipulate like an array and would be hard to read):

T = ds_list_find_value(B, 2);

A = ds_list_find_value(T, 1);

Reading this might make you think you can just use arrays but what if there was a 3-dimensional array? And furthermore, there is a lot more code and memory involved in gamemaker data structure facilities.

So, I kind said it wrong, I meant to say I need data structures that are as flexible in C then gamemaker.

As to why I'm writing an OS? We'll there are many reasons:

1) Developing Skill and knowledge of an operating system

2) Using the skill and knowledge to apply it to applications programming. Writing programs who's performance reflects upon the operating system. Such as threading and multiple tasks.

I'm sure theres more but that's all I can get at the top of my head.

Josea 16 years, 3 months ago

I understand why you would want to use C instead of GM, it's obvious.

My posts were related to the first comments here, because they correspond more to the kind of people who say ' dump GM and go for C' just because another guy, who already came accross GM's frontiers, said so.

That kind of people who just repeat without thinking drive me mad.

Chaz 16 years, 3 months ago

Yeah, I agree. There is more than enough reason to use GM over C and C over GM. That's why there's a comment section here, so people can express opinion over a particular topic. But it's obvious you support your frontend only and not letting anyone else have there say. And that's all the more reason why you post.

But it makes me a bit irritated also, seeing how people can make biased statements judged upon a programming language's frequent usage.

SteveKB 16 years, 3 months ago

Don't make any assumptions now, that's not the reason why I chose C(++) over GM. I wouldn't choose a program over it's usage by other people. That's biased.

Chaz 16 years, 3 months ago

Well, I'm saying that I WOULD be irritated if you did.

SteveKB 16 years, 3 months ago

Glad that's settled, I do wait to see how your work will turn out.

Chaz 16 years, 3 months ago

Thanks, I'm a bit side tracked with 3dsmax, even thought I'm not very good at it. But I don't think I'm good enough to show my craptacular renders though :(