index.html 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884
  1. <!DOCTYPE html>
  2. <html lang="en-us">
  3. <head>
  4. <title>jMonkeyEngine | Sgold interviews Jayfella</title>
  5. <meta name="viewport" content="width=device-width,minimum-scale=1">
  6. <meta name="description"
  7. content="jMonkeyEngine is a modern developer friendly game engine written primarily in Java. ">
  8. <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
  9. <link rel="stylesheet" href="/css/style.css">
  10. <meta name="twitter:card" content="summary"/>
  11. <meta name="twitter:title" content="Sgold interviews Jayfella"/>
  12. <meta name="twitter:description" content="stephengold Thank you for agreeing to be interviewed.
  13. First question: When did you first hear about JMonkeyEngine?
  14. jayfella Way back in 2014, after a long period of developing desktop applications,
  15. servers, and minecraft plugins, I decided to look into writing games.
  16. At that time I was more into C#, but XNA was a sinking ship,
  17. so looked at alternatives."/>
  18. <meta property="og:title" content="Sgold interviews Jayfella" />
  19. <meta property="og:description" content="stephengold Thank you for agreeing to be interviewed.
  20. First question: When did you first hear about JMonkeyEngine?
  21. jayfella Way back in 2014, after a long period of developing desktop applications,
  22. servers, and minecraft plugins, I decided to look into writing games.
  23. At that time I was more into C#, but XNA was a sinking ship,
  24. so looked at alternatives." />
  25. <meta property="og:type" content="article" />
  26. <meta property="og:url" content="https://jmonkeyengine.org/blog/interview-jayfella/" /><meta property="article:section" content="blog" />
  27. <meta property="article:published_time" content="2020-02-15T12:00:00+00:00" />
  28. <meta property="article:modified_time" content="2020-02-15T12:00:00+00:00" />
  29. <meta itemprop="name" content="Sgold interviews Jayfella">
  30. <meta itemprop="description" content="stephengold Thank you for agreeing to be interviewed.
  31. First question: When did you first hear about JMonkeyEngine?
  32. jayfella Way back in 2014, after a long period of developing desktop applications,
  33. servers, and minecraft plugins, I decided to look into writing games.
  34. At that time I was more into C#, but XNA was a sinking ship,
  35. so looked at alternatives."><meta itemprop="datePublished" content="2020-02-15T12:00:00+00:00" />
  36. <meta itemprop="dateModified" content="2020-02-15T12:00:00+00:00" />
  37. <meta itemprop="wordCount" content="877">
  38. <meta itemprop="keywords" content="interview,blog,misc," />
  39. <script src="/js/old-browser.js"></script>
  40. <link rel="stylesheet" href="/css/old-browser.css">
  41. <script src="/highlight/highlight.pack.js"></script>
  42. <script
  43. src="//cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.8.0/highlightjs-line-numbers.min.js"></script>
  44. <link rel="stylesheet" href="/highlight/styles/railscasts.css">
  45. <script type="text/javascript">
  46. hljs.initHighlightingOnLoad();
  47. hljs.initLineNumbersOnLoad();
  48. </script>
  49. <script src="/js/utils.js"></script>
  50. <script src="/js/showcase.js"></script>
  51. <script type="module" src="/js/Main.js"></script>
  52. <script src="https://cdnjs.cloudflare.com/ajax/libs/later/1.2.0/later.min.js" integrity="sha512-4OyNDMl5KLKjS8F1ImVwUvmthM8HkXbR6vMafCmT5zBTd9I/sA3z3zM0JLBosHW6/3K2jq2RoBo/eTUNS2hOGA==" crossorigin="anonymous"></script>
  53. <script src="/js/maintenance/maintenance.js"></script>
  54. <link rel="stylesheet" href="/js/maintenance/maintenance.css">
  55. <script src="/js/christmas/Christmas.js"></script>
  56. <script>
  57. Christmas.init(
  58. "https://jmonkeyengine.org/js/christmas/",
  59. ["figure.githubUser img", 'img.avatar', "#showcase button"],
  60. [
  61. {
  62. type: "attribute",
  63. value: "src",
  64. transform:function(src){
  65. if(src.startsWith("/user_avatar/hub.jmonkeyengine.org/")) {
  66. return src.substring("/user_avatar/hub.jmonkeyengine.org/".length).split("/")[0];
  67. }
  68. return src;
  69. }
  70. },
  71. {
  72. type: "attribute",
  73. value: "title"
  74. },
  75. {
  76. type: "text"
  77. }
  78. ],
  79. ["header img.avatar"]
  80. );
  81. </script>
  82. </head>
  83. <body>
  84. <header> <nav class="responsiveWidth " id="topmenu">
  85. <div class="expandable">
  86. <a href="https://jmonkeyengine.org/" alt-href="https://jmonkeyengine.org/tags,https://jmonkeyengine.org/authors,https://jmonkeyengine.org/devlog,https://jmonkeyengine.org/blog,,https://jmonkeyengine.org/communitylog">
  87. <button class="genericCl responsiveIcon expandable ">
  88. <i class="fas fa-home"></i> <span>Home</span>
  89. </button>
  90. </a>
  91. <a href="https://jmonkeyengine.org/tags/showcase" alt-href="https://jmonkeyengine.org/showcase">
  92. <button class="genericCl responsiveIcon expandable ">
  93. <i class="fas fa-images"></i> <span>Showcase</span>
  94. </button>
  95. </a>
  96. <a href="https://hub.jmonkeyengine.org">
  97. <button class="genericCl responsiveIcon expandable ">
  98. <i class="fab fa-discourse"></i> <span>Discussions</span>
  99. </button>
  100. </a>
  101. <a href="https://library.jmonkeyengine.org" >
  102. <button class="genericCl responsiveIcon expandable ">
  103. <i class="fas fa-puzzle-piece"></i> <span>Library</span>
  104. </button>
  105. </a>
  106. <a href="https://jmonkeyengine.org/docs">
  107. <button class="genericCl responsiveIcon expandable ">
  108. <i class="fas fa-book"></i> <span>Docs</span>
  109. </button>
  110. </a>
  111. <a href="https://jmonkeyengine.org/license">
  112. <button class="genericCl responsiveIcon expandable toggleable toggledOffPortrait">
  113. <i class="fas fa-balance-scale-right"></i> <span>License</span>
  114. </button>
  115. </a>
  116. </div>
  117. <div class="toggleable toggledOffPortrait expandable">
  118. <a href="https://github.com/jMonkeyEngine/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  119. <button class="icon toggleable toggledOffPortrait codeCl expandable " title="Github">
  120. <i class="fab fa-github-square"></i> <span>Github</span>
  121. </button>
  122. </a>
  123. <a href="https://twitter.com/jmonkeyengine" rel='noopener noreferrer' target="_blank">
  124. <button class="icon twitterCl toggleable toggledOffPortrait expandable " title="Follow on Twitter">
  125. <i class="fab fa-twitter"></i> <span>Twitter</span>
  126. </button>
  127. </a>
  128. <a href="https://www.youtube.com/channel/UC-Fs3R5Q6wW_XYspOXGZgPw" rel='noopener noreferrer'
  129. target="_blank">
  130. <button class="icon youtubeCl toggleable toggledOffPortrait expandable " title="Follow on Youtube">
  131. <i class="fab fa-youtube"></i> <span>Youtube</span>
  132. </button>
  133. </a>
  134. <a href="https://discord.gg/Rv8sfVu" rel='noopener noreferrer' target="_blank">
  135. <button class="icon discordCl toggleable toggledOffPortrait expandable " title="Discord">
  136. <i class="fab fa-discord"></i> <span>Discord</span>
  137. </button>
  138. </a>
  139. <a href="https://jmonkeyengine.org/donate" >
  140. <button class="icon donateCl toggleable toggledOffPortrait expandable " title="Donate">
  141. <i class="fas fa-donate"></i> <span>Donate!</span>
  142. </button>
  143. </a>
  144. </div>
  145. </nav>
  146. <script>
  147. !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.stringSimilarity=e():t.stringSimilarity=e()}(self,(function(){return t={138:t=>{function e(t,e){if((t=t.replace(/\s+/g,""))===(e=e.replace(/\s+/g,"")))return 1;if(t.length<2||e.length<2)return 0;let r=new Map;for(let e=0;e<t.length-1;e++){const n=t.substring(e,e+2),o=r.has(n)?r.get(n)+1:1;r.set(n,o)}let n=0;for(let t=0;t<e.length-1;t++){const o=e.substring(t,t+2),s=r.has(o)?r.get(o):0;s>0&&(r.set(o,s-1),n++)}return 2*n/(t.length+e.length-2)}t.exports={compareTwoStrings:e,findBestMatch:function(t,r){if(!function(t,e){return"string"==typeof t&&!!Array.isArray(e)&&!!e.length&&!e.find((function(t){return"string"!=typeof t}))}(t,r))throw new Error("Bad arguments: First argument should be a string, second should be an array of strings");const n=[];let o=0;for(let s=0;s<r.length;s++){const i=r[s],f=e(t,i);n.push({target:i,rating:f}),f>n[o].rating&&(o=s)}return{ratings:n,bestMatch:n[o],bestMatchIndex:o}}}}},e={},function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}(138);var t,e}));
  148. window.initJmeMenu=function () {
  149. const selectionClass= window.selectedTopMenuClass || "highlightedCl";
  150. const topmenu = document.querySelector('#topmenu');
  151. if (window.location.href.startsWith("http://localhost:1313")) {
  152. for (const a of topmenu.querySelectorAll("a")) {
  153. a.href = a.href.replace("https://jmonkeyengine.org", "http://localhost:1313");
  154. }
  155. }
  156. const likelyScore=[];
  157. for (const a of topmenu.querySelectorAll("a")) {
  158. const pageUrl=window.location.href.endsWith("/")?window.location.href.substring(0,window.location.href.length-1):window.location.href;
  159. const process = (linkUrls) => {
  160. if(!linkUrls)return;
  161. for(let linkUrl of linkUrls){
  162. if (linkUrl != null) {
  163. if (window.location.href.startsWith("http://localhost:1313")) {
  164. linkUrl = linkUrl.replace("https://jmonkeyengine.org", "http://localhost:1313");
  165. }
  166. if (linkUrl.endsWith("/")) {
  167. linkUrl = linkUrl.substring(0, linkUrl.length - 1);
  168. }
  169. const score = stringSimilarity.compareTwoStrings(linkUrl, pageUrl);
  170. likelyScore.push(
  171. {
  172. score: score,
  173. el: a.querySelector("button")
  174. }
  175. );
  176. }
  177. }
  178. }
  179. process([a.href]);
  180. process(a.getAttribute("alt-href")?a.getAttribute("alt-href").split(","):undefined);
  181. }
  182. likelyScore.sort((a, b) => b.score - a.score);
  183. likelyScore.forEach(el=>el.el.classList.remove(selectionClass));
  184. likelyScore[0].el.classList.add(selectionClass);
  185. };
  186. document.addEventListener('DOMContentLoaded', function(){
  187. window.initJmeMenu();
  188. });
  189. </script>
  190. <div id="siteTitle" class="list hlist responsiveWidth">
  191. <div id="logo">
  192. <a href="/">
  193. <img src="/images/jme-logo.png" />
  194. </a>
  195. <i class="toggleNavOnPortraitButton fas fa-bars" toggle="topmenu"></i>
  196. </div>
  197. <div id="contributionsBanner">
  198. <div> <i class="fas fa-donate"></i>
  199. Backed by:
  200. <a rel='noopener nofollow noreferrer' target="_blank" id="backerName">The Community</a>
  201. <a rel='noopener nofollow noreferrer' target="_blank"
  202. href="https://opencollective.com/jmonkeyengine#section-contributors"> and more...</a>
  203. </div>
  204. <div>
  205. <i class="fab fa-github-alt"></i>
  206. Contributed by:
  207. <a rel='noopener nofollow noreferrer' target="_blank" id="contributorName">The Community</a>
  208. <a rel='noopener nofollow noreferrer' target="_blank"
  209. href="https://github.com/jMonkeyEngine/jmonkeyengine/graphs/contributors">and more...</a>
  210. </div>
  211. </div>
  212. </div>
  213. </header>
  214. <main>
  215. <section id="showcase" mode="banner">
  216. <i id="playButton" class=" fas fa-play"></i>
  217. <div class="showcaseElement" style='display: block '>
  218. <div class="cover blur" style ="background-image: url('/images/showcase/depthris/2.webp'); " ></div>
  219. <div class="cover" style ="background-image: url('/images/showcase/depthris/2.webp'); " ></div>
  220. </div>
  221. <div class="showcaseElement" style='display: none '>
  222. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/3.webp'); " ></div>
  223. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/3.webp'); " ></div>
  224. </div>
  225. <div class="showcaseElement" style='display: none '>
  226. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/6.webp'); " ></div>
  227. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/6.webp'); " ></div>
  228. </div>
  229. <div class="showcaseElement" style='display: none '>
  230. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/1.webp'); " ></div>
  231. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/1.webp'); " ></div>
  232. </div>
  233. <div class="showcaseElement" style='display: none '>
  234. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/4.webp'); " ></div>
  235. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/4.webp'); " ></div>
  236. </div>
  237. <div class="showcaseElement" style='display: none '>
  238. <div class="cover blur" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/5.webp'); " ></div>
  239. <div class="cover" lazy="true" lazy-style ="background-image: url('/images/showcase/depthris/5.webp'); " ></div>
  240. </div>
  241. <div class="responsiveWidth" id="engineDescription">
  242. jMonkeyEngine is a modern developer friendly game engine written primarily in Java.
  243. <br />
  244. Its minimalistic and code first approach makes it perfect for developers who want the support of a game engine
  245. while retaining full control over their code with the ability to extend and adapt the engine to their workflow.
  246. <br />
  247. <br />
  248. <br />
  249. <a href="/start/"><button id="startbtn" class="highlightedCl" ><i class="fas fa-rocket"></i> Get Started </button></a>
  250. <a href="/#features" title="overview"><button id="startbtn" class="highlightedCl"><i class="fas fa-question-circle" style="padding:0"></i></button></a>
  251. <br />
  252. <br />
  253. </div>
  254. <div class="responsiveWidth" >
  255. <div id="gameDescription" >
  256. <h2><i class="far fa-images" ></i> DEPTHRIS powered by jMonkeyEngine</h2>
  257. 3D puzzle game inspired by the classic title for DOS.
  258. Move and rotate the pieces so they fit in the spaces and fill as much floors as possibles.
  259. But on each level, the pieces will start falling …
  260. <br />
  261. <a class="readMore" href="/showcase/depthris/#showcase">See game page </a>
  262. </div>
  263. </div>
  264. </section>
  265. <br/>
  266. <section class="message list vlist">
  267. <div>
  268. <blockquote class="list vlist responsive">
  269. <span id="backerMessage">-</span>
  270. <i><a rel='noopener nofollow noreferrer' target="_blank" id="backerMessageName">-</a> </i>
  271. </blockquote>
  272. <a href="https://opencollective.com/jmonkeyengine">Become a
  273. backer and leave a message...</a>
  274. </div>
  275. </section>
  276. <br/>
  277. <a id="content"></a>
  278. <section class="full responsiveWidth">
  279. <article>
  280. <h1 >
  281. <i class="fas fa-paragraph useless"></i>
  282. <a href="/blog/interview-jayfella/">Sgold interviews Jayfella</a></h1>
  283. <div class="content">
  284. <span>
  285. <p><figure class="githubUser inline " github-user="stephengold">
  286. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  287. <figcaption>
  288. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  289. stephengold
  290. </h2>
  291. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  292. <div>
  293. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  294. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  295. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  296. </div>
  297. </figcaption>
  298. </figure> <br>
  299. Thank you for agreeing to be interviewed.</p>
  300. <p>First question: When did you first hear about JMonkeyEngine?</p>
  301. <p><figure class="githubUser inline " github-user="jayfella">
  302. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  303. <figcaption>
  304. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  305. jayfella
  306. </h2>
  307. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  308. <div>
  309. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  310. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  311. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  312. </div>
  313. </figcaption>
  314. </figure> Way back in 2014, after a long period of developing desktop applications,<br>
  315. servers, and minecraft plugins, I decided to look into writing games.<br>
  316. At that time I was more into C#, but XNA was a sinking ship,<br>
  317. so looked at alternatives.<br>
  318. I found jMonkey and gave it a shot.</p>
  319. <p>What made me stay with JME was the community.<br>
  320. Actual developers of the engine would respond to my questions,<br>
  321. which was encouraging and made me want to continue with it and contribute back.<br>
  322. A lot of what I know now is down to the fact that people far more educated<br>
  323. in game development than me took the time to share their knowledge.</p>
  324. <p><figure class="githubUser inline " github-user="stephengold">
  325. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  326. <figcaption>
  327. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  328. stephengold
  329. </h2>
  330. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  331. <div>
  332. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  333. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  334. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  335. </div>
  336. </figcaption>
  337. </figure> I had a similar experience.</p>
  338. <p>What were your first steps? Did you install the SDK right away?</p>
  339. <p><figure class="githubUser inline " github-user="jayfella">
  340. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  341. <figcaption>
  342. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  343. jayfella
  344. </h2>
  345. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  346. <div>
  347. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  348. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  349. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  350. </div>
  351. </figcaption>
  352. </figure> I did install the SDK!<br>
  353. At that time the SDK was “the thing to use,” and it was a cutting-edge tool.</p>
  354. <p>I distinctly remember making an infinite-terrain world with a<br>
  355. 2-D heightmap and cars.</p>
  356. <p>And I remember some of the first mistakes I made, too:<br>
  357. wondering why adding lights everywhere was slowing down my game<br>
  358. (in a forward-rendering pipeline) and why shadows weren’t realistic<br>
  359. with multiple lights.</p>
  360. <p>I also remember Normen Hansen tutoring me into developing plugins<br>
  361. and improving the SDK.<br>
  362. For me, that was great.<br>
  363. I felt like part of the family, and it was extremely encouraging to<br>
  364. interact with such an intelligent and giving bunch of developers.</p>
  365. <p><figure class="githubUser inline " github-user="stephengold">
  366. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  367. <figcaption>
  368. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  369. stephengold
  370. </h2>
  371. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  372. <div>
  373. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  374. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  375. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  376. </div>
  377. </figcaption>
  378. </figure> Suppose the old you (from 2014) was transported to the present,<br>
  379. as a newcomer to the JMonkeyEngine community.<br>
  380. What advice would you give yourself?</p>
  381. <p><figure class="githubUser inline " github-user="jayfella">
  382. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  383. <figcaption>
  384. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  385. jayfella
  386. </h2>
  387. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  388. <div>
  389. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  390. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  391. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  392. </div>
  393. </figcaption>
  394. </figure> Good question.</p>
  395. <p>I think it’s important to make mistakes to become better at what you do.<br>
  396. We all start with big ideas,<br>
  397. and virtually all come to realize it’s way more difficult than we anticipated.<br>
  398. That’s a learning process we all need to go through.</p>
  399. <p>So my advice would be to keep doing what you’re doing,<br>
  400. but don’t be disheartened by not achieving your goals on the first attempt.<br>
  401. It takes years to become proficient.</p>
  402. <p>Listen to those that know better and try to understand why they came to<br>
  403. that conclusion.</p>
  404. <p>Learning is not always about being right!</p>
  405. <p><figure class="githubUser inline " github-user="stephengold">
  406. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  407. <figcaption>
  408. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  409. stephengold
  410. </h2>
  411. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  412. <div>
  413. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  414. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  415. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  416. </div>
  417. </figcaption>
  418. </figure> Just so!</p>
  419. <p>Next question: You’re currently JMonkeyEngine’s community manager.<br>
  420. How did that role come about?</p>
  421. <p><figure class="githubUser inline " github-user="jayfella">
  422. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  423. <figcaption>
  424. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  425. jayfella
  426. </h2>
  427. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  428. <div>
  429. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  430. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  431. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  432. </div>
  433. </figcaption>
  434. </figure> My primary talent is finding ways of getting things done.<br>
  435. If it can be done, I can do it.<br>
  436. That’s always been my attitude.</p>
  437. <p>When it became apparent that there was a lack of direction,<br>
  438. it rolled around in my head for quite some time.<br>
  439. What could do to improve things?<br>
  440. Did I have it in myself to keep the momentum going?</p>
  441. <p><figure class="githubUser inline " github-user="stephengold">
  442. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  443. <figcaption>
  444. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  445. stephengold
  446. </h2>
  447. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  448. <div>
  449. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  450. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  451. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  452. </div>
  453. </figcaption>
  454. </figure> How has your passion for the role evolved?</p>
  455. <p><figure class="githubUser inline " github-user="jayfella">
  456. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  457. <figcaption>
  458. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  459. jayfella
  460. </h2>
  461. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  462. <div>
  463. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  464. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  465. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  466. </div>
  467. </figcaption>
  468. </figure> My passion for the job remains the same as it was when I took the role,<br>
  469. but I must admit it is a challenge!</p>
  470. <p>I’ve managed companies, people, websites, servers, and all things in-between,<br>
  471. but I’ve never managed an open-source project of this size.<br>
  472. You don’t pay people.<br>
  473. You have no definite control over what people do or don&rsquo;t do.<br>
  474. Instead you have to rely on support, trust, and a rather large dose of<br>
  475. doing it yourself to encourage movement.</p>
  476. <p>It’s very rewarding to work together to keep jMonkey alive<br>
  477. and to see genuine improvement as time goes by.</p>
  478. <p><figure class="githubUser inline " github-user="stephengold">
  479. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  480. <figcaption>
  481. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  482. stephengold
  483. </h2>
  484. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  485. <div>
  486. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  487. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  488. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  489. </div>
  490. </figcaption>
  491. </figure> Of all your JMonkeyEngine projects,<br>
  492. which have given you the greatest satisfaction?</p>
  493. <p><figure class="githubUser inline " github-user="jayfella">
  494. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  495. <figcaption>
  496. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  497. jayfella
  498. </h2>
  499. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  500. <div>
  501. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  502. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  503. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  504. </div>
  505. </figcaption>
  506. </figure> The most satisfying thing I’ve written for jMonkey is the JmonkeyStore.<br>
  507. It’s nice to create something that brings people together and provides<br>
  508. so much use.</p>
  509. <p><a href="https://jmonkeystore.com">https://jmonkeystore.com</a></p>
  510. <p>If I had to choose something other than the store, it would be the<br>
  511. shadows project for my game Animalia.<br>
  512. It took me over a week &mdash; probably ten days &mdash;<br>
  513. and countless headaches to get it just right, and when it finally worked<br>
  514. it was ultra satisfying to have overcome all the issues.</p>
  515. <p><a href="https://www.youtube.com/watch?v=UfZyf9jG8PI&amp;t=5s">https://www.youtube.com/watch?v=UfZyf9jG8PI&amp;t=5s</a></p>
  516. <p><figure class="githubUser inline " github-user="stephengold">
  517. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  518. <figcaption>
  519. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  520. stephengold
  521. </h2>
  522. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  523. <div>
  524. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  525. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  526. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  527. </div>
  528. </figcaption>
  529. </figure> What’s next for JmonkeyStore?<br>
  530. Are you still adding features?<br>
  531. Where do we stand with respect to its Patreon goals?</p>
  532. <p><figure class="githubUser inline " github-user="jayfella">
  533. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  534. <figcaption>
  535. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  536. jayfella
  537. </h2>
  538. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  539. <div>
  540. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  541. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  542. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  543. </div>
  544. </figcaption>
  545. </figure> I’d love to allow buying and selling software.</p>
  546. <p>There will also be the option of giving a developer a one-time payment<br>
  547. of the buyers choice &mdash; a sort of “buy me a beer” option.<br>
  548. As time goes by, it should bring more users to the community.</p>
  549. <p>We’re about a third of the way to being able to do that.<br>
  550. It&rsquo;s a very exciting prospect to look forward to!</p>
  551. <p><figure class="githubUser inline " github-user="stephengold">
  552. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  553. <figcaption>
  554. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  555. stephengold
  556. </h2>
  557. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  558. <div>
  559. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  560. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  561. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  562. </div>
  563. </figcaption>
  564. </figure> Have you paid any bug bounties yet?</p>
  565. <p><figure class="githubUser inline " github-user="jayfella">
  566. <img class="excludeSummary" src="https://avatars.githubusercontent.com/jayfella">
  567. <figcaption>
  568. <h2 ghresolve-bio="title" alt="jayfella" class="ghname" ghresolve-name="innerText">
  569. jayfella
  570. </h2>
  571. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  572. <div>
  573. <a alt="github link" title="Github" href="https://github.com/jayfella" class="excludeSummary"><i class="fab fa-github"></i></a>
  574. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  575. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  576. </div>
  577. </figcaption>
  578. </figure> The bug bounty system is another great<br>
  579. tool we can bring forward when the Patreon sponsorship increases.<br>
  580. It’s something I’m very much looking forward to switching on.<br>
  581. It’s a great way to get contributions moving forward &mdash; and even finding bugs.</p>
  582. <p>No bounties will be set until we increase funding.<br>
  583. Right now the funding doesn’t warrant much incentive.<br>
  584. It would only support one bounty every 2-4 months,<br>
  585. which would stall things and probably cause more harm than good.</p>
  586. <p>For now, we are funding the monthly costs of our web presence and services,<br>
  587. paid for by our generous community.</p>
  588. <p><figure class="githubUser inline " github-user="stephengold">
  589. <img class="excludeSummary" src="https://avatars.githubusercontent.com/stephengold">
  590. <figcaption>
  591. <h2 ghresolve-bio="title" alt="stephengold" class="ghname" ghresolve-name="innerText">
  592. stephengold
  593. </h2>
  594. <span ghresolve-bio="innerText" class="ghbio excludeSummary"></span>
  595. <div>
  596. <a alt="github link" title="Github" href="https://github.com/stephengold" class="excludeSummary"><i class="fab fa-github"></i></a>
  597. <a alt="twitter link" title="Twitter" ghresolve-twitter_link="href" class="ghtwitter_link excludeSummary" href="" style="display:none"><i class="fab fa-twitter"></i></a>
  598. <a alt="website link" title="Website" ghresolve-blog="href" class="ghblog excludeSummary" href="" style="display:none"><i class="fas fa-globe"></i></a>
  599. </div>
  600. </figcaption>
  601. </figure> I guess that&rsquo;s enough for now.</p>
  602. <p>I enjoyed conducting this interview. Thank you for your time.</p>
  603. </span>
  604. <nav>
  605. <ul class="tags smaller">
  606. <h3 class="tags">Tags</h3>
  607. <li><a class="interview" href="/tags/interview"><i class="fas fa-hashtag"></i>interview</a></li>
  608. <li><a class="blog" href="/tags/blog"><i class="fas fa-hashtag"></i>blog</a></li>
  609. <li><a class="misc" href="/tags/misc"><i class="fas fa-hashtag"></i>misc</a></li>
  610. </ul>
  611. <ul class="authors smaller">
  612. <h3 class="authors">Authors</h3>
  613. <li><a class="stephengold" href="/authors/stephengold"><i class="fas fa-at"></i>stephengold</a></li>
  614. </ul>
  615. <ul class="postedDate smaller">
  616. <h3 class="postedDate">Date</h3>
  617. <li><time datetime="2020-02-15 12:00:00 &#43;0000 UTC"><i class="fas fa-calendar"></i>15 February 2020</time> </li>
  618. </ul>
  619. <ul class="share">
  620. <h3 class="share">Share</h3>
  621. <li>
  622. <button><a href="https://twitter.com/share?ref_src=twsrc%5Etfw&text=stephengold%20Thank%20you%20for%20agreeing%20to%20be%20interviewed.%0aFirst%20question%3a%20When%20did%20you%20first%20hear%20about%20JMonkeyEngine%3f%0ajayfella%20Way%20back%20in%202014%2c%20after%20a%20%e2%80%a6 " >
  623. <i class="fab fa-twitter-square"></i> Share on Twitter</a></button></li>
  624. </ul>
  625. </nav>
  626. </div>
  627. </article>
  628. </section>
  629. <section class="full responsiveWidth">
  630. <article>
  631. <h1 id="comments"><i class="useless fas fa-comments"></i> Comments</h1>
  632. <div class="content" id='discourse-comments'></div>
  633. <script type="text/javascript">
  634. var eurl=window.location.href ;
  635. eurl=eurl.split("#")[0];
  636. eurl=eurl.split("?")[0];
  637. eurl=eurl.trim();
  638. if(eurl.endsWith("/index.html"))eurl=eurl.substring(0,eurl.length-"/index.html".length).trim();
  639. if(eurl.charAt(eurl.length-1)=="/") eurl=eurl.substring(0,eurl.length-1);
  640. if(eurl.startsWith("http://")) eurl="https://"+eurl.substring("http://".length);
  641. if(eurl.endsWith("/communitylog/new-website")){
  642. eurl+="/#content";
  643. }
  644. DiscourseEmbed = {
  645. discourseUrl: 'https://hub.jmonkeyengine.org/',
  646. discourseEmbedUrl: eurl
  647. };
  648. (function() {
  649. var d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
  650. d.src = DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
  651. (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
  652. })();
  653. </script>
  654. </article>
  655. </section>
  656. </main>
  657. <footer>
  658. © 2020 jMonkeyEngine.
  659. All other trademarks, logos and featured content are property of their respective owners.
  660. <br />
  661. <a title="Github repo" rel='noopener nofollow noreferrer' target="_blank"
  662. href="https://github.com/jMonkeyEngine/jmonkeyengine-website">
  663. <i class="fab fa-github"></i> Source on Github
  664. </a>
  665. |
  666. <a title="Report issue" rel='noopener nofollow noreferrer' target="_blank"
  667. href="https://github.com/jMonkeyEngine/jmonkeyengine-website/issues">
  668. <i class="fas fa-bug"></i> Report an issue
  669. </a>
  670. <br />
  671. <br />
  672. Website designed and developed by
  673. <a href="https://github.com/riccardobl">Riccardo Balbo</a>
  674. for the jMonkeyEngine's Community.
  675. </footer>
  676. <div id="poweredBy" >
  677. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.macstadium.com/">
  678. <img src="/images/macstadium-logo.png" />
  679. </a>
  680. <a rel='noopener nofollow noreferrer' target="_blank" href="https://www.java.com/">
  681. <img src="/images/java-logo.png" />
  682. </a>
  683. <a rel='noopener nofollow noreferrer' target="_blank" href="https://opengl.org/">
  684. <img src="/images/opengl-logo.png" />
  685. </a>
  686. </div>
  687. </body>
  688. </html>