-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
335 lines (167 loc) · 13.2 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Non social metatags -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#157878">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<title>h2cloud</title>
<!-- Place this data between the <head> tags of your website -->
<meta name="description" content="这里分享我的一些技术相关的总结 游戏相关开发技术 人工智能等" />
<!-- Twitter Card data -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="h2cloud" />
<meta name="twitter:description" content="这里分享我的一些技术相关的总结 游戏相关开发技术 人工智能等" />
<meta name="twitter:creator" content="@evanown" />
<!-- Twitter summary card with large image must be at least 280x150px -->
<meta name="twitter:image:src" content="https://h2cloud.org/thumbnail-jumbo.png" />
<meta name="twitter:image" content="https://h2cloud.org/thumbnail-jumbo.png" />
<meta name="twitter:url" content="https://h2cloud.org//" />
<!-- Open Graph data -->
<meta property="og:title" content="h2cloud" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://h2cloud.org//" />
<meta property="og:image" content="https://h2cloud.org/thumbnail-jumbo.png" />
<meta property="og:description" content="这里分享我的一些技术相关的总结 游戏相关开发技术 人工智能等" />
<meta property="og:site_name" content="h2cloud" />
<meta property="og:locale" content="" />
<link rel="canonical" href="https://h2cloud.org/">
<link rel="shortcut icon" href="https://h2cloud.org/favicon.ico">
<meta name="robots" content="noarchive">
<!-- <link rel="alternate" media="only screen and (max-width: 640px)" href="">
<link rel="alternate" media="handheld" href=""> -->
<link rel="stylesheet" href="https://h2cloud.org/assets/css/style.css?v=">
</head>
<body>
<header class="site-header" role="banner">
<div class="wrapper">
<nav class="site-nav">
<input type="checkbox" id="nav-trigger" class="nav-trigger">
<label for="nav-trigger">
<span class="menu-icon">
<svg viewbox="0 0 18 15" width="18px" height="15px">
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"></path>
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"></path>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"></path>
</svg>
</span>
</label>
<div class="trigger">
<a class="page-link" href="https://h2cloud.org/h2engine.html">H2engine</a>
<a class="page-link" href="https://h2cloud.org/fflib.html">FFlib</a>
<a class="page-link" href="https://h2cloud.org/fflua.html">FFlua</a>
<a class="page-link" href="https://h2cloud.org/ffpython.html">FFpython</a>
<a class="page-link" href="https://h2cloud.org/gamedev.html">Gamedev</a>
<a class="page-link" href="https://h2cloud.org/ai.html">AI</a>
<a class="page-link" href="https://h2cloud.org/tech.html">Tech</a>
<a class="page-link" href="https://h2cloud.org/about.html">About</a>
</div>
</nav>
</div>
</header>
<section class="page-header">
<h1 class="project-name">h2cloud</h1>
<h2 class="project-tagline">这里分享我的一些技术相关的总结 游戏相关开发技术 人工智能等
</h2>
<!-- Post tagline -->
<!-- End: Post tagline -->
</section>
<section class="main-content">
<div>
<p>吾尝终日而思矣,不如须臾之所学也;吾尝跂而望矣,不如登高之博见也。登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。</p>
<p>故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。</p>
<p><code class="highlighter-rouge">——先秦·荀子《劝学》</code></p>
<h1 id="h2engine">h2engine</h1>
<p>游戏服务器框架,你能从中了解游戏服务器由复杂到精简的演变过程,最流行技术如嵌入脚本、事件解耦、进程间rpc、异步io等应用,
十年研发经验的结晶,成熟与创新结合的傲娇之作。<a href="./h2engine.html">了解更多 </a></p>
<h1 id="fflib">FFlib</h1>
<p>fflib是轻量级的C++类库,所谓轻量是指代码结构清晰,阅读性强,绝对的精巧极致,当从底层到细节都遵循了极简原则时候,
类库的性能自然而然达到了很高的水平。从事网络游戏开发工作过程中,在设计开发分布式并发的C++服务器程序时,
总结了很多经验 和模式,一方面希望自己的心得更有条理的整理出来,另一方面感觉到有些东西设计的还是 很有价值的,
故而得成fflib。<a href="./fflib.html">了解更多 </a></p>
<h1 id="fflua">FFlua</h1>
<p>也许你已经了解了FFLUA的设计原则,即:当在编写C++代码时,希望使用LUA就像使用C++本地的代码一样,而在lua中操作C++的数据和接口的时候,
又希望C++用起来完全跟table一个样。这样可以大大减轻程序开发的工作,从而把精力更多放大设计和逻辑上。那么做到如何lua才算像C++,
C++做到如何才算像lua呢?我们知道二者毕竟相差甚远,C++ 调用lua函数,FFLUA已经封装调用lua函数就像调用本地C++函数一样方便 ,
C++注册接口和对象到lua中,lua中操作对象就像操作table一样直接。 C++中除了自定义对象,STL是用的最多的了,
C++希望lua中能够接收STL的参数,或者能够返回STL数据结构 Lua中只有table数据结构,Lua希望C++的参数的数据结构支持table,
并且lua可以直接把table作为返回值。 C++的指针需要传递到lua中,同时也希望某些操作,lua可以把C++对象指针作为返回值<a href="./fflua.html">了解更多 </a></p>
<h1 id="ffpython">FFpython</h1>
<p>在服务器编程中,经常会用到python脚本技术。Python是最流行的脚本之一,并且python拥有定义良好的C API接口,同时又有丰富的文档,
与C++结合非常的适合。通常情况下使用C++封装机制,而用python脚本实现策略或者是控制。使用python和C++结合的技术拥有很多优势,
ffpython是C++语言开发的方便嵌入、扩展python的类库。<a href="./ffpython.html">了解更多 </a></p>
<h1 id="gamedev">Gamedev</h1>
<p>这里汇总游戏开发相关的技术总结。<a href="./gamedev.html">了解更多 </a></p>
<h1 id="ai">AI</h1>
<p>人工智能初窥门径,水平有限,分享一些自己的学习心得,主要是AI相关的原理数学推导。<a href="./ai.html">了解更多 </a></p>
</div>
<footer class="site-footer">
<!-- SVG icons from https://iconmonstr.com -->
<!-- Github icon -->
<span class="my-span-icon">
<a href="https://github.com/fanchy" aria-label="fanchy's GitHub" title="fanchy's GitHub" target="_blank" rel="noopener noreferrer nofollow">
<svg class="my-svg-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg>
</a>
</span>
<!-- Twitter icon -->
<span class="my-span-icon">
<a href="https://twitter.com/evanown" aria-label="fanchy's Twitter" title="fanchy's Twitter" target="_blank" rel="noopener noreferrer nofollow">
<svg class="my-svg-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.066 9.645c.183 4.04-2.83 8.544-8.164 8.544-1.622 0-3.131-.476-4.402-1.291 1.524.18 3.045-.244 4.252-1.189-1.256-.023-2.317-.854-2.684-1.995.451.086.895.061 1.298-.049-1.381-.278-2.335-1.522-2.304-2.853.388.215.83.344 1.301.359-1.279-.855-1.641-2.544-.889-3.835 1.416 1.738 3.533 2.881 5.92 3.001-.419-1.796.944-3.527 2.799-3.527.825 0 1.572.349 2.096.907.654-.128 1.27-.368 1.824-.697-.215.671-.67 1.233-1.263 1.589.581-.07 1.135-.224 1.649-.453-.384.578-.87 1.084-1.433 1.489z"></path></svg>
</a>
</span>
<!-- RSS icon -->
<!-- Contact icon -->
<span class="my-span-icon">
<a href="https://h2cloud.org/contact" aria-label="Contact" title="Contact fanchy">
<svg class="my-svg-icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24"><path d="M12 .02c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm6.99 6.98l-6.99 5.666-6.991-5.666h13.981zm.01 10h-14v-8.505l7 5.673 7-5.672v8.504z"></path></svg>
</a>
</span>
<!-- <span class="my-span-icon" style="padding-bottom:5px;"> -->
<!-- <a href="https://h2cloud.org/contact" aria-label="Contact" title="Contact fanchy"> -->
<!-- 沪ICP备17021230号-1 -->
<!-- </a> -->
<!-- </span> -->
</footer>
</section>
<script>
var menu = document.querySelector("nav.site-nav");
var checkbox = document.getElementById("nav-trigger");
// close menu if click outside menu
document.addEventListener("click", function(e) {
if (menu != e.target &&
!isDescendant(menu, e.target)) {
checkbox.checked = false;
}
}, false);
function isDescendant(parent, child) {
var node = child.parentNode;
while (node != null) {
if (node == parent) {
return true;
}
node = node.parentNode;
}
return false;
}
</script>
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?0b0b03911bf3e050f9177fccd1e24775";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-124179560-1', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>