Ramble? (I can't think of anything better)

A place to show off your completed or in progress video game projects. Mods? Hacks? Whatever you call it when you make your own thing? Reveal your junk to random strangers!
User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Ramble? (I can't think of anything better)

Postby Frozelar » January 8th, 2015, 12:26 am

Video Sample
Github Repository

To-Do List:
(in no particular order)
Priorities for Now:
  • For the game itself:
    • Make an editor so you don't have to manually type in each and every level space
    • Clean up the main function
    • Implement enemy attack patterns
    • Divide into multiple comprehensible files (if I can freakin' figure out how!!)
    • Make a title screen/main menu
    • Make the program more compatible with having multiple levels
    • Implement a world map/level select/whatever
    • Re-make the way signs work so that it relies on the level file for the message rather than the message being hard-coded
    • Make blocks able to have animations
    • Add warp blocks
    • Diversify bullets
    • Add moving blocks
    • Create bosses
    • Make sound effects
    • Work on the first boss
    • Bug fixing
  • For the level editor:
    • Implement an undo/redo system
    • Bug fixing

Priorities for Later:
  • Actually design levels
  • Create a story
  • Improve graphics
  • Implement more music
  • Add more enemy varieties
  • Add more variety for collectibles
  • Add more variety for blocks
  • Add more variety in general
  • Has variety lost its meaning yet
____________________________________________________________________________________________________

So I'm a pretty mediocre C++ programmer and I figured I'd try to start developing a game
It's a really dumb platformer but I'll probably continue to add things to it for a while until I get tired of how dumb it is. I mean I'm hoping that over time I will have something remotely resembling a finished game but I don't know if that's gonna work out.
I guess I'll post my progress on it here. This thing is my main hobby to work on when I have free time. Plus maybe having this thread here will keep me motivated. I dunno.
Please don't yell at me and tell me it's terrible! I already know!!!!
Last edited by Frozelar on March 8th, 2015, 5:27 pm, edited 15 times in total.
Image

User avatar
Alice
⦂☽
Posts: 3813
Joined: December 23rd, 2014, 10:47 pm
Location: Wonderland
Contact:

Re: I don't even know what I'm making

Postby Alice » January 8th, 2015, 12:30 am

Even if it does turn out terrible it's still a learning experience. And that doesn't look atrocious or anything, just a highly work in progress platformer is all.
💙💙💙
Image
Image

User avatar
Kiwisauce
Posts: 27
Joined: December 26th, 2014, 10:09 am
Location: Seattle

Re: I don't even know what I'm making

Postby Kiwisauce » January 8th, 2015, 1:06 am

So, you say this is terrible, but I'm actually pretty impressed that you've done this much with one of your first attempts at game programming. Seriously, learning C++ and SDL and the peripheral SDL libraries like SDL_Mixer is a big accomplishment! It doesn't matter how your first game turns out, now you know how to program games, and that's pretty awesome!

The head-bash attack made me laugh. It's pretty charmingly goofy. :)

By the way, Beret was like my 10th attempt at making a real game. It was my first released game (not counting hacks), but I actually regret not releasing my earlier ones because I missed out on the feedback I could have gotten from them that would have made me a better game designer. The point I'm getting at is that if you want to post an executable for your game or something I'd be happy to provide feedback about stuff and stuff. But if you feel like you're not ready to share it just yet, I totally get that too.

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 8th, 2015, 1:22 am

Kiwisauce wrote:So, you say this is terrible, but I'm actually pretty impressed that you've done this much with one of your first attempts at game programming. Seriously, learning C++ and SDL and the peripheral SDL libraries like SDL_Mixer is a big accomplishment! It doesn't matter how your first game turns out, now you know how to program games, and that's pretty awesome!

The head-bash attack made me laugh. It's pretty charmingly goofy. :)

By the way, Beret was like my 10th attempt at making a real game. It was my first released game (not counting hacks), but I actually regret not releasing my earlier ones because I missed out on the feedback I could have gotten from them that would have made me a better game designer. The point I'm getting at is that if you want to post an executable for your game or something I'd be happy to provide feedback about stuff and stuff. But if you feel like you're not ready to share it just yet, I totally get that too.

Oh wow, thank you Kiwiman! Yeah, I'm really glad I'm actually enjoying a hobby that could also potentially give me a head start with a lifelong career in the future. Or something.

Also, I was actually thinking of putting it on Github. Or maybe Gitorious, like the beret code is. Haven't really decided.
There's actually over 4000 lines of code just for this when you could probably make the same thing in less than one thousand! Although there is a lot of old commented-out code scattered about, just taking up space. But yeah, I would be incredibly honored if you would be willing to look at it! I would just like a little bit of time to fix up some of the code that I already know is written badly, then I'll put it up. Hopefully by tomorrow. Thank you very much!
Image

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 8th, 2015, 7:31 pm

Well uh, for better or for worse, I put it up on GitHub.
Still pretty new to Git so I may have screwed a million things up. But I don't think I did.
Image

User avatar
Kiwisauce
Posts: 27
Joined: December 26th, 2014, 10:09 am
Location: Seattle

Re: I don't even know what I'm making

Postby Kiwisauce » January 9th, 2015, 2:46 am

Frozelar wrote:Well uh, for better or for worse, I put it up on GitHub.
Still pretty new to Git so I may have screwed a million things up. But I don't think I did.


Cool! I took a brief look at the code, but I haven't tried to clone the repository or compile it or anything yet. I have a few suggestions on general stuff for you though.

1. I totally understand why you only have one source file and one header file (I did that myself for many of my early projects, and Beret only has like three source files), but it really improves code readability and organization if you put conceptually different parts of your program in different files. For example, you might want to have one header/source pair for your Player class, and another for your Enemy class, etc. This can complicate the build process, but since you're using Visual Studio, I don't think that's an issue (since Visual Studio will automate the build for you).

2. Along the same lines as the last point, to improve organization, you'd probably want to move the actual definitions of all your functions into source files rather than a header file. Header files are supposed to be a reference, like a table of contents, or a menu I guess, that tell the compiler and also programmers looking at them what sorts of things a class can do. The actual structure of your class definitions are fine, but those along with enums and other high-level definitions should be the only things in header files. For example, you could have your definition of the Player class and definitions of enums used solely by the Player class (like FrameType) in a Player.h header file, and move the definitions of the functions like Player::plJump into a Player.cpp source file that #includes Player.h.

3. Your main function is pretty long and kind of hard to follow. Generally you want to keep functions concise so the reader can tell what's going on by reading the names of the subfunctions called, rather than trying to interpret 300 lines of a single function's code. :) You did a good job of this by separating applyEnemyAI and applyMiscAI into their own functions. Some of the stuff in your main function within the game loop looks like it might belong inside some of the classes you already have, too, like the player and enemy jumping code. In my own projects, I like to create a class called something like "World" that keeps track of all the general game stuff like collections of objects and enemies, just so I have an organized way of dealing with that stuff and a home for the functions that deal with that high-level game world stuff.

If any of that doesn't make sense, let me know. I've never really given C++ advice before, so I can try to explain it better. When I get a chance to look at it more I might have some more comments for you too.

... oh yeah, I almost forgot. I don't see your resources directory in the repository. If you include that too, I'll see if I can compile and run the game on OS X!

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 9th, 2015, 1:54 pm

Alice wrote:Even if it does turn out terrible it's still a learning experience. And that doesn't look atrocious or anything, just a highly work in progress platformer is all.

I almost forgot; thank you for the feedback, Alice! Yeah, if nothing else, this has been a big learning experience.
____________________________________________________________________________________________________

Kiwisauce wrote:1. I totally understand why you only have one source file and one header file (I did that myself for many of my early projects, and Beret only has like three source files), but it really improves code readability and organization if you put conceptually different parts of your program in different files. For example, you might want to have one header/source pair for your Player class, and another for your Enemy class, etc. This can complicate the build process, but since you're using Visual Studio, I don't think that's an issue (since Visual Studio will automate the build for you).

2. Along the same lines as the last point, to improve organization, you'd probably want to move the actual definitions of all your functions into source files rather than a header file. Header files are supposed to be a reference, like a table of contents, or a menu I guess, that tell the compiler and also programmers looking at them what sorts of things a class can do. The actual structure of your class definitions are fine, but those along with enums and other high-level definitions should be the only things in header files. For example, you could have your definition of the Player class and definitions of enums used solely by the Player class (like FrameType) in a Player.h header file, and move the definitions of the functions like Player::plJump into a Player.cpp source file that #includes Player.h.

I've tried a billion times over the course of multiple weeks to try and get my program's structure to resemble what you mentioned, and I kept getting errors about stuff being defined multiple times even though I had #pragma once at the top of everything. I had even looked up numerous tutorials and felt that I was following them exactly and I was still getting those errors. So I just gave up and decided to put everything in one header file. Heck, I even looked at the Beret source code, and as far as I could tell (which was obviously wrong) I was following it exactly. So I have no idea on this one.

Kiwisauce wrote:3. Your main function is pretty long and kind of hard to follow. Generally you want to keep functions concise so the reader can tell what's going on by reading the names of the subfunctions called, rather than trying to interpret 300 lines of a single function's code. :) You did a good job of this by separating applyEnemyAI and applyMiscAI into their own functions. Some of the stuff in your main function within the game loop looks like it might belong inside some of the classes you already have, too, like the player and enemy jumping code. In my own projects, I like to create a class called something like "World" that keeps track of all the general game stuff like collections of objects and enemies, just so I have an organized way of dealing with that stuff and a home for the functions that deal with that high-level game world stuff.

Yeah cleaning up the main function has been on my to-do list for a while, but whenever I go to do it I get all "well you know what I want to add this thing in now, and I'll work on the main function later." In fact, that's what I tend to do when I'm trying to clean anything up, to be honest, haha.

Kiwisauce wrote:If any of that doesn't make sense, let me know. I've never really given C++ advice before, so I can try to explain it better. When I get a chance to look at it more I might have some more comments for you too.

Everything was very clear to me! Thank you!

Kiwisauce wrote:... oh yeah, I almost forgot. I don't see your resources directory in the repository. If you include that too, I'll see if I can compile and run the game on OS X!

Oh duh, yeah that might help!
Thank you for the advice, Kiwiman!

EDIT: Huh, it looks like it is still committed with all the files, even the ones I deleted a long time ago. Gonna have to figure out how to undo that....
Image

User avatar
Kiwisauce
Posts: 27
Joined: December 26th, 2014, 10:09 am
Location: Seattle

Re: I don't even know what I'm making

Postby Kiwisauce » January 9th, 2015, 11:52 pm

Frozelar wrote:I've tried a billion times over the course of multiple weeks to try and get my program's structure to resemble what you mentioned, and I kept getting errors about stuff being defined multiple times even though I had #pragma once at the top of everything. I had even looked up numerous tutorials and felt that I was following them exactly and I was still getting those errors. So I just gave up and decided to put everything in one header file. Heck, I even looked at the Beret source code, and as far as I could tell (which was obviously wrong) I was following it exactly. So I have no idea on this one.


Heh, I wouldn't recommend using Beret as an example of good coding. Beret was my first project in C, so I didn't quite know what I was doing with regard to structure.

Man, I hate those multiple definition errors. C++ has a bunch of fiddly rules about how that sort of thing works, and it can take a long time to understand why the linker disapproves of your code. If you want to try again with getting the code structured nicely, I'd be willing to help you debug any linker errors that come up, if you're interested.

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 11th, 2015, 12:03 am

So I have an ugly title screen up and running, with all the options working. Now I need to modify the generateLevel function so that it generates the level you tell it to instead of one generic level, and change some other code also related to that. I'll also work on some sort of level selection system and whatnot.

I'm actually thinking of taking one of two paths with the main mechanics of the game:

  1. Heavy focus on a point system
    • Practically everything you do awards points
    • Points are used for everything: health, currency, etc.
    • The difficulty scales based on how many points you have: enemy health, (to some extent) attack patterns, item drops, bosses, etc.
    • I am really a fan of this approach, but it would probably require a lot more work and a LOT of attention to balancing.

  2. More generic health/currency/etc. systems
    • You would lose health by getting hit by things and whatnot, just like any typical video game
    • I was thinking that rather than having things to heal you and having things to increase your max health, I could just have no cap on max health (or a VERY generous one) and only have collectibles that increase your current health
    • Have some sort of typical currency system (collect coins or whatever, spend them at shops)
    • Maybe still award points for doing a wide variety of things, and have them solely for "HIGH SCORE WOOO" purposes (unless I can think of something better)
    • This approach is less unique, but I could just have basically a static difficulty scaling system in this case, which would be quite a bit easier to do.

I'm thinking I might go with the first idea, although I dunno if that's too ambitious for my first game or not. I'd love to hear opinions. Or not, haha.

Oh also, I don't think I ever mentioned this, but I'm aiming to have this game be a sort of metroid-vania type platformer, with at least as much focus on exploration as, say, Super Metroid, and having it be at least as long as Super Metroid is.

Kiwisauce wrote:Heh, I wouldn't recommend using Beret as an example of good coding. Beret was my first project in C, so I didn't quite know what I was doing with regard to structure.

Man, I hate those multiple definition errors. C++ has a bunch of fiddly rules about how that sort of thing works, and it can take a long time to understand why the linker disapproves of your code. If you want to try again with getting the code structured nicely, I'd be willing to help you debug any linker errors that come up, if you're interested.

Well, when I was looking over the code, it appears to be incredibly concise and efficient! To me, anyways!

And I'd love some help, thank you!
Image

User avatar
Alice
⦂☽
Posts: 3813
Joined: December 23rd, 2014, 10:47 pm
Location: Wonderland
Contact:

Re: I don't even know what I'm making

Postby Alice » January 11th, 2015, 1:59 am

Frozelar wrote:[*] I was thinking that rather than having things to heal you and having things to increase your max health, I could just have no cap on max health (or a VERY generous one) and only have collectibles that increase your current health

If you go with this one, how do you intend to handle respawning after death/loading a game? Maybe if you kept track of the highest amount of health the player has managed to reach then spawn them with 50% of that (or whatever you normally start a new game with, whichever is higher) it'd work?
I'm thinking I might go with the first idea, although I dunno if that's too ambitious for my first game or not. I'd love to hear opinions. Or not, haha.

Even if it ends up being too ambitious for you, it'll still be a great learning experience. Several things I've done were completely for a learning experience and having something useful as a result of them was simply a side effect. (Though having a specific goal in mind certainly helps.) For example I recently had the idea of doing something similar to everything.raocow which requires a lot of stuff I'm still not familiar with. It ended up taking like 9-10 hours (this included learning all the new stuff I needed, figuring out Youtube's API, working my way through a regular expression to make the link in the description actually a link, and styling and formatting the page) but I worked up a basic page here that display Iso's most recently published video as well as some other miscellaneous stats regarding his channel and the video in question. (The stats you'll find are inaccurate btw, that's because Youtube's API doesn't update often apparently.) That page in particular I'm well aware almost no one is going to make any use of and even if I complete the project it's unlikely to see much use, but it's a fairly ambitious project that I believe is within my reach so I'm going for it.
💙💙💙
Image
Image


