English Amiga Board


Go Back   English Amiga Board > Main > Retrogaming General Discussion

 
 
Thread Tools
Old 31 August 2011, 17:22   #21
Retro1234
Phone Homer
 
Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 5,809
Thanks for the info it was just playing the game its hard to see if it could scroll endlessly diagonally
Retro1234 is offline  
Old 31 August 2011, 17:32   #22
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
Quote:
Originally Posted by Boo Boo View Post
Thanks for the info it was just playing the game its hard to see if it could scroll endlessly diagonally
The player falls vertically after the initial diagonal jump, so i can't say "it scrolls endlessly diagonally". But, for example, if the player jump diagonally when he is at the top left edge of the screen toward the outer top left direction, the screen will scroll diagonally (top left direction). After the jump arc, the player falls vertically only.

The scrolling algorithm try to keep the player on screen in the "gray rectangle" you see in the viewer (160x128 centered box).
If during the game i change the scroll position to the right edge of the map, the scroll will move toward the player (diagonally if needed) with a maximum velocity until the player is in the gray box.
Kroah is offline  
Old 31 August 2011, 17:42   #23
Retro1234
Phone Homer
 
Retro1234's Avatar
 
Join Date: Jun 2006
Location: 5150
Posts: 5,809
Thank you for the explanation
Retro1234 is offline  
Old 02 September 2011, 21:47   #24
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
I just tried the viewer and apart from a few unexplained bugs (irrelevant links, for instance for the ceramic pot), it's great!

I'm disappointed to see that we got everything pretty much figured out, except for most help bonuses of level 1 (this big room at the bottom right of level 3 is empty). Kroah now you know that the "the game adapts to the player skills" hype is not real. The game just yields more health/lives bonuses when you're about to die, but it does not help you to finish the game anyway. Clever, but not magic.
and when you play better, the game is not harder. Some parts are accessible only to fast/healthy players, that's it.

Another thing is that maybe the level data is slightly different according to the versions.
I can confirm that on the megadrive, the giant jump is not in a pit (at level 1.3) but that's easily visible. I think there are more subtle differences, but maybe I'm wrong.
On Amiga I get a special bonus at level 4.2 (fire chrystal) just after exiting from "mortar" section. Did not find it in the map. Same thing for special speed bonus at level 2.4. AFAIR 2 lives fell from the ceiling, not one.

The remake: I'll certainly use your data to correct/add stuff in my remake. But I won't redo everything from the start because it's too much work. I'd be tempted to remake flying monsters trajectories that I only approximated. There too it's too much work.
I'll correct monster health and some help bonus puzzles and timer values I only guessed from playing.

Once again: great work!
jotd is offline  
Old 04 September 2011, 01:42   #25
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
Hello Jotd!

Thanks for your kind words and support.

Quote:
Originally Posted by jotd View Post
I just tried the viewer and apart from a few unexplained bugs (irrelevant links, for instance for the ceramic pot), it's great!
Unfortunately, most of the strange links can't be fixed.
Initially, the Bitmap Brothers intended to put 4 worlds in 1 map. They have split them up later (2 worlds per map). BUT they have left most of the unused data of the 2 other worlds in the map. After this they have improved/updated the maps, so there are many (many) unwanted links between the unused data and the real data.
On top of that, when an item is needed by an event (keys, chests...), the event don't know which of the multiple "teleport key" present in the map is the correct key.
All those false links overload the display, that's why i have added some display options.

Tell me if you have still irrelevant links (even with the above explanation) with the latest version (see the following post). Actually i don't see anything incorrect with the ceramic pots.


Quote:
Originally Posted by jotd View Post
I'm disappointed to see that we got everything pretty much figured out, except for most help bonuses of level 1 (this big room at the bottom right of level 3 is empty).
I agree. I hoped some very hidden secrets, but haven't found anything special.

