TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Making game engines is a waste of time – I probably won’t stop making them

76 点作者 RupertWiser将近 5 年前

14 条评论

shepherdjerred将近 5 年前
My college has a senior project course every spring. The class is divided into groups of four to five members. Each group implements the same board game as a video game in a competition. The board game always is always deterministic with perfect information (i.e. chess or checkers).<p>Most team use Unity. Two years ago there was an unsuccessful attempt in Unreal, and three years ago an excellent game with web technologies (Electron + Angular).<p>I took this course last year and my team took a different approach. Our class&#x27;s board game was Quoridor[1] and my group wrote a game engine[2] in Java leveraging OpenGL for graphics and Netty for socket abstractions.<p>The amount I learned that semester was incredible. Never before have I needed to know anything about graphics rendering, how to load fonts from a file and convert it into a texture format. I never needed to know about how to actually create a networked application, how to use genetic algorithms to tune AI weights, or put all of that together to create a game.<p>Our game sucked, but it was the most productive three months of my education and I learned more through that self-imposed struggle than my prior three years and a half years of classes. A game engine can touch any field in computer science and bring it into one application, and I think that&#x27;s incredible.<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Quoridor" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Quoridor</a><p>[2] <a href="https:&#x2F;&#x2F;github.com&#x2F;harding-capstone" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;harding-capstone</a>
klodolph将近 5 年前
It’s a bit unfortunate that this issue is so contentious on game development forums.<p>Someone wants to make a game engine, or asks for help with some aspect of making a game engine, and someone will often reply by saying “you should just use Unity” or something similar. It may be well-intentioned and they may give good reasons why you should just use engine X instead of rolling your own, but here’s the big problem…<p>Before you help someone, you gotta understand what their motives are.<p>The next part is simple—if you’re under no illusions that you are not making money by making games, the kind of dollars&#x2F;time input, salable product output efficiency ratio just stops being relevant. So some <i>other</i> factor is relevant, if you are a hobbyist.
评论 #23214987 未加载
评论 #23215720 未加载
评论 #23216302 未加载
fwsgonzo将近 5 年前
I have the same problem - love working on the game engine (I have several), but thankfully I found someone who loves designing games and drawing pixel art. Also, he doesn&#x27;t know what &quot;using RISC-V virtual machines with thin C++ binaries as a scripting language&quot; means, so he can&#x27;t complain about all the stupid shit I&#x27;m doing!
pengaru将近 5 年前
Butchering Eisenhower&#x27;s famous quote about planning in times of war:<p>&gt; In producing a skilled game developer, I have always found that their self-made engines are useless, but the development experience is indispensable.
MalcolmComwell将近 5 年前
I&#x27;m reminded of Jonathan Blow&#x27;s talk, &quot;Preventing the Collapse of Civilization&quot; [1]. Are we going to end up with a generation of game developers who don&#x27;t understand the internals of their game engines? The unreal engine 5 demo has really wowed everyone but could we maybe reach a point in the future where these amazing game engines are struggling to compete against really inefficient game code?<p>[1] <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=pW-SOdj4Kkk" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=pW-SOdj4Kkk</a>
评论 #23214885 未加载
评论 #23214884 未加载
评论 #23216242 未加载
评论 #23215433 未加载
评论 #23214807 未加载
accidentalrebel将近 5 年前
I&#x27;m currently making a game engine myself and it has been both challenging and fulfilling.<p>I don&#x27;t expect people to use what I&#x27;ve made, but as long as I learn from it, it is not going to be a waste of time.<p>Each step on making the engine has been full of important lessons:<p>* With OpenGL I learned about graphics and how they are rendered on a screen. Knowledge on this has helped with optimizations on my other projects made with Unity<p>* Adding Lisp scripting has renewed my love of Lisp and has made me realize the importance of scripting on game engines<p>* Implementing cross platform has made me realize just how difficult this is and why most people jsut go with Unity because it&#x27;s offered out of the box.<p>* Designing APIs and functions is not trivial. Each game engine has a different way of doing things and it is mostly dictated by their technology stack.<p>I&#x27;m working on this mostly for learning purposes and I&#x27;ve been logging my journey every step of the way. If anyone is intetested in checking it out, or give suggestions or critiques, here&#x27;s the link:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;accidentalrebel&#x2F;Rebel-Game-Engine" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;accidentalrebel&#x2F;Rebel-Game-Engine</a>
mrfusion将近 5 年前
We still need a world class, best of breed, open source game engine, no?<p>It seems like game engines should go the way of linux. No one would really consider making a new commercial os these days.
评论 #23215728 未加载
评论 #23215950 未加载
stephc_int13将近 5 年前
Today, building a custom game engine does not necessarily mean building everything from scratch.<p>A lot of very good open-source libs can be assembled to relatively quickly build a working engine tailored for the needs of the games you want to build.<p>SDL, bgfx or Diligent can be used a simple platform&#x2F;rendering abstractions, many of the excellent stb libs can be used for resources loading, or Assimp if you need 3D assets, simple or complex physics engine are also available, same for audio and networking...
评论 #23216230 未加载
yters将近 5 年前
The general case game engine, such as Unity, are one size fits all. It can make sense to make specialized game engines that optimize for a specific gameplay dynamic.
_bxg1将近 5 年前
I love this mindset. I think as engineers we often get discouraged when we feel like our own implementation of something could never be as good as what&#x27;s already out there (at least, I do). But the question that should be asked is: &quot;Would it make me <i>happy</i> to do it myself?&quot; If so, then who cares! Hobby projects are about making yourself happy. There&#x27;s nothing wrong with doing something purely for fun.
thrower123将近 5 年前
It&#x27;s unfortunate that everything has gone high-level (Unity&#x2F;Unreal) or ultra low-level (Vulkan&#x2F;Metal&#x2F;DX12).<p>In the 2000s hobbyists were doing stuff in the middle level, because you had to stitch together your window management, GL&#x2F;DX code, physics libraries, sound libraries, net code, input code, yourself.<p>I don&#x27;t know that you always want to do that, but everybody ought to do it at least once.
jaimex2将近 5 年前
If you really want to make a game that doesn&#x27;t give the user a feeling that they&#x27;ve played it before you do need to make your own engine.<p>You can tell in seconds that a game feels and renders like another game using the same engine. Sometimes the quirks and unique characteristics of a custom engine are what give a game its charm and X factor.
JoeAltmaier将近 5 年前
I remember this urge, it took me once. I wrote a physics+animation engine for the Palm Pilot(!) and wrote a couple games in it - Lexicon and Combinoid. Moving sprites, collision, physics. Fun while it lasted.<p>Turns out there wasn&#x27;t really a market for games on the Palm Pilot. Oh well.
fxtentacle将近 5 年前
It&#x27;s not a waste of time. For effectively using off the shelf game engines, you need to have a good understanding of what&#x27;s going on under the hood. And the best way to learn that is by building your own toy engine.