User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 11th, 2015, 2:33 pm

So I sorta just realized that I don't even have a name for this project. I was thinking something like "Ramble" since it'll ideally be an exploration-based metroidvania but I feel like that sounds pretty dumb. I dunno man.

Alice wrote:If you go with this one, how do you intend to handle respawning after death/loading a game? Maybe if you kept track of the highest amount of health the player has managed to reach then spawn them with 50% of that (or whatever you normally start a new game with, whichever is higher) it'd work?

I never really thought about it, but that's a very good idea. I'll definitely keep it in mind, thank you!

Alice wrote:Even if it ends up being too ambitious for you, it'll still be a great learning experience. Several things I've done were completely for a learning experience and having something useful as a result of them was simply a side effect. (Though having a specific goal in mind certainly helps.) For example I recently had the idea of doing something similar to everything.raocow which requires a lot of stuff I'm still not familiar with. It ended up taking like 9-10 hours (this included learning all the new stuff I needed, figuring out Youtube's API, working my way through a regular expression to make the link in the description actually a link, and styling and formatting the page) but I worked up a basic page here that display Iso's most recently published video as well as some other miscellaneous stats regarding his channel and the video in question. (The stats you'll find are inaccurate btw, that's because Youtube's API doesn't update often apparently.) That page in particular I'm well aware almost no one is going to make any use of and even if I complete the project it's unlikely to see much use, but it's a fairly ambitious project that I believe is within my reach so I'm going for it.

