https://thetoolsmiths.org/codex/http://davidlightbown.com/https://twitter.com/thetoolsmithshttps://www.raywenderlich.com/3016-introduction-to-a-pathfindinghttps://mygaming.co.za/news/features/120208-how-to-become-a-game-developer-in-south-africa.htmlhttps://pixelsmithstudios.com/for-game-developershttps://freelives.net/https://www.gog.com/game/caynehttps://duncanbellsa.itch.io/skadonk-showdownhttp://www.nag.co.za/2018/03/15/local-indie-game-jengo-needs-your-help-to-postpone-the-apocalypse/http://makegamessa.com/discussion/3054/list-of-south-african-companies-that-are-interested-in-doing-outsourced-projectshttps://mybroadband.co.za/news/broadcasting/261883-how-the-fpb-gives-movies-and-games-their-age-restrictions.html?source=newsletter https://www.gog.com/indiehttps://blog.demofox.org/https://twitter.com/jwaaaap/status/1010852629587652608?s=20https://github.com/rorydriscoll/RayTracerhttps://www.cgbookcase.com/textureshttps://africgames.com/https://www.gamedev.net/articles/programming/math-and-physics/https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders--cms-23313https://www.youtube.com/watch?v=Q5tyX_IBTXAhttp://www.realtimerendering.com/random.htmlhttp://www.realtimerendering.com/books.htmlhttps://www.youtube.com/watch?v=rxZQq4cd9EQhttps://www.youtube.com/watch?v=8fXE-E1hjKkhttps://www.renpy.org/http://diglib.eg.org/http://library.conlang.org/gaming/https://www.youtube.com/watch?v=tH2-Bs1tgN4&list=PLvV37MvLUzzO-qBqAQSCjGkCgCabN19XV&index=3https://www.fertilesoilproductions.com/https://gamasutra.com/view/news/322791/How_Nyamakop_designed_Semblances_spongy_deformable_terrain.phphttps://www.khanacademy.org/computing/pixarhttps://www.offerzen.com/blog/game-programming-inspires-my-software-developmenthttps://www.gamesparks.com/product/https://codeburst.io/the-2018-game-developer-roadmap-e07e45b3c423https://developers.skillz.com/https://pythonprogramming.net/opengl-rotating-cube-example-pyopengl-tutorial/https://5years.doomworld.com/doombible/doombible.pdfhttps://www.princed.org/https://www.popot.org/https://www.popot.org/documentation/documents/2011-05-22_Changing_PoP1_Images.pdfhttps://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notationhttp://jeffe.cs.illinois.edu/teaching/algorithms/http://mfleck.cs.illinois.edu/building-blocks/https://html5devstarter.enclavegames.com/https://www.yoyogames.com/en/gamemakerhttps://www.gmlscripts.com/https://www.zackbanack.com/blog/gamemaker-studio-2-tips-and-trickshttps://software.intel.com/content/www/us/en/develop/articles/get-ready-pricing-your-indie-game.htmlhttp://openmortal.sourceforge.net/making.htmlhttp://www.brackeen.com/vga/https://github.com/TheThinMatrix?tab=repositorieshttps://trello.com/b/bErRt68t/equilinoxhttps://www.monogame.net/https://www.adventuregamestudio.co.uk/site/ags/https://romero.com/sigilhttps://github.com/rheit/acchttp://doomlegacy.sourceforge.net/hosted/level_design_r3.txthttps://forum.zdoom.org/viewtopic.php?f=43&t=64614https://www.doomworld.com/vb/doom-general/67798-doom-wars-v1-3-rts-in-doom-universe/https://forum.zdoom.org/viewtopic.php?f=19&t=53867https://gitlab.com/Brohnesorge/HeartsOfDemonsBARONhttps://www.pcgamesn.com/doom/doom-remasterhttps://quake.fandom.com/wiki/Strogghttps://github.com/id-Software/Quake-2-Toolshttp://tfc.duke.free.fr/coding/md2-specs-en.htmlhttps://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_APIhttps://icculus.org/gtkradiant/http://maps.rcmd.org/tutorials/q2_mapping_today/https://twitter.com/DOOMReboot/status/1231198994791047169?s=03https://mod.io/https://www.gamers.org/dEngine/quake2/Q2DP/Q2DP_Map/Q2DP_Map.shtmlhttp://quetoo.org/books/documentation/creating-levels/bsp-compilerhttps://www.moddb.com/engines/id-tech-2https://www.moddb.com/games/quake-2/tutorials/working-quake2-replacement-soundshttps://www.facebook.com/groups/DoomModSharingCommunity/permalink/2507159392874215/https://en.wikipedia.org/wiki/Audio_bit_depthhttps://sourceforge.net/p/jake2/git/ci/master/tree/src/jake2/sound/http://learnwebgl.brown37.net/the_big_picture/introduction.htmlhttps://binary.ninja/https://trac.ffmpeg.org/wiki/audio%20typeshttps://bitbucket.org/daikatana13/daikatana/src/master/http://mxl.cz/https://gamebanana.com/exchangehttps://www.yamagi.org/quake2/https://www.celephais.net/fitzquake/http://tfc.duke.free.fr/coding/md2-specs-en.htmlhttps://www.flipcode.com/archives/Quake_2_BSP_File_Format.shtmlhttps://github.com/id-Software/Quake-2/blob/master/qcommon/qfiles.hhttps://www.quaketerminus.com/tools.shtmlhttps://stackoverflow.com/questions/5867723/javascript-image-manipulation-pixel-by-pixelhttp://sharethenet.free.fr/dev/c/GRAPHIC/PCX/pcx.htmlhttp://www.fysnet.net/pcxfile.htmhttps://www.davrous.com/2020/03/22/understanding-shaders-the-secret-sauce-of-3d-engines/http://maps.rcmd.org/tutorials/q2_palette_textures/http://bespin.org/~qz/pc-gpe/pcx.txtcreate a gist or WP post about this:For one plane of eight bits (256-colour), each byte will represent one pixel. For one plane of four bits (16-colour), each byte will represent two pixels. The bits within the byte are in big-endian order, so the most significant bit belongs to the left-most pixel. In other … Continue reading Game developer resources I’ve gathered over the years
C# example to load Doom WAD file
using System; using System.IO; namespace waddy { class Program { static string GetString(byte[] arr) { return System.Text.ASCIIEncoding.ASCII.GetString(arr); } static void Main(string[] args) { Console.WriteLine("Hello World!"); if (File.Exists("DOOM.WAD")) { using (BinaryReader reader = new BinaryReader(File.Open("DOOM.WAD", FileMode.Open))) { string name = GetString(reader.ReadBytes(4)); int numberOfLumps = reader.ReadInt32(); int folderPosition = reader.ReadInt32(); reader.BaseStream.Seek(folderPosition, SeekOrigin.Begin); Console.WriteLine(name); Console.WriteLine("Contains " + numberOfLumps … Continue reading C# example to load Doom WAD file
Example of bouncing ball
var gameScreen = document.getElementById("gameScreen"); var context = gameScreen.getContext("2d"); context.fillStyle = "#FFFFFF"; context.font = "8px Sans-Serif"; context.fillText("Pong!", 10, 10); var ball = { x : 50, y : 50, width : 5, height : 5, x_direction : 1, y_direction : 1 }; var previousBall = ball; var boundary = { x1: 20, x2: 200, y1: 20, … Continue reading Example of bouncing ball
Learning to use AES encryption
I've started working on a simple credentials manager app that runs on the console and I wanted the credentials that are kept on file to be encrypted for obvious reasons. The app is written in C++ and I needed to find and work with an appropriate encryption library. I've tried using two libraries: OpenSSL and … Continue reading Learning to use AES encryption
Git shallow cloning stuff
so after you use shallow cloning in git using --depth 1, if you call git pull you will find that git will pull all changes not just --depth 1. to honour the --depth 1 from cloning we call call git pull with the same depth: git pull --depth 1 origin master life saving stuff
Quick cloning of kernel mainline
git clone --depth 1 https://github.com/torvalds/linux.git linux_mainline using github as it's a mirror of mainline and depending where you're accessing the internet from, much faster. the --depth 1 will limit the history to 1 commit back I believe. If you'd need to view more than that then you can probably use git log -- [filename] https://stackoverflow.com/questions/278192/view-the-change-history-of-a-file-using-git-versioning
Quake 2 tools
Over the past few weeks (perhaps few months) I've been trying to create a few Quake 2 tools that can run on the browser from scratch. I've started working with a Pak extractor tool that should allow you to load a pak archive, page/search through all items, add/remove items from the archive and also allow … Continue reading Quake 2 tools
Quake 2 map compiling
So after making use of a level editing tool you can save your level as a .map file. For you to be able to run this level you'll need to compile it using a bsp compiler. Below is a simple example of how to run the tool: qbsp3 -gamedir "c:\Program Files (x86)\GOG Galaxy\Games\Quake II" ..\test1.map
Starting my journey in Spanish
Growing up I've been aware that there are many different languages spoken by people around my town and the rest of the world. I grew up in a household that spoke English predominantly. Any words spoken of another language would generally be colloquial in nature. I've even spent twelve years of my life learning isiZulu … Continue reading Starting my journey in Spanish