Still Still Alive

Cue obligatory ‘not dead’ post. Since I’ve mostly been working on the editor recently I’ve really had nothing to post about here. Perhaps I should post stuff about the editor here too, or something.

I’ve also realised lately that it has been 9 months since I first started the project, and I really don’t have quite as much of it done as I would have liked. Not that I have any kind of deadline or anything, but I’ve been thinking perhaps I should be setting some for myself. I have for my editor and it’s been coming along quickly as of late because of it. At least I think so, could also be just because I’m enjoying it :P. So, with that said, I hereby declare that I shall have some kind of playable demo released before the end of 2010. Pwomise!


Whew, just implemented Doom64-like sector colouring, where you can specify a floor and ceiling colour for a sector and the walls will blend between them. Probably a bit hard to explain like that so here’s a screenshot:

jade02Next I think I’m going to go about implementing a basic HUD, then start to play around with the stats/attributes system. I have some basic ideas so far, when more is done I’ll list the details here.


So I recently went about starting on the implementation of some map formatting stuff, and so far I’ve implemented texture offsets and scaling, yays. Next up is the colour stuff I think, though I’m not sure how I’m going to handle it overall, we’ll see. Anyway I figure it’s been a while since I posted any kind of screenshot (the last one is rather old), so here’s one demonstrating texture scaling (exciting I know :P):

scaleySo yeah I kind of like the idea of these frequent-but-short posts, I think I’ll try to keep it up. I also want to start thinking about some game mechanics stuff soon too, and get some kind of basic HUD/UI happening. Maybe next time… 😛

It Moves You

Another small update to mention that I just added gravity and jumping to the engine 🙂 After a bit of tweaking I think I’m pretty happy now with how the player movement feels, although I think jumping while running actually makes you move faster 😛 Nothing that can’t be offset via some tweaking or a game mechanic (stamina anyone?) though, hehe. Anyway I think after my last few attempts at getting the ‘hard stuff’ done I’m going to focus more on minor things in the engine, and the map editing part of my editor, so I can actually get stuff done. Hopefully I’ll have something other than single-textured maps to show by the end of the year, if all goes well…

Still Alive

Just a quick post to say that I am still alive 😛 The project is too, just not progressing particularly quickly at the moment. I hope to implement at least a few minor things soon though so I’ll update about that when it happens 🙂


Figured it’s about time I updated, no the project isn’t dead 😛 Recently I started on an ‘actor’ system for the engine, and converted the ‘player’ to it. So now when the movement keys are pressed, the player actor is moved around and the camera set to the player’s view, rather than just moving the camera around. I even got some basic acceleration physics stuff in hehe. This lead on to implementing mouselook, which was a bit of a pain to implement actually because SDL is retarded and generates unwanted mouse move events when warping the mouse pointer (something that has to be done, so that the pointer doesn’t leave the game window when you’re trying to look around :P).

Also I started on some basic collision detection stuff – detecting where the floor is underneath an object. So now the player actor is ‘stuck’ to the floor (since I haven’t actually implemented any kind of ‘gravity’ yet). It has some problems though, like in special circumstances you can fall through the floor, but I have some ideas as to how to fix that.

Apart from that I’ve mostly been working on the editor for it, which is coming along slowly but surely. I’m just working on the basics for now, and mostly doom-related things rather than JaDE stuff, but I’ll get there eventually. As I said before I need to do a lot of thinking about how things will work, as I plan not to rewrite the editor again 😛 (It’s currently in it’s 4th incarnation hehe, not counting the resource editor part which was in it’s second before I decided to merge them). Maybe one day I’ll write about the history behind them. If I can be bothered.

A Lot of ADE

Since last post I’ve made a little progress with JaDE. I finally made up my mind how the rendering system will work, and implemented something closer to a final method for rendering the 3d map, yay. The last textured screenshot showed textures on walls/floors but with no texture coordinates (at least, not proper ones). Now texture coordinates are calculated correctly, and instead of calculating the wall polygons on the fly, they are generated the first time a wall is drawn and saved so they don’t have to be recalculated each frame. It also stores some other information, colours for example – it’s possible to have coloured walls (one colour per vertex 😛 I tested this out by making it generate random colours per vertex hehe, it looked… interesting). I also plan to allow per-vertex colouring in the map format somehow, so yeah.