Yeah, fortunately with most things like this, if nothing else, you can learn from them. Which pretty much always is worth it. And wow! That's really neat! I'd love to see what you can do with that in time!
Image

User avatar
Alice
⦂☽
Posts: 3813
Joined: December 23rd, 2014, 10:47 pm
Location: Wonderland
Contact:

Re: I don't even know what I'm making

Postby Alice » January 11th, 2015, 2:54 pm

Frozelar wrote:So I sorta just realized that I don't even have a name for this project. I was thinking something like "Ramble" since it'll ideally be an exploration-based metroidvania but I feel like that sounds pretty dumb. I dunno man.

Ramble could work at least for a working name. If you come up with nothing better then you can go with Ramble or ask for suggestions from others. (Especially if you have playable releases as you're working on it, then people might come up with some name related to the game's mechanics or something.)
And wow! That's really neat! I'd love to see what you can do with that in time!

Thanks! I'm probably going to try starting the front page of it tomorrow or maybe the day after. Today I actually won't even be home most of the day. It'd definitely be neat to make something useful. I've even thought of ways I might get more accurate stats as well though I don't know if Google would get pissy and I haven't actually tried it yet so I don't know how easy it will be to accomplish. I should be able to rip that information straight from the Youtube page if I use one of the php commands I forget the name of at the moment to internally load the video's page then use some regular expressions to hunt down the statistics on the page. I'd already been considering it for tags since the API doesn't return tags at all and tags are embedded in the page still, though not visible unless you read the page's source. (Edit: Looks like I need to rip the video description as well. Youtube's feed only gives the text in the description for a link rather than the actual link for it so it gets cut off in today's video and thus doesn't even work. I hope scraping info from YT isn't going to cause issues.)

