Tiled Dungeon Map with Player > 2D

Demonstrates how to create a simple dungeon map of room rectangles for use in top-down games. This expands on the Simple Dungeon Map Example which should be used as a starting point. Creates random dungeons and tiles the floors and walls and adds a player that moves and is animated. W A S D keys move player, SPACE to make a new map, UP ARROW to change the camera zoom, RIGHT ARROW to turn colors on/off and DOWN ARROW to turn on/off debug mode. Every map will be different from the next map and you can change the number of rooms and map size easily to allow for creation of larger or smaller maps. View on Github

Simple Dungeon Map > 2D

Demonstrates how to create a simple dungeon map of room rectangles for use in top-down games. Press SPACE to create a new map, every map will be different from the next map and you can change the number of rooms and map size easily to allow for creation of larger or smaller maps. This is used as the base for a more advanced tutorial with image tiling and players. View on Github

Mr Snuggles Dungeon Adventure

Approximately 4 months of solo development and about 350-400 hours of coding 39,000 lines my first decent game Mr Snuggles Dungeon Adventure is on Steam and there is a demo that you can play for free as well . So, if you are bored at least try the demo, it works on Steam on Windows as well as on Steam for Linux via Proton and is also on itch.io if you prefer, where there is a native Linux demo and a native Linux version of the game as well (though actually second game, the first game being more of a test run to see if I could do it and is not really very good).

Menus & Windows > 2D

Demonstrates simple top/bottom, right/left sidebar, center and pop-up menu/windows. The colors can be changed and the menu positions can be changed by clicking in the relevant boxes of the sidebar window and the top/bottom menu/window. The center window can be moved by left mouse clicking and holding and the camera zoom and colors can be changed in the sidebar item list. View on Github

Before you start
I am a self taught Go programmer and do it as a hobby, the code below is my own interpretation of how to do something, probably not the only way or the best way. This is intended as a resource to learn some basic Raylib and Go game dev skills. If you want to use any of the code anywhere else, feel free to do so.

Animated Logo > 2D

Demonstrates drawing of a simple horizontal scrolling Go logo as well as an animated Raylib logo using images textures stored in a slice. SPACE key to restart the animation. View on Github

Before you start
I am a self taught Go programmer and do it as a hobby, the code below is my own interpretation of how to do something, probably not the only way or the best way. This is intended as a resource to learn some basic Raylib and Go game dev skills. If you want to use any of the code anywhere else, feel free to do so.

Chain Lightning > 2D

Demonstrates a simple method to create an effect of chain lightning, when one rectangle (enemy) is impacted by a bullet rectangle then a chain of lines is drawn between the centers of all enemies on screen. WASD keys move player, left mouse button to shoot and up arrow key to change zoom. The Player Bullets example can be used a starting point for this example. View on Github

Player Bullets > 2D

Demonstrates how to create player bullets that will travel to a point determined by a mouse click on screen. This method works with a camera, using the screen to world position of the mouse click therefore the zoom can be changed. The player can move and the bullets will be destroyed when hitting the border rectangle. This can be used for both player bullets as well as enemy bullets, for enemy bullets the mouse click center point is substituted with the player center. WASD keys move player, left mouse button to shoot and up arrow key to change zoom. View on Github

Collision Rectangles > 2D

Demonstrates how to check for collisions of moving rectangles against other moving rectangles as well as border rectangles. This method uses rl.CheckCollisionRecs and creates a duplicate rectangle which is then moved to the next position of the moving rectangle. If this next rectangle collides then the direction is changed. Checking for collisions with the next movement position, as opposed to the moving rectangle itself, prevents problems with rectangles intersecting. When using the moving rectangle itself, when the collision is reported as having happened, the rectangles are already intersecting which can cause problems. View on Github

List of Roguelites & Roguelikes Worth Playing

So, my favourite genre of game is probably roguelite/roguelike and I have played quite a few. These are games that random (procedural) levels which are different every time you play making them good value for money. If you are a already a fan of the genre, or maybe are looking for some lesser known titles to play then these are all recommended and should keep you busy for a few hours.

Howard Max Space & Time Detective Book Series

When I was growing up, Douglas Adams The Hitchhiker’s Guide to the Galaxy book series was one of my favourite reads, which I re-read many times. If you haven’t read it and are a fan of sci-fi and/or humor then definitely something to put on your reading list. Anyway, the books are very famous and quite good, though re-reading them as an adult I will admit some of the magic is lost, however they remain entertaining.

When I got older and had nothing to do one evening (or afternoon), I decided that I would write my own tribute to Douglas Adams famous book series, which I did. Though (probably) not as good, though not bad, and still requiring a huge amount of editing, I did eventually manage to complete this rather daunting task that I had set myself. I wrote and edited three books in the same sci-fi/humor style as Douglas Adams and self-published on Kindle Direct Publishing. It took a lot longer than expected (maybe 4-5 years in the evening in my spare time), I gave up once during the process and then restarted, managing to find all my deleted work again in an backup I had forgotten to delete.