[GSOC] Refactored and faster code generation


#1

Hey, I was going through the ideas page of GDevelop. I am interested in Refactored and faster code generation idea. I went through the description and related threads here but wasn’t able to find any specific expectations on the project. Is it the same as the “WebAssembly for collisions” idea?
Do we have to update the preexisting code in WebAssembly (wasm), or do we have to write the code using alternate/faster data structures?
Also, in “WebAssembly for collisions” do we have to rewrite the gdjs.ObjectPositionsManager (https://github.com/4ian/GDevelop/pull/1393) in any wasm format or add additional changes also?


#2

Uuuuhhhh… Not at all :laughing:? Code generation is the part of the GDevelop JS Platform that converts events into JS code.

Do whatever you want, we only want a working collision system in WASM and benchmarks to compare it with the Js one.

Basically, look at the code generation here:

Then find optimizations to make code generation faster, and make the generated code smaller/faster.


#3

Code Generation is almost entirely done in C++. It’s indeed not related to WebAssembly for collisions - which is a totally separate project.

This project involves understanding the different code generation existing (for events, for actions/conditions, for object actions/conditions, for expressions), and either identify performance bottleneck and solve them (+ clean anything that is not well designed) or suggest a new, cleaner system and develop it (with the goal of it being more maintenable, flexible and performant).

In addition to the folders listed by Arthuro555, look at:

A large part of code generation is handled here in GDCore :slight_smile:


#4

I’ve checked out all the above links in whole GDJS and GDCore and familiarized myself with the repository and set up in my local computer to work further.
Also, I’ve written a draft proposal with the timeline. Is there any way to review my draft and provide feedback, or should I upload a proposal on the official GSoC site itself directly?


#5

I recommend asking questions here - I won’t review draft proposals entirely because it’s both too much work and I want students to make a proposal that they created by themselves, highlighting their research/previous work/investigation/questions (it’s fine to add in your proposal links to what you’ve asked, unknowns, etc…).

You can ask more specific questions either here or in a thread adapted to the question subject :slight_smile: