Art Issue, Camera, GUI

Published October 26, 2008
Advertisement
I'm very happy. I'm trying a camera control scheme I haven't seen before, and working on a GUI editor. I've slacked on the updates because I'm working 50 hours a week, but not for long!



I had originally wanted the environment to be 3d-renders (with perspective). But I found that aside from the extra work involved with compositing the renders together (each with their own perspective), there's an issue with knowing where the wall really is while playing. The player's path along the ground is predictable, but when judging where his jump will land against the wall, there's an ambiguity that might be frustrating. There could be helpful lines that show where the physical boundaries are, but that would put limits on what kinds of environments there are, and what style they have. You couldn't have, say, an arbitrary cave environment without some hard edge defining where the player can't go. I think this would kinda destroy the aesthetic value of the 3d renders. It can be done, but it would require an art team. Anyway, I could use partially-3d environments, but I like the inherent character that a "flat", layered world has. So at the moment I've decided to use ortho renderings that are layered. My camera is in perspective, and the layers have different z-positions. The transparent edges of the foreground layer lines up with the physical walls of the level, and its easy to differentiate between the layers when the camera is moving.





The newest thing I'm trying (which I'm very excited about) is giving the camera a slight rotation in the direction the player is aiming. Its a slight rotation because I don't need the player to be able to look too far around, but enough that he gets a sense of perspective. This effect is hard to explain and difficult to get a good idea just by looking at the image. I would LOVE to post a video of this in action but I have no capture program anymore. I was using Camtasia Studio and I absolutely love it, but my trial is up and they want 300 bucks for it! I'm considering it because that program is so nice. My other option is to post a demo... so here it is! I can't call it an actual demo yet, but if I waited until I have a finished game, why read this journal? :)
The major problem I have with the camera so far is that the aiming reticle is stuck in the center of the screen, and the camera rotates 1:1 with the cursor movement. Those will be fixed next. Hit spacebar in the demo to switch to the freelook mode, and try moving the camera around a LITTLE at first. Its not revolutionary, but I think it would make the game a little more fun. The demo requires someone with an imagination to appreciate it. Its not pretty, but imagine what it could be!

There isn't a single completed feature in this demo.
Here's what you can do:
+ you can run, aim, dash, shoot
+ you can dance if you want to, you can leave your friends behind

A small list of what's missing:
- Shaders are disabled, because they're slow and I haven't really worked on them
- no jump animation
- enemies don't explode, or do anything yet
- no sounds
- no damage
- single weapon (test)
- no objectives
- something to do

If someone would try it and let me know if it installs and runs, I'd be grateful. Oh, its only for Windows at the moment, sorry Mac/Linux users! The final app will have Mac and Linux versions.




Not exactly a functional editor yet!

GUI:
I tried to use JavaCoolDude's opengl GUI that loads data from XML files, but I'm not convinced XML is good format for a GUI. I understand that companies will use XML as an intermediate format before its converted to binary for release, but I really don't understand why. If you have a dedicated program that can edit your own binary GUI format, would you need the human-readable format at all? I found that JavaCoolDude's xml-loading system was nice, but I think using XML is a waste because it doesn't seem to have any benefit in it's use. I ended up spending three days incorporating his XML system into my app, only to cut it out when I came to my senses. I think I was just drawn in by the screenshots of his system. I've decided to create my own binary GUI format and develop a dedicated app for creating and exporting the GUI. I though it would be too much work before I realized that I have most of the work done already. I have a framework (SDL/OpenGL) and GUI system that works, but uses my crappy time-consuming text format. SO, my new GUI editor's GUI is using my crappy format, but will export the new binary format that my GUI editor can use! The snake eats itself!
Previous Entry Sprite Render Pipeline
Next Entry No more camera tilt
0 likes 9 comments

Comments

HopeDagger
Looking (and sounding) fantastic. I'm not on my Windows box at the moment, but I'll give it a run-through when I am. I don't comment nearly enough here (ever? [grin]), but I've been blown away by the quality and depth of your development progress since Day One. Keep it up, for gosh sakes!
October 26, 2008 04:41 PM
ukdm
I was recommending a free (open source) video capture app to EasilyConfused the other day:

http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=408620&reply_id=3335731
October 26, 2008 04:57 PM
Slather
thank you HopeDagger! you saying that makes my week. :)
thanks ukdm. I've tried CamStudio before and didn't like the quality. I think I might end up buying Camtasia Studio and offer to create videos for the fine folks in JournalLand!
October 26, 2008 10:18 PM
Ravuya
Wow, that looks incredible. I'm surprised I haven't paid attention here much before.
October 26, 2008 10:59 PM
Aardvajk
Looks lovely as ever, but your demo won't run for me for some reason. Don't know if it is a Vista compatibility thing. I've tried running as admin and running in WinXP compatibility mode but just get the hourglass when I run and then nothing.

I notice you seem to be saving your config files within your program's filesystem directly which is generally a no-no on Vista now, but then I would have thought that running as admin would have fixed that.
October 27, 2008 01:20 AM
Twisol
Sounds great! I think the same slight-movement-of-camera idea is used in Metroid Prime 3, also, but I could be wrong. I haven't played it in a while, but I'm 90% sure that's where I've seen it. I like that you're using it too, it really added to MP-3 when I played.
October 27, 2008 03:03 PM
Slather
Quote:Original post by EasilyConfused
I notice you seem to be saving your config files within your program's filesystem directly which is generally a no-no on Vista now, but then I would have thought that running as admin would have fixed that.


Hmm... I'm using XP and you're the first to try it on Vista. I know nothing about targeting Vista. What does the last line in the log file say? Or would you send me the log? I'll put my email at the top of the journal. Thank you
October 27, 2008 07:29 PM
bmsq
I thought this looked cool when I first saw this project a little while ago. I like the style. Tried the demo, but like EasilyConfused, I had some problems running it on Vista. Tried the usual tricks like setting the program files directory to writable (Vista sets it to read only by default), but no luck. The log gives the following information:

+ Loading resources...
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
! GL error: (invalid enumerant)
LoadTexture :error source: texture params.
+ Done loading resources.

<EOF>

Works fine on my XP machine though.

I think the camera rotation idea is neat, but you don't really notice it much unless you introduce alot of movement (which allows you to see alot more). Maybe restrict the rotation but also add a little zoom as you hit the extreme. Might give a better idea of perspective without showing to much to the player? Dunno, just a random idea I had while playing with this...

Looks really cool, keep up the good work!
November 01, 2008 01:29 AM
ValMan
Crashed on startup :(

Error:
Tried to execute code at 0x00000000, called from 004051e8()
Assuming you can believe the call stack, since you didn't attach any debug info.

Log contains same info as already mentioned (LoadTexture/invalid enumerant).

I can upload crash dump if you are interested.
November 08, 2008 09:52 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement