How long would it take you to make a level of your favourite retro game in Unity?

Do you mean the player control or something else? Wondering if maybe you are relying on Unity physics and that is part of the problem?

What do you find the biggest challenge to be in making the level editor? Couldn’t you just use a tile map editor for this and save a lot of time?

Biggest hurdle was that I was recovering from having gallstones coming out of my urinary tract, started this about 1 or 2 weeks after :hushed:

I made parser of the original level data file (cross referencing this) in VS studio that outputs readable text/strings. This took approximately 2 weeks, where I can already know what tiles hold what object at which location. Something like ā€œRoom 1, Tiles 3, Floorā€.

Someone had already extracted the image resources, so I just use that and made prefabs out of them using 1 pixel = 1 unit as a base.

The biggest challenge I faced was actually the tiling system.

The original game uses a technique called magic link. A level is made up of limited number of rooms. Rooms are made of 10x3 tiles. Links to each room are referenced by ID, and room will only load 1 at a time.

This is the part of design I was trying to change, I wanted navigation to be seamless, metroidvania style.
Placing the rooms next to each other was the easy part. Trying to store them in a grid on the other hand… So I asked around in Gamedev.net. Some folks gave me a few pointers on the grid structure, I think I understood what they taught :stuck_out_tongue:

Was working on it on and off between nights and weekends. Eventually I got another paid project coming in, so I halted development.

Development was slow because I was trying to make the source freely available to the public, so I didn’t use any assets from the store (except Progrids, if I remember correctly the publisher name was 6by7 before changing to Procore).

This was of course back in 2014, I was short of 1 year using Unity professionally :slight_smile: If you ask me to do it now, probably I can get up something in a month or two for a complete editor.

1 Like

I mean months and months for the entire project, although getting the feel of a game right can be very time consuming if some of my previous FPS games are any indication.

Current Problem

My problem currently is just replicating the aiming from the original game (in a way that works). Currently it’s setup like this (original game in the corner):
2944059--217939--sfP_1.jpg

Problem is that the reticles can be misleading about the projectile’s path, as it’s only accurate at certain distances. You can end up with situations where the reticle is directly over a target, but the projectile sails straight past because the target is too close (or far):
2944059--217940--sfP_2.jpg

Using the two separate reticles for different distances is also a no go, because judging the distance of the targets is pretty difficult and you can never be sure which reticle to aim with.

3 Likes

Well that all explains it. You made something very true to original as far as actually being able to load the original map data even, custom level editor, etc. Plus medical and other time off.

Greaf stuff. I wish we had more posts and entire threads on this kind of stuff. It’s odd how for a game dev forum there seems to be little actual game dev talk (ā€œin the trenchesā€ talk focused on the actual game and challenges faced, etc).

This already looks very interesting and I’d give it a play when you get to the point of throwing up a WebGL early demo.

1 Like

I was looking on how to to implement the original physics.

Then I looked at the decompiled code,which is in C. I understand nothing of it :face_with_spiral_eyes: classes names are like 1 to 10. Variables are just x’s and y’s. Such a frustrating moment :rage:

I’m very impressed by the folks at princed.org that has managed to port the game into other modern engines. Someday I really wanted to get back to finish this.

1 Like

Nice to see there’s some interest. I might make a thread for this at some point.

Actuallly, nope. You have not recreated the original level.

Original Cannon Fodder had greater variation in background sprites, and not just one tile for a ground and one sprite for trees.

Check the first frame of the video and compare to your picture. You’re missing up to a dozen tiles.

There’s also matter of gameplay.

Basically, this is a rough prototype at best and not the original level.

2 Likes

Sometimes I think it would be great if i could throw together a clone of my wife’s favorite game (Zelda) for her birthday, but then I remember how I had like 5 free hours to do anything this last week and am still trying to make my first game.

Anyway, I think what Arowx threw together was respectable.

1 Like

How lazy am I allowed to be? Because duplicating a level for an older 2D game would likely be a matter of just importing an image from the web of the entire level, placing down colliders, and assigning scripts to those colliders. By the way here is the level layout for the game I spent entirely too much time playing as a kid.

I’d have to erase the sprites from the image too. Or find one without them. :stuck_out_tongue:

2944176--217958--Pitfall Level 1.png

4 Likes

Uh huh.

In other words you haven’t got anywhere near close to something resembling the first level of Cannon Fodder. Here are some other things you’ve missed

  • Bullet range
  • Enemy AI
  • Enemy spawn points
  • Buildings
  • Level scope
  • Character names
  • Character promotions
  • Inventory and item pickups
  • Cliffs
  • Water
  • Cut scenes
  • Kill counter
  • World map
  • Splitting troops

I do acknowledge that recreating an existing level of an existing retro game in an engine like Unity is fast. But I think you are massively underestimating what was in the first level of Cannon Fodder. To properly do the first level of Cannon Fodder you are looking at a month or so.

