I'm creating an offline version

11/18/2024 20:35 david3262009#1
Hi, I'm currently creating an offline version of DarkOrbit in gamemaker 2.1. Years ago I played offline versions like DarkOrbit Remix which I thoroughly enjoyed. A while ago I decided to learn programming and wanted to try to create this game from scratch. It's been a challenge because I'm not an expert, but my goal is to finish it and make it much more complete than the offline versions that came out years ago. I'm focusing on the 2010-2013 version although I might be a bit late

11/19/2024 19:25 Akame_Ga_Kill#2
Finally some good new... would be lovelly to play an offline game like a campaign without anything competitive to worry about. Been waiting for a new, better, long term, more complete and challenging DOR for years.

Good luck with your project. We all know that it is a hard path.
01/06/2025 12:15 AceHardlightHUN#3
A little help for dealing with ship rotation in movement:
If you import the ship sprites in different orientations into a single sprite as frames, then you can use the following code in your mouse event for moving:

direction = point_direction(x,y, mouse_x, mouse_y);
facing = round(direction*36/360) // math is: round(direction*framecount/360)
image_index = facing
02/17/2025 07:39 david3262009#4
Hii , A small update, I haven't been able to make much progress due to the time I have left, but I'm organizing my time a little more to be able to move forward with this project, in the future update I hope to be able to finish the store, the equipment and add all the missing maps and NPCs.

03/09/2025 10:15 david3262009#5

so, added the cubikon enemy, and other implementations
03/14/2025 12:43 paladintr#6
hey can u share the ship files with me? im also creator
03/17/2025 16:45 grantalast#7
Wow link online ?
03/24/2025 11:30 AceHardlightHUN#8
Quote:
Originally Posted by david3262009 View Post
[Only registered and activated users can see links. Click Here To Register...]

so, added the cubikon enemy, and other implementations
Are you using the built-in draw_healthbar function, or you use draw_rectangle instead? and if so, what is the reference point for them? It is interesting for me how big the healthbar is respected for the Cubi
03/24/2025 18:25 david3262009#9
Quote:
Originally Posted by AceHardlightHUN View Post
Are you using the built-in draw_healthbar function, or you use draw_rectangle instead? and if so, what is the reference point for them? It is interesting for me how big the healthbar is respected for the Cubi
draw_healthbar,

just had a problem with the width of the bars, but I already solved it.
03/25/2025 07:34 david3262009#10
I need help with a few things.

What percentage of damage do enemies take directly to their health?

What is the percentage of shots the player misses towards enemies?

Also, the percentage of missile misses. Does anyone know these values ​​so I can add them to the game?
03/25/2025 09:26 AceHardlightHUN#11
Quote:
Originally Posted by david3262009 View Post
I need help with a few things.

What percentage of damage do enemies take directly to their health?

What is the percentage of shots the player misses towards enemies?

Also, the percentage of missile misses. Does anyone know these values ​​so I can add them to the game?
What percentage of damage do enemies take directly to their health?

- I'll swap you the question, the shield absorbtion for enemies is rand between 60-80%

What is the percentage of shots the player misses towards enemies?

- The base is 30-35%, so it is 70-75% that you will hit the enemy.

Also, the percentage of missile misses. Does anyone know these values ​​so I can add them to the game?

- Same rate as lasers, 30-35%
04/03/2025 00:04 david3262009#12
Quote:
Originally Posted by AceHardlightHUN View Post
What percentage of damage do enemies take directly to their health?

- I'll swap you the question, the shield absorbtion for enemies is rand between 60-80%

What is the percentage of shots the player misses towards enemies?

- The base is 30-35%, so it is 70-75% that you will hit the enemy.

Also, the percentage of missile misses. Does anyone know these values ​​so I can add them to the game?

