Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411490 Posts in 69371 Topics- by 58428 Members - Latest Member: shelton786

April 25, 2024, 01:25:56 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsMetal Mage ~ MegaMan-esque game/engine in development
Pages: 1 2 [3] 4
Print
Author Topic: Metal Mage ~ MegaMan-esque game/engine in development  (Read 12282 times)
Elrinth
Level 0
***


View Profile
« Reply #40 on: August 11, 2013, 11:31:34 PM »

Changes
* Tightened up animations a bit. Shoot+run -> run -> Shoot+run -> ... transitions weren't properly sharing timers. Jump shoot resets shoot animation timer each time it's fired now aswell
* Added spawn animation to Tinman Totem enemy
* Fixed so script properly updates a tile if a tile is set inactive/active.
* PlaySound can now take a length which says how long we'll playback a sound
* Remade bullets into PlayerDeathPulse. It looks kinda like the one in Mega Man 2 now.
* Added death explosion for enemies

TODO for pre-pre-pre-alpha
* Ability to place checkpoints (this allows you to respawn at certain points if you die after them)
* Death -> respawn (Comes together with the above feature)
* A short pause before the game starts displaying READY (also comes together with the above feature)
* Spawn graphics for Mega Man (when (re)spawning megaman, simply show the standard Star Trek beam me in gfx)
* Boss door trigger area? (this one is closer to 70% done now that script area is getting there)
* Saving & Loading all new things (I'll need to store Checkpoints and triggerareas, shouldn't be too much of a hazzle)
* Metal Man Boss Logics
* Found bug in saving/loading. Now when loading from a different location that 0,0 0,0,0 then the level bugs out! Smiley


Gonna be a abit slower again with updates since I just started working on my normal job again :/
« Last Edit: August 12, 2013, 03:18:40 PM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #41 on: September 16, 2013, 07:46:07 PM »

Changes
* Saving/Load bug fixed!
* Ability to place starting location for a level. The purple guy shown is actually blinking white every few millisecs. He represents the spawning location for metal mage.
* Started working on multiline textbox. This is so I can do ingame scripting. It's rather buggy atm as seen below :D Text cursor somehow managed to get into fourth line which doesn't exist Tongue



Some thoughts
Actually had checkpoints as an own entity. But I decided to make use for scriptable trigger areas instead. So if a player walks into the trigger area, I can do AddCheckPoint(Location); via script. Instead of actually just placing checkpoints all over the map. Cuz the checkpoints would need some kind of trigger area anyways. So I decided to reuse the scriptable trigger areas for that instead.
Logged
mhughson
Level 0
**



View Profile WWW
« Reply #42 on: September 16, 2013, 08:04:32 PM »

Looks awesome! Seems surprising true to the source material (eg. MM knock back distance and timing). Can't wait to see some more videos!
Logged

Elrinth
Level 0
***


View Profile
« Reply #43 on: September 19, 2013, 07:04:44 PM »

Changes to Textbox
* Fixed selection pretty much perfectly
* Deletion of selection also works as intended
* Fixed other weird bugs which was happening with textboxes like the X,Y pos of the cursor was getting negative values, hehehe Smiley


The red area represents where I marked with the mouse cursor. The blue selection area is what was actually selected. (Maybe I should show an extra box for every Carriage Return aswell!?)

Thoughts
Wow multiline textbox takes alot of code! :D
I'm up to 1100 lines of code now ONLY for a textbox, hue hue hue hue.
Still the scrollers don't work :D
But now selection of text works Superbly. Could only change some offsets of where it's actually selected. Deletion works great of the selection aswell.
* Selection with SHIFT + arrows don't work yet tho. But I can definatly reuse some of the code I wrote for the mouse selection.
* The font is always 8x8 and will always be that wide atm. But at a later time I wish to make the font less wide for certain characters. I'll require a measure line-width for selection of text then. But that's for a later time :D
Logged
Elrinth
Level 0
***


View Profile
« Reply #44 on: September 23, 2013, 01:33:02 PM »

Changes
* Bugfix: CamPoints didn't correctly save the connected campoints. Now they do, and they will no longer contain duplicates either
* Bugfix: If Tinman Totems got shot in the eye they exploded once, if parts flew outside viewport when they respawned they still kept the x-momentum so they flew really strange when the tinman respawn :D The tinman could become invulnerable this way.
* Bugfix: Keyboard CTRL-key no longer breaks input
* Fixed scriptability further. It's still not saved tho.

