Recent submissions

Comment · 3 years ago
Thanks! I got help for the 3D models and they turned out great.
Comment · 3 years ago
Yeah I remember that Android pretty good had documentation and tutorials about the native-activity. It was not really advertised, more of "do this if you really want to" kind of feature. But it worked perfectly.
Comment · 3 years ago
Exactly! Thanks for the kind words
Comment · 3 years ago
It depends a little bit on how comfortable you are with the platform and the technologies used in the codebase. Generally speaking you would look for the entrypoint into the application.

For Hockey Slam you can look for the entrypoint in Windows:

https://github.com/Mknsri/HockeySlam/blob/main/windows/win_m...

or Android:

https://github.com/Mknsri/HockeySlam/blob/main/android/app/s...

Then start tracing through, looking at any function calls that look like they contain anything interesting. Additionally in this project you can jump straight to the entrypoints of the game code:

https://github.com/Mknsri/HockeySlam/blob/main/game/game_mai...

Or the rendering code:

https://github.com/Mknsri/HockeySlam/blob/main/ogl/ogl_main....

Another way would be to look at the files and see if anything catches your interest, for example if you want to learn about the UI system, you could look at how a button is defined:

https://github.com/Mknsri/HockeySlam/blob/main/game/imui_sys...

Fabien Sanglard has great articles on studying classic video game engines, and could be used as a guide on how to approach codebases: https://fabiensanglard.net/quake2/index.php

Comment · 3 years ago
I mentioned in a couple of places that I did use other people's file loading libraries (mainly Sean Barrett's excellent stb libs).

“If you wish to make an apple pie from scratch, you must first invent the universe” :)

Comment · 3 years ago
I could have definitely used that and I'm surprised I didn't realise it when researching how to include shader code. Luckily my setup required very little work and with my system I could share snippets between GLES and GL.
Comment · 3 years ago
Yeah the privacy policy page had an expired certificate and Google delists the app automatically when that happens.
Comment · 3 years ago
Thanks! Finishing such a large project feels great and you learn a lot when you have to implement so much you take for granted when using things other people have built
Comment · 3 years ago
Thanks, it's not the cleanest code and for example my immediate mode GUI is nowhere near IMGUI but theres still plenty to look at.
Comment · 3 years ago
You would have to write the platform code for iOS similarly to how the Android and Windows is written. The initial idea was to release it on iOS as well but at the end I didn't want to invest in buying a Mac, the license and the time to port it.

Edit: As for the release, I think it barely broke a couple of hundred downloads. I didn't do any real marketing and had no real goal of really getting the game out there as it was a learning experience for me first and foremost.

Comment · 3 years ago
True, Casey/HH was a huge inspiration and the project started from following the first few days of Handmade Hero. I should mention it.
Comment · 3 years ago
The HTTPS certificate expired on my privacy policy page and Google delists the app when that happens. After you renew they require that you resubmit the app and I didn't bother since there were barely any downloads then.
Comment · 3 years ago
I wanted to include common code for all shaders in a simple way, but I was too lazy write a proper parser. So instead I used the C++ preprocessor and macros to include things from common shader code and combine them in the build step.
Comment · 4 years ago
Yeah that works for selecting contiguous blocks of text. Multi-cursor editing allows for selecting rows that are further apart.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton