The Gang Garrison 2 Forum

Archived Boards => General Beta Tester Discussion => Topic started by: notajf on June 22, 2011, 04:20:09 pm

Title: When do we rewrite GG2 in a sane language
Post by: notajf on June 22, 2011, 04:20:09 pm
:<
Title: Re: When do we rewrite GG2 in a sane language
Post by: Meower on June 22, 2011, 04:21:12 pm
Gang Garrison Steam

Rated H for Hats

Also we all get new features.
Title: Re: When do we rewrite GG2 in a sane language
Post by: RBY on June 23, 2011, 06:54:36 am
I don't think the devs are up to redo all their years of work.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 23, 2011, 10:16:08 am
I don't think the devs are up to redo all their years of work.
Of course. But GML is horrible
Title: Re: When do we rewrite GG2 in a sane language
Post by: Haxton Sale on June 23, 2011, 12:37:46 pm
I don't think the devs are up to redo all their years of work.
minus beta testing, map making, tweaks, bugfixes and fapping, it wouldn't take more than a week.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Lorgan on June 23, 2011, 12:55:26 pm
Why is gml so horrible? It's easy to understand, almost as reading a normal text.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 23, 2011, 01:12:20 pm
Why is gml so horrible? It's easy to understand, almost as reading a normal text.
Sure, so are other languages.

But its scoping is silly, it doesn't have integers, the Game Maker runtime is dubm, and it has horrible string manipulation D:
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 23, 2011, 04:12:10 pm
I guess it depends where we would like to go with it.

I feel like Java would be our best bet, since we can easily port it to other platforms, but C++ probably has good points.
Title: Re: When do we rewrite GG2 in a sane language
Post by: AcidLead on June 23, 2011, 06:21:58 pm
I'll get right on this

it might take me 15 years though
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 01:23:24 am
I guess it depends where we would like to go with it.

I feel like Java would be our best bet, since we can easily port it to other platforms, but C++ probably has good points.
C#. Or Python. Or Java. Or Ruby or Lua or something. But NOT C++. No.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on June 24, 2011, 01:28:29 am
You can't just ask everyone to PLZ REWRITE GAME TO BE BETTER, KTHXBAI, most of the developers have lives of their own and development is compulsive

What's wrong with a C++ port?
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 01:56:58 am
You can't just ask everyone to PLZ REWRITE GAME TO BE BETTER, KTHXBAI, most of the developers have lives of their own and development is compulsive

What's wrong with a C++ port?
I'm not asking. I want to do it, meh.

What's wrong with a C++ port? Too much work, horrible language.

If we used something like Python, it is very flexible and would, for example, let us create a "with" statement to replace that in GML.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on June 24, 2011, 02:02:47 am
You're thinking with too direct of a port, we don't need to create specific functions to mirror the convenience of GML.

You're welcome to try, you don't need permission, if you get a good project going, other people may be able to hop on board and help
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 02:05:10 am
You're thinking with too direct of a port, we don't need to create specific functions to mirror the convenience of GML.

You're welcome to try, you don't need permission, if you get a good project going, other people may be able to hop on board and help
I know I don't need to create GML analogous functions. But it might help.

Yeah, I'll probably try when I get home from school (lol)
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on June 24, 2011, 02:08:05 am
Most people on the development team (read: not me) have experience in other programming languages, as for the community---


That does sound interesting and useful, don't know a thing about python syntax though
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 02:15:33 am
Most people on the development team (read: not me) have experience in other programming languages, as for the community---


That does sound interesting and useful, don't know a thing about python syntax though
Python syntax is not very hard to learn. The big difference with python syntax is whitespace denotes code blocks (no {}), e.g.:
Code: [Select]
if x == 2:
    print ("stuff")
    if y == 3:
        print ("more stuff")
else:
    print ("other stuff")
eh, gtg now. will discuss more later/actually do something
Title: Re: When do we rewrite GG2 in a sane language
Post by: MedO on June 24, 2011, 06:32:12 am
I'm not trying to shoot this down or anything, and it would be cool if it did happen, but this has been brought up very often in the history of this project, almost from the very beginning. Several people started projects for this (including me, twice) but nobody ever got close to completion. And doing it becomes more difficult since the game constantly grows larger, while on the other hand there is less reason for it, since gmksplitter removed (or at least reduced) one of the big drawbacks of Game Maker.

I'm just trying to say, don't underestimate the work involved.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 10:22:15 am
I understand. I think, for that reason, if I do this, I should plan it out thoroughly in advance.

