Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1387144 Posts in 66521 Topics- by 59075 Members - Latest Member: Ahren

January 21, 2021, 04:12:26 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsPeasant Macing: Cannon Envy
Pages: [1]
Print
Author Topic: Peasant Macing: Cannon Envy  (Read 3032 times)
Afinostux
Level 2
**

Forgotten Beats


View Profile
« on: June 29, 2009, 03:17:12 PM »

Yes you read that right.

Peasant - salt of the earth. dirty. you're the king? he didn't vote for you.
Macing - Verbification of Mace, the medieval instrument used for bludgeoning.
Cannon envy - the desire to get one's hands on another's cannon.

Peasant Macing was a game I made in highschool using gamemaker. It was inspired by the only fun I ever had playing age of empires 3. The AI kept trying to expand past a cannon tower, but didn't seem to notice it was there, so it would send one undefended peasant at a time. Getting hit by a cannon ball would usually launch the peasant into a nearby lake, leaving his spiffy hat to drift to the ground somewhere. The original Peasant Macing was just that and nothing else: you control a cannon tower, peasants try to run up the hill, you knock them back down. Every hundred peasants knocked into the water would give you a powerup, which were all completely insane. Things like a rotten salmon nuke, burning greyhound, rolling easter island statue, whatever.

Peasant Macing: Cannon Envy is going to be a remake of the above, as it was made in game maker and I lost all the code and executables GO ME. I'm making it in C++ using Irrlicht for graphix and box2d for physics. I'm going to shoot for an NPR style of 3d game that pretends to be 2d to match the original fairly closely.

Gameplay:
You have a side view of a hill leading down to a body of water, with a castle at the top. You control a wizard and a cannon at the top of the hill. You fire the cannon, but cannot adjust the elevation of it. While the shell is in the air, you pull the shell towards or push the shell away from the tower, presumably using the wizard.

A boat will dock at the bottom of the hill, and huge masses of peasants come out. Your goal is to use the cannon to knock them back down the hill into the water, and sink their boat. Whenever a boat is sunk, a new one shows up, so the game continues until you lose.

On their way up the hill, there are certain nodes where the peasants build huts, which spawn more peasants quickly.

Every hundred points makes the wizard load something awesome into the cannon. I'll figure out the powerups when I get there.

Basically, it's like a shmup. Except down. It's a shoot-'em-down, yeah!

Milestones:
I'm not taking any chances. My checklist shall remain in view of the public, where it won't get lost.

Milestone 1 (Hello peasants) Get milestone 1 here!
  • Get irrlicht and box2d to play nice
  • Make peasant model
  • Animate peasant model
  • Get peasant model in engine
  • Maintain and update a list of objects in the world
  • Make terrain base class
  • Make basic peasant class, get the lazy bum to climb the hill

Milestone 2 (Hello wiXard  Hand Metal Left Wizard Hand Metal Right)
  • Make cannon model
  • Make wizard tower model
  • Make Wizard model
  • Animate wizard model
  • Make longboat model
  • Animate longboat model
  • Make longboat object
  • Add the cannon at the top of the hill
  • Add the wizard tower behind the cannon
  • Add the wizard to the tower
  • Make projectile that can be directed with arrow keys

Milestone 3 (I heard you like ballistics)
  • Make peasants react to cannonball
  • Make cannonball explode on impact with ground
  • Make cannonball come out of the cannon
  • Make peasants splash when they hit the water