After implementing that I decided to go ahead with the editor. A while back I started on a new rewrite of my SLADE map editor, SLADE3. Rather than begin an editor for the engine from scratch, I’ll be continuing SLADE3 instead. So not only will I be writing the editor for JaDE, but a nice editor for Doom too. Now, while it’d be nice and (somewhat) easy to write just a map editor, I’ve decided to go the slow and painful route of writing an all-round editor 😛 As in, it will be a combination of a wad/game resource editor and a map editor. I’ll be able to create pretty much everything for the game with it. On the downside, though, it’s going to be a huge undertaking, and it’s not exactly something that’s been done before – very well anyway. So I have the added difficulty of having to design it right – not so simple considering how complex it will be. Fun stuff.

Well that’s all for now. At least it wasn’t 2 weeks this time 😀

What to do

Well well, seems this has turned into a bi-weekly thing or something. Again (as in the past 4 posts :P) I’ve been busy with everything else, fun. Lately I haven’t been working on the game a whole lot, but thinking about it plenty, like how the renderer will work, how to optimise rendering, how to implement game timing and whether to use multithreading for it. As I said in a previous post, I don’t like to think too much about these things and would prefer to actually get something done, but on the other hand I don’t want to write a system that ends up hard to work with because I rushed it and implemented it badly.

Not that I haven’t actually coded anything at all though, I have added minor improvements here and there, but nothing major. I’m thinking next I’ll either start on getting an actor system going, making the ‘player’ actor and implementing collision detection etc. The other thing I could start on is the editor for it. Problem with that is it takes focus away from the actual game, and because I’d also like to make this editor doom-compatible, well, that’ll take even more focus away from the game engine. But overall I think it’d be good to take a little break from the basic engine stuff and work on a GUI-based program (even if it is something I’ve done many times before :P).

Either way, I’d like to get more substantial things done before the end of next month, as the whole thing is coming along much more slowly than I like. I’d hoped to at least have something remotely playable by now. Anyhow, here’s hoping next time I’ll have something exciting to post about, and that it will be in under 2 weeks’ time…

Oh dear

Long time again. Been neglecting this a bit, busy with uni/life/stuff etc. But I haven’t stopped working on the game. Since last time I’ve tried and failed again to get some kind of decent visibility checking going, and when that got nowhere decided to work on a few small things to recoup 😛 So I tweaked how the UI works a little in terms of input, cleaned up a few things in the code and a simple loading screen. Also as a side-effect of my latest attempt to get visibility stuff going I added a simple overhead ‘minimap’ window, so that’s cool I guess. But that isn’t the point of this post.

After that I started working on getting textures loading, and just now have finally got it loading textures from the game archive and rendering the map using them. After trying unsuccessfully a while ago to implement png texture loading without using FreeImage, I decided just to use it after all. At least now it’ll support lots of file types for textures I guess. Now until I can get some kind of editor going I’m just going to use a ‘default’ texture for everything, so taking that into account, behold: the first textured screenshot!


As you can see I haven’t actually bothered getting texture coordinates correct yet, for now I’m only testing stuff. Also notice the little cursor icon I made 😛 It sucks, but whatever it’ll do for now. So that’s about it for now. Hopefully now with uni holidays for a bit I’ll get more useful stuff done, although I’m really going to need to start on an editor soon, which will be quite an undertaking in itself…


Been too long again, I guess I’ve just been busy with everything else >_<. Not long after my last post I started on trying to get visibility checking going… Dear god it was a nightmare, it took me ages to come up with a way to do it, and when I finally got it implemented there were a few minor problems stopping it from working properly that I couldn’t find a way around. It was also incredibly slow, it was actually faster just to render the entire map. Sigh. Also I suspect there was some sort of memory leak/problem in there somewhere too, as walls would flicker visible and invisible even when the camera was stationary o_O. It was a mess. So eventually I just gave up on it and decided to come back and try again another time. I have some other ideas for alternative methods of doing it, so we’ll see how that goes. It’ll probably be a while before I want to try again though, I’m still having nightmares about it 😛

