Single Status Update
For this summer, I will be working on a group-based "research project" with several other students and an overseeing professor as a volunteer. The theme for the whole project is centered around creating fun, engaging and educational video games, to appeal towards a variety of subjects for those aged anywhere from 2nd grade to high school.
For our first week, we were given a choice of using either Unity or GameMaker (apparently idTech 1 or UE4 weren't allowed, so...) - to which I picked unity by the title, and were told to simply get our feet wet with the new editor and create any game. My background involves a bit of Python, Java, C, and Android (and useless stuff like Verilog HDL and Latex), so I didn't know what to expect when attempting to learn C# for Unity's scripting language. My only real game making "experience" comes from using DoomBuilder, Slade3, and some pwad modifications.
Anyways, since I'm a total beginner at using Unity, might as well document my little adventure here over the next few months :)
Moving on to our first week. I went through the Roll-a-Ball and Space Shooter tutorials (and some general editor stuff). Some immediate bad habits were using ESDF instead of WASD to maneuver the editor camera and trying some shortcuts for linedefs/vertices mode... whoops. I initially tried making some Super Monkey Ball clone, except with solid colour spheres as the player and rectangles as the playing field. I tossed that idea after a few hours after I failed to get player movement to work relative to the camera (ie, after you rotate the camera, moving "forward" is relative to some global axis rather than the camera).
Instead, I made a VSRG, or "vertical scrolling rhythm game". I figured why not, since I already love playing those games anyways. I tried to emulate certain regions to indicate accuracy, such as "perfect", "great", "good", or "miss". I ended up using a ragtag hackish method where when a key is pressed, it translates an invisible cube that contains a mesh collider, and checks whether or not there is a colliding note. It waits for 0.05 seconds before automatically translating back to its original spot. So even though the game is seen from a 2D billboard perspective, I'm using really ghetto 3D tricks to get it to work.
Something like , where you can see the pink column of blocks representing the leftmost (or right most from this perspective) lower compared to the other columns. Depending on which block touches the note, you'd get the appropriate score. I'm also sure that there's a better way to read user inputs, but I was running short on time and well, shamefully used an exhaustive list to cover every possible input combination of keyboard presses.
Similarly, I didn't have the time or dedication to create methods to read and sync bpm/music/fps/notes, so in the final project, the notes are very roughly placed and horrible off-beat (so much for rhythm game, right?). It also involves a rudimentary counter with like 50 different cases for each measure, which is terribly atrocious. Some other bugs were being able to delete two notes at the same time, if they were close enough vertically to be touched by two separate boundary checkers.
All in all, I learned that I'm probably going to stick to the 2D aspect of the Unity engine. It seems nice and all, but I suck at 3D animations/meshes and all that jazz, in addition to not having a source of custom 3D models (and I don't know how to model). I also discovered that C# is like some weird child of Java and C, but much, much, much nicer than C. (No char arrays hooray, there are actual String methods)
Week 1: Final game screenshot:
Download (why would you want to): https://www.sendspace.com/file/quhcwa
- Show previous comments 1 more
FIrst image looks like Jurassic Park's Unix System
Huh, it does.
I've never tinkered around with Unity before. But, I'm interested in learning more about it and how to use it.
Anyways, moving onto week 2: we were tasked with finding a really menially satisfying task, and turning that into a game. Stuff like "when I was young, I used to try and time my stopwatch to stop at exactly 1:00:00", "I try to cross the road at exactly zero seconds", "I would do 1+1 on my calculator and mash my = button as fast as possible", etc. I chose the premise of the stopwatch example, and crafted a game out of it.
I opted to not do my game in 3D because I don't have reliable access to 3D models, and the fact that I don't have any experience doing 3D modeling. Instead, I decided to draw everything out as 2D sprites instead, since that's what some people who like to mod for Doom do :)
So I didn't come up with any witty title, but you basically play as a gas station attendant. Then, cars randomly spawn, and they each have a specific amount of fuel that they need. Using keys 1, 2, 3, and 4 on your keyboard, you "send off" the car. Depending on how close you got to the fuel they wanted, you'd either gain or lose reputation points. When your rep drops down to 0, game over.
All art is original, music from some royalty-free website, and SE from some skin on Osu. Hope you enjoy :)
Super delayed update (hence why I'm doing nothing related to Doom mapping): I've started working on a new game where you play as an apothecary shop owner / potion maker, and you create potions according to the customer's request. The recipes come in weird fractional amounts, and it's your job to fetch the right amount and choose the right size of the pot.
I'm doing all the art (never knew how much time this would take me...) and code myself, with SFX, music, and fonts borrowed from other sources. In the meantime, here's a quick preview :)