Excuses, Excuses
0Where to begin?
According to WordPress, 323 days ago I posted a development video of what I was calling Ne+. That whole idea/game perished shortly after. There were many reasons why I never saw it through to completion, but at the end of the day I gave up and it was my fault.
One of the reasons was that I started working for Intel. Even now I can’t say what it is I’ve actually been doing professionally for the last year, except to say it’s certainly the best work I’ve ever produced and it’s been a very exciting and interesting ride for me. Hopefully I’ll be able to link to some images and videos soon.
A few weeks ago I was looking over the code I had written for my senior project. There was a lot of good stuff in there, although a lot of it needed to be cleaned up. Getting lighting, shaders, 3D audio, a tile engine, and other components all working was no small task. And a lot of it can be used to a greater purpose, I hope. So with that in mind, I’ve started working on a new project. Mistake number one is that it’s already far more ambitious than my first project, and we know what happened to that one. I won’t claim it’s going to be great, I won’t even give it a name, but I am going to keep putting time into it here and there.
The first big thing that I did was implement a different tile engine, so that now the senior project code I wrote is being used to create an old-school top-down tile movement system. You can draw boundary tiles in Tiled and be able to run into them with your character, and just yesterday evening I created an NPC class that you can also run into, although the way I implemented the collision checking for those was a little hackish. Movement speed is isolated in a configuration file as it should be. I also have a space skybox with a nice 3D camera to play with, currently used as the background of my main menu. I think I should be able to get a lot of mileage out of it for many different pieces of the game.
So, I really won’t say too much more now, as I just want to have something to show at this point. But there are still things in the works, and right now I am more productive than I’ve ever been.
Java is Pretty Cool
0Having deployed my first Processing application on my web comic, I now am pretty into Java development. This is not to say that I’m great with Java, however, I really do value cross-platform material and web games more than being able to deploy to the Xbox 360, and having stated that value, yes, I do think I made a bit of mistake on how I chose to approach my senior project. Like this excellent blog post’s revelation, there are just clear disadvantages to XNA. Yeah, we all know that. It’s nothing new. But XNA makes things so easy.
One of the main things that indie developers struggle with is ease of development. XNA makes things easy, and on Codeplex there are tons of open-source projects, which I have had the pleasure of using. I’ve rubbed up against some excellent indie game developers, who I suspect have a lot more industry experience than I. And it’s really fun working with them, really fun using the Farseer Physics Engine and Krypton XNA, and really fun seeing quick results.
But while those results exist, I know, while I’m making them, that not everyone gets to see them and experience them. If I could do my senior project all over again, I would do it with Java, LWJGL, and whatever other technologies exist to help me in that space. Why? Well, why should anyone even have to download my project to play it? Having Java is the only requirement that users need comply with, and they can play things in a browser. Minecraft, the current rage, is doing just fine with Java, and there really doesn’t seem to be a disadvantage that would actually affect any ideas I would want to pursue. And not only does there exist web development, but the option to create a downloadable application as well.
I’m saying things that most developers already know. But I’m really figuring it out early on, I feel, that I need to work with technologies that span all platforms. I wanted to use Unity way back when I was starting, but like many great things it costs money to use the version with the features I wanted to use. I want to be able to really quickly mock up ideas I have and deploy them directly to my website, so that a link is all anyone needs to check out my work.
So that’s exactly what I’m going to do. I’m going to start using Java, LWJGL, and whatever else I can find, and from this day forward have web-deployable games. I’m going to start with a text-based interface like Phoenix Wright that I want to use with the web comic, but I do want it to expand into something greater as time goes on. The plan is to develop in iterations that are each end products themselves, not only the text-based tool, but a tool for sidescrolling and top-down movement in games as well, so that I can use them for the web comic and any other ideas I have along the way.
A surprising amount of progress?
0Here are the things I’ve just done…
- Added a new light, the velocity light, which either increases or decreases the velocity of anything under it
- Added bullet animations and artwork and a flash animation for when they hit things
- Added a flashing light to the enemy that flashes and rolls at you
- Added an explosion animation for enemies when they get shot
- Added working 3D sound to enemy sound effects
It’s funny because none of these things were particularly challenging or time consuming, but the game seems way different now that it looks like something. Up until this point, I was playing the game with the debug view from the Farseer Physics Engine on, but now it can function as a visual element without physics debugging to show what’s happening in the physics world.
I am going to start expanding the level I have, adding some actual platforming, and I have been asked by classmates multiple times about adding a light that the player can control, so that seems like an obvious step to take. Moving platforms are something I’d like to have as well. It still isn’t that pretty, but I guess I need to get a video up of what it looks like. I know there are some friends that would love to play whatever I’ve got too, and I’ll make that happen this Thursday to get some advice on where I should go next, and of course to just get some end-user opinion.
I have some news about other projects that I’ll be posting about soon.
Adding Some Sound Effects
0I just finished using XACT to create an RPC curve that is used with a distance variable to provide “3D” sound as an enemy approaches the player. Of course the game is 2D, and all I’m really doing is tweaking volume based on distance, but it’s a nice effect and very easy to do once you understand how to use XACT. I also added a shooting sound effect, and next on the list is to add animations for enemies being destroyed and bullets hitting things. I also want to integrate a couple of cool sprite sheets I found into the current test level to see how they look, and hopefully have a more visually appealing demo. Last time I played with creating level artwork I had a terrible visual issue in which tiles had line artifacts in-between each other; I might run into that again, and will have to spend some time figuring it out if that’s the case. I know it has to do with how scaling affects the sprite drawing, but I’m not yet sure what the remedy is.
Fully Animating the Player
0So my work with Processing turned out to be immediately helpful in my XNA work; one of the things I did with Processing was create a sort of player that had a few different states with corresponding animations, so I basically ported that idea over to my Ne+ player. Now I have walking under its corresponding animation, and sprites for standing, jumping, falling, and crouching. I think that crouching is turning out to be pointless right now, although only because I’m not moving the physics object in such a way that it would dodge anything. I’m not going to worry about it at the moment, it can be a purely visual thing for now. The next thing I did was create a simple sprite for bullets, and start attaching lights to them as well. I hit a snag that I thought might be a Krypton issue for just a moment, but really what the problem is is that I am currently letting the player hold fire and shooting a bunch of bullets; the lights overlapping made them look like big red circles rather than a lit area, and I spent a couple moments tweaking Krypton values before realizing I just needed to add some limitation to the firing.
Processing Complete
0I’ve successfully finished my first Processing experiment. I’ll be sure to link to it when it goes live, but for now, I’m not exactly sure how I feel about it. I do think that it’s a worthwhile venture, but it’s kind of a solution waiting for a problem sort of thing. There is potential; I just have to come up with some ideas on how to utilize it. Now that I’ve finished it though, it’s time to get back to Ne+.
Proccesing cont.
0The new project I’ve started in Processing is going extremely well. I did have a bit of a rough time last night; I stayed up until 3AM figuring out how to make a project that would work in both Eclipse and the Processing editor, as well as provide me with a workable workflow. I still haven’t really figured it out; basically I need to keep the library I’m developing for it updated in two places. I’m sure I could write an Ant script to do this for me, but ugh… and the Processing plugin is okay, but for some reason I’ve lost out on autocompletion in the sketch files. I don’t know, there’s a couple issues I still have, but I definitely know what needs to happen to make everything work in the meantime. I should mention that I made a big step as far as deployment goes too; it’s another process I’m not entirely happy with, but after I follow it I am basically able to deploy whatever I’ve done to a blog post. I should also mention that it didn’t work on Internet Explorer… I’m sure there’s a solution for that, but… I’m just not going to deal with it right now.
Isn’t that interesting? Now I can develop things and then put them on my website! Of course we all knew this was possible, but I had just avoided diving into Java and Processing until now. I even ported over the component system that I’m using in Ne+ and have a sprite library that should handle animations for me, although I haven’t made an animation to test with, and I also polished the dialog box I made so that it works pretty well. I still need to figure out how I’m going to make the little triangles that come out of it and point at who’s talking… What could I be up to, I wonder?
Processing
0I just started playing with Processing, which seems to be a really cool Java-based tool for quickly writing simple applets and applications with a visual element. I have an idea of something that I’d like to try doing with it, so I’m going to grab Eclipse, configure a little environment, and see what I can do with it. I coded a little text function that writes character by character over time in basically no time at all, with easily customized options. Pull that into a class, and I’ve already got the beginning of a dialog box. And I should mention that I really don’t even know Java, but it’s easy enough to go between it and C#. I can see things getting confusing as I want to do more complex things, but really Processing aims to keep things simple and I’m all about that. My idea is an extremely small project, and I think that if I throw myself into it I could have it done really, really quickly. Which would be awesome, as I haven’t been able to look at any of my work and say “I definitely completed something here,” in a really long time. I hope this works out, my idea is actually kind of novel. If done right, it could be very neat. I’m going to wait a week or two before spilling the details, but for now know that it’s web based so that I can just rely on everyone having or downloading Java and relax knowing that my stuff probably works on most configurations.
Fine, fine… I’ll learn Photoshop
0I set out wanting to upload my animation to display on this very post, and tried some online .gif creators that really wreaked havoc with my source images. So I opened up Photoshop to finally use it to do something I couldn’t do easily anywhere else I tried, and figured out how to create animations. Pretty easy, and also pretty cool. I may have to start using it for the web comic also; I really need to learn what it can do that I can’t do currently, and see if it’s of any use. I’m sure that it would improve my workflow, but the program is just really intimidating for me at the moment. I could start only using Photoshop, which might be healthier for me in the long run; for now, I’ll think about it. But I’ll definitely be using it to help me animate from now on, as it’s got the functionality built in; I do have an awesome Paint.NET plugin for animation, but Photoshop made the process way, way more convenient.
So all that nonsense said, here’s what the first draft of the player looks like. And yeah, I’m aware there are no arms; I am currently trying to decide whether I want the arms locked into the spritesheet with everything else or if I want to control their position with code. To keep things simple I’ll probably just draw them in soon.
