The game is almost ready. The game page is visible for everyone to see, but the final version will be visible to all this Friday (Oct 2nd) at 12:00BST.
Our introductory project for this year is to create a demo for an indie game of our design. Our choice between three themes - "system," "virus," and "childhood" - was the former, "system."
We constructed several ideas for each theme, ranging from a multiplayer maze to a children's racer, but settled in particular on a 3D racer revolving around space rovers. Obstacles are strewn across the course(s) and a time limit is also in place. The game will be primarily be single-player and be targeted towards children (accurate ages pending).
Above are some pieces of art that will serve as inspiration for the landscape - primarily mountains, yes, but different courses will have different hazards and landscapes. Besides, it is currently unconfirmed as to whether or not the game takes place in our solar system. We want each course to be distinctive, but not so much that it doesn't feel like a planet that, in possibility, could actually exist. However, we only have a month to complete this task, so we may only be able to finish one course, and probably not the way we envision it.
Each member of our team has a particular focus - mine is on the programming and other technical aspects. It's been roughly six months since I've done any coding - due to the sudden outbreak of COVID-19 - so I'm probably going to struggle with this task, but there's only one way to find out.
Sept 10th
After trying some Unity Playground projects, we have decided to change the game from 3D to 2D - primarily due to the deadline of the project, but also (personally, at least) out of being more comfortable with it. It will still be a racer, but based on a platformer. An example of how this'll potentially work is the Turbo Tunnel from "Battletoads" except with slopes, shortcuts, and variance in obstacles and scenery.
Sept 15th
Today's developments in the project regarding programming:
A death zone: whenever the player or enemy touches a certain area, they instantly die. This killzone can take various forms - lava, pits, whatever is necessary.
Pickups that heal the player or enemy. I tried working on a temporary increase in fire rate but I ended up breaking a script, so I had to fix that. After talking to a lecturer, I now have a potential plan. The real problem now is figuring out the code.
Enemies no longer die in one bullet.
I tried making the player's gun capable of rotating, but I still have yet to figure that out.
Sept 16th
After learning about the creation of buttons that are actually functional, I'm going to implement a brief title screen. So far, there's the button and a little bit of additional text ensuring this is only a demo.
The movement for the player was problematic today, or so I thought. I just had to change movement from all directions to horizontal only.
Pillars have been added and can be destroyed by bullets. Animations will probably be needed, but at least it works.
A course design has been thought of and is under debate.
Sept 17th
Today, I attempted to create a script to allow for pickups to give additional effects to the player or enemy that picked them up, such as some healing, extra speed, or increased fire rate. I can't find a lot online about that, but I might be looking in the wrong place.
I have removed the character rotation mechanic. It seems to interfere with the movement controls on occasion.
The course is also under construction. I am adding components to the course so it can take shape.
Sept 18th
The level design has been finished. It now includes a cave section - complete with platforming - and falling rocks. Other racers are still a hopeful ambition, but we'll implement it if we can. After toying around with auto-mass, we should have some form of balancing if we have racers with different weights. Maybe heftier racers will have a superior boost to compensate...?
After battling Unity for a while, I decided to go with a somewhat unique control scheme (right). Oddly enough, Unity was having some troubles having both movement and rotation mechanics on WASD and arrow keys respectively. This control scheme makes the game playable and somewhat enjoyable, especially alongside the shooting. While there isn't much to shoot, it'll be fun to try and include something down the line.
Sept 22nd
The primary focus of today was designing a new controls image - which I'd say worked. This (left) is a lot cleaner than the last one. While I prefer the previous one stylistically, it didn't really work functionally.
After working on that, I decided to rework a portion of the course being too complex. This IS a demo, after all. This area is still under construction, but I can't wait to get it finished. Unfortunately, one of our team members has been absent for the past week, so we are missing their assets.
Sept 24th
Updated art assets are now being added to the game. Now I don't have to stare at stock purple blocks and an endless black abyss for a background.
The portion of the course I was still working on before has been finished. Instead of an absolute cluster of platforms, we instead have fewer platforms, complete with additional movement.
We have also added falling rocks. Why? Because it provides a sense of action.
Sept 25th
Okay, now THIS is a pretty big problem. One of the core Unity scripts - the UI script "Selectables.cs" - is getting errors. I don't know how to fix it, our lecturer doesn't know how to fix it, and I can't find anything on the Internet to help either of us fix it. We have an idea of a solution, but it's going to take time to find out if it works. At least now I definitely know not to work straight from OneDrive...
The problem has been solved. I had to make a second version of the game and copy all of the assets and scripts. Exporting via HTML has some problems so it's a downloadable file.
Sept 29th
The first course is pretty much done. We just need to add a few more assets here and there and we're ready to send out this demo. As a challenge, we'll come up with concepts for a second course, even though - let's be honest - it probably won't be finished in time, alongside some environmental hazards such as spikes or lava or something.
Sept 30th
The demo is incredibly close. We just need to work on more particle effects and we're good. I've got a version prepped in case we can't finish those in time, however.
The WebGL export solution has been found and, as such, I am shifting the demo from executable to in-browser HTML.
Oct 1st
On the penultimate day, one final snag. When implementing the final flame effect for the bike, I have gotten it to toggle between visibilities depending on whether or not E has been pressed. However, its current status is that accelerating - the thing you do with E - hides the flame, whereas releasing it shows it. That's the exact opposite of what I'm looking for.
The problem has been solved and all I had to do was untick the Sprite Renderer. The demo's done and published ready for tomorrow in both HTML and executable forms.
Oct 2nd
Okay, there's one small bug that I can't fix. The "Return to Title" button that appears on destruction by rocks doesn't work. I tried fixing it but it still doesn't want to work, so I'm leaving it be.
Final Thoughts
How do you feel the project went?
Considering we had about four weeks for this project, I'd say it went pretty well. I haven't used Unity before this project but, now that I've tried it out with one project, I'm feeling pretty confident about the rest of the course. Coding my own scripts was, at first, a struggle - primarily because I have also never touched C# before. Still, at least I now have a small amount of C# experience.
If you could do this project again, how would you improve it?
I do have one idea as to how I could improve this project - adding music. I mean, ambiance is nice and all, but it doesn't really get a sense of adrenaline - something that pretty much NEEDS to be in a racing game, even if it's more of a platformer than a racer. The only problems being that I don't know much about making music and I don't think we'd have enough time to get it perfect.
What can you take from this project that you can apply to projects of your own?
Unity is an incredibly useful game development tool - a tool that is widely used in the industry and has active support. While I may choose a different engine for some projects, Unity is a really great starting point.
My small experience in C# can also help me to grasp further examples of C# script and maybe even work on some myself. Whether or not I will is a different story, however. There are a plethora of languages out there and I still don't know what language suits me best.
External Links
https://www.megapixl.com/gas-giant-planet-surface-with-asteroid-belt-illustration-62269377
https://www.blendernation.com/2020/06/10/project-cloud-stylized-sci-fi-planet-surface/
https://webeenow.com/venus-the-infernal-planet-still-has-numerous-active-volcanoes-on-its-surface/
https://fineartamerica.com/featured/9-extrasolar-planet-lynette-cookscience-photo-library.html