Posts

Showing posts from May, 2021

(coming soon) Our AR final degree project

Height maps and procedurally generated terrain topology

Image
This was one of the most instructive exercises I had to do back in 2012. After learning theory about the 3D graphics pipeline and how data was structured in memory, we were asked to read a height map and create a textured terrain out of it. Some configuration was needed like min and max height of the terrain, in order to interpret full black or full white accordingly, and also the separation between vertices. In this case the size of the terrain was defined by the resolution of the height map and the separation between vertices parameter. I created a vertex for each texel in the heightmap, calculated it's UV coordinates, and later assembled the triangles that formed the mesh, accounting for winding order because of face culling. This task was just awesome, being able to operate with vertex and index buffers directly was like a new superpower to me, and it was some really useful knowledge in the years to come. There are so many improvements that come to mind now that I look at it, l...

Diving deeper into 2D

Image
 Next course was about 2D and generic gameplay programming, using C# and XNA, which was a thing at the time. For this course we didn't have any strict requirements for the game, only use everything that we learnt during the course. We decided with my friend to make a 2.5 beat 'em up prototype to put our knowledge to the test. Here's what we had learned during the course: Simple dialog system that showed/hid sprites during it's execution. Sprite animations with sheets. Scrolling. LERPing (manually, no tools, I realize now we implemented our own tweener) UI Sounds Probably some other things that I can't remember now And so we started looking for some nice assets, and found some cool Wolverine spritesheets, which weren't nicely packaged, so I had to manually cut them and paste them, and use a special tool for sprite animations to set the times and preview the animation. Spent so much time fixing the positions and offsets of each frame, until it kinda looked good. W...

My beginnings!

Image
I started studying software engineering in 2008, having grown up playing some really awesome NES and PC titles. I'm from a small city in Uruguay and it was very hard and expensive to get a SNES or N64, so I just dreamt with those. Super Mario, Commandos, Age of empires, Half life, Half life 2, Half life 3, oh no, wait... "How was all of this possible? I need to know how this is made..."  And there I was, learning how to code the very basics. After 3 years of learning I had the opportunity to take on my first videogame development course, I was SO excited, that was why I was there after all. We used C# and Blitz3D. C# because we were very familiar with it, and Blitz3D, well, I guess because it was something that we could use with C#. We learnt the basics of writing a game loop and updating and rendering our game. Made a small game in 2D and then jumped into 3D. These games were developed in teams of 2 people, but I was so motivated that I'm sure I knew all the code inv...