05.20.09

Woosh.

Wow, I’m bad at updating things. All my projects for one, as well as my blog and now my Twitter. And I was supposed to update my Twitter more than my blog… Well, I suppose I have, but still. Perhaps it’s because I’ve just been doing the same thing since the last Tweet that I have nothing new to talk about? Maybe, *sniff* maybe. I have yet to see one who can outsmart me.

In other news, lots of TF2 playing lately. I’ve been becoming a lot better than usual, especially as spy and soldier. Pretty cool, I think. Finally got around to putting the EXGN TF2 server back up too, this time better than ever. I’ve finally found the perfect balance of SourceMod plugins! Bwahahahahahahahaha!!! Anyway, check it out on exgn.ca, always good to see people playing; new and old faces alike.

Progress has been slowing down with Espionage Inc, and I worked on ToH for a couple days but got bored. Everything seems to happen in short spurts, so don’t worry; I’ll get everything finished eventually. Note that the key word here is “eventually”. I work on semi-Valve time, just a tad bit faster. But how much faster? It’s impossible to tell. As for EXRP, I’ve been working on it here and there in my spare-spare-spare time, but at least it’s progress.

Today I recieved a USPS package from the Neatherlands. The postal worker just practically dropped it on my doorstep and ran away, not even ringing the doorbell or anything. That’s why UPS is better, they have these RULES all workers have to obligue by, detailing everything from how to carry the package, place it on the doorstep, mandatorily ring the doorbell, walk away, and even scratch your ass properly. Seriously, these guys are like the badass militants of shipping–you don’t wanna mess with them. Although to be fair, I don’t think they have UPS in the Neatherlands, so moving on… I got a couple books about character creation and (mostly) animation in Blender. Should help a lot, I plan to make my first short in the summer hopefully. We’ll see how that goes.

Anyways, stop by the TF2 server if you have the time. I need to Tweet more.

02.11.09

No soup

Lots more progress, of course, however no soup. My stomach’s been really grumbly the past couple days, not sure why, but I’ve been really bloated and foul-smelling burpy. Seems to be getting better, though. I just think it’s coders’ withdrawal–haven’t coded as much as I did last week. Regardless, I have got some pretty cool stuff done. I’m nearing around 5000 lines of code, which is kinda freaky and kinda cool at the same time. Guess it just shows how much work has gone into this so far. Anyway, yesterday I implemented a map portal system for edge-based portals and tile-based portals to ‘teleport’ to different maps. The edge ones work by defining a map to switch to if you go beyond the upper, lower, left, or right bounds of the current map, and you appear on the opposite side of the map so it seems as if you’ve traveled to it. For example: We can have a huge field made up of several different maps, and you walk right to go to the next map, left to go to the previous map, etc… Instead of having just one huge map, which would be huge. The tile-based portal system was a bit easier in theory, as it’s basically just when you step on a certain tile you mark in the collision layer it teleports you to the specified X and Y of a selected map. I’ve also done a couple tweaky things to the map editor, but nothing specifically worth mentioning. Just look at the screenshots in the dump below and you’ll get the idea. Next up are NPCs and the sprite editor tab.

Image Dump

Tags: , ,
Posted in Blog | No Comments »
02.7.09

Progresso Soup

I’ve been making a lot of progress with the new ToH. I’ve done everything that I said I’d do in my last post, which is great. I’ve also done some new things, like fringe layers (that draw above sprites), a collision editor within the map editor, and surely a lot of behind-the-scenes cleanup work that, since it’s not asthetical, I really don’t even remember. Most of the changes are from the backend, so not too many “wow!” screenshots–however those will be coming from now on. I’ve finished what I consider to be the ‘base’ to build everything else on top of, where everything is in a completely working state and all the ‘hard’ code has been completed. The official ‘to-do’ list is as follows…

  • Map portals (by filename)
  • Map *edge* portals (by filename)
  • Recursive NPC loading (by ini file)
  • Sprite placement tab on map editor (by image, NPC, item)
  • Items system w/ recursive loading
  • Inventory
  • Equipment system (weapons, armour, etc…)
  • Battle system (press CTRL to swing sword, basically)
  • Health bar (hearts that disappear by exclusion overlay)
  • Map properties window in editor (music channels, edge portals)
  • Doors/buttons/keys
  • Shopkeep (from dialogue)
  • Dialogue tab in editor
  • Basic multiplayer (position networking as NPCs, chat, player name, login/character saving by ini file)
  • Quest flag set&get methods for dialogue (tied to character)
  • Admin commands
  • Add/fix ToH graphics + music

