Yes, I’m still alive… (but not by much)

2 05 2009

So yeah, I haven’t posted anything new recently.  Thank college and exams for that.  Final exams for the spring semester start this week, so I’m busy studying and finishing up the assignments that my professors decided to add on just to make our lives that much harder.  My two CS classes both (independently) decided that we should get an extra assignment, so I’ve been clamoring to finish up both of those early so that I still have time to study for exams.  (My last assignment is due the day before my first exam…)  Once these next 10 days are over though, I’ll be done until September.  That means there will be much more activity on this front.

On the ASCII3D front – there’s nothing much going on to note.  I tried to implement a simple particle system at one point, then scratched the code I had written in favor of spending a good 3-4 hours at some point designing the system before implementing it.  Many of the features that will be implemented from this point on will be open to scripting, making the design of the engine code/API that much more complicated (to make everything customizable by scripting at some point).  On a better note though – I might have recruited two of my friends to assist in the development of ASCII3D (one for the coding and backend, one for helping with developing the scripting system).  That should make for a bit more progress if they help me out some.

I’m looking foward to working more on this project – I hope you guys are looking forward to seeing more pictures and demos (and possibly something “playable”!).





OpenGLicious.

23 04 2009

Good news – I’ve switched the rendering (well, rendering so far) over to OpenGL from SDL.  MUCH better.  I’m getting an easy 60fps, whereas SDL would slow down when I was trying to render the middle of the scene (too much transparency, I guess).  An added benefit – it looks MUCH better.

I guess the next thing that I’ll try to implement is the player character (on a very general level).  Gotta figure out how I’m going to move the camera along with the character movement so that it looks good – this could be quite difficult.  Seeing as I probably don’t want to have it move at a constant speed along with the character, I have a few options.  The first is to have the character’s movement be non-linear – the character could speed up then slow down.  This wouldn’t work terribly well, as the quantized movement of characters in roguetypes would give people terrible headaches.  One thought I had was to break down the map into smaller sections, and using a Zelda-like transition as the character moves between them.

Because this isn’t Zelda, and the game mechanics would make a solution like that terribly problematic, I’d need something else – something that combined the nice panning of the Zelda-style camera with the centering of the camera on the character provided by the first idea.  Thinking about this, I thought of a very interesting variant where the screen displays a 3×3 grid of equally-sized sections (this would be internal – the sections wouldn’t be displayed graphically in any way), and when the character moves out of the center section into a different one, the camera pans to put that section in the middle of the viewport.  There would also be some sort of key combination that would zoom out the viewport and show you the entire map, in the style of the roguetypes of old.  This would be a good compromise – it would keep the user from getting sick of the camera jerking around a lot, and it wouldn’t cause an issue if you move to the edge of the screen and start getting attacked by creatures offscreen without your knowledge.

Any thoughts?

Oh, and a picture of it with the pretty OpenGL rendering:

ASCII3D running with OpenGL rendering

ASCII3D running with OpenGL rendering





Putting things into perspective.

19 04 2009

So camera movements work.  Yay.  The tried-and-true method of working things out somewhere better than in your head (like on paper) worked beautifully.  Not much to say here except for the fact that it’s a good step forward.  Next, I need to figure out a way to get it to look good.  I guess I’ll start by looking closely at what Squidi did, and use that as a starting point.  Some images to show the state it’s in so far (the red crosshair shows the center of the window):

Standard, centered viewpoint.

Standard, centered viewpoint.

Camera on right side of map

Camera on right side of map

Camera on upper-left side of map

Camera on upper-left side of map

Boring post, yeah, but there’s not much to say.  To make it more interesting though, I’m putting the binary up for download!  Yay!  You can basically just move the camera around to test how the perspective changes.  You can edit the map if you want, as well.  The format should be fairly obvious.  The two numbers at the beginning are the number of columns and rows in the map.  I can’t guarantee that it won’t crash (or do strange things) if you change the numbers, but if you’re feeling adventurous, be my guest.  (Press escape to quit.)

Get the binary here. New binary is available here.  I updated it so that you didn’t have to keep pressing a key to move pixel by pixel – you can just hold it down and move around.  Also, you can change the speed if you so desire by using + and -.  Not terribly useful, but whatever.  Took 20 seconds.

NOTE:  If the binary doesn’t work for you and complains about the application being installed incorrectly, download Microsoft’s Visual Studio C++ 2008 Redistributable package.  Install that, as it contains the runtime libraries that the program needs that your computer doesn’t have.





On college students and sleep (or lack thereof).

16 04 2009

Why is it that college students always stay up much later than they need to and get much less sleep than is recommended?  (Yes, this is a sweeping generalization.  Yes, I’m going to continue as if it isn’t.)