Milestone 4 (fourt' o joo-lah)
  • Make effects for all relevant actions
  • Add huge sinking effect for ships
  • Make 2 powerups for the cannon

Milestone 5 (bring da noise)
  • have at least 8 powerups
  • finish effects for all powerups
  • have an effect for wizard putting powerups in the cannon

Milestone 6 (when its time to peasant we will always peasant hard)
  • Fix all known bugs
  • finish loss conditions, scoring, title screen
  • Final cutting and polishing
  • Durr...? Tired Durr...? Tired Durr...? Coffee

This is going to be an incredibly silly project. I am under no illusions that it will be easy. If it ends up being good enough, I'm going to release it commercially for an appropriately scaled amount of money. probably between 5 and 10bux depending on quality and my financial situation. Until then, I'm going to dump a build of it on you guys every time I hit a milestone so I can see what sucks and what flies. At the current rate of coding, I should be at milestone 1 by next week. I'll keep this thread updated with screenshots and progress reports daily. My goal is to finish this before college gets back in in september. TOOTLE PIP Gentleman

Day 3 update:
Gorram internets reset when I uploaded this before, so I'll keep 'er brief. I will be on vancouver island for part of next week, so I will be away from my PC I program things on, but I have my laptop, but it has some problems with irrlicht's .md2 animation. I am getting paid for work during this trip, which is awesome. I want to get the first alpha build available for download on thursday or friday. words from the past!
« Last Edit: August 02, 2009, 04:23:47 PM by ZeuglinRush » Logged

battlerager
Level 10
*****


I resent that statement.


View Profile
« Reply #1 on: June 29, 2009, 03:49:24 PM »

Sounds fantastic!




Help! Help! I'm Being Suppressed!
Logged
Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #2 on: June 30, 2009, 04:30:00 PM »

Allright, first of the daily updates.

I didn't manage to maintain the blistering pace I had going yesterday, mostly because I managed to make a fairly lousy mistake in the engine that I have no idea how to fix Cry

In reality, not a big deal. It'll just set me back a bit. This is my first time making a big project in C++, so I'm having to adapt some patterns I'm in the habit of using in java projects to work in C++, and I'm having problems whenever something works slightly different. Not to worry, I'm still on track to have milestone 1 done by next week.

Here is a GIF of the peasant run cycle! the animation speed is faster in engine. I had to take it through the GIMP to make the GIF, and guessed the FPS wrong  Shrug

The model is 512 tris. There are a couple of polygons on the shoulders that don't seem to display in the screencap for whatever reason, but beh. Final texture size will be 128x128 or something small. The above GIF is a good indication of how big they are onscreen.

There are unnecesary polies around the crotch, but I think the triangle count is low enough not to worry about it.
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #3 on: July 02, 2009, 01:05:10 AM »

Second daily update. I don't know if this counts as daily. I remembered to post it a bit late.

Today is canada day. I didn't get a heck of a lot of actual done, but I did get to meet up with my more experienced programmer friend, who helped me to fix my ginormo errors. Good lord were those stupid. Never try to program C++ without fully understanding what the compiler instructions are and do.

I worked out the entity diagrams for most of the objects today as well. My way of designing object systems is mostly based around what I learned in my database class. First, start with a set of all the desired attributes and states. Then, normalize it like you would any SQL database. The resulting tables usually give a really good indication of the objects needed to keep track of everything robustly. Anyone have another way of handling game objects and states in the that's worked well in the past?
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #4 on: July 03, 2009, 06:46:19 PM »

Day 4:
Back to the better pace from earlier! no pretty pictures to show, but I went all day without getting hung up on any code related stuff, got an actor baseclass that keeps an irrlicht scenenode and a box2d object synchronised, and made a start on the terrain. The terrain mesh is being created in box2d, but I have not got irrlicht drawing it yet. Once I know exactly what it's doing, it'll officially be the first 100% finished part of the final design, since the terrain serves no purpose to the actual game logic, beyond physics.
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #5 on: July 04, 2009, 09:24:55 PM »

Day 5:
Yet another decent day. Today was more grindy though. Unlike yesterday, I don't get to check anything off the list, but that's mainly due to the fact that box2d seems to be running and coming up with NaN coordinates. ASSBALLS. Time to bring out the necronomicon and consult the chapter on summoning physics.

On a more pleasant note, the entity base class is finished, and has a think function that is called every frame. Also entity factories. On a less pleasant note, nothing actually appears to be being drawn because the physics asses off to the far corners of the earth as soon as it starts.

One final problem is that my timing function seems to suck up 100% of one core, which is really not right at all considering the game is locked at 60fps. I'll ask about this in the technical section.
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #6 on: July 06, 2009, 01:40:10 AM »

Day 6:
I got some important junk done today. Not the least of which was discovering I had linked the X and Y coordinates of the 'actor' object to the X and X coordinates of the physics object Durr...?

I got my cpu-consumption problems fixed, finished up the basic actor class, and made a peasant class. I'm still not 100% on how custom scenenodes work, so the terrain is taking awhile longer, but hopefully not much.

At the moment, the peasant class is just the peasant model attached to a physics object rather than anything cool like an actual peasant or anything. the only game logic it does now is to remove itself when it falls off the bottom of the screen.

I'll be on vancouver island for three days in the middle of the week. I'm bringing my laptop to program things, but I won't be able to post anything until friday at the latest.
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #7 on: July 13, 2009, 09:15:02 PM »

ima call this day 7:

Got back from victoria way later than I thought I would. three days later in fact. The upshot is that now I have some foodmoneys. The failshot is that I left my USB stick with the source code I had intended to work on at home, so I got no programmens done  Facepalm

That being said, milestone one is still in sight for sometime this week. Have a screenshot!

Yawn BORING damn screenshot.
I think you can sort of see the nifty 'fake 2d' thing I was talking about. I'm trying to give the graphics a 'handmade' feel like what pixel art tends to get. Not much of that to see yet, but I love the way the peasant translates so far

On a less productive note, I've started making a 'wishlist' of some powerups I want to be able to include eventually:
  • Earthquake - A giant gorilla with tiny angel wings and a halo flies onto the screen and lands on the island. He begins beating his chest, which makes the whole island shake. Then he flies away.
  • Rotten Fish Barrel - The cannon fires a large wooden barrel followed by a cloud of flies. On impact, the barrel spews rotten fish all over the place. Peasants hit by the rotten fish begin running back down the hill, knocking over other peasants in their rush to wash off the rotten fish.
  • Mr. Subtlety - A bear made of fire jumps out of the second story of the tower, and charges down the hill, bowling over peasants and burninating their houses. Causes a huge explosion on contact with the water.
  • Giant alien robot - A huge robot stands up on the horizon, and starts randomly spewing lasers.
  • Typhoon - Gravity is lowered, a spiffy rain effect is added, hail is dropped on everything.
  • Skemandos - Three undead commandos are spawned at the base of the castle. They attack the peasants with extremely oversized weapons until they run out of ammo, then they run down the hill, do a flying tackle into a group of peasants, and explode.

Another idea I've been playing with would be 'powerdowns', which would act in a similar way to the random powerups the player gets. Once a set amount of criteria had been reached, the peasants would do something spectacularily annoying. Maybe send a zeppelin instead of a longboat, for instance. If you have any crazy ideas for this, post 'em.
Logged

Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #8 on: July 22, 2009, 05:28:33 PM »

Day 8:

Oh hell yes is that some
MILESTONE 1
I suppose I could have been posting more things on a daily basis, but it feels wrong to bump this thread when all I  would have to say would be stuff like GODFUCK that's an odd bug if I do say so myself. My Word!

Run it! it needs windows! Tell me bugs! There's not much to see, but tell me if you see odd things that I don't, and where!

Bugs I know:
  • first peasant spawned moonwalks
  • peasants can collide with each other (it ought to be a soft collision. If anyone knows how to make a collision group in box2d that can collide with members of another group but no members of its own, please let me know here)

Break it more for great justice!



Also it says 'lol' in the console when a peasant is removed. That's a debug thing I forgot to take out. It lets me know a peasant was removed without problems.
Logged

John Lee
Level 1
*


View Profile
« Reply #9 on: July 22, 2009, 05:42:06 PM »

This sounds like a pretty cool game.

When you say you get a powerup after 100 peasants, are they one-shot powerups?
Logged
Afinostux
Level 2
**

Forgotten Beats


View Profile
« Reply #10 on: July 22, 2009, 09:31:16 PM »

This sounds like a pretty cool game.

When you say you get a powerup after 100 peasants, are they one-shot powerups?
Yeah. The powerup would be consumed when you fire, and some of them would have a duration to them. Skemandos for instance would work until they run out of bullets.

One thing I did before that turned out really well was to make it so that you could build up multiple powerups that would all be fired at once. Before I just made it so that your next shot would be powered up, but I might play around with it a little more this time.

So basically, if you kick a hell of a lot of ass, your next shot could end up being Mr. Subtlety, a typhoon, AND skemandos. You know. Madness sparta etcetera.
Logged

Mooseral
Level 0
*


what what


View Profile
« Reply #11 on: August 16, 2009, 02:30:03 PM »

Huh. This forum appears to be more buried than it was previously... although perhaps I was just not paying attention.

ANYHOW.

I played the original Game Maker version of this game, and it was quite excellent. Surprisingly so, in fact. The premise sounds a bit odd, but it works in practice; knocking peasants down a hill with a cannon can actually be ridiculously amusing. It's a shame the original code/game got lost; hopefully this one works, and works better, eventually.

Anyhow, figured I'd post here, to get a rise out of ZeuglinRush and see if he can give his RABID FANS an update. Also more peasants.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic