solo developments ~~ creative productions




Welcome to Oddmatics, home of rozza's projects and development blog.

Remember to check out /newstuff for recent posts specifically to do with development and less rambling. Enjoy!

:: blog ~ page 1 ::

It's actually 2017 and I haven't posted for months - but I have been working on RozWorld on and off, lately it has been on the OpenGL renderer.

Basically, the old renderer was terrible, it was super inefficient because every frame it would be doing about 900+ glBindTexture and glDrawElements calls, and really I just didn't understand what I was doing - admittedly I still don't know as much as I'd want to but I think it's a lot better right now.

Here's a very early capture from RenderDoc:

RozWorld capture in RenderDoc

This is just an early test of drawing the tilemap, now, drawing 1024 triangles would have destroyed the peformace in the older renderer because I was doing things horribly inefficiently (as hilarious as that sounds). Instead what I have done this time, is make proper use of buffers, and so only 1 glBindBuffer and 1 glDrawArrays call per frame achieves it. A huge improvement that results in a steady 60FPS.

The progress is minor I guess, but this is very significant to me since going through these tests, I should have a very decent performing client, both in GDI+ and OpenGL. Keep an eye out on my GitHub page as I'll be extending the renderer and client regularly (link here!), and I'll keep this place updated as much as possible since I have made some changes to the server. :)

Updates coming in again! This time it's for the client, as it needs a recode just like the rest of the game did, and I have finally got around to it.

So for this, I've been working on sorting out the GDI+ renderer, getting it all to load and testing it. Here's a screeny to show where it's up to:

GDI+ Render Screenshot

A red box, exciting right? Well it definitely is exciting because (a) it works, and (b) that means that the client is on it's way to being a proper thing.

Why GDI+? I have not ditched OpenGL, don't worry. One of the goals of the client in the project is to be able to handle multiple renderers, initially I will work with GDI+ the most since it's "simpler" to use once the pieces are in place (aka the initial threading stuff).

I might sort out OpenGL tomorrow, just to get it to a point where it *loads*, as well as some testing on making sure it can handle multiple windows. But for now - the client is definitely getting started, hopefully I'll have more to post soon on it. :)

Maybe I'm kidding a bit about 600 years but it has been a long time and I should fix that.

The last post was... 30th June. A *lot* of stuff has happened since then - I finished exams I think on the 24th of that month (surprised I didn't mention it) and basically blasted through a lot of server development during and after it.

That's not all though! Towards the end of July I flew out to meet my boyfriend, Alex, in the States for a week - which was awesome to have go well despite me having little contact during the actual travelling itself. Admittedly that is rather big news compared to a lot of other stuff that I write here so I probably should've posted it earlier - but at least I'm posting it now!

He's also probably the main reason I managed to continue working on RozWorld so long despite having moments of very little motivation - I'll get onto the recent slowdowns in a moment, but first, here was a picture of us after visiting a Steak 'n' Shake (I like eating fatty foods like burgers so it was a good place to go):

Alex and I outside a Steak n Shake with Milkshakes

Finally, I guess is the fact that I have a job now, which explains the slowdown on RozWorld work itself since I obviously can't spend all day in Visual Studio like I used to. That doesn't mean I'll stop work entirely, it's kinda caught in an odd spot between the natural slowdown of not programming constantly, and also being in a hard design spot for the project overall.

By that I mean there's a few things I want to do -

1 :- Work on a proper RozWorld client implementation instead of the testbench I keep for netcode testing - this is the *hard to design* part.

2 :- Refactor some of the netcode - possibly look into IPv6 support(?) and patch up some security flaws by implementing a token system to prevent spoofing source IPs (since RozWorld uses UDP).

3 :- Possibly split off the PermissionAuthority and PermissionGroup implementations into their own thing, so that other plugins may develop their own permission handlers. (This is not guaranteed to happen)

With each of these I could easily split them into multiple bullet points each, and also write about other projects I would like to get done *on the side of RozWorld* - such as Oddmatics Generation IV (some day!).

That's all for this post; will there be another one before Christmas? Who knows. But if not, Merry Crimbo just in case!

After a load of bumps, oddmatics is back.

Reason for the huge time away is a combination of the awkward moving-hosts situation, trying to get the domains to work, sorting out the DNS (which was a problem on Virgin Medias behalf), and then realising that the old host had a really dumb set up that messed up PHP variables. All of that has been fixed though.

The good news is, with this host, I can actually use my domains properly, so that means RozWorld will actually be hosted on once I sort the website out. There's a few other kinks to fix with the domain and .htaccess rules but the site itself is back up and functional as it should be.

There's a bunch of progress on RozWorld that'll I'll need to get to posting, you can see the activity on my GitHub page here. I've been working on the server and netcode stuff a bunch since it has been neglected a lot. A slightly newer direction has been taken too with the main focus on getting everything organised and in sync with the API at the centre. The only thing that needs work is the client renderer which I'll be working on and off of alongside the netcode, API, server library and dedicated server console. Plugins already work and I've made a good start on the netcode (with async UDP working a treat). More updates [SOON].

Minor, long time no see update.

I'll be moving oddmatics to a different host later on in April since my hosting time is running out on the current one, and it's pretty limiting.

In other news, I've been working on some graphics for RozWorld. The client itself has moved to GLFW instead of OpenGLUT and the dynamic texture creation does work (FONTS, they work sort of, almost there). I have plans for the rest of the rendering stuff, I'm working on a lot of the game design itself right now. Future proofing and that.

My excuse for not posting is that it has been a busy month, it's still busy a bit, sort of, but I have "more time" now at least. Maybe if I can get in the programming zone there'll be more progress, that commit history is a sad reminder...

older posts