Here's a vid showing the scripting in action. I need to add the button clicked down graphics... :D
« Last Edit: September 23, 2013, 01:38:44 PM by Elrinth » Logged
Udderdude
Level 10
*****


View Profile WWW
« Reply #45 on: September 23, 2013, 02:41:41 PM »

Certianly looks like a lot of work is being put into this .. I hope you make 10 Megaman games with it to make use of it. :3
Logged
Carrion
Level 10
*****

crowbro


View Profile
« Reply #46 on: September 23, 2013, 09:20:52 PM »

I hope this game has really heavy music.
Logged

Elrinth
Level 0
***


View Profile
« Reply #47 on: September 24, 2013, 12:36:16 AM »

@Carrior: I'm curious to what you mean with heavy music, could you please explain further?

I haven't really decided yet if I'm going to do the music myself or if I'll let someone else do it.
My sound vision is to keep it very NES-ish while still not being restricted to the same constraints as the NES was. So I'll definatly allow more channels, more effects.
I'd like the music to fit the area the player is in, while still being somewhat catchy. Hopefully I can precent different kinds of situations to the player where I can introduce some emotional music aswell.

One idea I had for the music was to let every single stage/location get its own composer. The artist and the song name would be precented like it's done in Castlevania Symphony of the Night when the areas change.



@Udderdude: Hopefully I can finish at minimum ONE game in the engine. There's always been plans to support top-down gameplay in the engine aswell. But first and foremost, create a sidescrolling game.
« Last Edit: September 24, 2013, 12:42:28 AM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #48 on: September 24, 2013, 04:57:54 PM »

Changes
* Scripted boss doors finally.

Notable bugs
* Seems I have made something which corrupts the saved data, so when it's loaded again it screws up campoints and trigger areas in that section.
* Another notable thing is that the player somehow flies in the air every time after the first try, when the player walks thru the door.

Stuff I'd probably prioritize up, which are changes to the textbox
* CTRL+A would be useful. Incase you wanna mark all text at once and just replace it with something which brings me to next point
* CTRL+V. I have to face it, pasting stuff from the clipboard would be very useful until my textbox is up to par with any normal text editor like notepad++. Also it's going to make it easier incase I somehow screw up stuff so I can simply repaste it from some document outside
* CTRL+C. Any changes I do in the game could be useful on the outside. So having it stored would mean alot.



Edit
* I went to bed, then I solved the bug in my mind. I was changing the wrong section. I was changing the CurrentSection with the SAVE when moving to a new section. So I quickly got up from bed and fixed the bug, and viola, it worked directly as intented! :D
So ignore this previous buggy video! :D I'll create a new one with whole metal man stage tomorrow.

So for next time I work on the project (hopefully tomorrow):
* Make sure driller spawners are saved, or simply recreate them to be included in normal script-areas, this is probably the smartest thing I could do.
* Code the starting point for "RUN / STOP"
* Code Metal Man Boss logic
* Add music change to the scriptability (will be done very quickly)
« Last Edit: September 24, 2013, 06:04:09 PM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #49 on: September 25, 2013, 06:09:23 PM »

Changes:
* Fixed so you can "RUN" the game by either pressing the button in upper right corner or clicking F5.
* Fixed so player spawns at starting point
* Fixed player respawn after death
* Added Fade To Color function, with a timer so it can fade from current color to a different color.
* Changed quit key from ESCAPE to ALT+F4. Escape is now reserved to get out of the game and back into level editor mode

Notes
* Stupid me for not zooming in at the proper size it should be when I recorded the video Tongue
* Somehow new added monsters do not get saved to the level. Which is kind of a pity. Also I should make it so that enemies don't move while the game isn't being run.

New video of whole Metal Man stage except boss in end


Try it out:
Controls: Press F5 once it's running. Use Arrows + Z and X to control the hero.
Download

TODO
* Make Blinking "READY" text when starting...
* Zoom so that the game is fullscreen when starting to play
* Fix bug with newly enemies not being saved to section
* Reset position of GliderSpring enemies just like Cog jugglers and tinmantotem enemies
* Tinman Totem head shouldn't move in X when being shot. I looked it up in original Mega Man 2. Also it should crumble up from the location where the head landed and not from below the screen
* Health meter should be zoomed
* Metal Man boss logics (includes: Scriptable Spawn of Boss, Boss health meter)
« Last Edit: September 25, 2013, 08:34:12 PM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #50 on: September 28, 2013, 06:35:40 PM »

