This website is for all the things that I (Jools Reid) make. Feel free to browse by projects and games pages for things that I'm working on and for news on what's happening or just some random rambling check out the blog below!


IWBTG Game Progress and Other Things

Since I last posted here I've been mainly working on this IWBTG game project. It's been going pretty well and I've got a lot of code that I can reuse in more serious projects now. It's also let me really establish a structure that I like for game development in C. As it stands, I'm not actually completely pleased with the structure of the IWBTG project but it's shown me exactly how I can improve it for the next thing I work on and so this has been a good test. The structure I have will certainly support the rest of this project though, it's just not as convinient / performant as it could be.

IWBTG engine screenshot

So most of the core engine is in at this point, all the physics and almost all of the game play elements you would expect to find in a fangame with the exception of water which I'll likely implement next. The project has a built in level editor which is not very flexible and user friendly but passable for my use. I may implement a better editor towards the end of development so I can release it for others to use. It would also be useful for use in future games. As far as programming goes, most of the remaining work is simply adding more types of entities like falling platforms and switches, etc. I'm going to implement some fancy lighting effects in the OpenGL version as well. Possibly both geometry based and shader based for multiple performance options.

IWBTG engine editor

At this point the game also needs a fair bit of performance optimization, (although it still runs at full speed on my atom powered netbook). The collision detection routines have no broad pass whatsoever on per pixel collisions. I'm loosing a lot of performance there with an incredibly easy fix. The entity data structure is also massive because of the boss data being held within it. This really does not have to be the case as I can easily move that data into another structure, allowing many more entities to fit in cache at a time and likely improving the iteration performance greatly in many different functions.

I did want to release this game for Raspberry PI but it seems that SDL2's renderer is quite slow on the device. This means that I'll have to entirely re-write the platform layer for the device which is a bit of a pain. I have already started the process of implementing an OpenGL ES renderer though so I may very well just quickly add it to the game.

So for the next little while I will be mainly working on content for the game in order to get it finished as quickly as possible. I would move onto more serious projects now but I feel I should really have a finished game development project that is bigger than a few of days work for my portfolio. I'm going to try to get the projects page up on this site fairly soon as well so I can put updates to the project there. That means I won't need to put so much technical stuff into the news posts and I can save it for those that are actually interested. I'll also be working on that OpenGL renderer for the Raspberry Pi that I previously mentioned over the next few days and will probably develop some kind of small arcade game with it.

If you want to check out more about the IWBTG engine, until I add the projects page the best place to look would be the GitHub page: https://github.com/Jools64/IWBTG-C-Engine

Alright, I've got some more stuff to chat about but I'll save that for the next blog post which hopefully will come sooner than this one did. I should maybe give myself a schedule of a minimum of one post per week or something.

Bloodborne and C Game Development

So I haven't got much done in the past couple of weeks because I decided to play Bloodborne and it completely took over my life. I beat every boss and all the chalice dungeons and all that and then proceeded to immediately buy the DLC and replay the entire game on NG+ so that I wouldn't be over leveled. I've loved the souls series since I first played Demon's Souls and had completed every single game except Bloodborne which hadn't gripped me as much for some reason. Having now comprehensively explored the game though, I think it's my new favorite.

It definitely has its flaws. Yar,Ghul Unseen Village's gank squad sucked, it just meant luring them out one by one which felt dumb. I found moving the camera to a sensible place where I could actually see what was happening when fighting large aggressive bosses was sometimes too difficult and frustrating. Finally, a smaller complaint would be the abundance of beast bosses that share similar move sets. (Much more pronounced when going through the chalice dungeons.) Other than those flaws though, the game is a masterpiece. The atmosphere and lore are incredible, the fast paced game play and boss fights are super exhilarating and the music and visuals are the cherry on top. Such a dang good game.

When, not playing Bloodborne I was working on a small IWBTG engine in C. My main reason for doing so is just to write some code that I can re-use for a real project in the future. I also really wanted to test that C was a good development environment for me and it seems like it is. I've had no problems working on the game so far and I have most of the fundamentals and some levels created. I'm thinking about making a small scripting language for the engine so I can make it flexible and usable by others. I'll probably post some screenshots and more information about the project soon. I don't want to drag it out too long so probably in the next few weeks I'll release it and move on.

Carousel and About

I added a carousel to the front page today. I'm not sure what it's gonna contain, probably just links to my newest projects, similar to the previous website. This is the first time I've implemented a HTML5 canvas carousel instead of using a bunch of html elements. It's a lot easier to achieve more complex animation but it does mean the carousel looses all functionality on screen readers or JavaScript disabled browsers. Since the carousel doesn't really have any important links, it doesn't seem like that should be a big problem. I'll probably tidy up the carousel code, make it more customizable and release an open source version which I'll put on the currently non-existent projects page.

I also added the about page today. I'll probably put links to my Twitter, Twitch and Youtube stuff there eventually. Possibly some kind of contact stuff like email since people like to ask questions sometimes.

Such interesting blog content. Wow. I'll post again tomorrow when I add more things.