WebGl, WebVR, Webcomponents Oh my

     

Now that I’ve started porting my Javascript game engine to Go, I’ve started using the javascript version for some fun experiments. The first one, you should hopefully see above. It’s the game engine in a webcomponent. I haven’t fully tested it, but it should work in the latest versions of the popular desktop browsers (on recent OSs). I think putting the engine in a webcomponent is an intresting idea.


Go + OpenGL 2.1 + Shaders + VertexAttribPointer

     

Wow, that took a while. I decided to port my little JavaScript + WebGL 3d game engine to Go. Everything was going along quite well until I decided to put together a little test renderer to see how it was all shaping up. It’s fun to watch unit tests pass and all, but I wanted to see some 3d on the screen. Go has bindings for OpenGL via cgo, and the library has a few examples of how to use OpenGL with Go.


3d Game Engine Retrospective

     

NOTE This is a work in progress. Demo links on here depend a lot on your system and video card. But give them a go - you’ll know if they work. I’ve finished some of the key features of my little 3d engine. The list includes Basic Levels, sprites, sounds, and basic interactions between objects. Enough features to build a small game - which, arguably, is the hardest part.


Running Physics in a Webworker

     

Anyone who knows me knows I wont shut up about this “game engine thing” I am working on. I admit it, I’ve been a bit obsessed. The reason I am obsessed, I think, is because I get to solve problems that I’ve never really had to solve before. This weekend, for example, I need to make some sort of grid system (or binary space partition) to limit the number of objects I am tossing around in the engine - this kind of stuff never comes up in day to day life!


Mesh 3d Engine Progress

     

NOTE Demo links on here depend a lot on your system and video card. For example, Firefox 60 on my desktop doesn’t work, but on my laptop it does. Chrome works on my desktop, but not my laptop. And Safari, well, yeah. But give them a go - you’ll know if they work. I’ve been obsessed for the past few days trying to get my little 3d game engine closer to useful.


It is time to get into Webassembly

     

I’ve been keeping an eye on webassembly for the past few years, but it hasn’t felt ready to be used yet. However, over the weekend I took another look, and, to me, it seems baked enough to start using it “for reals” now. If you don’t know, webassembly is an attempt to create an assembly like language for the web. Instead of writing JavaScript, you’d write in an assembly language which would get your code base to run much faster (sometimes 30x faster from what I have read).


Web Components and Training Plans

     

Web Components are the future… at least that’s what this news letter I read said. I like the promise of web components. They basically, seem to me, to be Angular 5 / React like functionality built into standard HTML. They give you the ability to create new tags for HTML that do super special things. I’ve been wanting a way to publish and share some basic .ics (ICalendar) files on my running / triathlon site.


Sharing Angular 5 Modules

     

If you’ve ever worked on a project where you’ve tried to share code between two (or more) projects, you probably understand the pain. Sadly, I’ve worked on a few. Admittedly, on the surface it seems like a tempting proposition. On paper, it sounds quite easy. For example, one system I worked on we had a single nuget library where we kept our domain objects. The logic went: “All you have to do when you want to make a change is update the domain object project, build, push the new library to the nuget server, then pull down the new library to the other projects, and then rebuild those.


Using AWS Codebuild with Yarn and Chrome

     

I am a big fan of using CI / CD. As most software engineers are. That’s not a very controversial stance. For open source projects there are some really nice services out there. One such service is Travis CI. I really like their service for open source projects, but I have a few side projects that I don’t want to open source. My side projects are not for monetary gain so there is no revenue from them.


A More Interesting Retry

     

I’ve been playing with writing my own Typescript / WebGL 3d game engine from scratch and fumbling about with machine learning (which oddly have a lot in common). The hobby has led me to studying linear algebra, which has got me looking at lots of problems in a different light. I blame a lot of my recent thinking on the YouTube Channel 3 Brown 1 Blue. The author of that channel lays out maths in a very visual way - it is much to my liking.