Jump to content

Photo

No Name Yet -- CD'awgs Non-ZC Temporary Dev Log

C++

  • Please log in to reply
101 replies to this topic

#91 Saffith

Saffith

    IPv7 user

  • ZC Developers

Posted 24 September 2016 - 07:46 PM

The best idea I've got at the moment is hovering. Doesn't have to be much, just enough to give you another thing to think about. And it's another thing that could be upgraded over the course of the game, of course.
You could always try fiddling with the physics, too. Little tweaks can make a lot of difference.

#92 C-Dawg

C-Dawg

    Magus

  • Members

Posted 01 October 2016 - 02:49 PM

Upgrades during the game are great, but I really feel like the player needs to have a good time immediately, too. No point in making something an upgrade if the game is boring without it.  (I'M LOOKING AT YOU. MORPH BALL)

 

Hrm.  Here's what I think I'll start with:

 

1. Solider gets native Dash ability.

2. Tank gets native Reverse Drive ability.

 

The Reverse Drive would mean the tank fires backwards from it's movement direction, and this might lead to more dynamic combat situations.  Helps emphasize that the tank is far better for raw combat and the soldier is better for sneaky movement.  I think it will need some more really massive normal enemies that you need to pummel while fleeing in order to bring out its potential, but I think that's fine.

 

This sounds like a really simple way to add some dynamism to the normal movement of the two player objects.


Edited by C-Dawg, 01 October 2016 - 02:52 PM.


#93 C-Dawg

C-Dawg

    Magus

  • Members

Posted 04 October 2016 - 01:16 PM

Dash is functional now.  Need to add the "poof" effect behind the player, maybe some motion effect while dashing, but it works great.  I also tinkered with momentum a bit so that the Dash feels more natural as it wears off in the middle of a jump.

 

The rest of this week: Reverse Gear. and, perhaps, enemies that are easier to handle if you are using it.  Something large that chases you down, for example. 

 

The more I think about making Dash and Reverse native, the more I like it.  It opens up more options for the equipment to modify how it works.  For example, the Tank in reverse might do different things with its equipment; perhaps the Excavator picks up and carries things if you're in Reverse, or other equipment could act differently.  For example:

 

1. Thresher - Lets you cut down obstacles in front of you or behind you.

2. Vaccuum - Switch from suck to blow.  

 

etc



#94 C-Dawg

C-Dawg

    Magus

  • Members

Posted 06 December 2016 - 09:42 PM

All of that stuff implemented, and the reverse gear is awkward.  I think it needs to be a button that "locks" your direction, instead of flipping it.  That would feel better.

 

So, new to-do list:

 

1. Make reverse gear into "lock direction;"

2. Add a boss-type enemy;

3. Flesh out the subscreen a bit;

and, time permitting

4. Make the camera into its own object. 

 

After that I will be preparing an .exe file so ya'll can play a little tech demo of what I'm doin.



#95 C-Dawg

C-Dawg

    Magus

  • Members

Posted 06 February 2018 - 11:56 AM

So, finally back working on this again. Upgraded the computer to solve some issues and we're going strong!

 

0. Got "lock-gear" working on the tank. Hold the button to lock a direction for firing while you can still move freely.

 

1. Got camera working as its own object and removed all xOff / yOff uses from game objects. Nothing except the camera should care about this.

 

2. Camera zooms smoothly now when you're in and out of the tank. Still need to make it pan more smoothly rather than snapping to the player, so I can do stuff like lead the player when they're moving fast, focus them on other objects, etc. Thinking about using a small box for tolerance. Can't really use platform locking, though, since lots of the action will be in the air or on the walls.

 

3. Working on first boss enemy - the Queen Grub. You'll encounter it three times during the first run through Mars, as a Grub (fight as tank), as a Chrysalis (fight as soldier), and finally as a flying thing (have to swap between tank/soldier mid-fight). It's nice to be coding these, as my favorite part of coding is probably solving runtime errors on game objects. It's like tinkering with a robot at that point.

 

Once I get the three modes of this boss working, I'll design a preliminary game through the Mars zone where you fight them and collect the first three items. Then, I'll learn how to make an executable and put it up here so you can check out what I'm doing.


Edited by C-Dawg, 06 February 2018 - 11:58 AM.

  • Anthus likes this

#96 C-Dawg

C-Dawg

    Magus

  • Members

Posted 18 February 2018 - 10:21 PM

Lots done these last few weeks.

 

1. First boss is completed and working great!

 

2. Level design completed up through the first boss and the first item, the Jackhammer (pogo stick).

 

3. Tanchor (Tank+Anchor, get it?) Implemented. Basically, I don't want to have to worry too much about the solider getting stuck or falling further from the tank than he can jump back up. So, the soldier always has a subscreen option to activate the "Tanchor" and warp directly back to the Tank. This ALSO lets me design levels like one-way side scrollers (think Megaman) as the Soldier goes off on his own. This should let me design levels very different from every other Metroidvania out there, since there can be a central core maze map, and lots of one-way "levels" going off of it on all sides. Finish your little level? Tanchor back to the main maze!

 

4. Rooms can have multiple exits now.

 

5. Solider subscreen fully fleshed out. Not all the items are there, but your cursor now can select any of the spaces where they will be.

 

6. Tweaked Jackhammer functionality. It not only "marios" off of enemies, it also lets the solider go across small spikes.

 

7. Implemented triggered explosions; basically, you hit the trigger, and then an explosion goes across the room hitting certain kinds of blocks. Teaches the player that sometimes the soldier has to get out of the tank to get into some area the tank can't go to trigger the destruction of a barrier.

 

Work has started on the room triggers and flags setup. I need way to tell if a room has been "cleared" for boss purposes, and to know if a room is being used for a boss so the player can't leave it. Also, I want to take control of the boss music away from the boss itself and put it at the World Manager level.

 

Next steps:

 

1. During the week, continue level design. It's easier to draw a room in an hour than it is to add new functionality to the code; takes less brain cells, too.

2. Figure out why my xBox controller functionality has been utterly screwed up ever since I migrated my code to my new computer. Code is the same, but now some buttons dont work, others don't register when you STOP using them... it's screwed up. Keyboard works fine.

3. Finish implementing boss trigger system.

4. Draw and code the next boss, guarding the Excavator attachment for the tank.


Edited by C-Dawg, 18 February 2018 - 10:26 PM.


#97 C-Dawg

C-Dawg

    Magus

  • Members

Posted 26 February 2018 - 12:10 AM

1. New enemy added: Blurper. Spits projectiles when you're lined up.

2. Designed a few new screens.

3. New projectile: slime ball.

4. Drew sprites for slime splatter, Queen Chrysalis, Queen Bee (preliminary), and Enemy Plasma.

5. Started working on Queen Chrysalis. It gets taller as its damaged, spawns Flusdloops. The projectile doesn't work correctly yet.

 

I still need to figure out why in tarnation my Xbox controller code broke when I moved from Visual Studio 2010 to 2017. Might have to get Saffith in on this one...!



#98 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 26 February 2018 - 01:29 AM

I still need to figure out why in tarnation my Xbox controller code broke when I moved from Visual Studio 2010 to 2017. Might have to get Saffith in on this one...!


M$ crap always breaks. This is why I still use VS 2008. Anyway, there could be many reasons why but it's hard to make wild guesses. It's possible it could be a compatibility or dll issue. Here's my XInput init code I use; you'll notice that it checks for older libraries as well.



static bool Win32LoadXInputDLL()
{
	if(XInputModule == null)
	{
		XInputModule = LoadLibraryA("XInput1_4.dll");
		if(!XInputModule)
			XInputModule = LoadLibraryA("XInput1_3.dll");
		if(!XInputModule)
			XInputModule = LoadLibraryA("XInput1_2.dll");
		if(!XInputModule)
			XInputModule = LoadLibraryA("XInput1_1.dll");
		if(!XInputModule)
			XInputModule = LoadLibraryA("XInput9_1_0.dll");

		if(!XInputModule)
			return false;

		XInputGetState = (XInputGetState_t)GetProcAddress(XInputModule, "XInputGetState");
		XInputSetState = (XInputSetState_t)GetProcAddress(XInputModule, "XInputSetState");
		XInputGetCapabilities = (XInputGetCapabilities_t)GetProcAddress(XInputModule, "XInputGetCapabilities");

		if(!XInputGetState || !XInputSetState || !XInputGetCapabilities)
		{
			Win32UnloadXInputDLL();
			return false;
		}
	}

	return true;
}
Maybe you're using MultiMedia instead? IDK if you have a library that handles this instead.

Glad to see you're still working on it. Is it still a pain to work with the map editing tools you were using before, or have you solved that issue?

Cheers.

#99 C-Dawg

C-Dawg

    Magus

  • Members

Posted 26 February 2018 - 03:35 PM

I did solve the issues! The problem was all user-side; Mappy does not come with much in the way of documentation, so you have to read the code to figure out which commands you need to accomplish whatever.  The biggest problems for me were how to retrieve specific data from the Mappy array and how to use layers so I can have a Background, Block, and Object layer for collisions. I also made some tweaks so that I don't crash the game when something checks for collisions outside the size of the current map (it returns the top left corner of the map instead). Once I sauced that, I was off to the races. 

 

It's at the point now where I have to make very little changes to the core code, and it's more about adding functionality and adding new objects. That is, I've reached the level where I'm able to use my own code kind of like I used Zelda Classic, which is super nice.

 

The next big "core functionality" issues will be in-game messages and fonts, a more interactive HUD with characters, events and plot, and a file-save feature. But! I'll cross that bridge once I'm done with the first three bosses and I can show off the game mechanics themselves to you all.

 

As for the XBox code, do you want a link to the project file? You can see what I'm doing. I am using Allegro and basically took a xc.c out of the box and plunked it into the code. I then read it just like I read for key input in main.cpp. It worked fine in 2010. 


Edited by C-Dawg, 26 February 2018 - 03:37 PM.


#100 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 28 February 2018 - 04:08 AM

Sure, I can take a look. Worse case I guess is it works for me, but then you'll know it's an OS related thing.

#101 Anthus

Anthus

    Lord of Liquids

  • Members
  • Location:Ohio

Posted 01 March 2018 - 07:42 AM

Glad this is coming along so nicely. It's always nice to see these types of games have a smooth development. :)

#102 C-Dawg

C-Dawg

    Magus

  • Members

Posted 01 March 2018 - 11:23 AM

When you have low standards and only a single developer doing everything, its bound to be pretty smooth!


  • Anthus, Ricky of Kokiri and newstarshipsmell like this



Also tagged with one or more of these keywords: C++

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users