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 ![]()
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 ![]()
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
If you ask me to do it now, probably I can get up something in a month or two for a complete editor.
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):

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):

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.
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.
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
classes names are like 1 to 10. Variables are just xās and yās. Such a frustrating moment ![]()
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.
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.
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.
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. ![]()

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.
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.
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.
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.
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.
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.