Quote:
Originally Posted by jotd View Post
Kroah now you know that the "the game adapts to the player skills" hype is not real. The game just yields more health/lives bonuses when you're about to die, but it does not help you to finish the game anyway. Clever, but not magic.
Yep, it seems the game helps the player with bonus hardcoded in the map.
I haven't disassembled everything but i don't think there's a special and well hidden code evaluating the player skill in realtime.

Quote:
Originally Posted by jotd View Post
Another thing is that maybe the level data is slightly different according to the versions.
With the extracted and unpacked data of the Atari, Amiga & PC versions, i have seen some subtle differences in the maps. Haven't got the time to interpret them right now but still curious to know them.

Cheers
Kroah is offline  
Old 04 September 2011, 02:21   #26
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
New WIP version (Gods Viewer v1.01): http://bringerp.free.fr/RE/Gods/wip.php5

New features:
- some display options
- moving blocks
- explosion zone of event effect (see the first spikes of L1.1)
- some bug fixes
- omg, a raster effect!

Have fun!

Kroah is offline  
Old 04 September 2011, 14:48   #27
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
I found a notable difference!

I mean between the ST version and Amiga

Look at the screenshot (my editor on the left, yours on the right)

Ok you have to believe my editor, but at level 4.2 there's a secret button which opens the platforms. The level only opens the door. The secret button sometimes awards a special bonus (I don't know when).

Click image for larger version

Name:	gods_diffs.png
Views:	665
Size:	77.3 KB
ID:	29404

you can watch the Gods longplay on youtube (made on winuae) to confirm the presence of this button.

I was convinced that all versions were identical, now I'm no longer convinced.

Ok, and about points awarded when killing enemies: can you make a relation between the health and the points? I thought it was 1 health point = 100 points but that's no longer true in the later levels.

Another request: is it possible to print object coordinates (knives, etc...). I would like to improve my level maps, but I think I'll do it manually (long but no risk about losing my puzzle data)

Last edited by jotd; 04 September 2011 at 18:34.
jotd is offline  
Old 04 September 2011, 21:12   #28
Qube
Registered User
 
Qube's Avatar
 
Join Date: Aug 2006
Location: England
Posts: 218
Great update to the viewer Kroah! Shame all the secrets are already knows, would have been nice to find some extras eh ;-)

Jotd - As for the secret switch in 4-2, it's there if you select Labyrinth 3+4 in the viewer, it's in the ST game as here is a screenshot..

Q;
Attached Thumbnails
Click image for larger version

Name:	gods_st.gif
Views:	367
Size:	20.1 KB
ID:	29407  
Qube is offline  
Old 04 September 2011, 21:16   #29
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
Quote:
Originally Posted by jotd View Post
Ok you have to believe my editor, but at level 4.2 there's a secret button which opens the platforms. The level only opens the door. The secret button sometimes awards a special bonus (I don't know when).
Attachment 29404
As soon as i saw the screenshot i understood the problem (for this case at least). You have a red cell on the background which means the map is incorrect -> you have loaded the incorrect part of the map for this sector. Load the Level 4 part B, you will see the good information, including the hidden button:
Click image for larger version

Name:	Hidden button.png
Views:	379
Size:	44.8 KB
ID:	29406
That's the problem i stated in a previous post (maps have been split up during the development). This is very annoying and i don't see how we could avoid the misleading and useless data.

Edit: Are you sure this is the world 2 of level 4 ? I thought part A was worlds 1 & 2, part B worlds 3 & 4.
Edit2: ok, there aren't always 2 worlds per map part. I will rename the map parts then.

Quote:
Originally Posted by jotd View Post
Ok, and about points awarded when killing enemies: can you make a relation between the health and the points? I thought it was 1 health point = 100 points but that's no longer true in the later levels.
I thought that was something like this, i haven't noticed the change on later levels. I will check this.

Quote:
Originally Posted by jotd View Post
Another request: is it possible to print object coordinates (knives, etc...). I would like to improve my level maps, but I think I'll do it manually (long but no risk about losing my puzzle data)
Ok, i will add more information in the top left popup.

