nx_game_research_fetch.nx source
↩ module page · 153 lines · 13871 B
1// nx_game_research_fetch.nx -- the SOVEREIGN half of the MASSIVE game-engine research drive toward S-class
2// exceed. Own TLS-1.3 (nx_https_fetch_follow) + Mozilla CA, idempotent have-skip (= RESUMABLE: re-run fills
3// gaps; also the per-fetch-mmap-leak workaround -> the corpus completes across passes/WSL-restarts, ZERO LLM
4// tokens). Saves to knowledge/fetched/gr_*.raw so it COMPOUNDS to the Library + can be grepped to CITE. The
5// other half = Claude deep-research SYNTHESIS over this corpus (the partnership = S-class per
6// project-researcher-honest-h2h-vs-deepresearch). Axes = engine arch / rendering / netcode / no-float physics /
7// AI / procgen / GENRES (the 16 catalog genres) / game design (GDC topics) / open-source engines.
8// expect_exit: 0 license_tier: ORIGINAL
9import "nx_syscalls.nx"
10import "nx_x509_trust_store.nx"
11import "nx_trust_store_load_from_certdata.nx"
12import "nx_https_fetch_follow.nx"
13const K_MAGIC_4194304: i64 = 4194304
14const K_MAGIC_8388608: i64 = 8388608
15
16func gf_puts(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 }
17func gf_putn(v: i64) -> i64 {
18 if v == 0 { sys_write(1, "0" as *u8, 1); return 0 }
19 var m: i64 = v
20 if m < 0 { sys_write(1, "-" as *u8, 1); m = 0 - m }
21 let d: *u8 = sys_mmap(24); var k: i64 = 0
22 while m > 0 { d[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 }
23 var j: i64 = k - 1
24 while j >= 0 { sys_write(1, ((d as i64)+j) as *u8, 1); j = j - 1 }
25 return 0
26}
27func have_file(path: *u8) -> i64 { let fd: i64 = sys_openat_rd(path); if fd < 0 { return 0 } sys_close(fd); return 1 }
28func fetch_save(url: *u8, opath: *u8, store: *TrustStore, out: *u8, cap: i64) -> i64 {
29 if have_file(opath) == 1 { gf_puts(opath); gf_puts(" [have-skip]\n"); return 1 }
30 let status: *i64 = sys_mmap(8) as *i64
31 let n: i64 = nx_https_fetch_follow(url, store, out, cap, 6, status)
32 gf_puts(url); gf_puts(" status="); gf_putn(status[0]); gf_puts(" bytes="); gf_putn(n)
33 if n <= 0 { gf_puts(" FETCH-FAIL\n"); return 0 }
34 var gz: i64 = 0
35 if n >= 2 { if out[0] == 0x1f as u8 { if out[1] == 0x8b as u8 { gz = 1 } } }
36 if gz == 1 { gf_puts(" [GZIP-skip]\n"); return 0 }
37 let fd: i64 = sys_openat_wr(opath, 0x1a4)
38 if fd < 0 { gf_puts(" SAVE-FAIL\n"); return 0 }
39 sys_write(fd, out, n); sys_close(fd)
40 gf_puts(" SAVED\n"); return 1
41}
42func F(u: *u8, o: *u8, store: *TrustStore, out: *u8, cap: i64) -> i64 { return fetch_save(u, o, store, out, cap) }
43
44func main() -> i64 {
45 let r: i64 = nx_trust_store_load_from_certdata("data/mozilla_certdata.txt" as *u8, 512, K_MAGIC_4194304)
46 if r <= 0 { gf_puts("GR: certdata load failed\n"); return 1 }
47 let store: *TrustStore = r as *TrustStore
48 gf_puts("CA roots="); gf_putn(trust_store_count(store)); gf_puts("\n")
49 let cap: i64 = K_MAGIC_8388608
50 let out: *u8 = sys_mmap(cap)
51 var ok: i64 = 0
52
53 gf_puts("== A. ENGINE ARCHITECTURE ==\n")
54 ok = ok + F("https://en.wikipedia.org/wiki/Game_engine" as *u8, "knowledge/fetched/gr_a_game_engine.raw" as *u8, store, out, cap)
55 ok = ok + F("https://en.wikipedia.org/wiki/Scene_graph" as *u8, "knowledge/fetched/gr_a_scene_graph.raw" as *u8, store, out, cap)
56 ok = ok + F("https://en.wikipedia.org/wiki/Entity_component_system" as *u8, "knowledge/fetched/gr_a_ecs.raw" as *u8, store, out, cap)
57 ok = ok + F("https://en.wikipedia.org/wiki/Data-oriented_design" as *u8, "knowledge/fetched/gr_a_dod.raw" as *u8, store, out, cap)
58 ok = ok + F("https://en.wikipedia.org/wiki/Fixed-point_arithmetic" as *u8, "knowledge/fetched/gr_a_fixedpoint.raw" as *u8, store, out, cap)
59
60 gf_puts("== B. RENDERING ==\n")
61 ok = ok + F("https://en.wikipedia.org/wiki/Deferred_shading" as *u8, "knowledge/fetched/gr_b_deferred.raw" as *u8, store, out, cap)
62 ok = ok + F("https://en.wikipedia.org/wiki/Shadow_mapping" as *u8, "knowledge/fetched/gr_b_shadow.raw" as *u8, store, out, cap)
63 ok = ok + F("https://en.wikipedia.org/wiki/Physically_based_rendering" as *u8, "knowledge/fetched/gr_b_pbr.raw" as *u8, store, out, cap)
64 ok = ok + F("https://en.wikipedia.org/wiki/Z-buffering" as *u8, "knowledge/fetched/gr_b_zbuffer.raw" as *u8, store, out, cap)
65 ok = ok + F("https://en.wikipedia.org/wiki/Texture_mapping" as *u8, "knowledge/fetched/gr_b_texmap.raw" as *u8, store, out, cap)
66 ok = ok + F("https://en.wikipedia.org/wiki/Back-face_culling" as *u8, "knowledge/fetched/gr_b_backface.raw" as *u8, store, out, cap)
67 ok = ok + F("https://en.wikipedia.org/wiki/Bounding_volume_hierarchy" as *u8, "knowledge/fetched/gr_b_bvh.raw" as *u8, store, out, cap)
68 ok = ok + F("https://en.wikipedia.org/wiki/Shader" as *u8, "knowledge/fetched/gr_b_shader.raw" as *u8, store, out, cap)
69
70 gf_puts("== C. NETCODE ==\n")
71 ok = ok + F("https://en.wikipedia.org/wiki/Client-side_prediction" as *u8, "knowledge/fetched/gr_c_prediction.raw" as *u8, store, out, cap)
72 ok = ok + F("https://en.wikipedia.org/wiki/Delta_encoding" as *u8, "knowledge/fetched/gr_c_delta.raw" as *u8, store, out, cap)
73 ok = ok + F("https://en.wikipedia.org/wiki/Interpolation" as *u8, "knowledge/fetched/gr_c_interp.raw" as *u8, store, out, cap)
74
75 gf_puts("== D. PHYSICS / SPATIAL (no-float angle) ==\n")
76 ok = ok + F("https://en.wikipedia.org/wiki/Collision_detection" as *u8, "knowledge/fetched/gr_d_collision.raw" as *u8, store, out, cap)
77 ok = ok + F("https://en.wikipedia.org/wiki/Verlet_integration" as *u8, "knowledge/fetched/gr_d_verlet.raw" as *u8, store, out, cap)
78 ok = ok + F("https://en.wikipedia.org/wiki/Quadtree" as *u8, "knowledge/fetched/gr_d_quadtree.raw" as *u8, store, out, cap)
79 ok = ok + F("https://en.wikipedia.org/wiki/Octree" as *u8, "knowledge/fetched/gr_d_octree.raw" as *u8, store, out, cap)
80 ok = ok + F("https://en.wikipedia.org/wiki/Space_partitioning" as *u8, "knowledge/fetched/gr_d_spacepart.raw" as *u8, store, out, cap)
81
82 gf_puts("== E. GAME AI ==\n")
83 ok = ok + F("https://en.wikipedia.org/wiki/Pathfinding" as *u8, "knowledge/fetched/gr_e_pathfinding.raw" as *u8, store, out, cap)
84 ok = ok + F("https://en.wikipedia.org/wiki/A*_search_algorithm" as *u8, "knowledge/fetched/gr_e_astar.raw" as *u8, store, out, cap)
85 ok = ok + F("https://en.wikipedia.org/wiki/Monte_Carlo_tree_search" as *u8, "knowledge/fetched/gr_e_mcts.raw" as *u8, store, out, cap)
86 ok = ok + F("https://en.wikipedia.org/wiki/Alpha-beta_pruning" as *u8, "knowledge/fetched/gr_e_alphabeta.raw" as *u8, store, out, cap)
87 ok = ok + F("https://en.wikipedia.org/wiki/Game_artificial_intelligence" as *u8, "knowledge/fetched/gr_e_gameai.raw" as *u8, store, out, cap)
88
89 gf_puts("== F. PROCGEN ==\n")
90 ok = ok + F("https://en.wikipedia.org/wiki/Perlin_noise" as *u8, "knowledge/fetched/gr_f_perlin.raw" as *u8, store, out, cap)
91 ok = ok + F("https://en.wikipedia.org/wiki/Simplex_noise" as *u8, "knowledge/fetched/gr_f_simplex.raw" as *u8, store, out, cap)
92 ok = ok + F("https://en.wikipedia.org/wiki/Cellular_automaton" as *u8, "knowledge/fetched/gr_f_ca.raw" as *u8, store, out, cap)
93 ok = ok + F("https://en.wikipedia.org/wiki/Maze_generation_algorithm" as *u8, "knowledge/fetched/gr_f_maze.raw" as *u8, store, out, cap)
94 ok = ok + F("https://en.wikipedia.org/wiki/L-system" as *u8, "knowledge/fetched/gr_f_lsystem.raw" as *u8, store, out, cap)
95
96 gf_puts("== G. GENRES (the 16 catalog genres) ==\n")
97 ok = ok + F("https://en.wikipedia.org/wiki/Real-time_strategy" as *u8, "knowledge/fetched/gr_g_rts.raw" as *u8, store, out, cap)
98 ok = ok + F("https://en.wikipedia.org/wiki/Role-playing_video_game" as *u8, "knowledge/fetched/gr_g_rpg.raw" as *u8, store, out, cap)
99 ok = ok + F("https://en.wikipedia.org/wiki/Platform_game" as *u8, "knowledge/fetched/gr_g_platformer.raw" as *u8, store, out, cap)
100 ok = ok + F("https://en.wikipedia.org/wiki/Puzzle_video_game" as *u8, "knowledge/fetched/gr_g_puzzle.raw" as *u8, store, out, cap)
101 ok = ok + F("https://en.wikipedia.org/wiki/Roguelike" as *u8, "knowledge/fetched/gr_g_roguelike.raw" as *u8, store, out, cap)
102 ok = ok + F("https://en.wikipedia.org/wiki/Tower_defense" as *u8, "knowledge/fetched/gr_g_towerdef.raw" as *u8, store, out, cap)
103 ok = ok + F("https://en.wikipedia.org/wiki/Turn-based_strategy" as *u8, "knowledge/fetched/gr_g_tbs.raw" as *u8, store, out, cap)
104 ok = ok + F("https://en.wikipedia.org/wiki/First-person_shooter" as *u8, "knowledge/fetched/gr_g_fps.raw" as *u8, store, out, cap)
105 ok = ok + F("https://en.wikipedia.org/wiki/Racing_video_game" as *u8, "knowledge/fetched/gr_g_racing.raw" as *u8, store, out, cap)
106 ok = ok + F("https://en.wikipedia.org/wiki/Shoot_%27em_up" as *u8, "knowledge/fetched/gr_g_shmup.raw" as *u8, store, out, cap)
107 ok = ok + F("https://en.wikipedia.org/wiki/Adventure_game" as *u8, "knowledge/fetched/gr_g_adventure.raw" as *u8, store, out, cap)
108 ok = ok + F("https://en.wikipedia.org/wiki/City-building_game" as *u8, "knowledge/fetched/gr_g_citybuild.raw" as *u8, store, out, cap)
109 ok = ok + F("https://en.wikipedia.org/wiki/Sandbox_game" as *u8, "knowledge/fetched/gr_g_sandbox.raw" as *u8, store, out, cap)
110
111 gf_puts("== H. GAME DESIGN (GDC topics) ==\n")
112 ok = ok + F("https://en.wikipedia.org/wiki/Game_design" as *u8, "knowledge/fetched/gr_h_gamedesign.raw" as *u8, store, out, cap)
113 ok = ok + F("https://en.wikipedia.org/wiki/Game_feel" as *u8, "knowledge/fetched/gr_h_gamefeel.raw" as *u8, store, out, cap)
114 ok = ok + F("https://en.wikipedia.org/wiki/Game_mechanics" as *u8, "knowledge/fetched/gr_h_mechanics.raw" as *u8, store, out, cap)
115 ok = ok + F("https://en.wikipedia.org/wiki/Level_design" as *u8, "knowledge/fetched/gr_h_leveldesign.raw" as *u8, store, out, cap)
116 ok = ok + F("https://en.wikipedia.org/wiki/Game_balance" as *u8, "knowledge/fetched/gr_h_balance.raw" as *u8, store, out, cap)
117 ok = ok + F("https://en.wikipedia.org/wiki/Game_Developers_Conference" as *u8, "knowledge/fetched/gr_h_gdc.raw" as *u8, store, out, cap)
118
119 gf_puts("== I. OPEN-SOURCE ENGINES (study, never clone) ==\n")
120 ok = ok + F("https://en.wikipedia.org/wiki/Godot_(game_engine)" as *u8, "knowledge/fetched/gr_i_godot.raw" as *u8, store, out, cap)
121 ok = ok + F("https://en.wikipedia.org/wiki/Bevy_(game_engine)" as *u8, "knowledge/fetched/gr_i_bevy.raw" as *u8, store, out, cap)
122 ok = ok + F("https://en.wikipedia.org/wiki/Box2D" as *u8, "knowledge/fetched/gr_i_box2d.raw" as *u8, store, out, cap)
123 ok = ok + F("https://en.wikipedia.org/wiki/Simple_DirectMedia_Layer" as *u8, "knowledge/fetched/gr_i_sdl.raw" as *u8, store, out, cap)
124 ok = ok + F("https://en.wikipedia.org/wiki/Open_Dynamics_Engine" as *u8, "knowledge/fetched/gr_i_ode.raw" as *u8, store, out, cap)
125
126 gf_puts("== M. MMO / MULTIPLAYER SERVER (grow toward MMOs + other online games) ==\n")
127 ok = ok + F("https://en.wikipedia.org/wiki/Massively_multiplayer_online_game" as *u8, "knowledge/fetched/gr_m_mmo.raw" as *u8, store, out, cap)
128 ok = ok + F("https://en.wikipedia.org/wiki/Massively_multiplayer_online_role-playing_game" as *u8, "knowledge/fetched/gr_m_mmorpg.raw" as *u8, store, out, cap)
129 ok = ok + F("https://en.wikipedia.org/wiki/Netcode" as *u8, "knowledge/fetched/gr_m_netcode.raw" as *u8, store, out, cap)
130 ok = ok + F("https://en.wikipedia.org/wiki/Client%E2%80%93server_model" as *u8, "knowledge/fetched/gr_m_clientserver.raw" as *u8, store, out, cap)
131 ok = ok + F("https://en.wikipedia.org/wiki/Dead_reckoning" as *u8, "knowledge/fetched/gr_m_deadreckoning.raw" as *u8, store, out, cap)
132 ok = ok + F("https://en.wikipedia.org/wiki/Shard_(database_architecture)" as *u8, "knowledge/fetched/gr_m_sharding.raw" as *u8, store, out, cap)
133 ok = ok + F("https://en.wikipedia.org/wiki/Eventual_consistency" as *u8, "knowledge/fetched/gr_m_consistency.raw" as *u8, store, out, cap)
134 ok = ok + F("https://en.wikipedia.org/wiki/Replication_(computing)" as *u8, "knowledge/fetched/gr_m_replication.raw" as *u8, store, out, cap)
135 ok = ok + F("https://en.wikipedia.org/wiki/Distributed_computing" as *u8, "knowledge/fetched/gr_m_distributed.raw" as *u8, store, out, cap)
136 ok = ok + F("https://en.wikipedia.org/wiki/MUD" as *u8, "knowledge/fetched/gr_m_mud.raw" as *u8, store, out, cap)
137
138 gf_puts("== CC. CREATURE-COLLECTOR REFERENCES (the s-class ARENA -- measure us vs these real games) ==\n")
139 ok = ok + F("https://en.wikipedia.org/wiki/Pok%C3%A9mon" as *u8, "knowledge/fetched/gr_cc_pokemon.raw" as *u8, store, out, cap)
140 ok = ok + F("https://en.wikipedia.org/wiki/Gameplay_of_Pok%C3%A9mon" as *u8, "knowledge/fetched/gr_cc_pokemon_gameplay.raw" as *u8, store, out, cap)
141 ok = ok + F("https://en.wikipedia.org/wiki/Monster-taming_game" as *u8, "knowledge/fetched/gr_cc_monster_taming.raw" as *u8, store, out, cap)
142 ok = ok + F("https://en.wikipedia.org/wiki/Tuxemon" as *u8, "knowledge/fetched/gr_cc_tuxemon.raw" as *u8, store, out, cap)
143
144 gf_puts("== VA. VISUAL-ASSET PIPELINES (how top VNs get their art -- our sovereign analog to build) ==\n")
145 ok = ok + F("https://en.wikipedia.org/wiki/DAZ_Studio" as *u8, "knowledge/fetched/gr_va_daz.raw" as *u8, store, out, cap)
146 ok = ok + F("https://en.wikipedia.org/wiki/Daz_3D" as *u8, "knowledge/fetched/gr_va_daz3d.raw" as *u8, store, out, cap)
147 ok = ok + F("https://en.wikipedia.org/wiki/Ren%27Py" as *u8, "knowledge/fetched/gr_va_renpy.raw" as *u8, store, out, cap)
148 ok = ok + F("https://en.wikipedia.org/wiki/Visual_novel" as *u8, "knowledge/fetched/gr_va_vn.raw" as *u8, store, out, cap)
149 ok = ok + F("https://en.wikipedia.org/wiki/Rendering_(computer_graphics)" as *u8, "knowledge/fetched/gr_va_render.raw" as *u8, store, out, cap)
150
151 gf_puts("GAME-RESEARCH readable saved this pass: "); gf_putn(ok); gf_puts(" / 76 (RESUMABLE: re-run fills gaps; +M MMO +CC arena +VA visual-asset pipelines)\n")
152 return 0
153}