As you can see, it does seem like a pretty hefty list of things to do. However like I said, I’ve already done most of the ‘hard’ stuff, so the rest should be relatively straight-forward. I think I’ll have things in a more or less functional state mid to late next week, then after that it’s just a matter of adding content (graphics, sound, maps, etc…), bugfixes, and tweaks. Of course there’s always room for new features, but I’m more focused on getting us up to par with what we had before than adding anything new right now. Anyway, that’s pretty much it. Do check out my image dump for today as I have added some screenshots. If you’d like to test how things are working out so far, feel free to ask me in an IM or something. On a completely unreleated note: Progresso soup is really good, but I wish the rice was less crunchy. More soupy brothness and less rice would be nice.

Tags: ,
Posted in Blog | No Comments »
02.5.09

Nuclear Shitstorm Detected

So the past couple days I’ve been redoing my map file system so it saves multiple layers, collision layers, properties, etc… I’ve been using XML, and following a tutorial to do all of this via XNA’s “content pipeline”. Basically it’s a type of project you can create within C# that ties in with XNA to create unreadable, optimized binary files out of pretty much anything on compile. While it sounds great in theory, it’s actually the biggest coding mess I’ve ever seen. You can’t simply make one file that tells XNA how to read and write the files, you need four different files with completely different concepts and layouts just to read a file. Why it’s split up so much is completely beyond my comprehension–if it was just two files, one for reading and one for writing, that’d make sense. However four files, each of which I have a hard time comprehending their purpose, is nonsense. Plus the guy in the tutorial must’ve deliberately found the most overcomplicated way to do this, because the code around that pipeline project is just a horrible mess. Maybe that’s just why I find the content pipeline so useless, though. Or maybe it’s just not the thing for me; of course, I want to be able to network maps to be downloaded whenever so I don’t need Son to send me the new maps he’s created and then recompile it just to change a single tile in a map. The content pipeline can only open files from within it’s own confines–if the file isn’t loaded into the content manager, you’re SOL and will never have access to it until you manually add it and recompile. I guess it makes sense for strictly singleplayer games, but for this it’s just awful.

That said, the past two days have gone to waste. I’ll be redoing all of that loading and saving tomorrow, as well as work on recursively opening a directory to load files and merging all the map layers into one file (right now each layer has it’s own file) and I’ll probably be using XML for that. However, I’ll be writing my own class completely seperate from the content pipeline. I saved a file without the content pipeline a couple minutes ago, just as a test, and it’s unbelievably easier. I guess the whole idea behind the content pipeline for saving files is that you just pass it some variables and it instantly knows how to format and save them, but I don’t even think that’s worth the trouble. So basically, for tomorrow, I have to…

  • Load sprites from the disk
  • Load tiles from the disk
  • Load NPC dialogue scripts from the disk
  • Load maps from the disk
  • Merge all the map layer files into one XML-based map file

Once I’m done all that I think I’ll start splitting the actual game project into two: Server and client, then start making it so the client basically just does prediction for it’s own player and rendering crap, then everything else is just handled by the server which then tells the client what to render. That probably sounds extremely complicated, but in all reality it’s actually a hell of a lot easier than reversing this shitstorm I’ve created by using the content pipeline. Pray for me.

Tags: ,
Posted in Blog | No Comments »
02.3.09

Substantial ToH Progress

Lots of progress on ToH within the past couple days. I expect to get the basics of everything done by Thursday, but then of course there’s a lot of stuff to tweak, clean up, and a few new features to add. My main goal is to get the map editor in a working state before the weekend so Son can toy around with it a bit more. The editor hasn’t changed all that much since Sunday, but I don’t think I posted a screenshot of it then anyway so it’ll be something new to the majority of my readers here anyway. The main stuff that I’ve added is specific to the behind-the-scenes engine code and the game code, as we now have a player that can walk across the screen and some NPCs. We also have a collision layer that specifies whether you’re just completely blocked by a tile coordinate, or if you can still walk through it just slowly–like mud. Again: I haven’t really talked about the development until now (not sure why), but I have some screenshots from earlier versions that I’ll be posting just about now, and they’ll make more sense if you know what changed between them all.

Image Dump