Last edited by Kroah; 04 September 2011 at 21:28.
Kroah is offline  
Old 04 September 2011, 22:32   #30
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
ok for the fire chrystal. understood. This map split is not logical, not your fault.

I have checked the longplay, and the player activates the button too much on the left, so the fire chrystal trigger is not activated. Simple, but I've been wondering why for a while!!
In my remake, I did not position trigger using a block alignment but with pixel alignment. I'm not doing to correct this, too much work.
jotd is offline  
Old 07 September 2011, 17:40   #31
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
Quote:
Originally Posted by jotd View Post
Ok, and about points awarded when killing enemies: can you make a relation between the health and the points? I thought it was 1 health point = 100 points but that's no longer true in the later levels.
Walking and flying enemies (basic & intelligent) score value is computed with the formula:
((HP%256)>>1) + 1)*100 ~= ((HP/2)+1)*100
An enemy with 75 hp gives 3800 points (and not 3850) = (75/2+1)*100 = (37+1)*100

I have finished to disassemble the Intelligent AI (walking and flying). I am both impressed and disappointed. The work BB's have done is incredible... but as you may have noticed, most of the enemies die in the seconds they appear, without letting the player admire the wonderful AI.

Of course some puzzles can only be solved using this AI but the majority of the intelligent enemies will jump to catch you or kamikaze on you.

As the document about the BB's editor states, the intelligent aliens have a primary and a secondary objective.
Walking aliens can Kamikaze, StayAway of the player, PickUp an object, GoTo a predefined location (mainly doors).

Flying aliens can Kamikaze, StayAway at the opposing side of the player, PickUp an object, FollowTheLeader (with 3 different curve styles).
I haven't acually see any code concerning 'shot avoidance' (maybe included in the 'StayAway at the opposing side' objective).

Walking aliens use a graph traversal algorithm to find a path to their target. For example, if his objective is 'PickUp' an item, he will move to the nearest reachable item. The algorithm takes into account the jumps (small and high according to the alien) and falling from a higher platform.

Some additional parameters define if the alien may randomly drop the picked up item, the frequency he swaps his objective (objective balance), the depth of the graph traversal (intelligence?), the height of the jump, the speed (manoeverability?) etc...

Kroah is offline  
Old 07 September 2011, 23:06   #32
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
superb work as always, and invaluable information. Now find the relevance between the on-screen parameters and the binary parameters from the game, integrate them in your viewer and you're the best!

Note that the 17 fps means 1 time out of 3 VBLANK syncs.

You're right about the big AI waste. Specially on flying aliens. Ground aliens A.I. is noticeable enough.
What do you mean by "traversal algorithm" ?

PS: all this explains why I had such a hard time remaking the game A.I. properly. I think I did a good job without having a peek to the original code
To back you point, I completely missed the flying aliens A.I. and though it's hardly noticeable in my remake.
jotd is offline  
Old 08 September 2011, 08:54   #33
chiark
Needs a life
 
chiark's Avatar
 
Join Date: Jan 2008
Location: England
Posts: 1,707
Wow. Just... wow!

I never got into Gods. After reading this, I'm going to correct that mistake.

And the only thing I can contribute to this, thanks to Ralf Wiggum, is:
chiark is offline  
Old 08 September 2011, 09:50   #34
gimbal
cheeky scoundrel
 
gimbal's Avatar
 
Join Date: Nov 2004
Location: Spijkenisse/Netherlands
Age: 42
Posts: 6,962
seeing all the technical wizardry that went into the game, I'm actually less impressed with the end product. Why? Because in the end game you don't see it! That rates as a serious design flaw to me.

If anything a sequel should have been made with the same tech to really show what it could have done, the Bitmaps themselves must have been bummed by this I can imagine.
gimbal is offline  
Old 08 September 2011, 10:50   #35
Kroah
Registered User
 
Kroah's Avatar
 