But anyways, keep at it. I'd love to see you finish this. We don't have nearly enough decent exploration-based metroidvania style games. If I can make one suggestion on the exploration bit, you should try and make it somewhat similar to Super Metroid and Metroid: Zero Mission (specifically Zero Mission) where it's possible to sequence break if you know what you're doing. Zero Mission especially handles that well. In Super Metroid it's easy to sequence break but in Zero Mission it actually requires thorough exploration and some fairly clever maneuvering at times. In my opinion that sort of thing is easily the best feature of metroidvania games.
💙💙💙
Image
Image


User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 11th, 2015, 4:24 pm

Alice wrote:But anyways, keep at it. I'd love to see you finish this. We don't have nearly enough decent exploration-based metroidvania style games. If I can make one suggestion on the exploration bit, you should try and make it somewhat similar to Super Metroid and Metroid: Zero Mission (specifically Zero Mission) where it's possible to sequence break if you know what you're doing. Zero Mission especially handles that well. In Super Metroid it's easy to sequence break but in Zero Mission it actually requires thorough exploration and some fairly clever maneuvering at times. In my opinion that sort of thing is easily the best feature of metroidvania games.

Thank you! Yeah I've actually always been a fan of obscure... occurrences in videogames, like glitches and sequence breaking and easter eggs. I was thinking that if I come across a weird glitch while playing it, I might actually just leave it in rather than take it out, depending on what it is. And I also would like to implement a lot of secrets and whatnot, like sequence breaking and everything you mentioned. The more the merrier with this kind of stuff!

