Okay so my “game” is going to be based on Metroid Prime. Why the italics you may ask? Because I’m very new to this, not that skilled, and Metroid Prime will always be better than my project in every way . I’m going to post my .blend file that has the game whenever I feel I have made a significant change (added more rooms to the map, enemies, ect…). I’m doing this project alone and so I will take any constructive criticism into mind while making this.
Any how, here is the begging of my work, more updates will be on the rise (they will not be quick, maybe 1 every 2 weeks).
Controls for the character: Make sure you are using the “player camera’s” view before starting the game!
W = Move forwards
S = Move backwards
A/D = Turn character left or right
SHIFT + A/D = strafe left or right
SPACE BAR = Jump
MOUSE MOVEMENT = Vertical look, Aim arm cannon
LEFT CLICK = Shoot
Here is the file, I don’t know if textures and audio will load properly on your end:
Sorry, been a while since any update was made on progress. I do not plan on posting the most recent file in this update I would rather add more rooms before doing so. Hopefully this will do for now and thank you to anyone who has been following this project.
Here are two rooms that will be in the game (textures, sky, etc… may change in the future).
. Elevator Room
The camera/ player object is named “Cube” in the Outliner panel.
Rooms are summoned to layer 1 by “Cube” colliding with a ‘door’ (all but one of them is a whitish octagon) sending a message to its corresponding empty object causing an object from layer 2 to be added.
(example: You’re in “Room A-2”, you run into “Door A-2->A-3”, “Door A-2->A-3” tells “Empty A-3” to add “Room A-3” to layer 1.)
The doors will have a Collision and Always Sensor (as seen in the screen shot) that can be swapped to keep certain rooms open when starting the game engine.
Set the layer to layer 1, and position “Cube” in the room you want to see.
To control “Cube” use W to go forward, S to go backwards, and mouse to look around. Space Bar can be used to jump and in Blender 2.79, you will be able to double jump.
This is all made in vanilla Blender (not UPBGE)
This project is starting to lead to some artist blocks in terms of original concepts, if you have an idea for a themes, enemies, character abilities, etc…, please share them with me. As always constructive criticism is gladly accepted and changes to the existing file will be made in the near future.
In an effort to make a since of progression I am beginning the next area, the decaying mechanical ruins. With the natural land I was spending a lot of time of a single room (not that that’s a bad thing) and they were not that special in my eyes (apart from a few). The area will have a main color pallet of matte tan, neon green, dark gray, and other colors of that nature. You can expect that this area will be complete with puzzles, gears, moving platforms, and other mechanical elements. Enemies are mostly going to be defense/ security systems along with creatures that have made the dilapidated civilization their home. This will most likely end up being the most intricate part of my Metroid Prime inspired game. Again I would like to state that I wan’t to be compared to Prime (Metroid Prime is really good and will be better than what ever I make), it’s just what made me want to do this. Suggestions are welcome, there is no harm in conversation.
Here’s a screen shot of the entrance room, it doesn’t reveal much but eventually more will be shown.
Thanks for the support, it really does go a long way . I didn’t get a chance to work on the project over this past week because of Spring break (no school=no computer) so I’m really gonna try and work faster to make up for the lost time.
I did do some brainstorming and got some stuff down on paper. Please forgive me for the quality of the drawing I am very much aware that it’s not good . In it I plan for the control panel to be protected by three energy shields controlled by three buttons. Shooting the buttons will cause the shield of the corresponding color to lower (This will be made clear by a simple cut scene and audio cue). Once all three have been deactivated the player can access the control panel and lift the lock on the door to progress. The buttons will be hidden in easy to find places inside the room, and there will be some easy platforming on rotating gears.
First room with blight puzzle elements is pretty much done, I only have a few tweaks here and there to do. I explained how it would work in the previous post so I wont repeat it here too. On top of that, I added in a HUD. Right now it doesn’t have any logic attached, but it will when the time comes (pretty soon ). Here’s a screen shot from the hallway between the two rooms in the drawing, as well as the newest room!
As someone who idolises Retro and for whom Prime will always be the (subjectively) best game of all time, I really like the direction this is going. If I were to do Prime on PC I’d probably adopt standard FPS controls - given that the series was never afraid to adopt the best control scheme for a given platform, even if it involved waggling a wiimote around or tapping a stylus - but I totally get it, if you’re going for the authentic tank controls.
I don’t think there’s anything I could say that you don’t seem to already know about game development philosophy, or how to stay motivated. Reggie Fils Aime seems to have it covered.
So instead, I’ll tell you what happened to me, and maybe it’ll give you a list of things to avoid.
I ran out of options with logic bricks, and learned Python. Coding is all but unavoidable in game development, so as others have said, better to start earlier rather than later. Python is an excellent language to learn and you can use it outside Blender too.
Starting out I was completely goal-oriented and had a kind of tunnel vision, ignoring ‘basic tutorials’ in favour of just getting stuff done, no matter how complex the code was, no matter how little I knew. This isn’t the worst way to learn, but I ran into a blockade with Blender’s built-in vector / matrix systems. How orientations and positions are represented and manipulated is probably the single biggest barrier to entry in game coding. The attack surface cuts across multiple domains of maths. I was several years away from receiving an academic education on vectors or matrices, and had only just begun learning how programming languages work, much less linear maths implemented with Python-wrapped C++ classes.
As you’re already switching to a simpler project for now, my advice is, read up on orientation matrices, and try to achieve simple things with Python instead of a logic brick, as a way of practising. (There’s a Python function for applying torque to objects, for instance.) If/when you don’t have access to a computer capable of running Blender, if you can lay hands on any sort of computer at all, it can probably run Python at least.
I began to encounter the limits of the BGE, and scene-centric game design. The problem you’re tackling now, of loading a room when a door is activated, is the very same problem that drove me to consider alternatives. LibLoad is currently the only option within the BGE (this might change in future), and it has the drawback of freezing the game for an indeterminate length of time, while rooms in Prime loaded seamlessly. LibLoad does read the .blend file in another thread, allowing the game to keep running, but it then briefly hangs to actually interpret and instance the contents. Not ideal, but I imagine things could get better if there’s a rewrite of the BGE coming.
Stay with the BGE for as long as you want to, it’s very capable of creating fun games, and like Python it’s an excellent learning tool. Just be aware that the seamless loading technique used in Prime isn’t entirely within its range, for now. It can almost do it.
I tried some other engines, none were as friendly as the BGE. To expand my options, I went nuclear and bought ‘C++ For Dummies’ for $50, started learning C++, and started making my own game engine. It wasn’t particularly serious, so I kept using the BGE. This is probably the point where a sane person moves to Unity or UnrealEngine.
I stumbled through game engine design, slowly becoming more and more discontent with the BGE’s internal structure as I went. The breaking point was probably when I used LibLoad to instance vehicles in a raycast vehicle sim, and discovered intricacies that made it difficult to use. It was the wrong tool for the job, but it was the only tool available.
5 years at university taught me Java and tried to teach me a lot of very bad habits, like spamming getters and setters. As an experiment, I tried rewriting the engine in Java, but the language has some glaring drawbacks, so that fizzled. I got stuck between C++ and Java, because both have advantages and disadvantages.
I discovered ‘D’, which markets itself as ‘C++ but less stupid’, and disowned both C++ and Java forever. Now I’m here. In the past year, D’s central repository has exploded with new game engine projects and related infrastructure, so if you do find yourself going nuclear looking beyond the BGE at any point, D has promise for the future. As someone who knows more about C++ and Java than any normal person should, I can give D a huge tick of approval compared to both of them. It’s a mid-level systems language, similar to C, so there are a few hurdles transitioning from Python (an interpreted high-level language), but it’s far kinder than transitioning to C++.
Otherwise, if you’re more about using a GUI-equipped development environment, I suspect Unity is the heaviest hitter right now (until the BGE gets a rewrite). I couldn’t get into Unity personally, but I’m sure it’s just a matter of persistence.
Now, regarding this project - if you plan to pursue it long-term, be prepared that it will need to evolve away from a reimplementation of Prime. As you say, it’s prime ‘style’, but… that’s pretty clearly the zappy zappy purple beam we all know and love, and Nintendo is fairly strict about fan projects that way. My catharsis is paying homage by incorporating little elements, like having a single weapon that switches between multiple modes. And you can always have a nameless character wearing colourful armor that looks suspiciously like a new suit variant…
My first game project is now about 12 years old and I’m still fully committed to finishing it. Every day you get a little closer, a little better at the craft. I suppose the only reason it’s taken this long is that I decided to make a game engine halfway through, so … yeah. Maybe don’t do that. Keep doing you.
All the best! I like your reticule design, and the way the camera moves with the cannon is very slick.
WOW ! Thank you, this is very enlightening and actually made me happy to read your tips. I would love to get back to your comment now but for me it’s 11:58 P.M. and I’m still doing homework. I will give a much more in depth reply to you tomorrow when I’ve had some rest.
Okay so first, I probably understand exactly how you feel about the game’s direction because Prime is also my favorite game (and I still compare many modern games to it) and I hold Retro to high standards as a result of that. When I was working on my game I kept thinking: “How would this fit in with Metroid Prime’s game design?” I thought of this before I started to make a room, I kept that in mind for possible puzzles I had planned, and even mini bosses and area bosses. Now you might be thinking I had bosses already made, but no they haven’t yet. However, before I even started posting about the game, I had crappy concept art only a few people and I understood. If you’re interested in seeing it, I threw much of it out but I still have some things leftover (I’m serious though, the drawings are pretty bad ). With that out of the way, time to talk about controls. The last .blend file is a couple weeks old, and since then I have changed some of the aspects of the controls and the HUD.
The controls are currently:
‘W’/ ‘S’= Forward/ Backwards.
‘A’/ ‘D’= Strafe Left/ Right.
‘Shift+A’/ ‘Shift+D’= Turn Left/ Right (in place).
‘Mouse Movement’= Turn Player (& camera)/ Aim
‘Space Bar’= Jump
With the newer controls, the player is able to utilize both standard FPS, and tank controls at once. For me, I personally think tank controls are good for making quicker turns, and then the mouse can be used for finer aiming.
In terms of changes to the HUD, I removed the reticle. I did this because the reticle essentially lied to the player about where the shot would land. This happened because the reticle was only accurate at specific distances due to the arm cannon being tilted a little bit to make it look like it was positioned correctly to shot at something. Aiming the arm cannon honestly also feels a bit easier with out the reticle too, I think this has to do with the fact that once you figure out how it shoots the rest comes naturally.
I would like to thank you, for this line:
I get the feeling that people don’t think I researched game design philosophy because I’m still in high school. I know that they don’t mean to annoy me when they give me a lecture on it, but I’ve dumped so much of my free time into studying design philosophy that I get the feeling you get when; You go above and beyond for an assignment, but no one bats an eye. I’ve read several articles on the topic, watched reviews for related games, analyzed what games do by watching sections of long plays, and more. (By the way, if anyone want’s those resources I would be more than happy to provide them). With out further a do, I’m going to reply to the rest of your post.
I’m interested in learning how to code in Python so I can apply it to making my game(s). I understand that it is, for the most part, unavoidable. I’ve mentioned it in the past how I don’t think I’d have the time to learn it right now, or at least not fast enough. But now I know that I do not have enough time to learn how to code because of my time constraints. I am a little intimidated by learning what is essentially another language, time is the biggest reason I haven’t put more time into it. As of right now I’ve been able to accomplish what I need by using the logic brick system. With that said you entirely correct, I will need to learn how to code and the sooner it happens the better off I will be.
Just a side note: You mentioned how their was a Python function for applying torque to objects. I am not using the Character type object, but rather a Rigid Body type. The Rigid Body also allows for torque to be used on object with bricks.
Before I started making the game I followed the playlist of tutorials by BornCG and ThaTimst3r (both on YouTube) as well as other guides. After that, I took the information I learned from those and applied it to my project in ways not shown in the video (Ex: using what I know about HP bars, and converting it to ammo count bars). Once I learned, I started setting goals for my self. I went as far as to make a map of a large area, drawing enemies, and drawing sections of the world all before trying to make it in Blender. The first time I did this, I ended up scrapping almost everything I had as concepts to start over because I didn’t like the direction it was going in (funny how Prime 4 was also restarted ). So as far as not being tunnel visioned, I think I’m okay.
3/ 4) I did look into LibLoad and LibFree when I was looking for a solution for the problem. I tried to learn Python basics with Repl.it so I could learn how to use it properly but it was taking too long. Because of that I went back to the drawing board and started thinking of using a combination of Boolean properties, Near Sensors, Edit Object Actuators, among other things. Theoretically I could get it to work, but I never tested it in Blender. I imagine that the process of setting all of that up would most likely be monotonous and cluttered. I’ve also heard of people using Python to cull the map real time based on what the camera can see. That was another possibility, but I really liked the idea of keeping doors in the game and I didn’t fully understand the culling process/ method. Realistically I don’t know if I would leave BGE because I don’t see myself making games professionally.
I haven’t met the breaking point yet, I still believe that if I can think it Blender can be used to make it. I kind of see it as if I can’t get it done this way, how else can I achieve the same thing or at least a similar thing. I’ve had friends who used Unreal and Unity tell why I should switch, but I really like Blender for what it is.
I took a look a Unity but realized that I’d still need to use blender to make the models and what not. I ultimately decided that I would rather just keep it all in the same place. Plus again I like blender for what it is, I prefer 2.79 to 2.8 beta but that’s probably because I’m not always good with change and 2.8 doesn’t have a game engine so need I say more?
So on to the last bit of your post, regarding this project. I’m gonna try and make this quick and easy, if I don’t I’ll end up writing an essay on why I like Prime lol.
I do in fact love Samus’s arm cannon and hot pink is my favorite color, but the arm cannon is just a place holder until I make a some sort of gun. I used the arm cannon because I just needed something for the screen shots. The weapon I want to use in the final version would look like the dream child of these: some NERF Halo weapon, the Ice Beam from Prime, and with this kind of pink. The real problem would be music. I’m no composer, so I don’t know how else to handle that department other than to make custom loops of music from other games and giving all of the credit to the original owners in the credits. This is most likely not going to be enough. And the character is non-existent at this point. There was actually a joke my friends had about the Nintendo Ninjas taking down my project. My friends and I laughed at the thought of my game catching the attention of Nintendo and them feeling threatened enough to shut it down.
I think that covers all or almost all of your post. I would just like to say thank you for spending the time to not only read my work, but go the extra mile and tell me what you think, tips for developing, and overall just being helpful. Sorry it took so long for me to get back to this.
Ahhaha, you wanna trade for some of my dorky scribbles from 2007?
Ah, good compromise.
I wonder if you’ve considered pulling the field of view back a bit? Playing the old .blend again, it’s a bit difficult to see what I’m jumping on with it zoomed in that much. Maybe you’ve already changed that
Hehe! Welcome to the fun little world of head-gun misalignment, which affects basically all first-person shooters. There are two dominant schools of thought - either automatically aim the gun at the surface the reticule is over (using a raytest through the center of the camera), or have the bullets literally spew out of the middle of the character’s face, and hope nobody notices.
If I recall correctly, Prime used the former, and I know for a fact that Halo almost exclusively uses the latter. It’s carefully disguised, but easy to spot if you know to look for it. (Needler rounds do NOT come out of the gun…) The latter is definitely the superior option for multiplayer games, since it ensures that if you can see an enemy, you can hit them without accidentally hitting a piece of rubble in front of the gun.
Don’t take it personally. Particularly with the BGE, new developers tend to come in unprepared and overconfident. (As with any hobby, really.) Standard protocol is to throw harsh realities at them until they simmer down and comprehend what they’re getting into. It can be laid on a bit thick at times, particularly if you’re perceived as the teenage stereotype (all enthusiasm, no experience).
My advice is that, out of all the red flags, giving overly optimistic timeframes is the worst one. Many times I’ve been excited about some new feature or idea, claimed it will be done in ‘a month or so’, and then it’s suddenly two years later and I haven’t even started. It happens! Generally, if completing some task involves a skill you plan to learn on the fly, it’s impossible to predict how long it will take. Learning takes time. In solo development, the only guarantee you can give is that ‘if I’m interested in it, it will get done eventually. Maybe not this year, maybe not this decade, but eventually.’
Anyway. The critical thing is that you demonstrated that you’re researching and pursuing this on your own. You didn’t start out hyping it up or fishing for team members to do the difficult work; you’ve only used this thread to share progress and request feedback. That’s the main thing. On top of that, you’ve switched to a simpler project at a sensible time, without being advised to. It’s normally difficult to get people to do that.
Aye, focus on assignments for now I don’t think learning to program is as difficult as learning a foreign language, but it does take time.
Yeah, the professional games industry is an awful place to work, or so I hear. All my projects are strictly for the love of the game (as the saying goes). Maybe they’ll earn money someday, but fulfilling the artistic vision comes first, even if it takes ages.
Gah, I love making games. Programming too. This stuff’s addictive.
As do I. All I’ll say is that, as your technical requirements grow, you might start to see situations where the BGE forces your solutions to be more complex than they need to be.
Maybe that will be an issue for you, maybe not. I’m an incredibly pedantic person, so don’t listen to me too much.
I mean… I’d read it.
As far as I’m concerned, it’s one of the best looking weapons in all of science fiction. Here’s summore dorky concept art. I still have my heart set on finishing this design one day.
First of all that sounds amazing. Secondly, would… would it happen to look anything like this? Maybe with different colours? 'Cause… damn. I was trying for practically the same thing.
I’m not using this design anymore, so if you wanna take any inspiration at all, seriously… go ahead.
Honestly, same here. I’ve dabbled with it, but music is still one of those alien arts for me. And Kenji Yamamoto is a hard enough act to follow to start with.
I’ll tell you something no more than three other people in the world know: in 2011, I had wiki content hosted on gameblender.org, where I described my game, including the primary weapon. It wasn’t well-written stuff, it was very obviously a newbie’s first try at documentation for a little game idea that didn’t have any weight to its name at all. It was basically impossible to get the wiki to show up in google results.
Because ‘taser’ has become a generic name for electrical weapons, I was ignorant that it is in fact a trademarked brand, and unwittingly named the primary weapon after it. I’d been using the name for almost a year, and was very, very surprised to one day receive a proper-doper full-on cease and desist (the exact wording was ‘cease use’) where some poor legal eagle had printed out all my wiki pages, circled usages of the brand in pen, and scanned them back in, then collected them into a neat little email and politely (but exceptionally firmly) required me to sign a document agreeing to cease use.
T’wasn’t the most pleasant encounter, particularly as a 19 year old milk-drinking shut-in, so just uh… well. Be warned Some companies don’t need to feel threatened to take action.
(incidentally, I’m rather proud to have signed and resolved the issue on my own, using my then-brand-new wacom tablet which meant my signature was an actual signature, hoi hoi hoi)
Do you use google docs at all? If you do I could share some of my design documentation, if reading about other people’s game projects interests you
its always sad to see a project im excited about end, but it was damn fun rooting for you and seeing your progress. ill make sure to give the last area a try! this was good work, and i look forward to whatever projects you partake in next! hopefully one day you can revisit this one!