I’m a really bad example of this.  Since Sunday night, I’ve been asleep twice, totalling around 16 hours.  Not a good idea.  I’m managing to pull through, but I can’t imagine the effects this is having on my body.  Having taken a class in sleep psych last semester, I’m fully aware of the detrimental effects of lack-of-sleep from a scientific standpoint, and years of experimentation gives me first-hand proof that this is all true.  And yet I continue to do it.  I’m not the only one though – many of my friends sit out with me in the hallway of our dorm until 2, 3, 4am, sometimes even staying up late enough to go out to eat when a popular “diner” near campus opens at 5am.  Now, granted, most of them aren’t as bad as me (I barely have a sleep schedule anymore), but sleep deprivation is chronic and widespread among college students.  It really is a shame, as these are very important years in our lives from a developmental standpoint (mental, physical), and yet we keep ourselves from fully developing.  There’s just too much stuff to do, and not enough time.  I’m not saying that we should be assigned less work so that we can still have the “full college experience” and still get enough sleep, but I feel like someone out there should do some real research into this, and try to find out a way that we can efficiently balance everything that demands time out of our finite daily allotment (sleep included).

(If, after reading through that, it seems like a bunch of nonsense, just think of it as proof that all-nighters are not such a good thing.)





Slowly, but not so surely…

15 04 2009

Still working on getting the camera movement working.  I’ve currently got it so that it almost moves correctly, but the perspective of the walls changes in the way opposite to what it should.  Something’s wrong here, I know.  Time for some good old pen-and-paper math.  I tried working it all out in my head, but it’s difficult to bounce around four or five variables (which are all calculated using three other variables), and trying to figure out how to arrange everything mathematically and visually with all that chaos is a bit difficult (especially when having been awake for 30 hours again).  Hopefully with a bit of scratch paper to arrange my scattered thoughs, I’ll be able to get a working equation and working camera.

I’ll post more as events unfold.





What is ASCII3D?

15 04 2009

ASCII3D is a project that I’m starting on to realize Squidi’s idea for a roguetype world, made out of ASCII characters, that manages to extend into the third dimension.  Right now, I’m just coding a game engine (which for the moment is just a graphical engine), but hopefully it will extend into a pretty cool game (or group of games).  It’s a complex project idea though, and it will probably take me ages to complete.

To put things into perspective, a roguetype game is one where you’re a little dude (often portrayed as an @ sign) running through a dungeon (delineated by a group of different ASCII characters) trying to find some special trinket way down at the bottom of the dungeon and returning to the surface.  Along the way, you pick up potions, weapons, scrolls, and all sorts of items that will aid you in defeating the hordes of “A”s and “q”s that will try to kill you before you reach the bottom.  If you really want to know what’s going on here, try Wikipedia.

So here’s a view from what could be a typical roguetype (copied off Squidi’s page and hosted here to not use his/her bandwith):

Standard roguetype map

Standard roguetype map

If this was 3D-ified in the way that Squidi suggests, we would end up with something more like this:

3D-ified roguetype map

3D-ified roguetype map

So what I’m trying to do is write a whole lot of complex graphics code to make this effect.  The issue is that it needs to be created dynamically – the 3D-ness and perspective has to be created and updated as the player moves around, as the camera will stay centered on the player (to make it easier for the player to see where he is without the walls getting in the way).  I’ve got a very basic version working, where it loads a simple map from a file and draws it to the screen with a yet-to-be-tweaked 3D effect.  I have faulty code implemented for moving the camera around – that needs to be fixed.  Badly.  I’ll post more here as significant updates roll in.

And just for good measure, here’s a picture of my engine (still in this very basic state) rendering the same map that Squidi uses to create his pictures (in Photoshop):

A first look at my engine 3D-ifying a roguetype map

A first look at my engine 3D-ifying a roguetype map

Post comments if you’ve got questions as to how I’m implementing this or if you have any suggestions or just think this is really cool and want to voice your support.





Saucepan Software is born.

15 04 2009

So yeah, I finally decided to take the plunge and make a blog and a name for myself (when it comes to software projects).  I’m still deciding whether I want to make this purely me, or a software collaborative that includes other computer science-inclined friends.  I’m sort of leaning towards the second (if I find another person or two who is interested).  Time to ask around I guess.

Hopefully this is the beginning of a long and prosperous blog.  Many blogs “just kinda fizzle out” (thanks for the support, Alex), but hopefully this one will continue on for a while (it better, seeing as I’m thinking of doing programming for the next 40 years).

(Yes, I know this isn’t the best first post for a blog, but give me a break.  This is the second “day” in a row that I’m going to be awake for close to 36 hours.  And no, I don’t do this on a regular basis.)