Join Date: Apr 2009
Location: France
Age: 46
Posts: 117
Quote:
Originally Posted by jotd View Post
What do you mean by "traversal algorithm" ?
I mean they use something similar to depth-first/breadth-first/Dijkstra. An algorithm to compute distances in a graph from a point to the other points. The one used in Gods is a specialized traversal algorithm adapted to the walking/jumping aliens.

A 400 bytes array (20x20) stores the distance & targets of the screen blocks and the surrounding areas (screen: 10x12, with borders: 5+10+5 x 4+12+4 = 20x20 = 400 bytes). The targets depend on the objective (Kamikaze=the player cells are marked, PickUp=all item cells are marked, StayAway=the screen border cells are marked, etc.).

An 'open' list contains the nodes to visit (the player node initially).
No need for a closed list (the array gives the already visited nodes).

Then the main function 'visit node' is called to expand the node left/right to simulate the walk (updating the array with the smallest distances) and for each node expanded, it simulates a jump/fall. If the jump is successful or the alien can fall, an open node is added to the list.
The alogrithm ends when the open nodes list is empty.

A variable memorize the first move type (jump, walk, fall) to execute to go to the nearest target. No need to keep the complete path.
The algorithm is called again when the alien enters a new cell after a move.
Very clever and needs <1k to work.
Kroah is offline  
Old 10 September 2011, 08:23   #36
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
I figured out something similar in Java, but in a much clumsier way, and probably less effective: start walking until reaching objective, or hole, or wall. I also simulate jumps to check if they will succeed, and use L/S-shaped paths to locate objects and player. Also added an anti-monotony check to avoid that the monster loops in a closed path without reaching the objective. Took a lot of tuning but the puzzle works similarly as the original game. Will be my last A.I. work, too demanding

anyway, impressive stuff for the time and "primitive" technology, and impressive way to disassemble it too!!
jotd is offline  
Old 10 September 2011, 23:39   #37
Photon
Moderator
 
Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,652
I get so tired sometimes. What is there worth to reverse engineer in Gods. If you can code a similar game, why not make your own and contribute some elements that improves gameplay.
Photon is offline  
Old 11 September 2011, 02:34   #38
musashi9
Registered User
 
musashi9's Avatar
 
Join Date: Jul 2003
Location: Japan
Posts: 178
Send a message via ICQ to musashi9
I love this thread, I am learning so much . Keep up the good work.
musashi9 is offline  
Old 11 September 2011, 11:49   #39
jotd
This cat is no more
 
jotd's Avatar
 
Join Date: Dec 2004
Location: FRANCE
Age: 52
Posts: 8,360
Photon if you are tired, save yourself from reading this thread

i think i could locate one of your threads, and write that i am tired of the subject that interests you so much. but i won't do it, because it's stoopid

kroah: do you have in mind the uninteresting and tiresome task of reverse engineering magic pockets?

i have figured out pretty much everything apart from enemy a.i. and teleport locations.

if you do it, please put the results in an encrypted archive and don't give the password to anyone because that could be tiresome to read it for some ppl

ok, let's stop the nagging...

Last edited by jotd; 11 September 2011 at 12:16.
jotd is offline  
Old 11 September 2011, 12:57   #40
zenox98
Joy Division
 
zenox98's Avatar
 
Join Date: Nov 2006
Location: East Yorkshire
Age: 60
Posts: 242
jotd, Kroah et al, ignore the haters. This is fascinating stuff, and reveals interesting 'tricks of the trade'.
zenox98 is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Speedball 2 reverse engineering & remake Kroah Retrogaming General Discussion 26 08 February 2024 15:08
Reverse engineering wiki copse Coders. General 10 02 March 2020 09:48
Captain Blood reverse engineering Kroah Retrogaming General Discussion 14 08 March 2016 21:22
Cadaver reverse engineering Kroah Retrogaming General Discussion 8 11 November 2011 09:35

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 12:48.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10570 seconds with 14 queries