- Same rate as lasers, 30-35%
Hii, Any idea how to implement evolution points for drones? And also for ranks, something similar to how it was in Darkorbit Remix, but I honestly don't remember how the points worked there.
04/05/2025 00:20 AceHardlightHUN#13
Quote:
Originally Posted by david3262009 View Post
Hii, Any idea how to implement evolution points for drones? And also for ranks, something similar to how it was in Darkorbit Remix, but I honestly don't remember how the points worked there.
I don't think that the drone leveling was ever implemented into DOR, but it shouldn't be hard to recreate, I can refer you to this DO forum post:[Only registered and activated users can see links. Click Here To Register...]


Code snippet from DOR 5.3.2 for exp:

Code:
//Level control
if global.experience >= 0 then {global.level=1;} //level 1
if global.experience >= 10000 then {global.level=2;} //level 2
if global.experience >= 20000 then {global.level=3;} //level 3
if global.experience >= 40000 then {global.level=4;} //level 4
if global.experience >= 80000 then {global.level=5;} //level 5
if global.experience >= 160000 then {global.level=6;} //level 6
if global.experience >= 320000 then {global.level=7;} //level 7
if global.experience >= 640000 then {global.level=8;} //level 8
if global.experience >= 1280000 then {global.level=9;} //level 9
if global.experience >= 2560000 then {global.level=10;} //level 10
if global.experience >= 5120000 then {global.level=11;} //level 11
if global.experience >= 10240000 then {global.level=12;} //level 12
if global.experience >= 20480000 then {global.level=13;} //level 13
if global.experience >= 40960000 then {global.level=14;} //level 14
if global.experience >= 81920000 then {global.level=15;} //level 15
if global.experience >= 163840000 then {global.level=16;} //level 16
if global.experience >= 327680000 then {global.level=17;} //level 17
if global.experience >= 655360000 then {global.level=18;} //level 18
if global.experience >= 1310720000 then {global.level=19;} //level 19
if global.experience >= 2621440000 then {global.level=20;} //level 2
if global.experience >= 5242880000 then {global.level=21;} //level 21
if global.experience >= 10485760000 then {global.level=22;} //level 22
if global.experience >= 20971520000 then {global.level=23;} //level 23
if global.experience >= 41943040000 then {global.level=24;} //level 24
if global.experience >= 83886080000 then {global.level=25;} //level 25
if global.experience >= 167772160000 then {global.level=26;} //level 26
if global.experience >= 335544320000 then {global.level=27;} //level 27
if global.experience >= 671088640000 then {global.level=28;} //level 28
if global.experience >= 1342177280000 then {global.level=29;} //level 29
if global.experience >= 2684354560000 then {global.level=30;} //level 30
//More levels will be added later. Highly doubt anybody will reach this cap before next update :P
/*
    Level 31: 5.368.709.120.000 Exp
    Level 32: 10.737.418.240.000 Exp
    Level 33: 21.474.836.480.000 Exp
    Level 34: 42.949.672.960.000 Exp
    Level 35: 85.899.345.920.000 Exp
    Level 36: 171.798.691.840.000 Exp
    Level 37: 343.597.383.680.000 Exp
    Level 38: 687.194.767.360.000 Exp
    Level 39: 1.374.389.534.720.000 Exp
    Level 40: 2.748.779.069.440.000 Exp*/