Also, set a list of goals. For instance, my personal first goal is "working client and server where player can join as red querly and move around, visible to other players". That alone requires quite a bit of code, but is the important first step.

Meh. If I can get there in a not-too-long period of thime, this yet-another-rewrite project might go somewhere.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 24, 2011, 01:49:02 pm
I understand. I think, for that reason, if I do this, I should plan it out thoroughly in advance.

Also, set a list of goals. For instance, my personal first goal is "working client and server where player can join as red querly and move around, visible to other players". That alone requires quite a bit of code, but is the important first step.

Meh. If I can get there in a not-too-long period of thime, this yet-another-rewrite project might go somewhere.

Start with the server, it would be easiest to test and if you ever decide to give up, you're still left with a functioning non-gml server :D

What reason do you want to use python for? Of course any language is probably better than gm, but I would think we would want to choose a language that is both development-friendly and also beneficial. Other than being faster, Python doesn't have much over what we have now.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Hanz Ketchup on June 24, 2011, 03:00:23 pm
I think we should use Pygame.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Haxton Sale on June 24, 2011, 03:18:26 pm
Let's code it in whitespace
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 03:56:33 pm
I understand. I think, for that reason, if I do this, I should plan it out thoroughly in advance.

Also, set a list of goals. For instance, my personal first goal is "working client and server where player can join as red querly and move around, visible to other players". That alone requires quite a bit of code, but is the important first step.

Meh. If I can get there in a not-too-long period of thime, this yet-another-rewrite project might go somewhere.

Start with the server, it would be easiest to test and if you ever decide to give up, you're still left with a functioning non-gml server :D

What reason do you want to use python for? Of course any language is probably better than gm, but I would think we would want to choose a language that is both development-friendly and also beneficial. Other than being faster, Python doesn't have much over what we have now.
Python is both development-friendly and beneficial. Java is neither.

I think we should use Pygame.
That's my thoughts too.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 24, 2011, 04:12:48 pm
Python is both development-friendly and beneficial. Java is neither.

Way to elaborate/ not answer the question.

Java works well cross platform, how is that not beneficial? Its syntax is much more legible than Python as well.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 04:30:25 pm
Python is both development-friendly and beneficial. Java is neither.

Way to elaborate/ not answer the question.

Java works well cross platform, how is that not beneficial? Its syntax is much more legible than Python as well.
Python has very concise and powerful, easily human-readable syntax. It also has great cross-platform compatibility.

I don't see how Java's syntax is more legible.
Code: [Select]
dict = { "a": 1, "b": 2 }
for key, value in dict.items():
    print(key, value)
    if key == "a":
        print("Look mom, no braces!")
vs
Code: [Select]
Dictionary dict = new Dictionary();
dict.put("a", 1);
dict.put("b", 2);
for (Enumeration e = dict.keys() ; e.hasMoreElements() ;) {
    String key = e.nextElement();
    System.out.println(key + " " + dict.get(key));
    if (key == "a") {
        System.out.println("Look mom, braces!");
    }
}

ugh
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 24, 2011, 05:14:25 pm
Hm, Python seems like a good idea then.
Title: Re: When do we rewrite GG2 in a sane language
Post by: MedO on June 24, 2011, 05:24:23 pm
Code: [Select]
Map<String, Integer> dict = new HashMap<String, Integer>();
dict.put("a", 1);
dict.put("b", 2);
for (Map.Entry<String, Integer> entry : dict) {
    System.out.println(entry.getKey() + " " + entry.getValue());
    if (entry.getKey().equals("a")) {
        System.out.println("Look mom, braces!");
    }
}

ftfy.
Yes, Java is quite verbose, partly because it is a statically typed language, and we could discuss the drawbacks and benefits of that for weeks. It has its advantages though, not least of which is that it's significantly faster (around half as fast as C++, as far as I know), and way better documented than Python. I think it's in fact one of the best documented languages / standard libraries around, which is worth a lot.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 05:26:39 pm
Code: [Select]
Map<String, Integer> dict = new HashMap<String, Integer>();
dict.put("a", 1);
dict.put("b", 2);
for (Map.Entry<String, Integer> entry : dict) {
    System.out.println(entry.getKey() + " " + entry.getValue());
    if (entry.getKey().equals("a")) {
        System.out.println("Look mom, braces!");
    }
}

