User talk:Iritscen: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (+cat)
 
(111 intermediate revisions by 12 users not shown)
Line 1: Line 1:
__TOC__
'''Talk page archives''': [[/Archive1|#1]] (2008); [[/Archive2|#2]] (2009-2014)


==Hacking Multiplayer==
==Re: Banner==
'''Who here was involved with that effort to hack multiplayer into Oni?'''
:Memory search: Alloc, Kumo, typhen (leader) and me.
:Programs: typhen (Onyx/OnyxPatcher), neonew (OniHook)


'''How was the multiplayer actually supposed to get implemented into Oni?'''
Hey,
:Overwrite the memory at runtime.


'''How much was accomplished?'''
haha yes, I'm sorry for that. The banner was located on my installation CD and actually, this is the installer splashscreen: [https://i.imgur.com/xti8qZC.png Click] --[[User:Noneatme|Noneatme]]
:Some memory findings (pointers, player/enemy values, ...). (All?) results are stored [http://oniplayer.oni2.net/contents/whatsdone/found_stuff.php here] (Used program: [http://en.wikipedia.org/wiki/Tsearch TSearch]).


'''What were the obstacles?'''
:Hehe, I feel somehow cheated that these levels never made it into the final game. The jewel case image you mentioned also gave me cancer and aids so I scanned the case for myself. Here is the [https://i.imgur.com/efLP43w.jpg back], [https://i.imgur.com/aUhqU3I.jpg CD], [https://i.imgur.com/JGf5AgJ.jpg inner part] and [https://i.imgur.com/NGwIbni.jpg front]. Also, the german sounds and voice lines are also well made and we have some translated textures like STAIRS at the warehouse level. And I also found some unused textures in some levels. --[[User:Noneatme|Noneatme]] ([[User talk:Noneatme|talk]]) 17:49, 29 July 2015 (CEST)
:Working in the memory in general
:Find the pointers (because the pointer position varies from OS to OS and from level to level).
:Time (as usual).
----
typhen stopped his efforts on the project in August of 2005 for real life (girlfriend).
:[[User:Ssg|Ssg]] 00:25, 15 February 2008 (CET)
:Kumo contributed some pseudonetcode in C++ that was supposed to interface with Onyx.
:Alloc's OniTrainer implemented most of the gathered knowledge as the project went.
:(OniTrainer had no network component, but it was a good tool for experimentation.)
:The problem with TSearching was with all the big dynamically allocated structures.
:It was a rather crazy idea to figure out those structures without disassembling...
:I think the project started in April/May 2005, so it spanned the summer of 2005.
:neonew's OniHook was totally independent of Onyx, so it's another project, sorta.
:I'm not sure whether neonew disassembled Oni's engine in order to do the hooking.
:A fair amount of Oni's engine has been disassembled since, by both SFeLi and Neo.
:The structures responsible for the "game state" and "character state" are known.
::[[User:Geyser|geyser]] 02:04, 15 February 2008 (CET)
----
Some history:


typhen came up with the project in December of 2004. The first steps in the memory were made with RAMCheat. In January of 2005 typhen found the (great) program TSearch and the real memory search began. In April of 2005 geyser joined the Oni community and two or three weeks later the Ikonboard-based Oni forum crashed. (Because of too many verbose postings by him. :p *just kidding* ;-)
==Annoying sidebar on smartphone==
When I browse the wiki with my Samsung/Android phone the side bar takes a good portion of the screen especially if you try to zoom in.


Unfortunately Harry never made this forum available as an archive.
It would be nice if that would hide when you scroll down and show when scroll up. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 19:46, 23 August 2015 (CEST)
:[[User:Ssg|Ssg]] 11:57, 15 February 2008 (CET)
:The crash in April 2005 ''was'' supposedly due to me posting over a bad connection, which corrupted the database.
:My impression is that the actual project started in May 2005 and thus is largely covered on the after-crash forum.
:That's where you can see typhen and Kumo exchanging pseudonetcode, typhen and me talking about sync philosophy...
::[[User:Geyser|geyser]] 12:22, 15 February 2008 (CET)
----
Thanks for the info, guys. And sorry for being something of a jerk yesterday, geyser. Now, you said that the structures for game state and character state are now known -- are you referring to runtime variables? I don't see where those are documented in the wiki, unless [[OBD:ONCC|this sort of page]] covers that information. Is that whole structure just loaded into memory to be worked with at runtime, and do we know where in memory to look for it, or is that where the process became difficult, due to that whole "dynamically allocated" structure that you mentioned? --[[User:Iritscen|Iritscen]] 16:42, 15 February 2008 (CET)


:"And sorry for being something of a jerk yesterday, geyser." Sigh. I just don't understand why you avoid gathering first-hand knowledge.
:When you are ready to test this on your phone, try commenting out the "div#mw-panel" modification on [[MediaWiki:Vector.css]], then see how things look on your phone. I'm not sure if this is a mobile-friendliness issue with MediaWiki 1.19, but I'm thinking it's probably the fixed sidebar CSS that's the issue. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 23:16, 23 August 2015 (CEST)
:Since you have that much free time, why not ''really'' come to terms with the object you want to provide accurate documentation for? Sigh.
:I must say you still post and edit a wee bit too compulsively (a hyperactive kind of hyperdedication), and with not enough second sight.
:Sure, the wiki needs regular editors, but you pretty much "jumped on it like an oversexed hippo" (C) Bungie. Hope it'll wear off somehow.
:^_^
:The disassembled engine is only documented in private databases, and we do not plan to publish those in any foreseeable future.
:The "game state" is a huge chunk of data holding various runtime variables and structured objects (other, big chunks of data).
:In particular, the game state structure holds a dynamically allocated array of character objects, each with a character state.
:The character state holds various runtime variables specific to a given character, much more than the static game content.
:Dynamical allocation means that the space required for the structures is not part of the EXE; it's requested at runtime.
:Depending on the history prior to the allocation, the dynamically allocated space may end up at a different location.
:The ONCC has little to do with "character state". In fact, the character state holds a mere link to the current ONCC.
::[[User:Geyser|geyser]] 15:43, 16 February 2008 (CET)


==General Editing Talk==
Couldn't edit the page you linked to so I took that equivalent at my place. Also cleared the browser cache but didn't work. Then I tried Google Chrome while I wasn't even logged in and it looks normal. Whatever the bug(?) is, at least I know now I could use chrome when surfing with a small-screened device. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 21:27, 24 August 2015 (CEST)
;Chapters and added value
:Flipping through the stuff as I updated the page layout, I was really impressed with the quality of some of the "added value".
:Keep up the good work, dude. I'm sure the chapter pages will grow (just a little bit) to be brilliant appetizers for all the rest.
::[[User:Geyser|geyser]] 03:38, 18 February 2008 (CET)


"I'm sure the chapter pages will grow (just a little bit) to be brilliant appetizers for all the rest."
:Ah, well that's good. Sorry, I didn't realize the main Vector.css page wasn't freely editable. But keep in mind that your user Vector.css page stacks on top of the main Vector.css, so when you comment out that CSS on your user page, it simply means that the main Vector.css is still used for mw-panel. You would have to re-declare mw-panel on your user page with its original properties in order to get rid of the anchored sidebar mod. Let me know if you want help with that. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 21:44, 24 August 2015 (CEST)
That's what I'm hoping; I just spouted some random stuff off the top of my head as I made each chapter's Added Value section, so there's plenty of room for corrections/additional insights. --[[User:Iritscen|Iritscen]] 15:48, 19 February 2008 (CET)


==Importing from Blender==
Yes please. I couldn't figure out the right defaults. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 22:40, 24 August 2015 (CEST)
This is the place where EdT tells me what was wrong with that Griffin model I gave him. :-) What did you have to do to get it imported? (I know you already told me some of this, but let's state it here to lay the groundwork for the discussion.)
:--[[User:Iritscen|Iritscen]] 15:59, 2 June 2008 (CEST)


Where do I start? :-)
:It seems like you only need to change "position" back to "absolute", which is the default, but that's just one of the changes made to the panel in Vector.css, so let me know how it works on your phone. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 23:31, 24 August 2015 (CEST)


Here's the basic workflow I use for Blender:
Okay thanks. With your code it works now on the phone. --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 08:38, 25 August 2015 (CEST)
:Export from Oni using AE Tools, option for Blender.
:Import into Blender, using Collada 1.4
:The 3D model will appear in a standing position. Do not change the rotation or position of the body parts.
:Make the changes.
:Export from Blender, Collada 1.4, options: triangles, disable physics, current scene. (I'm doing this from memory, I do not have access to Blender at work. will correct if necessary)
:Import to Oni, using AE Tools.


Things to remember:
==Red links - weapon pages==
:Each body part has a center point, when exporting from Oni as Collada, these center points are at the correct location.  However, if new parts are added, then the center point must be set. To set the center point, position the cursor at the correct location on the body part, you will need to adjust it on all 3 axis. Then go to the menu Object: Transform: Set to cursor. (from memory)
There's no talk page for [[Special:WantedPages]] so I will my question here: Why do we need extra pages for Plasma Rifle, Super Ball Gun, Black Adder, Plasma Rifle, Screaming Cannon, Wave Motion Cannon?
:When replacing a body part, its important that its rotation matches the original part. (How? I don't know... never done it in Blender).  Also, the name must be exactly as the one replaced. Finally, the parent/child relationship must be re-established.


What went wrong with Griffin?
There's this [[Quotes/Weapons]] and IMO there's not more to say about them. Let's delete the red links? --[[User:Paradox-01|paradox-01]] ([[User talk:Paradox-01|talk]]) 20:51, 24 November 2015 (CET)
:It appears there is an additional object connected to the new head, which needs to be deleted. The new head needs to be named correctly, it needs to be attached to the neck (parent/child). Finally the scale/rotation needs to match the previous head.
:Perhaps, since I was working with the .dae version, and not the original Blender file, I was not able to export to Collada, it kept failing on me. Not sure why...
:What did I do? I used Cheetah3D.  I exported ONCCgriffin_generic as Collada, used FBXConverter to convert the file to .fbx.  I also converted your new model to .fbx.  I then copied the new griffin head to the griffin_generic fbx file, replaced the original head, set the correct rotation and parent/child relationship. Exported it out as .fbx, converted it to .dae using FBXConverter, then imported into Oni.  Also, regarding the triangles not being connected in my model, I did not Optimize the model in Cheetah3D before exporting.


[[User:EdT|EdT]] 20:51, 2 June 2008 (CEST)
:There's also [[Gameplay]], for some brief weapon tips. Here's the thing, though. [[Mercury Bow]] is already an article. Why should the M Bow get an article and not the other weapons? In fact, I would say that most of the red links highlighted at the top of "Wanted pages" are equally minor. While there may not be a lot to say about them, they deserve at least a short page, I think. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 04:22, 25 November 2015 (CET)


:'''it's important that its rotation matches the original part''' Conceptually, this has to do with the "center point": you have to define not only a position for it, but also a rotation, and thinking of it as a "point" can be misleading. I have no idea how Blender handles this exactly, but I'd be surprised if it was working with ill-defined frames of reference. Therefore the "center point" mentioned by Ed ''must'' have an adjustable orientation property.
==Wrong pseudo code==
:'''What went wrong with Griffin?''' If that's of any help, you can let ''me'' (or Neo) try and import him ''any time at all''. When in trouble, there's nothing wrong with asking those familiar with OniSplit and/or the COLLADA format to have a look. What kind of masochist are you? If you're scared of me, try and "use" Neo. He may not help you all the way out, but he won't bite, that's for sure.
:Oh, and I'm also very confused about '''work on Griffin began so long ago that OniSplit had some model exporting issues, which are now a part of the model, so the model is not able to be imported as is''' ... No bug report at all? Just what "issues" could we be talking about? Are those ''assumptions'', maybe? Well?
::[[User:Geyser|geyser]] 20:16, 2 June 2008 (CEST)


::geyser, sorry my terminology is not correct.  What I called "center point" is the point where the body part will rotate around. I used "Rotation" as the orientation of the body part in 3D space.  When the rotation for all the body parts is 0 for x,y,z, then the pose of the model is the default orientation.  But since the pose in Blender is a standing pose, the rotation of the body parts is not 0,0,0. So if you replaced the head, with one that had a different rotation (even though it looked the same), the head will appear wrong in Oni.
Hi Iritscen thanks for fixing my wording.  


::Here's the link to Iritscen's Griffin: http://www.sendspace.com/file/uesl4u  Also,  you can find my version of Griffin here: http://drop.io/EdT_OniFIles
I have just noticed a small error.


::[[User:EdT|EdT]] 20:51, 2 June 2008 (CEST)
The following code:
 
for (int i = 0; i < 50; i++)
{
  print("Is this annoying yet?");
  wait(20);
}
 
found here:
[[BSL:Manual#schedule_..._repeat_..._every_...]]
 
is not correct. It is not equivalent to (at least if you change the variables, let say 50 to -1) in
schedule dprint("Is this annoying yet?") repeat 50 every 20;
 
the correct code should be the following:
 
int i = 0;
do
{
  print("Is this annoying yet?");
  wait(20);
  i++;
} while (i != 50);   
 
Why? If the conditional value is -1 or 0 (instead of 50) your code would never run (it would stop at first loop condition validation).
 
While with:
 
schedule dprint("Is this annoying yet?") repeat -1 every 20;
 
It would run forever. Please consider to edit the page or if you want I can do it. Thanks. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 19:27, 2 November 2017 (CET)
 
:Oh, good point! Sorry I changed your pseudocode and didn't think about why you used "!=" instead of "<". Before I fix the page, let me ask, shouldn't I just set it back to the "for" loop that you wrote before? Is there a reason why the "do-while" loop above is preferable? --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 22:41, 2 November 2017 (CET)
:: Hi, yes I used the "!=" in the for loop because the reason above. Turns out that it was also wrong! Because it would also fail for this example:
schedule dprint("Is this annoying yet?") repeat 0 every 20;
 
for (int i = 0; i != 0; i++)
{
  print("Is this annoying yet?"); # this would never run with this code because 0 == 0
  wait(20);
}
 
See, it would also never run using my code for 0, so the do while loop is the correct equivalent imo. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 00:17, 3 November 2017 (CET)
 
Also I am thinking if the following code:
schedule dprint("Is this annoying yet?") repeat 0 every 20;
runs for long enough it could theoretically overflow with counter becoming negative and eventually reach 0 and stop, practically this can't ever happening because even if the counter would increase one 60 times per second it would need (2^31)*2/60/60/24 hours to reach zero (sorry if I'm doing bad the math but I am sure the number of hours it would take is just ridiculous). [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 00:41, 3 November 2017 (CET)
 
:Okay, I implemented your "do-while" loop except that I am starting "i" at 1 instead of 0. I think that's what you actually wanted because it will iterate the correct number of times in all cases. (If it was initialized to 0 then it would stop after one iteration instead of running forever.) But I'm pretty tired right now, so let me know if that is also a mistake. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 05:13, 3 November 2017 (CET)
 
::It wouldn't, note the i++ before the condition check, so the first check would be 1!=0. I will fix that part of the code no problem. [[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 11:09, 3 November 2017 (CET)
 
:::Oops, my bad. I shouldn't try to code after midnight. Thanks for the fix. --[[User:Iritscen|Iritscen]] ([[User talk:Iritscen|talk]]) 16:35, 3 November 2017 (CET)
 
== slowmo revisited ==
 
''[In reference to [[User_talk:Iritscen/Archive2#slowmo|this old discussion]].]''<br/>
Hi guys! Sorry for the massive bump. I am finishing my Omega Tournament Level and since I use slowmo in two calls, so I needed to investigate this issue (to find the correct ratio for both platforms). So I asked EdT to run the following BSL scripts (http://script10k.oni2.net/wikifiles/EnvWarehouse_slowmo_test_scripts.7z) on mac and to record it in a 60 FPS video. I did the same thing in windows. In the end I created two videos that compare the two versions of the scripts (one with slowmo 100 and other with slowmo 600) in both operating systems. The results seem to be the same!<br/>
You can watch the comparison here (you need a libx265 player):<br/>
http://script10k.oni2.net/videos/comparison_slowmo_win_mac_1.mp4<br/>
http://script10k.oni2.net/videos/comparison_slowmo_win_mac_2.mp4
 
In case you are interested the original videos can be found here:<br/>
http://script10k.oni2.net/videos/slowmo_os_comparison_original_videos.7z --[[User:Script 10k|Script 10k]] ([[User talk:Script 10k|talk]]) 04:58, 24 August 2019‎
 
[[Category:Userspace]]

Latest revision as of 02:14, 4 May 2022

Talk page archives: #1 (2008); #2 (2009-2014)

Re: Banner

Hey,

haha yes, I'm sorry for that. The banner was located on my installation CD and actually, this is the installer splashscreen: Click --Noneatme

Hehe, I feel somehow cheated that these levels never made it into the final game. The jewel case image you mentioned also gave me cancer and aids so I scanned the case for myself. Here is the back, CD, inner part and front. Also, the german sounds and voice lines are also well made and we have some translated textures like STAIRS at the warehouse level. And I also found some unused textures in some levels. --Noneatme (talk) 17:49, 29 July 2015 (CEST)

Annoying sidebar on smartphone

When I browse the wiki with my Samsung/Android phone the side bar takes a good portion of the screen especially if you try to zoom in.

It would be nice if that would hide when you scroll down and show when scroll up. --paradox-01 (talk) 19:46, 23 August 2015 (CEST)

When you are ready to test this on your phone, try commenting out the "div#mw-panel" modification on MediaWiki:Vector.css, then see how things look on your phone. I'm not sure if this is a mobile-friendliness issue with MediaWiki 1.19, but I'm thinking it's probably the fixed sidebar CSS that's the issue. --Iritscen (talk) 23:16, 23 August 2015 (CEST)

Couldn't edit the page you linked to so I took that equivalent at my place. Also cleared the browser cache but didn't work. Then I tried Google Chrome while I wasn't even logged in and it looks normal. Whatever the bug(?) is, at least I know now I could use chrome when surfing with a small-screened device. --paradox-01 (talk) 21:27, 24 August 2015 (CEST)

Ah, well that's good. Sorry, I didn't realize the main Vector.css page wasn't freely editable. But keep in mind that your user Vector.css page stacks on top of the main Vector.css, so when you comment out that CSS on your user page, it simply means that the main Vector.css is still used for mw-panel. You would have to re-declare mw-panel on your user page with its original properties in order to get rid of the anchored sidebar mod. Let me know if you want help with that. --Iritscen (talk) 21:44, 24 August 2015 (CEST)

Yes please. I couldn't figure out the right defaults. --paradox-01 (talk) 22:40, 24 August 2015 (CEST)

It seems like you only need to change "position" back to "absolute", which is the default, but that's just one of the changes made to the panel in Vector.css, so let me know how it works on your phone. --Iritscen (talk) 23:31, 24 August 2015 (CEST)

Okay thanks. With your code it works now on the phone. --paradox-01 (talk) 08:38, 25 August 2015 (CEST)

Red links - weapon pages

There's no talk page for Special:WantedPages so I will my question here: Why do we need extra pages for Plasma Rifle, Super Ball Gun, Black Adder, Plasma Rifle, Screaming Cannon, Wave Motion Cannon?

There's this Quotes/Weapons and IMO there's not more to say about them. Let's delete the red links? --paradox-01 (talk) 20:51, 24 November 2015 (CET)

There's also Gameplay, for some brief weapon tips. Here's the thing, though. Mercury Bow is already an article. Why should the M Bow get an article and not the other weapons? In fact, I would say that most of the red links highlighted at the top of "Wanted pages" are equally minor. While there may not be a lot to say about them, they deserve at least a short page, I think. --Iritscen (talk) 04:22, 25 November 2015 (CET)

Wrong pseudo code

Hi Iritscen thanks for fixing my wording.

I have just noticed a small error.

The following code:

for (int i = 0; i < 50; i++)
{
  print("Is this annoying yet?");
  wait(20);
}

found here: BSL:Manual#schedule_..._repeat_..._every_...

is not correct. It is not equivalent to (at least if you change the variables, let say 50 to -1) in

schedule dprint("Is this annoying yet?") repeat 50 every 20;

the correct code should be the following:

int i = 0;
do
{
  print("Is this annoying yet?");
  wait(20);
  i++;
} while (i != 50);     

Why? If the conditional value is -1 or 0 (instead of 50) your code would never run (it would stop at first loop condition validation).

While with:

schedule dprint("Is this annoying yet?") repeat -1 every 20;

It would run forever. Please consider to edit the page or if you want I can do it. Thanks. Script 10k (talk) 19:27, 2 November 2017 (CET)

Oh, good point! Sorry I changed your pseudocode and didn't think about why you used "!=" instead of "<". Before I fix the page, let me ask, shouldn't I just set it back to the "for" loop that you wrote before? Is there a reason why the "do-while" loop above is preferable? --Iritscen (talk) 22:41, 2 November 2017 (CET)
Hi, yes I used the "!=" in the for loop because the reason above. Turns out that it was also wrong! Because it would also fail for this example:
schedule dprint("Is this annoying yet?") repeat 0 every 20;
for (int i = 0; i != 0; i++)
{
  print("Is this annoying yet?"); # this would never run with this code because 0 == 0
  wait(20);
}

See, it would also never run using my code for 0, so the do while loop is the correct equivalent imo. Script 10k (talk) 00:17, 3 November 2017 (CET)

Also I am thinking if the following code:

schedule dprint("Is this annoying yet?") repeat 0 every 20;

runs for long enough it could theoretically overflow with counter becoming negative and eventually reach 0 and stop, practically this can't ever happening because even if the counter would increase one 60 times per second it would need (2^31)*2/60/60/24 hours to reach zero (sorry if I'm doing bad the math but I am sure the number of hours it would take is just ridiculous). Script 10k (talk) 00:41, 3 November 2017 (CET)

Okay, I implemented your "do-while" loop except that I am starting "i" at 1 instead of 0. I think that's what you actually wanted because it will iterate the correct number of times in all cases. (If it was initialized to 0 then it would stop after one iteration instead of running forever.) But I'm pretty tired right now, so let me know if that is also a mistake. --Iritscen (talk) 05:13, 3 November 2017 (CET)
It wouldn't, note the i++ before the condition check, so the first check would be 1!=0. I will fix that part of the code no problem. Script 10k (talk) 11:09, 3 November 2017 (CET)
Oops, my bad. I shouldn't try to code after midnight. Thanks for the fix. --Iritscen (talk) 16:35, 3 November 2017 (CET)

slowmo revisited

[In reference to this old discussion.]
Hi guys! Sorry for the massive bump. I am finishing my Omega Tournament Level and since I use slowmo in two calls, so I needed to investigate this issue (to find the correct ratio for both platforms). So I asked EdT to run the following BSL scripts (http://script10k.oni2.net/wikifiles/EnvWarehouse_slowmo_test_scripts.7z) on mac and to record it in a 60 FPS video. I did the same thing in windows. In the end I created two videos that compare the two versions of the scripts (one with slowmo 100 and other with slowmo 600) in both operating systems. The results seem to be the same!
You can watch the comparison here (you need a libx265 player):
http://script10k.oni2.net/videos/comparison_slowmo_win_mac_1.mp4
http://script10k.oni2.net/videos/comparison_slowmo_win_mac_2.mp4

In case you are interested the original videos can be found here:
http://script10k.oni2.net/videos/slowmo_os_comparison_original_videos.7z --Script 10k (talk) 04:58, 24 August 2019‎