Code snippets for Rank:
Code:
//Ranking
global.experience=0;
global.level=1;
global.honor=0;
global.phoenixkills=0;
global.nostromokills=0;
global.leonovkills=0;
global.bigboykills=0;
global.goliathkills=0;
global.vengeancekills=0;
global.alienkills=0;
global.rankpoints=0;
Code:
//Rank point calculation
levelrp=round(global.level*100)
eprp=round(global.experience/10000)
honorrp=round(global.honor/100)
phoenixrp=round(global.phoenixkills*20)
nostromorp=round(global.nostromokills*78)
leonovrp=round(global.leonovkills*64)
bigboyrp=round(global.bigboykills*116)
vengeancerp=round(global.vengeancekills*108)
goliathrp=round(global.goliathkills*128)
alienrp=round(global.alienkills*25)
//---
spearheadrp=round(global.spearheadkills*85)
aegisrp=round(global.aegiskills*120)
citadelrp=round(global.citadelkills*145)
//---
global.rankpoints=round(levelrp+eprp+honorrp+phoenixrp+nostromorp+leonovrp+bigboyrp+vengeancerp+goliathrp+spearheadrp+aegisrp+citadelrp+alienrp)
Code:
if giveadmin=0 then    
{  
    if RPOINT <= 5 then
    subimg=0
    if RPOINT > 5 and RPOINT <= 10 then
    subimg=1
    if RPOINT > 10 and RPOINT <= 15 then                      
    subimg=2
    if RPOINT > 15 and RPOINT <= 20 then
    subimg=3
    if RPOINT > 20 and RPOINT <= 25 then  
    subimg=4
    if RPOINT > 25 and RPOINT <= 30 then                        
    subimg=5
    if RPOINT > 30 and RPOINT <= 35 then  
    subimg=6
    if RPOINT > 35 and RPOINT <= 40 then  
    subimg=7
    if RPOINT > 40 and RPOINT <= 45 then                      
    subimg=8
    if RPOINT > 45 and RPOINT <= 50 then  
    subimg=9
    if RPOINT > 50 and RPOINT <= 55 then  
    subimg=10
    if RPOINT > 55 and RPOINT <= 60 then                    
    subimg=11
    if RPOINT > 60 and RPOINT <= 65 then  
    subimg=12
    if RPOINT > 65 and RPOINT <= 70 then  
    subimg=13
    if RPOINT > 70 and RPOINT <= 75 then                          
    subimg=14
    if RPOINT > 75 and RPOINT <= 80 then  
    subimg=15
    if RPOINT > 80 and RPOINT <= 85 then  
    subimg=16
    if RPOINT >85  and RPOINT <= 90 then                          
    subimg=17
    if RPOINT > 90 and RPOINT <= 99 then  
    subimg=18
    if RPOINT > 99 then  
    subimg=19
04/05/2025 01:36 david3262009#14
Quote:
Originally Posted by AceHardlightHUN View Post
I don't think that the drone leveling was ever implemented into DOR, but it shouldn't be hard to recreate, I can refer you to this DO forum post:[Only registered and activated users can see links. Click Here To Register...]


Code snippet from DOR 5.3.2 for exp:

Code:
//Level control
if global.experience >= 0 then {global.level=1;} //level 1
if global.experience >= 10000 then {global.level=2;} //level 2
if global.experience >= 20000 then {global.level=3;} //level 3
if global.experience >= 40000 then {global.level=4;} //level 4
if global.experience >= 80000 then {global.level=5;} //level 5
if global.experience >= 160000 then {global.level=6;} //level 6
if global.experience >= 320000 then {global.level=7;} //level 7
if global.experience >= 640000 then {global.level=8;} //level 8
if global.experience >= 1280000 then {global.level=9;} //level 9
if global.experience >= 2560000 then {global.level=10;} //level 10
if global.experience >= 5120000 then {global.level=11;} //level 11
if global.experience >= 10240000 then {global.level=12;} //level 12
if global.experience >= 20480000 then {global.level=13;} //level 13
if global.experience >= 40960000 then {global.level=14;} //level 14
if global.experience >= 81920000 then {global.level=15;} //level 15
if global.experience >= 163840000 then {global.level=16;} //level 16
if global.experience >= 327680000 then {global.level=17;} //level 17
if global.experience >= 655360000 then {global.level=18;} //level 18
if global.experience >= 1310720000 then {global.level=19;} //level 19
if global.experience >= 2621440000 then {global.level=20;} //level 2
if global.experience >= 5242880000 then {global.level=21;} //level 21
if global.experience >= 10485760000 then {global.level=22;} //level 22
if global.experience >= 20971520000 then {global.level=23;} //level 23
if global.experience >= 41943040000 then {global.level=24;} //level 24
if global.experience >= 83886080000 then {global.level=25;} //level 25
if global.experience >= 167772160000 then {global.level=26;} //level 26
if global.experience >= 335544320000 then {global.level=27;} //level 27
if global.experience >= 671088640000 then {global.level=28;} //level 28
if global.experience >= 1342177280000 then {global.level=29;} //level 29
if global.experience >= 2684354560000 then {global.level=30;} //level 30
//More levels will be added later. Highly doubt anybody will reach this cap before next update :P
/*
    Level 31: 5.368.709.120.000 Exp
    Level 32: 10.737.418.240.000 Exp
    Level 33: 21.474.836.480.000 Exp
    Level 34: 42.949.672.960.000 Exp
    Level 35: 85.899.345.920.000 Exp
    Level 36: 171.798.691.840.000 Exp
    Level 37: 343.597.383.680.000 Exp
    Level 38: 687.194.767.360.000 Exp
    Level 39: 1.374.389.534.720.000 Exp
    Level 40: 2.748.779.069.440.000 Exp*/
Code snippets for Rank:
Code:
//Ranking
global.experience=0;
global.level=1;
global.honor=0;
global.phoenixkills=0;
global.nostromokills=0;
global.leonovkills=0;
global.bigboykills=0;
global.goliathkills=0;
global.vengeancekills=0;
global.alienkills=0;
global.rankpoints=0;
Code:
//Rank point calculation
levelrp=round(global.level*100)
eprp=round(global.experience/10000)
honorrp=round(global.honor/100)
phoenixrp=round(global.phoenixkills*20)
nostromorp=round(global.nostromokills*78)
leonovrp=round(global.leonovkills*64)
bigboyrp=round(global.bigboykills*116)
vengeancerp=round(global.vengeancekills*108)
goliathrp=round(global.goliathkills*128)
alienrp=round(global.alienkills*25)
//---
spearheadrp=round(global.spearheadkills*85)
aegisrp=round(global.aegiskills*120)
citadelrp=round(global.citadelkills*145)
//---
global.rankpoints=round(levelrp+eprp+honorrp+phoenixrp+nostromorp+leonovrp+bigboyrp+vengeancerp+goliathrp+spearheadrp+aegisrp+citadelrp+alienrp)
Code:
if giveadmin=0 then    
{  
    if RPOINT <= 5 then
    subimg=0
    if RPOINT > 5 and RPOINT <= 10 then
    subimg=1
    if RPOINT > 10 and RPOINT <= 15 then                      
    subimg=2
    if RPOINT > 15 and RPOINT <= 20 then
    subimg=3
    if RPOINT > 20 and RPOINT <= 25 then  
    subimg=4
    if RPOINT > 25 and RPOINT <= 30 then                        
    subimg=5
    if RPOINT > 30 and RPOINT <= 35 then  
    subimg=6
    if RPOINT > 35 and RPOINT <= 40 then  
    subimg=7
    if RPOINT > 40 and RPOINT <= 45 then                      
    subimg=8
    if RPOINT > 45 and RPOINT <= 50 then  
    subimg=9
    if RPOINT > 50 and RPOINT <= 55 then  
    subimg=10
    if RPOINT > 55 and RPOINT <= 60 then                    
    subimg=11
    if RPOINT > 60 and RPOINT <= 65 then  
    subimg=12
    if RPOINT > 65 and RPOINT <= 70 then  
    subimg=13
    if RPOINT > 70 and RPOINT <= 75 then                          
    subimg=14
    if RPOINT > 75 and RPOINT <= 80 then  
    subimg=15
    if RPOINT > 80 and RPOINT <= 85 then  
    subimg=16
    if RPOINT >85  and RPOINT <= 90 then                          
    subimg=17
    if RPOINT > 90 and RPOINT <= 99 then  
    subimg=18
    if RPOINT > 99 then  
    subimg=19
you are a god, thnks bro

I've already added the equipment, extra generators, etc., and the drone rotation logic. After this, I'll start with the drone view and equipment, also implementing the levels in the drones and in the range. Thanks, bro.

04/18/2025 12:09 AceHardlightHUN#15
Keep going, it's coming together nicely.