So, a week or so after that I got in touch with my webhost and managed to get an SVN set up for the project, yay! Now everyone can go look at my code, even download and compile it if they wish. The SVN is located here, for anyone interested. That was a relief to get going because it means I don’t have to keep transferring my code from pc to laptop constantly using my usb stick, wheeee. I might setup some kind of SVN log viewer thing when I get the time, so people can check up on what’s actually happening with the project code-wise. I’m sure it’s possible.

Anyway the main reason for this post is what I managed to get happening today. It took a lot longer than it should have, but I finally got the program reading data from zip files. So now, for example, instead of having the fonts in the ./fonts/ folder, they are inside JaDE.jdf (which is just a zip file). Makes everything much neater. Annoyingly enough most of the day was spent looking for how to actually open zip files, as the format itself is pretty horrible. Then after giving up on doing it myself, it was another few hours trying to find some kind of zip file library >_<, most of which were either bloated, windows-only, or not easy to use. So after many hours of annoyance I finally realised zlib itself has a nice little zip file library included with it, called minizip. Argh. So anyway once I got that integrated and compiling things were (mostly) easy to do, and eventually, I got fonts and maps being read from the main resource archive (ie JaDE.jdf, jdf stands for JaDE Data File). This also has the added benefit of allowing me to add the data file to the SVN, so if anyone feels like downloading and compiling JaDE, they will actually be able to run it without having to download multiple data files and folders etc etc. Whew. Next on the coding side of things I plan to implement png texture loading, and getting a proper gfx-based mouse cursor in there. And maybe even skins for the window system. Anyway enough on the programming side of things, I’ve also been thinking a little about the game itself.

A few weeks ago I was bored and decided to write down some basic concepts for character classes for the game. Here’s what I came up with so far (excuse the cheesy descriptions :P)

Knight – A master of melee combat. The knight prefers to be up close to his adversary, where he can fight them face-to-face, using his superior fighting skill to defeat them. Heavy armour and physical toughness allow the knight to take quite a beating before going down.

  • The Defender – Focus on defense, the use of shields and armour to protect himself.
  • The Berserker – Focus on pure offense, with little regard to his own safety.
  • The Warrior – Focus on a balance of defense and offense.

Elementalist – Employs magic to manipulate the elements. Fire, ice and air are at her command. She batters her enemies with elemental magic before they can get to her, which is fortunate, as to wield such power properly requires that only the lightest of armour is worn – if anything did get close it could be problematic.

  • The Pyromancer – Focus on elemental fire spells.
  • The Hydromancer – Focus on elemental ice spells.
  • The Windwalker – Focus on elemental air spells.

Ranger – The ranger has trained diligently at archery, and is a master sharpshooter. She, like the elementalist, takes down enemies at a range, and cannot wear heavy armour as it hampers her marksmanship. She also has a limited knowledge of magic, and can imbue her shots with the power of the elements. She also posesses great agility and speed, allowing her to run circles around her enemies and dodge attacks.

  • The Archer – Focus on pure marksmanship.
  • The Enchanter – Focus on elementally imbued shots.
  • The Assassin – Focus on taking her enemies by surprise, firing accurate shots to critically wound them, and poisoning her arrows to cripple them.

Naturalist – At one with nature, the naturalist knows life in every detail. This knowledge allows him to magically enhance his body’s abilities – including it’s healing speed. He also knows the secrets of the earth, and can use this to devastate his enemies. He also employs the assistance of his trusty pet wolf, which can do considerable harm to enemies.

  • The Whisperer – Master of the beast, he trains his wolf as a formidable killing machine.
  • The Colossus – Master of body, the naturalist improves himself beyond normal human capability.
  • The Earthwarden – Master of earth, he uses the land itself to destroy his enemies.

So yeah. Each class has a bunch of base talents and abilities, then at a certain level you choose a ‘path’, which opens up more specialised talents to choose from. So in effect you have 12 ‘different’ classes. I guess it’s a pretty similar system to World of Warcraft/Diablo 2, except instead of just 3 talent trees you can put points into wherever you wish, you get one base tree and one ‘specialised’ tree, depending on what path you take. I dunno, this is all very early stuff and may not even make it into the game at all, but I figured it’s about time I posted something about the game at least, rather than the engine as 90% of this blog has been about so far :P. Yup, I think that’s all for now. Hopefully the next update won’t take as long as this one.