I'd also like to sharpen up my skills with pixel art and spriting so that I can hopefully end up with an actually semi-atmospheric game. Like Super Metroid. I've always been a really big fan of how they went about constructing the atmosphere in that game.

And I was thinking about reaching out to a certain Kiwi-flavored guy for the music, although I'm probably not far enough into development to be concerned with music yet.
Kiwiman, if you're reading this, I haven't forgotten about your promise to make the soundtrack from when we were in the IRC a few years ago!! :twisted:
Image

User avatar
chridd
Posts: 210
Joined: December 25th, 2014, 9:20 pm
Location: the internet
Contact:

Re: I don't even know what I'm making

Postby chridd » January 11th, 2015, 11:38 pm

Frozelar wrote:I've tried a billion times over the course of multiple weeks to try and get my program's structure to resemble what you mentioned, and I kept getting errors about stuff being defined multiple times even though I had #pragma once at the top of everything. I had even looked up numerous tutorials and felt that I was following them exactly and I was still getting those errors. So I just gave up and decided to put everything in one header file. Heck, I even looked at the Beret source code, and as far as I could tell (which was obviously wrong) I was following it exactly. So I have no idea on this one.
Are the errors from the compiler or the linker? (If it's the linker, then #pragma once won't change anything. I'm going to assume it's linker errors, because I see some problems that will cause linker errors.)

