Rewrite game Magic Carpet 2 with Engine GODOT and REMC2 engine REMC2
Diskord of projects MDmod/remc2 and MagicBalls REMC2 MC2 HDmod
- Please be patient, but don’t hesitate to report bugs. The game’s optimization is still poor; I’ll continue to tune some models’ triangle counts and see if I can optimize the lighting and fire effects (especially in Meteor III), but don’t expect miracles :)
- Document everything in an issue on GitHub. For specific bugs, note the level and location; for particularly random bugs, save the game using F5 before the crash and then attach the zipped folder "user\AppData\Roaming\Godot\app_userdata\MagicBalls\CDdata\GAME\NETHERW\SAVE"
- Report everything: bad models, incorrect sizes, wrong music, etc.
- If you see text with numbers instead of an object, try to take a screenshot
- Some features from the original game are missing, and the keyboard shortcuts listed in the original help menu don’t work either. Press F1 to see which keys are currently in use.
- Please also add suggestions for improvements or additions to the original features in the issues.
- If you’d like to contribute to development—whether you’re a graphic designer or a programmer—please reach out on Discord; any help is welcome.
- Expect that I’ll be a bit clueless at times and will need to ask for help :)
- If the game crashes or freezes, run it with
-- --debug-log(e.g.MagicBalls.exe -- --debug-log) and attach the filedebug.logfrom the user folder below - it shows how far the game got.
- The game requires data from the original Magic Carpet™ 2: The Netherworlds. The installation now supports the GOG version https://www.gog.com/en/game/magic_carpet_2_the_netherworlds. Please install that version. If you have a different version and can’t get it to install, create an issue, take a screenshot of the game folder, and I’ll add more options to the engine.
- Download and extract the game from the releases) (Windows/Linux is supported, android is only experimental-mostly problem with graphics inicialization):
- Run the .exe; the first time, the game will ask you for the installation path for MC2 (from GOG). Find it and confirm.
- The first time, you’ll need to wait for the game to extract the files; subsequent launches will be faster.
- The game saves user files to this folder, which also contains save files, etc. If you want to transfer them between the original game and the remake, or if you no longer need the game, you can delete this folder(you can use script removeUserMBFolder.bat): user\AppData\Roaming\Godot\app_userdata\MagicBalls\
- Use Godot 4.7.2 (standard version, not .NET) - the same version the release builds use (
GODOT_VERSIONin.github/workflows/releases.yml). - Install Blender 5.1 and set its path in Godot: Editor Settings → FileSystem → Import → Blender → Blender Path (the models in
godot-codeinclude.blendfiles). - Build the GDExtension (C++ code in
gitextension/godot-cpp-template) with CMake, seebuild_linux2.shor the workflow for the exact commands. The library is copied togodot-code/MBEXout/bin/<platform>/. - Open
godot-codein Godot.
-Add gamepad controls, etc.
-Add first-person/third-person camera options
-Clean UP code and unused models
-Optimalizatins
-Some better 3D models
-Much faster frames: level 5 from 19 ms to about 6 ms per frame (measured on one PC), the long stutters in level 25 (Meteor III) are gone
-Entities are drawn from C++, hidden entities no longer run their animations
-Faster rendering: terrain drawn in pieces, particle emitters sized to what is used (up to half the GPU time)
-Graphics quality settings: Ultra/High/Medium/Low with Shadows, Reflections and 3D Resolution
-Settings, importer and help translated into all 8 languages, language choice in the settings
-Lighter splash particles with seamless textures
-The mouse is free while the game loads or runs in the background
-Setting for the separate render thread (Video), off by default
-Fixed the cave ceiling drawn without its texture
-Linux: fixed the file search and the path of the game
-Debug log for crash reports (-- --debug-log), sound debug output only with -- --debug-sounds
-New look of the mana balls, Backspace and keypad Enter, default fog level, better mouse capturing
-Fixed a heap corruption and a hang when quitting
-Faster entity rendering: MultiMeshes, shared particle emitters, merged lights
-Lighter heavy models and textures limited to 1024 px - less loading and memory
-Faster level start: entities and wizards are prepared while the level loads
-AWE32 music, sound and music setting fixes
-Vulkan renderer, better shadows, water reflections fixed at the map edges
-Much faster screen buffer conversion, terrain culling and texture uploads
-Multiplayer settings tab
-Fixed crashes on quit and in sound updates, FMV video timing
-Godot 4.7.2, remc2 engine synchronized with upstream
-Godot 4.7
-Help, level gates, better end of game
-Editor: moving entities, fixes
-Export of multiplayer backgrounds, Linux install instructions
-Arab trader, switches, cloth flag, exits
-Editor: "Go to entity", better selection, stage variables
-Godot 4.6.3
-Faster rendering on Android
-Editor and visual effect updates
-Pause and spell menu on C, spells selected with the mouse wheel
-F1 map menu, F2 help, F3 speed, X stop
-FPS settings, roof visibility checkbox
-Editor: select and run, editing wizards, undo/redo
-Custom levels: loading and selection
-Installer, option to remove the user folder
-Danger music
-Linux and Android builds
-Editor: stage player, editing of entities and terrain
-User keybindings, speech, OGG music and SF2 sound fonts
-First version of the editor
-There are so many improvements that it doesn't make sense to list them all
-You can play through the game from start to finish
-Many fixes and updates
-Draw Spider Web
-Draw Terrain modification by fire
-Add models to level 1-5
-Integrate data copier from Magic Carpet 2
-Better terrain abilites(water/lava)
-Add sounds/music.
-Add menus/levels, etc.
-Add proper water.
-Add particle effects.
Second youtube video
-Add sounds
-Add music
-Add basic code to copy some data from original CD
First youtube video
-Draw minimap
-Update UI-particaly
-Add Ballon 3d model
-Implement palette modifications (red or grayscale)
-Add using mouse buttons
-Add select spells
-Add terrain changes

A lot has changed in this version. I found that copying terrain in every frame is extremely demanding.
The first tests showed less than 1 FPS.
I had to put most things into the shader. After a series of struggles, I created a shader that:
-handles reflections and water waves
-I now send the height, index, and rotation maps to the shader as textures
Thanks to this, I got up to 3-4 FPS.
Then all I had to do was rewrite the key parts of the code from GDSCRIPT to C++, and I got up to 60 FPS.
-Terrain rendering and updating moved to shader
-Terrain work moved to C++
-Create true model for building possession
-Add multimesh for objects(for corect visibility of objects)
-Fix water reflections
-Fix water waves
-Copy terrain modification
-Check spell disappearance-maybe-ok
-Test mouse button
-Add teplate spells fireball and possesion
-Add mana spheres for gold and white
-Test kill and possesion mana from goats
-Add additional temporary models
-Fix object display so they are always in front of the camera
-Extend Multimesh terrain to 5x5
-Test using first billboards and models(smoke and goat)
-display entities (all as universal objects for now)
-synchronize speed with engine (limit frame rate)
-add rotation to REMC2 engine
-fix terrain rendering triangles
-add compute position of player by REMC2
-add arrows input by REMC2
-many cleanings in REMC2(copy new engine version)
-first render of terrain

