changes
* Made Blinking "READY" text when starting...
* When starting a game, it'll zoom so it's "fullscreen" when starting to play
* Fix bug with newly added enemies not being saved to section
* Reset position of GliderSpring enemies just like Cog jugglers and tinmantotem enemies
* Tinman Totem head shouldn't move in X when being shot.
* Started looking up alternative for gfx animations as APNG instead of having to code every animation manually.

TODO until 10%
* I looked it up in original Mega Man 2. Tinman should be spawned already first time you see it, and after shot it should crumble up from the location where the head landed and not from below the screen
* Health meter should be zoomed (so it is correct size)
* Metal Man boss logics (includes: Scriptable Spawn of Boss, Boss health meter)

« Last Edit: September 28, 2013, 07:55:58 PM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #51 on: September 30, 2013, 02:38:40 PM »

Changes
* Metal Man boss almost fully implemented. Minor randomization which needs to be added

TODO for 10%
* Ability to change conveyor belt direction by metal man boss... When this is done, the screen should blink aswell
* Victory for Mega Man
* Zoom health meter
* Display boss health meter
* Some minor gfx offset adjustments for the metal man sprites.
* Set music during start of playing
* Set music via script when boss is introduced.
* Stop music when going back to edit mode

The todo grew from previous update, hehehe Tongue But these things should definatly be done by next update.
I also read up on how to do slowmotion and things like slow motion only for certain enemies.
Pretty good article on it here: https://www.scirra.com/tutorials/67/delta-time-and-framerate-independence
Logged
Elrinth
Level 0
***


View Profile
« Reply #52 on: November 11, 2013, 02:07:24 AM »

Haven't coded much at the game. But I HAVE come up with some kind of storyline and some more areas for the game which I'm not going to reveal at this time. I can reveal that I'm planning on having some kind of horror place like Super Metroid abandoned space ship. In this specific stage/location I'll try to get the game feel very creepy. I think about locking it so it's not one of the first stages you can visit.

One thing I have been wondering about for a long time now is how to make my workflow better.

* It takes forever right for animated sprites to get each sprite frame placement good. So I've thinking of making them as GIFs in the painting program and simply importing those gifs, which will save me having to time stuff right etc. Maybe I can also somehow store bounding boxes for the animation in the gif?
I already tried 0 second display time in GIMP for gif animation and it still shows that frame, so that won't work to store bounding box in.

This giflib works: http://giflib.sourceforge.net/gif_lib.html#idp272512
Had to make some adjustments to it to get it working because unistd.h doesn't exist in windows. So there was a few functions like open, fdopen which didn't exist. There is however a replacement for unistd here if you'd like to use that, I didn't try it myself: http://stackoverflow.com/questions/341817/is-there-a-replacement-for-unistd-h-for-windows-visual-c

One thing you have to remember with OpenGL is that you want to do as few texture swaps as possible. Therefore it would be sweet and intelligent to actually create a new texture 2048x2048 which contains all graphics which are used right now and only use that texture.
But at some point even that big texture isn't going to cut the deal. So texture swap will be hard to get away from.

Regarding Metal Man boss. I figured how to make the conveyor belt go different direction when screen flicker. I can actually do this in many ways:
* Multiply by *-1 for each tile which has movespeed set. However when leaving the area, dying or exiting Play Mode these tiles must get their original value set back. So this is probably a bad idea

* Create some global variable for the level called bool isInvertedTileMovementX. I'm leaning to this one. And when applying the tilemovement to the character. I can also read this variable when I'm drawing the graphics for the tile. Which is good. So this one is the winner! <- this one I did

I could create a local variable for our character only, because that's the only thing which should be affected by the tilemovement. But since the graphics actually need to update, I don't think that's a good idea.

Changes:
* Metal Man boss changes conveyor belt direction every 15 sec (perhaps too long)
* music during start
* music via script when boss is introduced
* stop music when going back to edit mode

TODO:
* Zoom health meter
* Display boss health meter
* Metal Man boss sprite offsets are still crappy, needs fixing
* Timings on Metal Man blade throws
* Victory when boss is defeated
Logged
Elrinth
Level 0
***


View Profile
« Reply #53 on: November 29, 2013, 05:57:15 PM »

working on graphics (I know, they suck atm):


also added the ability to playback .nsf files (among other formats like spc, vgm, gym, kss)
so I can use tracked music from famitracker! that way, the game will not be super large! yay.

Right now I'm down to about 6 MByte. But it will grow ofcourse with audio samples, levels, bigger EXE with more logic, more graphics.
Logged
KM
Level 9
****


KM "Shilling for CASH!"


View Profile WWW
« Reply #54 on: November 29, 2013, 06:34:16 PM »

The Krion Conquest anyone?
Logged

Elrinth
Level 0
***


View Profile
« Reply #55 on: December 14, 2013, 02:22:11 AM »

@KM: I had forgotten about Krion Conquest. I never actually played it, but I saw some vids of it. I see why you think it seems similar :D I will be going more for a Mega Man / Faxanadu crossover.

Changes:
* Migrated over code to use GLFW for creating windows and handling input. That way I've covered multiplatformness! So good news, this can probably be built for linux or MacOsX now. Sadly I don't own a Linux computer (yet) nor a OsX computer. But my big bro has a Mac, so I'll be trying to compile everything there at some point. It's not a priority now anyways.

* Added Settings files which are read from. Both player settings (input and playername) and game settings (volumes, resolution etc)

* Created very slim menu system

* Added menu for changing player controls. It's not quite done yet, but the base logic is all there, so now it's only small stuff left.

* Support for controlling your character with both Keyboard & Gamepad (thx to GLFW)

* Ensured stuff builds in VS2013 on my Windows 8.1 Laptop. Not too shabby with 80-150 fps in debugmode but I'm very sure I can probably optimize things further, not going to worry about that yet tho.

The TODO is identitical to the previous list Smiley But I'd really like to get player settings in.

TODO:
* Zoom health meter (this almost done)
* Display boss health meter
* Metal Man boss sprite offsets are still crappy, needs fixing
* Timings on Metal Man blade throws
* Victory when boss is defeated
* Fix Player Input Menu
* Add Splash screen(s) with timers when starting the game
* Fix player input menu better
* Add Main Menu
« Last Edit: December 14, 2013, 02:28:42 AM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #56 on: December 17, 2013, 06:14:48 PM »

Borrowed graphics from Mega Man Unlimited menues and made this



You can now properly change all buttons and if you try to assign same key more than once it's current key will switch value with the one which has the new key.

Only Save, Defaults and Exit left to position better and make so they actually work.

Hmm I think I should lock so normal controls cannot be changed to the print screen button hehehe :D Maybe one should be able to change the print screen button aswell?

It's alittle crowded with controls. I will sure not need all these buttons for the actual game either. Plus maybe I should write JUMP, FIRE, WeaponSwitchLeft, WeaponSwitchRight, Menu, Pause instead?
« Last Edit: December 17, 2013, 06:20:20 PM by Elrinth » Logged
Udderdude
Level 10
*****


View Profile WWW
« Reply #57 on: December 18, 2013, 07:36:18 AM »

Needs less ALL CAPS.
Logged
Elrinth
Level 0
***


View Profile
« Reply #58 on: December 20, 2013, 07:43:58 PM »

Menues menues menues

P1 settings menu 100% completed. Only thing left is if I want to support being able to click with mouse to change controls, but that's not a priority.
For other players I can just send in a different number and it should work directly, I haven't tried it yet tho. Only P1 can control in the menues atm.
If we go into player 2's control screen then p2 controls will work. Arrow keys, escape and return will work on all player settings screens, they are like reserved keys for the settings.

here's a fugly splash screen which I coded in to show 3 secs then fade out. you can set to skip this in the cfg file (not settable ingame):


fugly main menu:


Thank you for your feedback Udderdude. Yes I'll make the control settings screen with less caps :D Only caps on the first letter I think.

I have an idea that a gameplay demo will run in the background while the main menu is shown. instead of just black. But that's for later...
« Last Edit: December 20, 2013, 08:18:11 PM by Elrinth » Logged
Elrinth
Level 0
***


View Profile
« Reply #59 on: January 15, 2014, 02:06:06 PM »

Updated to 10%

Finally 10%!!! Beer!

Changes:
* Added stage select screen

* Fixed menu bugs
* Added own sfx to menues
* Static linked all dlls into ye exe = nice cleanup of root folder. Ofc openal32.dll can be static linked aswell, but well I failed last time I built it, need to rebuild it Smiley
* ALT+ENTER fullscreen/windowed feature fixed. right now it swaps between 800x600 and 1920x1080, but later it will swap between the resolutions you set.

test build: 2014-01-15
« Last Edit: September 30, 2017, 07:14:41 AM by Elrinth » Logged
Pages: 1 2 [3] 4
Print
Jump to:  

Theme orange-lt created by panic