Today I made a mock-up design of what I want my level editor's interface to look like.
Screenshot!
The blue represents the part of the window where the user will be able to modify game objects and essentially just build the level up from scratch. The two panels will have various controls over them. For example, for positioning an object, red, green and blue buttons on the upper part of the side panel will indicate forward, sideways and up-&-down. The user will be able to click these buttons and the currently selected object will move. On the bottom panel will be controls for the camera. The user will be able to change the camera viewing style, the position of the camera and the zoom level. All in all, very basic.
I'm planning on using BlueGUI for the menu bar elements and file loading/saving (it will just be easier that way), but nearly all of the GUI will be hard-coded into the editor itself. I plan to write them in functions and then figure out how to separate them so that I can reuse them for future projects.
Friday, October 29, 2010
Tuesday, October 26, 2010
I know I keep messing with the design of this blog. It's too hard to resist not to. There are so many cool templates that are quite easy to modify that it's impossible to pick one and keep it. This new one looks decent though, and I think I'll design my own background image just to help make it more "me", but the colors are good and I like it. UPDATE: I had to change the template again because some of the elements in the last one didn't like to cooperate. So here's a fancier, transparent one that I think looks even better! I'm not so sure I like the blue, though.
In other news, I've started working on some GUI design for my level editor. Screenshot time!
In other news, I've started working on some GUI design for my level editor. Screenshot time!
The grey gradient was inspired by Ubuntu's dark Ambiance theme. I liked it, so decided to try and create my own GUI similar to its style. Plus, dark grey GUI elements seem to be "in" right now, so it seemed like a good idea.
I'm not really sure how to create my own set of GUI functions, but I've posted about it on the DBPro boards and hope to learn as much about the process as possible very soon. I would love to create my own GUI library! It would help make my level editor seem more custom to me.
If (and when) and get somewhere with programming my own GUI functions library, I may want to write a tutorial on the process. I've actually got a few ideas for tutorials I would like to write, and I think most people would find them helpful. I've just got to gather my resources and begin writing!
Labels:
GUI,
level editor,
testing
Saturday, October 23, 2010
Success with Sparky's!
Even though I haven't really had time to work on my level editor, I managed to force myself to start experimenting with Sparky's Collision .dll. Over the last couple of days I've learned how to simulate gravity with Sparky's, and also how to implement excellent collision detection. I threw together this little test to see if I could get a solid rotating platform...
The white lines represent the collision detection boundaries. Unfortunately I can't quite work out how to make the player "stick" to the rotating platform and yet still slide across it gently. This will be the next thing to work out and then after that I'll start work on the game itself.
UPDATE: Several hours later....
Thanks to TGC Forum user Randomness 128 for helping me figure out how to make the player stick to a rotating/moving platform! Now that that's implemented by using some simple trig (which, to be honest, I have little understanding of trigonometry so it was a little intimidating to look at), I feel pretty confident in using Sparky's for just about everything my game needs. I'm more than a little excited! However I still need to test a couple of things, so stay tuned...
Thursday, October 21, 2010
Playing around with Sparky's DLL (plus update)
Somewhat Boring Stuff:
Due to life interfering with my programming time, I really haven't been able to work on my level editor at all this week. I've got limited time to work on it right now, but very soon I should be able to work on it every day.
In the meantime, I've been playing around with some of Sparky's Collision examples and studying them pretty intently. It looks pretty easy to implement, so that has me excited. I really love the way it works! It makes implementing complex collision detection really easy.
Somewhat Interesting Stuff:
Someone on the TGC forums suggested that I start writing stories on my blog. My life is full of really stupid stuff that could be funny to read about. Soon, I might start a comic series called "The Misadventures of CoffeeCoder" or something like that. I've been interested in drawing webcomics for a while now, so this could be the perfect opportunity to start that. You can expect much geek-ranting in the comics, of course, but it definitely won't be a rip off of XKCD.
Of course this is assuming my drawing/writing skills are decent.
Due to life interfering with my programming time, I really haven't been able to work on my level editor at all this week. I've got limited time to work on it right now, but very soon I should be able to work on it every day.
In the meantime, I've been playing around with some of Sparky's Collision examples and studying them pretty intently. It looks pretty easy to implement, so that has me excited. I really love the way it works! It makes implementing complex collision detection really easy.
Somewhat Interesting Stuff:
Someone on the TGC forums suggested that I start writing stories on my blog. My life is full of really stupid stuff that could be funny to read about. Soon, I might start a comic series called "The Misadventures of CoffeeCoder" or something like that. I've been interested in drawing webcomics for a while now, so this could be the perfect opportunity to start that. You can expect much geek-ranting in the comics, of course, but it definitely won't be a rip off of XKCD.
Of course this is assuming my drawing/writing skills are decent.
Thursday, October 14, 2010
I know it isn't much, but....
Okay. So I know this isn't much to show at all, but I just felt like if I didn't at least show some form of progress my project might not seem like it exists. I dunno, I'm weird like that.
Anyhoo, my first screen capture of the VERY basic editor in its infancy stage....
And thus is proof of my progress. I set up a flickr account to host all of my images for my programming projects. You'll be able to see new photos appear in the sidebar gadget on the right over here -->
Anyhoo, my first screen capture of the VERY basic editor in its infancy stage....
![]() |
| First Screenshot - Flickr Photostream |
So far all this thing does is move objects around. They're spawned with the spacebar and you can't delete them yet. This is only a testing program, so it's very primitive at the moment. This version will not be released to the public because it's only purpose so far is to test features that will be included in the final version (which will be programmed much more neatly than this thrown-together pile of code).
The features I need to test are the following:
- Object Properties (setting different properties for each individual object using arrays)
- GUI Elements (some menus and panels I want to create may not work right off the bat, hence the need for testing)
- Movement Arrows (instead of using the arrow keys to move objects, a series of movement arrows will be present in the final version...I hope)
- Save Screenshot (I thought it would be cool if the user could export images of their levels being constructed in the editor. This will be simple to implement but needs to be tested nonetheless)
- Lights System (for creating interesting atmospheres)
- Collision Detection (as part of the properties test, but with more collisiony type things)
That's not a whole lot of testing I need to do, but it will still take a little while because real life is kind of getting in my way at the moment. I'll post an update on this next week with a new image, a list on the features implemented so far, and a list of features that work and those that don't. By this time next week I hope to have textures created for the objects as well, so that could be nifty. Or not. We shall see.
Wednesday, October 13, 2010
Getting Started
Well, I've managed to get somewhat motivated to start coding.
Earlier today I was beginning a "test table" for a few things I'd like to try out before I dive head-first into programming a whole game and level editor again. I realized that a feature I want to implement could very well end up not working in the future, so I'm going to test it out now. If it works, yay! If it doesn't work, I'll probably make a face like this one:
Earlier today I was beginning a "test table" for a few things I'd like to try out before I dive head-first into programming a whole game and level editor again. I realized that a feature I want to implement could very well end up not working in the future, so I'm going to test it out now. If it works, yay! If it doesn't work, I'll probably make a face like this one:
![]() |
| I'm so angry! Gaaah! |
That image isn't mine. I Google'd it.
The feature in question is a way to assign an object its own set of properties in my future level editor. This NEEDS to be incorporated into the editor or else my entire project won't be able to work. Basically, what I want to do is somehow, when a user clicks an object (any object), a menu will appear (courtesy of BlueGUI) and display values for various options. Basically it'll look something like this...let's see if my ASCII skills are decent....
| Transparency | 1|
------------------
| Hidden | 0|
------------------
| Misc. Val | 0|
------------------
The numbers are flag (or boolean) values, meaning that they only change from 0 to 1 or vice-versa. For example, if the user clicks on an object in the editor and they want the object to be transparent, they must change the 0 to 1, and in the next iteration of the main loop the object will become transparent.
I'm doing this with the use of an array and a Type set. It looks something like this:
REM Create the Type
Type ObjectProperties
Transparent as Integer
Hidden as Integer
Misc as Integer
EndType
REM Now store the values in an array
Dim ObjectProperties(1000) as ObjectProperties
(Note: It's a right pain to manually highlight the syntax of code here! That's a shame. I need to figure out a way to post code snippets in here.)
I don't feel like going too much more in-depth about it though, although I will say that it works pretty much as it looks. You create a bunch of variables, all contained inside of a Type (which is basically BASIC's version of a class), and then you create an array to store the values in. Since my game isn't going to have more than roughly 500ish platforms in any given level (sometimes I think even that's too many), 1000 array elements should be enough. Since DarkBASIC handles objects by giving them numbers, when I create an object it also assigns the same number from the array all of the values contained in the Type element. So if I create an object at number 50, that will be the same number (50) in the array that it's assigned to, so I can give each object its own set of properties.
What do you think? Is that how you would go about doing it?
Labels:
Programming,
testing
Monday, October 11, 2010
I AM GOING TO GET MOTIVATED, DANG IT!
I think that pretty much every hobbyist programmer understands a sudden lack of motivation when working on a project.
It kind of sneaks up on you when you least expect it, which can be really inconvenient most of the time because you're like "Hey! I can get this part of my programming done in a week! It's an awesome part of the game/program that will help make it more interesting for the general end user! Yay!" and then suddenly you're like "Ah jeez. There's a stupid bug somewhere in the program. Never mind." and then you go off to drink a boatload of coffee and spend countless hours on the internet either watching YouTube videos or reading web comics. It doesn't help that because you drank so much coffee, you're suddenly unable to fall asleep at a decent hour and then the next day you're horribly sluggish and your brain kinda feels like it's in a state of constant confusion and sometimes even the simplest of tasks feels like it takes enormous brain power to calculate the easiest way of opening a jar of jelly. If you can't do that, you surely won't be able to solve the aforementioned bug in your program. The solution? MOAR COFFEE!
On a more serious note, lack of motivation seems to hit us in random patterns. At least that's what it does to me.
I'll be sitting there, coding away happily while listening to some music (it helps me concentrate), and suddenly I'll realize that an idea I have might not work unless I go back and change part of my code, or I'll encounter a stupid bug that takes me hours to solve, only to realize that I was telling a For-Next loop to loop through variable "z" when I needed "a". It's usually at that point I either become enormously frustrated at my own apparent stupidity, or I'll lose all motivation for at least a week. It's sometimes a mixture of both.
So what can we do to increase our motivation for working on projects?
Something that definitely helps is breaking down your project into small steps. For example:
It kind of sneaks up on you when you least expect it, which can be really inconvenient most of the time because you're like "Hey! I can get this part of my programming done in a week! It's an awesome part of the game/program that will help make it more interesting for the general end user! Yay!" and then suddenly you're like "Ah jeez. There's a stupid bug somewhere in the program. Never mind." and then you go off to drink a boatload of coffee and spend countless hours on the internet either watching YouTube videos or reading web comics. It doesn't help that because you drank so much coffee, you're suddenly unable to fall asleep at a decent hour and then the next day you're horribly sluggish and your brain kinda feels like it's in a state of constant confusion and sometimes even the simplest of tasks feels like it takes enormous brain power to calculate the easiest way of opening a jar of jelly. If you can't do that, you surely won't be able to solve the aforementioned bug in your program. The solution? MOAR COFFEE!
On a more serious note, lack of motivation seems to hit us in random patterns. At least that's what it does to me.
I'll be sitting there, coding away happily while listening to some music (it helps me concentrate), and suddenly I'll realize that an idea I have might not work unless I go back and change part of my code, or I'll encounter a stupid bug that takes me hours to solve, only to realize that I was telling a For-Next loop to loop through variable "z" when I needed "a". It's usually at that point I either become enormously frustrated at my own apparent stupidity, or I'll lose all motivation for at least a week. It's sometimes a mixture of both.
So what can we do to increase our motivation for working on projects?
Something that definitely helps is breaking down your project into small steps. For example:
My awesome program's design document!
- Determine what your program needs - this includes all features you'll NEED for it to work, not just the features you want to implement.
- Code the basics based on what your project needs - functions, subroutines and all other basic features should be written and tested NOW in a mock-up project of some sort.
- Once you get everything working and all features tested out (this can take a while, so be patient), begin working on polishing the project up (this part may even require a complete re-write). If it's a game, replace the placeholder models with nicer ones. If it's a general program make the interface nice and easy for the end user to use. This is also the stage where you should optimize your program to run its best. Get rid of unnecessary loops and see if you can do anything to speed it up in other ways.
- Sell it, baby!
The last one is only applicable if you made a fantastic game (or program), so don't think you'll be the next Bungie developer or something like that. Regardless, a list similar in nature to the one above should help you to stay motivated, as it breaks up the project into small steps and you won't feel overwhelmed because you'll know already what you want to do with the project.
So a pledge I'm making to myself today is to STAY MOTIVATED. Actually, it's to GET motivated and then STAY motivated, because right now I want to work on a project. I'm just not feelin' the urge to start coding right away, so I'm gonna use that to my advantage and write up a design document. Hopefully, that will help.
But first I have to clean out a cooler from the weekend. Yay.
Saturday, October 9, 2010
Small Update + Future Plans
Hey everyone!
I really wish that I had something going programming-wise to showcase here. After all, that's what this blog's original purpose was. :P
I am still very interested in programming, but unfortunately real life has been getting in the way of me even being able to work on that level editor I've had lying around for ages...until I accidentally deleted it. :( Oh well.
To be honest, my main interest isn't programming/making games; it's filmmaking. For as long as I can remember I've wanted to do something with film, and I've been pursuing that interest avidly for the last few weeks. This is another reason I haven't done anything with programming.
However, something keeps bugging me about programming. I'd love to make it a future hobby.
For the last three to four years I've had ideas for at least two computer games I would LOVE to create. One of them is a simple platform game that follows the Super Mario Bros. and Sonic the Hedgehog theme of collecting coins/rings/jewels and whatnot. I got really close to finally making it happen a few months ago, but then realized that some of the ideas I had wouldn't work with it unless I re-coded the level editor and added support with Sparky's collision .dll and BlueGUI. I never got around to that however, and before I do that I need to experiment with Sparky's...but that's another story.
The other game idea I have is based off of an old movie "trilogy" my brother and I were writing years ago, but have since only completed one film that will not have any sequels...so the idea for the game is changed, but I'd still like to create it. Basically, it's about evil bunnies. I'll leave it at that.
Also, for those of you who are interested, Ubuntu version 10.10 is coming out tomorrow. My plan is to install it on a separate partition on my hard drive, because I loved Ubuntu. I can't do that tomorrow though, as I have a wedding to attend.
That is all for now, folks. Stay tuned as I add some pages here to make it more or less a website for a couple of games I wish to make and I'll talk to y'all later!
-CoffeeCoder
I really wish that I had something going programming-wise to showcase here. After all, that's what this blog's original purpose was. :P
I am still very interested in programming, but unfortunately real life has been getting in the way of me even being able to work on that level editor I've had lying around for ages...until I accidentally deleted it. :( Oh well.
To be honest, my main interest isn't programming/making games; it's filmmaking. For as long as I can remember I've wanted to do something with film, and I've been pursuing that interest avidly for the last few weeks. This is another reason I haven't done anything with programming.
However, something keeps bugging me about programming. I'd love to make it a future hobby.
For the last three to four years I've had ideas for at least two computer games I would LOVE to create. One of them is a simple platform game that follows the Super Mario Bros. and Sonic the Hedgehog theme of collecting coins/rings/jewels and whatnot. I got really close to finally making it happen a few months ago, but then realized that some of the ideas I had wouldn't work with it unless I re-coded the level editor and added support with Sparky's collision .dll and BlueGUI. I never got around to that however, and before I do that I need to experiment with Sparky's...but that's another story.
The other game idea I have is based off of an old movie "trilogy" my brother and I were writing years ago, but have since only completed one film that will not have any sequels...so the idea for the game is changed, but I'd still like to create it. Basically, it's about evil bunnies. I'll leave it at that.
Also, for those of you who are interested, Ubuntu version 10.10 is coming out tomorrow. My plan is to install it on a separate partition on my hard drive, because I loved Ubuntu. I can't do that tomorrow though, as I have a wedding to attend.
That is all for now, folks. Stay tuned as I add some pages here to make it more or less a website for a couple of games I wish to make and I'll talk to y'all later!
-CoffeeCoder
Labels:
game making,
updates
Subscribe to:
Comments (Atom)



