The author envisions a future (2025 and beyond) where creating video games without a traditional game engine becomes increasingly viable. This is driven by advancements in web technologies like WebGPU, which offer native performance, and readily available libraries handling complex tasks like physics and rendering. Combined with the growing accessibility of AI tools for asset creation and potentially even gameplay logic, the barrier to entry for game development lowers significantly. This empowers smaller teams and individual developers to bring their unique game ideas to life, focusing on creativity rather than wrestling with complex engine setup and low-level programming. This shift mirrors the transition seen in web development, moving from manual HTML/CSS/JS to higher-level frameworks and tools.
This tutorial demonstrates building a basic text adventure game in C. It starts with a simple framework using printf
and scanf
for output and input, focusing on creating a game loop that processes player commands. The tutorial introduces core concepts like managing game state with variables, handling different actions (like "look" and "go") with conditional statements, and defining rooms with descriptions. It emphasizes a step-by-step approach, expanding the game's functionality by adding new rooms, objects, and interactions through iterative development. The example uses simple string comparisons to interpret player commands and a rudimentary structure to represent the game world. The tutorial prioritizes clear explanations and aims to be an accessible introduction to game programming in C.
Commenters on Hacker News largely praised the tutorial for its clear, concise, and beginner-friendly approach to C programming and game development. Several appreciated the focus on fundamental concepts and the avoidance of complex libraries, making it accessible even to those with limited C experience. Some suggested improvements like using getline()
for safer input handling and adding features like saving/loading game state. The nostalgic aspect of text adventures also resonated with many, sparking discussions about classic games like Zork and the broader history of interactive fiction. A few commenters offered alternative approaches or pointed out minor technical details, but the overall sentiment was positive, viewing the tutorial as a valuable resource for aspiring programmers.
The original poster is seeking resources that have proven helpful for others in their game development journeys. They are specifically interested in recommendations beyond the typical beginner tutorials, hoping to find resources that have helped people move from intermediate to advanced skill levels. They're open to any type of resource, including books, courses, articles, communities, or tools, and are particularly interested in areas like game design, shaders/graphics programming, and AI.
The Hacker News comments on this "Ask HN" post offer a variety of resources for aspiring game developers. Several commenters emphasized the importance of starting small and finishing projects, recommending simple game jams and focusing on core mechanics before adding complexity. Specific resources mentioned include "Game Programming Patterns" by Robert Nystrom, Handmade Hero, and the Unity and Godot engines. A few suggested learning through decompilation or recreating classic games. Several cautioned against getting bogged down in engine choice or overly ambitious projects. The consensus seemed to be that practical experience, combined with targeted learning of core concepts, is the most effective path.
NESFab is a new, experimental programming language specifically designed for creating NES games. It aims to simplify NES development by providing a higher-level abstraction than assembly while still allowing fine-grained control over hardware. The language features a simplified syntax, built-in support for NES hardware features like sprites and scrolling, and a compiler that outputs optimized 6502 assembly code. NESFab also includes a suite of tools for building, running, and debugging games directly on original NES hardware or emulators. The project is actively being developed and welcomes community contributions.
HN users generally expressed excitement about NESFab, praising its simplicity and the ease with which it allows creation of NES ROMs. Several commenters drew comparisons to Pico-8, highlighting NESFab's similar approachable nature. Some discussed the limitations of the language, like its current lack of support for scrolling or metatiles, but acknowledged its early stage of development. Others appreciated the technical details shared about the compiler's implementation, including its use of Lua and assembly language. There was also interest in the potential for targeting other retro consoles. Overall, the comments reflected a positive reception to NESFab as a promising tool for aspiring NES game developers.
The original BBC Micro Elite source code, written in 6502 assembly, has been released and extensively commented by its author, Ian Bell. This release provides a fascinating look into the technical ingenuity behind the classic space trading game, revealing how Bell managed to cram a complex universe simulation, including 3D wireframe graphics and combat, into the limited resources of the 8-bit machine. The heavily commented code offers valuable insights into the optimization techniques employed, such as clever use of lookup tables and bit manipulation, making it a great resource for those interested in retro game development and 6502 programming.
Hacker News users discuss the newly released and heavily commented source code for the 8-bit game Elite. Many express excitement and nostalgia, praising the code's clarity and the detailed comments which provide insights into the game's development process. Several commenters highlight the impressive feats accomplished on such limited hardware, like the use of clever algorithms for 3D graphics and procedural generation. Some discuss the historical significance of Elite and its influence on subsequent games. A few users share personal anecdotes about playing Elite in their youth, while others analyze specific coding techniques used. There's also discussion about the challenges of working with 6502 assembly and the ingenuity required to overcome hardware limitations. The overall sentiment is one of appreciation for the release of this historical artifact and the opportunity it provides to learn from the pioneers of game development.
Driven by a desire to learn networking and improve his Common Lisp skills, the author embarked on creating a multiplayer shooter game. He chose the relatively low-level Hunchentoot web server, using WebSockets for communication and opted for a client-server architecture over peer-to-peer for simplicity. Development involved tackling challenges like client-side prediction, interpolation, and hit detection while managing the complexities of game state synchronization. The project, though rudimentary graphically, provided valuable experience in game networking and solidified his appreciation for Lisp's flexibility and the power of its ecosystem. The final product is functional, allowing multiple players to connect, move, and shoot each other in a simple 2D arena.
HN users largely praised the author's work on the Lisp shooter game, calling it "impressive" and "inspiring." Several commenters focused on the choice of Lisp, some expressing surprise at its suitability for game development while others affirmed its capabilities, particularly Common Lisp's performance. Discussion arose around web game development technologies, including the use of WebSockets and client-side rendering with PixiJS. Some users inquired about the networking model and server architecture. Others highlighted the clear and well-written nature of the accompanying blog post, appreciating the author's breakdown of the development process. A few commenters offered constructive criticism, suggesting improvements like mobile support. The general sentiment leaned towards encouragement and appreciation for the author's technical achievement and willingness to share their experience.
This GitHub repository contains the fully documented and annotated source code for the classic game Elite, specifically the BBC Micro version adapted for the Commodore 64. The code, originally written in 6502 assembly language, has been meticulously commented and explained to make it easier to understand. The project aims to provide a comprehensive resource for anyone interested in learning about the game's inner workings, from 3D graphics and ship control to trading mechanics and mission generation. This includes explanations of the game's algorithms, data structures, and overall architecture. The repository also offers resources like a cross-reference and memory map, further aiding in comprehension.
Hacker News commenters on the Elite C64 source code release express enthusiasm and nostalgia for the game. Several discuss the ingenuity of the original developers in overcoming the C64's limitations, particularly its memory constraints and slow floating-point math. Commenters highlight the clever use of lookup tables, integer math, and bitwise operations to achieve impressive 3D graphics and gameplay. Some analyze specific code snippets, showcasing the elegant solutions employed. There's also discussion about the game's impact on the industry and its influence on subsequent space trading and combat simulations. A few users share personal anecdotes about playing Elite in their youth, emphasizing its groundbreaking nature at the time.
Summary of Comments ( 143 )
https://news.ycombinator.com/item?id=44038209
Hacker News users discussed the practicality and appeal of the author's approach to game development. Several commenters questioned the long-term viability of building and maintaining custom engines, citing the significant time investment and potential for reinventing the wheel. Others expressed interest in the minimalist philosophy, particularly for smaller, experimental projects where creative control is paramount. Some pointed out the existing tools like raylib and Love2D that offer a middle ground between full-blown engines and building from scratch. The discussion also touched upon the importance of understanding underlying principles, regardless of the chosen tools. Finally, some users debated the definition of a "game engine" and whether the author's approach qualifies as engine-less.
The Hacker News post "Making Video Games (Without an Engine) in 2025" generated a moderate discussion with several insightful comments. Many of the commenters engaged with the author's premise of building a game from scratch, using only libraries like SDL, and the implications of this approach for the future of game development.
Several commenters focused on the practicalities and trade-offs of engine-less game development. One commenter questioned the author's choice of SDL, suggesting that more modern alternatives like SFML might offer better performance and features for a similar level of control. Another pointed out the significant time investment required to build core engine functionalities, like physics and rendering, from the ground up. This commenter argued that while the learning experience is valuable, using an existing engine is drastically more efficient for most projects, especially for solo developers or small teams. Related to this, another user highlighted the potential benefits of smaller, more modular engines or libraries as a middle ground between full-fledged engines and building everything from scratch. They suggested this approach would offer more control than larger engines while still avoiding the considerable effort of completely reinventing the wheel.
The discussion also touched upon the evolving role of game engines and their potential future. One commenter predicted that engines might evolve into more specialized tools, catering to specific game genres or platforms. They envisioned a future where "micro-engines" or collections of libraries become more prevalent, empowering developers to customize their toolsets based on their individual needs. Another user suggested that the increasing complexity of modern game development might necessitate a shift towards more specialized roles within teams, with some developers focusing solely on engine-level development. They posited that this specialization might mirror the evolution of web development, where specialized frontend and backend developers have become commonplace.
A few commenters also shared their personal experiences and opinions on the matter. One commenter recounted their own experience building a game from scratch and echoed the sentiment that while challenging and time-consuming, it provided invaluable insights into the inner workings of game engines. Another commenter shared their preference for using existing engines but acknowledged the educational value and potential for innovation in taking a more DIY approach.
Overall, the comments reflect a nuanced perspective on the future of game development, acknowledging the benefits of both engine-based and engine-less approaches. The discussion highlights the importance of carefully evaluating the trade-offs between control, efficiency, and learning when choosing the right tools for a project. It also suggests a potential future where the game development landscape becomes more diverse, with a wider range of engines and tools catering to different needs and development styles.