ftfy.
Yes, Java is quite verbose, partly because it is a statically typed language, and we could discuss the drawbacks and benefits of that for weeks. It has its advantages though, not least of which is that it's significantly faster (around half as fast as C++, as far as I know), and way better documented than Python. I think it's in fact one of the best documented languages / standard libraries around, which is worth a lot.
Way better documented than Python?

I'd argue Python is better documented. It has generally excellent documentation for all of the standard library.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Hanz Ketchup on June 24, 2011, 05:54:22 pm
Well how about an "ambassador" for each of the different coding languages recreate GG2 in single player in their language, then we ask everyone which one works best (not a poll). Once a winner is decided, we can work on adding multiplayer, custom map support, and all that good stuff.
y/n?
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 05:58:22 pm
Well how about an "ambassador" for each of the different coding languages recreate GG2 in single player in their language, then we ask everyone which one works best (not a poll). Once a winner is decided, we can work on adding multiplayer, custom map support, and all that good stuff.
y/n?
>adding multiplayer

No, that has to be there from the beginning
Title: Re: When do we rewrite GG2 in a sane language
Post by: Hanz Ketchup on June 24, 2011, 05:59:12 pm
Fine, they have to have barebones multiplayer too.
Title: Re: When do we rewrite GG2 in a sane language
Post by: MedO on June 24, 2011, 06:25:38 pm
Don't get me wrong, I do think Python would be a good choice. I just don't like it when people bash Java :D
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 24, 2011, 06:26:42 pm
Don't get me wrong, I do think Python would be a good choice. I just don't like it when people bash Java :D
What Java programmer doesn't? :P
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on June 24, 2011, 08:44:04 pm
The problem is that does anyone here have enough experience in programming video games in any other language to have a fully functioning graphics/multiplayer engine?

Unless we start off working from anothe video game engine, that's a start at least
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 25, 2011, 04:12:16 am
The problem is that does anyone here have enough experience in programming video games in any other language to have a fully functioning graphics/multiplayer engine?

Unless we start off working from anothe video game engine, that's a start at least
We're working in 2D here. Writing a 2D game engine is not a complex task. I'll probably create a new one for this project.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Meower on June 25, 2011, 04:58:23 am
I'll skip pages and ask

Why
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 25, 2011, 05:26:29 am
I'll skip pages and ask

Why
Why rewrite GG2 in another language?

Cross-platform (Mac, Linux, Android maybe). Not being reliant on Game Maker. Not needing a stupid GPL linking exception. Greater openness as you won't need commercial software to work on it. More efficient, less laggy multiplayer (better server architecture). Not needing stupid DLL extensions to do stuff. Actually working bgm on Linux. etc...
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 25, 2011, 03:16:22 pm
Hey, we could make a parody source engine :D
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 25, 2011, 03:20:22 pm
Hey, we could make a parody source engine :D
Yes, the sauce engine.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Saniblues on June 25, 2011, 03:21:42 pm
On another note, if we make our own engine, we can make new games and actually sell them.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 25, 2011, 03:22:49 pm
On another note, if we make our own engine, we can make new games and actually sell them.
Yep.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Haxton Sale on June 25, 2011, 03:55:21 pm
Or we can just code GG2 in source engine. It would be possible, wouldn't it?
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on June 25, 2011, 04:12:40 pm
Or we can just code GG2 in source engine. It would be possible, wouldn't it?

Haha that would be interesting.
Title: Re: When do we rewrite GG2 in a sane language
Post by: AcidLead on June 25, 2011, 07:08:49 pm
Or we can just code GG2 in source engine. It would be possible, wouldn't it?

Haha that would be interesting.
interesting more like valve decides to swoop in and eat the cash cow before it's too big to chew on properly
Title: Re: When do we rewrite GG2 in a sane language
Post by: BassieEnAdriaan on June 26, 2011, 07:50:36 am
I honestly see no future in this. It starts with lots of talking but ends up with nothing.

(click to show/hide)
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on June 26, 2011, 07:55:52 am
I honestly see no future in this. It starts with lots of talking but ends up with nothing.

(click to show/hide)
lol, nice metaphor.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on July 15, 2011, 08:48:38 am
What would be the first things to rewrite?

Yeah, I know a working server with a quote that walks around is great, I mean before that.

Does someone have a working concept for the collision detection and response? (copying the current one is not going to work)

Would we want to profit to restructure certain very bad things in the current version that are just to deep and grown to remove properly?
(UDP?)

And before you say "No one will be able to do this"; the more concept we put down, the easier for someone who will try.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on July 15, 2011, 03:19:45 pm
it won't be easy for anyone to do so just because you make a basic checklist
here's a basic checklist if you want