General rules for what to put in a .h file and what to put in a .cpp file (there are exceptions, but you probably don't need to worry about them yet):

Class declarations and enums should go in the .h file, like you have it there.

Function prototypes (a.k.a. function signatures) go in .h files; those are the things that look like this:

Code: Select all

int levelW();
Function bodies go in .cpp files; those are the things that look like this:

Code: Select all

int levelW() { std::ifstream /*...*/ return unitType; }
Likewise, the bodies of functions in classes (e.g., void Music::msLoad(...) {...}) should go in .cpp files.
(Also, I don't think the const in const int levelW() is actually doing anything.)

If you're declaring a global variable in a header file, then there should be a declaration with 'extern' at the beginning and without an initializer in the .h file; there should also be a non-extern definition, optionally with an initializer, in one .cpp file:

Code: Select all

// something.h
extern SDL_Window* gWindow;

// something.cpp
#include "something.h"
SDL_Window* gWindow = SDL_CreateWindow(...);
// *or*
SDL_Window* gWindow;
int main() {
   ...
   gWindow = SDL_CreateWindow(...);
   ...
}
I think that const variables are an exception, and you can just define them in the .h file like you're doing now.
(Edit to add: also this rule doesn't apply to variables in class definitions (unless they're static).)

In general, the .h file is just to tell the compiler, "There's something with this particular name and this particular type defined somewhere in this program". The function body tells the compiler to actually generate code for the function. The non-extern variable definition tells the compiler to actually set aside memory for the variable, and possibly to initialize it.

(I hope that was clear...)

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 12th, 2015, 12:05 am

chridd wrote:[super helpful advice]
(I hope that was clear...)

Oh hey, thank you! That was actually incredibly clear. I'll try it again sometime this week and see how it goes.
Image

User avatar
Kiwisauce
Posts: 27
Joined: December 26th, 2014, 10:09 am
Location: Seattle

Re: I don't even know what I'm making

Postby Kiwisauce » January 12th, 2015, 12:10 am

Frozelar wrote:And I was thinking about reaching out to a certain Kiwi-flavored guy for the music, although I'm probably not far enough into development to be concerned with music yet.
Kiwiman, if you're reading this, I haven't forgotten about your promise to make the soundtrack from when we were in the IRC a few years ago!! :twisted:


Sure, I'd be up for helping with that!

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: I don't even know what I'm making

Postby Frozelar » January 17th, 2015, 2:21 pm

Well, this was the first full week of school in 3 weeks (Christmas vacation, followed by 3 consecutive snow days) so it felt rather long, and I didn't get as much programming done as I would have liked. I know, excuses excuses. Now that I'm back into the groove of my school schedule again, everything should hopefully be smooth sailing.

Anyways, all I really got done was making the game able to support loading multiple levels instead of just one generic starting level. So uh, yeah. BIG SUPREME UPDATE
Image

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » January 25th, 2015, 4:39 pm

I guess I might be doing weekly posts? I dunno.

This week I got a level editor up and working. Getting saving to work just right took me seven hours yesterday and an hour today but I eventually got it!!
So here's a sort of list of features:
  • Left click on an empty space to insert a block
  • Left click on a block to replace with an enemy, click on an enemy to replace with a collectible, and click on a collectible to go back to a block
  • Use the scroll wheel to change the sub-type (for example, to change from an enemy that walks around to an enemy that flies)
  • Right click to delete an object
  • Click and drag to move objects
  • Press 's' to save the level

Features I still want to implement:
  • A menu for in the editor
  • Ability to insert signs with your own message
  • Ability to move around the player start (this should be pretty easy, I'm just lazy)
  • Ability to press 'o' to open a level
I think that's everything. All-in-all I'm honestly pretty proud of myself, haha. Like, it's a great feeling to feel like I can do anything I want to with a little hard work.
Image

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » January 25th, 2015, 10:05 pm

Man, I got pretty busy today. I've implemented everything I wanted to into the level editor except for a way to make your own signs. I'm assuming that that'll be a pretty tricky thing to do so I'll save it for later this week.
Image

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » January 30th, 2015, 11:14 pm

Alright, so I've implemented a way to include sign messages in the level file. Awesome.
Now I actually would like to make a way to bulk-select things and move/delete/insert multiple objects at once. So far it's proving to be, uh, not easy.

Regarding bosses, I'd like them to be sort of spontaneous and maybe hidden. So like you can never really predict when a boss fight will be. Sort of like Super Metroid, except without the boss doors. I mean I'd try to make it a bit less sudden and disjointed than "walk through a door BOSS TIME" but you hopefully sort of get what I'm trying to say. And when I say I'd try to make them hidden, I mean perhaps like a majority of the bosses would be optional but you'd get cool stuff for killing them.
Image

User avatar
Alice
⦂☽
Posts: 3813
Joined: December 23rd, 2014, 10:47 pm
Location: Wonderland
Contact:

Re: Ramble? (I can't think of anything better)

Postby Alice » January 31st, 2015, 7:25 am

Frozelar wrote:I mean I'd try to make it a bit less sudden and disjointed than "walk through a door BOSS TIME" but you hopefully sort of get what I'm trying to say.

Make it lag badly for a second like on raocow's SotN lp, lol. And making most bosses hidden and optional but having useful rewards would be rather neat. Though you may consider something more than just useful rewards in the end. Something like a Castlevania style true ending wouldn't be a bad idea.
💙💙💙
Image
Image


User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » February 1st, 2015, 6:32 am

Alice wrote:Make it lag badly for a second like on raocow's SotN lp, lol. And making most bosses hidden and optional but having useful rewards would be rather neat. Though you may consider something more than just useful rewards in the end. Something like a Castlevania style true ending wouldn't be a bad idea.

Ah yeah, I would think of more than JUST loot to reward the player with, but yeah.

Also after about 11 hours of programming today I got the selection system working so now you can fill in multiple objects at once and stuff. It was pretty frustrating to get working! I think I sorta, more or less, for this current point in time, have everything done with the editor I'd like to do. Awesome! Now I'll focus more on the game itself.

(As a side note, is my continuous posting here seen as spam-y? I hope not, but I can tone it down if so.)
Image

User avatar
Alice
⦂☽
Posts: 3813
Joined: December 23rd, 2014, 10:47 pm
Location: Wonderland
Contact:

Re: Ramble? (I can't think of anything better)

Postby Alice » February 1st, 2015, 9:19 am

What about an undo/redo system? Probably fairly complicated but something worth learning to do.
Frozelar wrote:(As a side note, is my continuous posting here seen as spam-y? I hope not, but I can tone it down if so.)

That's not really a problem. Personally I actually like hearing what you accomplished.
💙💙💙
Image
Image


User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » February 7th, 2015, 12:41 pm

So this week I didn't exactly do a LOT, but I:
  • Made enemies able to have attack patterns
  • Made blocks able to be animated
  • Fixed several bugs
So that's something, I guess. I don't exactly have anything really big left on my to-do list (besides dividing up the program which I still can't seem to figure out), so I think I'll start trying to design the first boss. Sounds like fun!
Image

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » February 14th, 2015, 1:30 pm

This week, I made bullets able to have animations, implemented different bullet types so that there's not just one generic bullet that does one generic thing, implemented the first boss (definitely nowhere close to being done, but the basics are in), and added warp blocks. And I fixed a couple of bugs here and there.

Gonna work on finishing up that boss this weekend! I think I gave him some amount of, uh, uniqueness, but wouldn't wanna SPOIL that now would we!!

EDIT: Why have I never responded to this??
Alice wrote:What about an undo/redo system? Probably fairly complicated but something worth learning to do.

I'll probably do that at some point in the future, but honestly at this current point in time I feel like it's easy enough to delete things if you accidentally insert them, or insert things if you accidentally delete them. But yeah, future idea! Thanks!
Image

User avatar
spitznagl
Posts: 15
Joined: December 25th, 2014, 2:53 pm
Location: .qc.ca/

Re: Ramble? (I can't think of anything better)

Postby spitznagl » February 15th, 2015, 12:23 am

Frozelar wrote:
Alice wrote:What about an undo/redo system? Probably fairly complicated but something worth learning to do.

I'll probably do that at some point in the future, but honestly at this current point in time I feel like it's easy enough to delete things if you accidentally insert them, or insert things if you accidentally delete them. But yeah, future idea! Thanks!

If your room data isn't too big you could just make copies of the whole thing for each operations. It's a half-assed solution, but it's also super simple.

User avatar
Frozelar
Posts: 175
Joined: December 24th, 2014, 2:05 am
Location: wait where
Contact:

Re: Ramble? (I can't think of anything better)

Postby Frozelar » March 8th, 2015, 5:26 pm

Wow, it's been a little while hasn't it?

Well, I don't exactly remember what I did and didn't have done at the time of my last post, but I think that what I did do since then:
  • Implemented a shabby, but working, undo/redo system
  • Fixed MORE bugs
  • Added some sound effects
  • Added moving blocks
  • (EDIT) Oh yeah, also added a collectible that lets you double jump once in the air.
  • Made levels able to have custom widths and heights (this took WAY TOO LONG to figure out)
I feel like there was more than this, although then again, the custom width and height thing took me forever to fully implement. And when I did eventually figure it out, the solution was like "wow how dumb am I"

Oh, by the way...
spitznagl wrote:If your room data isn't too big you could just make copies of the whole thing for each operations. It's a half-assed solution, but it's also super simple.

This is basically what I did. Thank you very much spitz! It currently only supports undo-ing and redo-ing once, but I could always work on it more in the future.

Not really sure what to tackle next. Maybe work on bosses more?
Image


Return to “Exhibition Alley”

Who is online

Users browsing this forum: No registered users and 1 guest