I’ll be updating that with a couple screenshots pretty much every time I change something or add something that’ll have a visual impact that you can look at and see some progress on. Don’t mind the graphics right now, those are just some placeholders I found on the net by searching around a little bit. By the weekend they’ll turn into some appropriately themed Zelda graphics. My guess is that’s when things will start to get a bit more exciting. I have lots of cool new ideas that differ from our old method of doing things with ToH, for example: The ability to rotate tiles in the map editor, the ability to treat all sprites as entities and all sprite-based entities the same (NPCs, trees, animation tiles, etc…) and be able to place them in the map editor. Buncha stuff to think about. I had one really good idea about a checkbox but I forgot it in the shuffle. I do remember that it was going to be a really good idea, so that just adds to the shame of forgetting it.

Anyway, I’m really liking XNA and C#. It’s just so easy to do anything, and the syntax is a lot like a mix of Lua, VB, and C++ except that it makes sense. I think the biggest noticable difference between my usual Lua coding and this is just all the freedom you get. For the collisions, I’m pretty much moving the player where they want to go regardless if it’s inside a wall or not, then checking if they’re in a wall and moving them back if they are–you couldn’t do this in Lua. In C# (or any ‘non-dependent’ language like that) you can tell it exactly when to render the frame (at least, you can in XNA) and render after you’ve done all your calculations. With Lua, your code is essentially called after the ‘default’ code in C++ (in the instance of GMod) and since it’s compiled on runtime you get an extremely significant slowdown that can put you frames behind the actual game engine if you’re not careful. In fact, it always will no matter what, so if you want to do something like what I’m doing with the collisions in Lua, you’re SOL. Putting that specific example aside, I’m really enjoying this. It’s like I’ve been stuck in this little tiny box for the past two years, now I can finally get out and take a nice stretch; do whatever I want however I want. It’s really nice not to be restricted by other peoples’ code as well, in the case of both GMod and the “old” ToH (dubbed version 2, this new one I’m making is version 3) which was using someone else’s premade engine written in VB6 (and therefor using raw DX7, which was a pain in the ass I assure you.) Words cannot describe how great the feeling is while coding with so much room to do things your own way as I am now. Since I’m doing everything from scratch as well, it’s a lot easier to know exactly where everything is and how to change things that would otherwise be declared core gameplay mechanics with the slightest of ease. When you use an engine or platform someone else has made, you don’t really know where everything is and what everything does–at least, not in the grand scheme of things.

The past week or so I’ve been thinking to myself about whether or not I really need a forum–again! It’s never really used besides for the occasional MistCMS question or help thread, and in cases like that people can just email me with the contact form I have on my site anyway, so there’s no real need for a forum then. I was thinking of making it more of a community thing by putting up some tutorials and whatnot, but I don’t think I’ll ever get around to that. If I do, why not just post it here on my blog? That brings up another something regarding my site that I’ve been thinking about lately: Do I really need to seperate my ’site’ from my blog? For the longest time I was just using my blog, then I switched when I made MistCMS to showcase and utilize my proud creation, but in most cases I don’t really see a need. Just have different categories for films, games, scripts, etc… and there you go. I do like the idea of keeping “Dvondrake Studios” something personal to only include myself and quite possibly the occasional Son, then anything else done in a bigger team (like Espionage Inc) I think everyone would be a lot more comfortable with our own studio name. Back to the whole ‘using a blog as a site’ prospect, I think that would make it a lot easier to substitute something for a forum: comments. Plus it’d make my blog more read surely, and now that I have a (finally) acceptable blog design… Ah well, let me know what you think. I’m tired, so much coding in such a little time span tends to do things to one’s mind, as you can probably tell by how unstructured this blog post probably is. My apologies, hopefully I’m more coherent once my sense of logic becomes more logical by figuring out exactly what the hell C#’s modulo operator is supposed to do. On the plus side, I apparently made no typos in this post. Also, I finally remembered to tag my post. Boo-yeah, awesome!

Edit: I remembered my brilliant idea. A checkbox to hide the map editor grid. Mind-beinding, ain’t it?!

Tags: , ,
Posted in Blog | No Comments »
02.1.09

C#, XNA, and the new ToH

As you probably know, I got a new computer recently. As you also may know, I didn’t buy new hard drives; I used one as a backup to move all my ‘important’ files to and reformatted the other. Well then, I’ve got some good and bad news. Bad news: I lost the server files for ToH. But don’t panic yet! The good news is that I’m going to recode ToH from scratch (and not use a premade engine in VB) so I can do things the way I want and have everything work out a lot nicer. I’ll be using C# and XNA–which are really quite awesome. Today I’ve been coding the basic tile engine, camera movement, and tile editor. Nothing playable yet, basically just the editor to make maps and the game only views them, but it’s all in a working condition right now which is great. Still a lot of stuff to do of course, but once I get all this basic ‘core’ stuff done the rest won’t be too hard I’d immagine. As for C# and XNA, this is really my first time using either. I’ve been toying around with C++ every now and then, and it’s just too… Well, nothing seems logical to me. In C# however, everything just comes naturally and makes sense. XNA is quite nice too, as it really is a pain to get all the DirectX crap done manually. In retrospect, it’s hard to even think that I’m using XNA as it only takes up like three lines of my solution, and thus isn’t even noticable. Anyway, not too much else happening lately, so there’s not much else to post. I’ll give you some screenshots of what I’m working on once there’s something decent to show.