[ ] write a basic server program independent of game maker, which handles collisions properly but does not need to graphically render the game
[ ] finally move over the entire engine into a (preferably open source) engine which cuts it's ties from game maker entirely
[ ] rewrite the netcoding to be in a more quake-like udp snapshot system, and ditch the old tcp system in favor of a more lossy, but less bandwidth intensive and latency inducing way. This would require compensention for important packets, along with some sort of client-sided prediction coupled with lag compensention. None of this is necessarily, but it is preferred.


In that order respectively would smooth the transition

A basic server would not be hard to do, what would be difficult is getting the game to behave the way it does currently. Getting someone to do all this, or even the team to do this is difficult as very little of us have much experience outside of game maker and doens't have enough time

that's pretty much it
Title: Re: When do we rewrite GG2 in a sane language
Post by: Dokurider on July 15, 2011, 03:40:41 pm
Well, if you guys go with Python, you are in luck as I know Python and might be able to lend a hand.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Phantom Brave on July 15, 2011, 04:05:02 pm
It's not going to happen. That's what NAGN's been trying to say.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on July 15, 2011, 04:29:39 pm
[ ] rewrite the netcoding to be in a more quake-like udp snapshot system, and ditch the old tcp system in favor of a more lossy, but less bandwidth intensive and latency inducing way.

First of all, thanks.

Second, what do you mean with "snapshot system"? Please explain.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on July 15, 2011, 04:34:26 pm
in quake 3, the networking system basically works like this:

Everything is disposable. The only thing important is making sure that the clients get the most current game state, and they get it as fast as possible.


This opens up alot of new possibilities. Firstly, there's the movement away from tcp into udp, which is very fast and doesn't require port forwarding in some cases (socket punching) though that's irrelevent tbh to the whole decision as a whole

Basically when a missed packet is missed in the current system, tcp must freeze the socket, ask the server to resend the packet, and then unfreezes the socket. That's very slow and induces alot of latency.

In a udp based system we wouldn't need to pause for everything. If something is missed last frame, such as the position of a player, it doesn't really matter. The next frame will be updated so quickly that you won't even notice the brief decync. This makes the game artificially much much smoother
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on July 15, 2011, 04:44:27 pm
in quake 3, the networking system basically works like this:

Everything is disposable. The only thing important is making sure that the clients get the most current game state, and they get it as fast as possible.


This opens up alot of new possibilities. Firstly, there's the movement away from tcp into udp, which is very fast and doesn't require port forwarding in some cases (socket punching) though that's irrelevent tbh to the whole decision as a whole

Basically when a missed packet is missed in the current system, tcp must freeze the socket, ask the server to resend the packet, and then unfreezes the socket. That's very slow and induces alot of latency.

In a udp based system we wouldn't need to pause for everything. If something is missed last frame, such as the position of a player, it doesn't really matter. The next frame will be updated so quickly that you won't even notice the brief decync. This makes the game artificially much much smoother

I know what UDP is. My question was what kind of structure needs changing to achieve this:
Quote
Everything is disposable
, because I can't really imagine how we should change what.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on July 15, 2011, 04:56:21 pm
simple: we don't compensate packets
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on July 15, 2011, 05:03:13 pm
simple: we don't compensate packets
I fell very dumb, but what do you mean by that? Do we not expect packets, and just take those that appear? Do we try to guess how the game will go, and just take any packet that chances our way, without really expecting any?

What?
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on July 15, 2011, 05:08:41 pm
Send snapshots of the current game state

if anything's lost, it'll be in the next update so it doesn't matter

:I
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on July 15, 2011, 05:15:31 pm
Send snapshots of the current game state

if anything's lost, it'll be in the next update so it doesn't matter

:I
Oh.

Ok.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on July 16, 2011, 09:45:15 am
Well, I was working on this. I'm just not sure how to design it. I was basically copying the Game Maker design (objects with events, speeds and sprites, and steps), but perhaps a different design is a good idea. Hmm.
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on July 16, 2011, 10:53:42 am
A design I just thought of, which is probably better than what I thought of before, for objects.
Objects do not necessarily have properties. However, some have x and y, for instance.
A plain GameObject doesn't actually do anything. It can be extended to provide movement and drawing however. But as the base GameObject doesn't have any default behaviour, it means objects that are invisible don't unnecessarily waste space.