Seriously, go play the game again. Level one is a free download. Then we can come back and talk.

3 Likes

Well, like most people here I assumed that when you said ā€œmake a level of your favorite retro gameā€ you truly meant to recreate a level as in exact same look, sound, gameplay with all the polish, whistles and bells that a game like this has. Of course you can churn out a rough prototype in just a couple of hours, put in programmer art, and call it done.

Many people already said it better than I ever could, but that is not the first level of Cannon Fodder; it’s a rough prototype that (at the moment) fails to replicate what made Cannon Fodder great in the first place.

1 Like

Wow great feedback guys, anyone else tempted to give it a whirl in their spare time, amazing what you can do in a few hours with Unity and a MSPaint style program?

And I think this highlights the yawning chasm between what is classed as poor and great or the uncanny valley of game development. Or the gap between what a developer wants to do and what they end up making.

My Feedback Response…

  • Bullet range *GP
  • Enemy AI *GPC
  • Enemy spawn points *OOS
  • Buildings *OOS
  • Level scope *GPC
  • Character names *GP?
  • Character promotions *OOS
  • Inventory and item pickups *OOS
  • Cliffs *GP
  • Water *GP?
  • Cut scenes *OOS
  • Kill counter *GP
  • World map *GP?
  • Splitting troops *GP?
  • Original Cannon Fodder had greater variation in background sprites *GP
  • You’re missing up to a dozen tiles. *GP
  • There’s also matter of gameplay. *GPC
  • Basically, this is a rough prototype at best and not the original level. *GP?
  • it’s a rough prototype that (at the moment) fails to replicate what made Cannon Fodder great in the first place *GPC

Feedback Key
*GP - Good point thank you for your great feedback.
*GPC - Good point but could you clarify this with more details.
*GP? - Good point but is it really needed or even used/in the first level. Does not having it detract from the first level?
*OOS - If it’s not in the game’s first level ( or the level I’ve made ) it’s out of scope.

1 Like

Just go for it do whatever you want to do and any way that works for you!

OK I think you’re making the same type of mistake I would make. Are your crosshairs in 3d world space?
I’m betting the originals were 2D sprites, positioned as needed.

Try this:

  • Make them 2D in screenspace.
  • Raycast from front of the ships weapons to a Z plane set to the depth of the nearest enemy (in front of you)*
  • Screencast this point and position the far rectacle there.
  • Screencast the mid point between the ships weapons and this point and put the near rectacle there.

*This should avoid the problems with 3d pointing, you may need to have a minimal Z plane/distance and you might want a proximity lock, e.g. do a SphereOverlay test on the zplane point and if any ships are in that sphere auto lock onto them. Ensuring you get the weapon to lookAt that point before you fire it.

Good Luck and Have Fun.

Had a hunch that GP does not stand for ā€œGold Pieceā€. Anyway.

Basically, what you did is a fun, fast and easy part. Prototypes can be done very quickly, building stuff from scratch is a lot of fun, but ultimately prototype accounts for a small poriton of work (something like 5% of it top), with the rest being polish, polish, polish, iteration, poilsh… which can ultimately be very tedious. Basically, if prototype takes days, final product will take months. That’s the rough idea.

Regarding ā€œwould you be willing to give it a tryā€ā€¦ giving my art taste I’d need to clone Another World or Mig 29 Fulcrum and not a pixel game. Since I know that I’m capable of doing that, it won’t be much fun, besides there are other things I need to work on. Lots and lots of them.

1 Like

I’d definitely give it a go even in Unity because I like these kind of projects. But I’ve done many tiny games and am now working on… hmm… well a tiny game… BUT it is one part of a bigger game. Only working about 5 hours per week as well. Pushing trying to do 1 to 2 hours per night was just too much. Caused burnout big time.

I will say @Arowx I like your focus on streamlining and maximizing development speed. I think it is very important. Also your focus on small games. Again another very wise thing I think.

Kind of a shame we are at opposite ends of the spectrum on how we develop because otherwise we could team up hire an artist and build a nice line of games within a year.

I can understand that but you need to have fun as the old saying goes ā€œAll work and no play, makes jack a dull personā€.

However I think this could be a good approach for less experienced game developers*, they can skip the hard part of game design and iteration and just work on a game they like and know (or think they do). They get to learn from the experience and any shortcomings in the resulting game are most probably highlighting a gap in their skillset.

Even if you’re starting out with a small team of indies it could be worth the time to test your skills out on a quick project like this and it would give your game designer time to get stuck into your new game.

  • Watched an interview of one of the 80’s game developers (Graftgold) and he said he liked to do ports to new hardware as it gave the team time to learn the new machine.
1 Like

Fun is important when you’re just learning to program, but having too much fun during development would mean you’ll never finish the project, because you’ll have endless distractions.

When you’re trying to finish a game you need a goal, focus and willpower instead.