Tags: ,
Posted in Blog | No Comments »
01.1.08

Updating goodness

So I finally got around to making some sort of anti-cheat system for ToH’s updater. It’s quite simple, but whatever it does (not telling!!) it makes it so you have to run the updater before running the client. I also took this as an opportunity to add in support to update the updater in the future. Basically, it just runs the bootstrap before the game, so I can have the updater replace the bootstrap with something that redownloads the updater. That sounded really odd. Also, since the ToH updater is using a rebuilt version of DSRC, my repository client, it’s not properly set up to download files into the same folder as the client. To fix this in ToH, I’ve just put everything besides the updater and the bootstrap inside another folder in the ToH folder, so it can update those now. :D And finally, finally, I’ve found a way to register all the library files needed to run ToH in the installer. It may require Vista users to run the setup file as an administrator (or turn off UAC, that thing is horrible), but meh. You had to run the batch file that registers all the library files as an administrator before anyway, so if you have Vista, you should get used to those constant annoyances.
Anyway, that’s pretty much it. Hope you had a happy new year.

Tags: , ,
Posted in Blog | No Comments »
12.30.07

Now’s the time…

…to say “screw it!”

I’m having a much harder time getting everything to work on this new engine. Sure, it’s a lot more optimized and such, but everything, and I mean everything has been recoded. It’s literally impossible for me to remake ToH on this new engine without recoding everything from scratch–which I’m not going to do.
Instead, I’ll just try to fix that memory leak in the current ToH. Or get more RAM for my VPS…

Tags: ,
Posted in Blog | No Comments »
12.30.07

New ToH

So I’ve started making the new ToH today. Everything’s a lot more smooth and less laggy with the new engine, and thankfully, no memory leak. Phew.
Since the new engine doesn’t come with all the stuff I put into ToH (duh), I’m having to put it back in. So far, a lot of the stuff I had before is already in there, except for MP3 support, graphics encryption, all my sadscript stuff (which’ll be easy to add), diagonal movement, and a minimap. I’ve added back MP3 support and encrypted graphics, and I’m about to add back all my sadscript stuff, but I’m not going to be putting the minimap or diagonal movement back. The minimap was just some preinstall crap that came with the previous engine, which I know Teru and I didn’t like (they ruined our puzzles). So the minimap won’t be making a comeback, and unfortionately, neither will diagonal movement. For whatever reason, the new engine’s code is completely different for such simple things like pressing a key, so it’d be really hard to add diagonal movement back in, as the way I did it before was really hacky on it’s own. My dream is to have freeform movement, but I don’t know how well that’d go.
Anyway, compiling right now. Hopefully I can get this out of the door later today.

Tags:
Posted in Blog | No Comments »
12.30.07

Yay, memory leaks!

So the ToH server is on my VPS, as you might already know, but there seems to be one major problem: A memory leak. You see, I’m running an old version of Elysium, the engine ToH uses. In the archaic version that we’re running, there’s a massive memory leak whenever someone logs onto one of their characters. No idea why, and you know what? I’m not even gunna bother fixing it.
I’m just going to update. That’s the only solution, really. Then I’ll just add back in the stuff we had before, like encrypted graphics, advanced scripted tiles, IOCP, proper walking, FMod, and hey, maybe even some new stuff like housing.
Anyway, try your luck with the server, I don’t know if it’ll work for you. Maybe it will, maybe it won’t. It seems that it can handle one person just fine, but after that, it just bombs out while connecting. Damn.

Also, I tried out C4. The coding is a tad bit confusing, but I gather that’s only because the example it gives is pretty much the complete code for an entire game–which the example is, really. So anyway, looks good, I’ll have to try out some more complicated stuff with it later–Like adding in physics engines. I’ll be sure to post screenshots. :D

‘Night

Tags: ,
Posted in Blog | No Comments »
animation coding dvondrake espionageinc exgn exrp films gadgets games gmod legos linux movies music pc rant real life sick skybound toh vacation xbox