An object can register itself for the draw event so it is drawn, and provide a method to be called. It provides a z-index for sorting.
Similarly, an object can register for the begin step, step and end step events (similarly to game maker).
So, something like this:
Code: [Select]
class GameObject:
    """
    Class all game objects inherit from.
    """
    
    def __init__(self, environment):
        self.environment = environment

class MyFancyObject(GameObject):
    """
    A fancy game object!
    """

    def __init__(self, environment, x=0, y=0):
        GameObject.__init__(self, environment)
        self.x, self.y = x, y
        self.sprite = load_sprite("lol.png")
        self.environment.register_event("draw", self.draw, zindex=20)
        self.environment.register_event("step", self.step)

    def step(self):
        self.x += 2
        self.y += 3

    def draw(self, canvas):
        canvas.draw(self.sprite, self.x-self.enviroment.viewport[0], self.y-self.enviroment.viewport[1])

This isn't that different from the game maker coding style, which would make porting easier.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Orpheon on August 12, 2011, 04:44:32 am
(click to show/hide)

Though I'm wondering what would be a better language, C++ or Python.

Both have their Pros and Cons, and I'm really unsure which I should stick to.

Question Libraries, Python has Pygame (http://pygame.org/news.html), and for C++ the best option would probably be SFML (http://www.sfml-dev.org/) (although SFML also exists for Python).


Also I'm a bit unsure as to how to manage sprites. Loading them from a file at creation is probably pretty inefficent, so we'll probably need a sprite manager or something that loads all images in memory and then just gives the images away.


And no, multiplayer doesn't have to be in from the start. Coding everything in the Character object + coding maps + coding all the weapons and classes is already a big thing that can be done (almost) completely independently of networking.
Title: Re: When do we rewrite GG2 in a sane language
Post by: MedO on August 14, 2011, 05:45:57 pm
I just randomly noticed that there is a LUA wrapper for Game Maker, unsurprisingly called gmlua. It can apparently call into GML functions by using the dark magic of GMAPI, so a relatively tight integration between LUA and GML is possible. However, GMAPI only works with GM up to version 8.0 and doesn't seem very active, so if we did use it, we might not be able to switch to GM 8.1. GMAPI is LGPL licensed, so we could always do the porting ourselves, but I don't really feel like taking on yet another GM extension projekt at the moment.

On the upside, having coroutines could dramatically simplify the netcode. If I understand them correctly (I never actually used coroutines yet), they would allow writing netcode almost as if the calls were blocking. That is, you could have a function receiveOrYield(socket, size) that will only return once the requested ammount has been read, and in the meantime it wouldn't block the thread, but allow the game to continue running. It would also improve the possibilities of script-based modding. And if done well, the game logic might be translated to LUA bit by bit, until we only have the bare "engine" in GML, which could then be recreated in a different host language to migrate completely away from Game Maker.

I didn't spend any time actually planning this so there might be glaring flaws. Just putting it here as an idea. I still won't have time to do this kind of thing for a while now.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Saniblues on August 14, 2011, 05:58:47 pm
I just randomly noticed that there is a LUA wrapper for Game Maker, unsurprisingly called gmlua. It can apparently call into GML functions by using the dark magic of GMAPI, so a relatively tight integration between LUA and GML is possible. However, GMAPI only works with GM up to version 8.0 and doesn't seem very active, so if we did use it, we might not be able to switch to GM 8.1. GMAPI is LGPL licensed, so we could always do the porting ourselves, but I don't really feel like taking on yet another GM extension projekt at the moment.

On the upside, having coroutines could dramatically simplify the netcode. If I understand them correctly (I never actually used coroutines yet), they would allow writing netcode almost as if the calls were blocking. That is, you could have a function receiveOrYield(socket, size) that will only return once the requested ammount has been read, and in the meantime it wouldn't block the thread, but allow the game to continue running. It would also improve the possibilities of script-based modding. And if done well, the game logic might be translated to LUA bit by bit, until we only have the bare "engine" in GML, which could then be recreated in a different host language to migrate completely away from Game Maker.

I didn't spend any time actually planning this so there might be glaring flaws. Just putting it here as an idea. I still won't have time to do this kind of thing for a while now.
I hear GM 8.1 is awful, anyway.
Title: Re: When do we rewrite GG2 in a sane language
Post by: Phantom Brave on August 14, 2011, 06:06:36 pm
it is
Title: Re: When do we rewrite GG2 in a sane language
Post by: Psychopath on August 14, 2011, 06:16:20 pm
I have a few friends who have used GM8.1, they agree with the statement Sani just made.

It's far less stable than 8.0 is from what they've experienced. And the only noticeable improvement they've acknowledged is the ability to grep through object events in addition to scripts instead of only being limited to grepping through scripts. Add on top of that the (if I'm not mistaken) doubled pricetag from 8.0, it's as if there's no reason to even want to get it, let alone pirate it.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on August 14, 2011, 06:17:02 pm
We can't even port Gang Garrison 2 to 8.1 let alone a library
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on August 14, 2011, 07:34:39 pm
Hm, Lua should be interesting. I've had somewhat experience with Lua, although only related to the source engine, I used to be a huge into modding stuff for GMOD back in the day.
Title: Re: When do we rewrite GG2 in a sane language
Post by: AcidLead on August 15, 2011, 12:09:45 pm
hey

a language change that means none of the years of work has to be lost now?

and might result in more efficient program structure?

in fact eventually so ridiculously efficient that we'll wonder why we used the slow buggy crap of today?

wow i hate this the old ways are better everyone knows that new things are bad
Title: Re: When do we rewrite GG2 in a sane language
Post by: Vindicator on August 15, 2011, 01:07:36 pm
hey

a language change that means none of the years of work has to be lost now?

and might result in more efficient program structure?

in fact eventually so ridiculously efficient that we'll wonder why we used the slow buggy crap of today?

wow i hate this the old ways are better everyone knows that new things are bad

Just because there's a checkbox that says "Enable Something" doesn't mean everything will magically become super efficient without us doing anything.
Title: Re: When do we rewrite GG2 in a sane language
Post by: MedO on August 15, 2011, 01:30:19 pm
I think it's more of an issue that a minor version change introduces breaking changes, i.e. argument count checking (though that can be disabled now) and removal of raster font support. Also, breaking stuff again with an update of the third order version number by suddenly re-interpreting everything as UTF-8, with no apparent support for converting old files, so everything that used non-ascii characters has to be re-typed. This one was plain silly, seriously.
Title: Re: When do we rewrite GG2 in a sane language
Post by: NAGN on August 15, 2011, 01:33:38 pm
On the topic of Game Maker 8.1, does anyone else have trouble installing it on multiple computers? Or is the key a one-time use thing, which would really make me upset
Title: Re: When do we rewrite GG2 in a sane language
Post by: Meower on August 15, 2011, 02:51:28 pm
hey

a language change that means none of the years of work has to be lost now?

and might result in more efficient program structure?

in fact eventually so ridiculously efficient that we'll wonder why we used the slow buggy crap of today?

wow i hate this the old ways are better everyone knows that new things are bad

Just because there's a checkbox that says "Enable Something" doesn't mean everything will magically become super efficient without us doing anything.
You obviously have never traveled here
Title: Re: When do we rewrite GG2 in a sane language
Post by: AcidLead on August 15, 2011, 06:36:19 pm
wow did everyone miss that i was joking
Title: Re: When do we rewrite GG2 in a sane language
Post by: notajf on August 16, 2011, 03:09:49 pm
I just randomly noticed that there is a LUA wrapper for Game Maker, unsurprisingly called gmlua. It can apparently call into GML functions by using the dark magic of GMAPI, so a relatively tight integration between LUA and GML is possible. However, GMAPI only works with GM up to version 8.0 and doesn't seem very active, so if we did use it, we might not be able to switch to GM 8.1. GMAPI is LGPL licensed, so we could always do the porting ourselves, but I don't really feel like taking on yet another GM extension projekt at the moment.

On the upside, having coroutines could dramatically simplify the netcode. If I understand them correctly (I never actually used coroutines yet), they would allow writing netcode almost as if the calls were blocking. That is, you could have a function receiveOrYield(socket, size) that will only return once the requested ammount has been read, and in the meantime it wouldn't block the thread, but allow the game to continue running. It would also improve the possibilities of script-based modding. And if done well, the game logic might be translated to LUA bit by bit, until we only have the bare "engine" in GML, which could then be recreated in a different host language to migrate completely away from Game Maker.

I didn't spend any time actually planning this so there might be glaring flaws. Just putting it here as an idea. I still won't have time to do this kind of thing for a while now.
I'm supposed to be retired, but I'm visiting for 5 minutes again.

This sounds like a good idea - In fact, I've suggested this before (although not using Lua). If you were to do this, you could eventually go to "LÖVE", a lovely Lua 2d engine for games.
Title: Re: When do we rewrite GG2 in a sane language
Post by: free crzy on March 22, 2024, 12:00:16 pm
ay yo when this board get here???