I’ve been doing tons of research on video game development lately. In particular, research on video game programming and design. I thought I’d share a link to some very interesting articles/tutorials that I found:
Archive for Programming
My previous post was much more oriented towards Unity design, but this one is more oriented towards Unity programming.
This video shows my work on the start of a sound manager for a team that I am currently helping make a game in Unity. Their blog can be found here: http://www.projectkassa.blogspot.com/.
This project uses multiple scripts, one for each behavior. This works all fine and good, but what would be better is one script that can be attached to any audio source. The user could then select the type and enter in the info needed for the type they chose. In the future, I will be reworking the code in this test project to work as such. Currently, there is functionality for 3D sound, like the music box, repeatable sounds, delayed sounds, sounds that only play once ever, and sounds that loop when the player is within a certain collision volume. This was all done in Unity using C#.
I took a bit of a break from programming my 2D engine to try out Unity. This video shows my progress after about 12 hours with Unity. Before setting out to do this, I had only spent a few hours messing around in Unity. That being said, I was mostly following a tutorial, though I did branch out and do some things on my own. Here’s a link to the tutorial that I used, which is very easy to follow other than the Blender bits at the beginning for setting up the level:
In this project, the player can fire using the left click. This performs a raycast and creates a bullet hole texture on the first object hit. If the object has health, this will do some damage to it. There’s some code in there to keep it from colliding with certain objects, as well as a cooldown to regulate fire speed. The right mouse button fires a slower moving thermal detonator that is affected by gravity. Thermal detonators will light any enemy they touch on fire and deal tons of damage to enemies (In this project, it will destroy it in one hit).
The blue enemies have no death animation – They are simply destroyed. When the red enemies die, however, they explode with fireworks particles. You could imagine this being a death animation if I were using models/animations.
The project has a sky box, which looks great, but is very simple in Unity. The project uses C# for scripting. I didn’t show it, but the player can also jump.
Over the past few weeks, I have done a ton of work on the engine. Unfortunately, most of the things I have been working on don’t have a visual component, so there is no video this time around. However, I would still like to give an update on the stuff that I have been working on, so here’s sort of a “build note”-style update:
- Added debug drawing for velocity and acceleration on physics objects
- Switched my graphics system to use pure DirectX, rather than DirectX with SDL
- Programmed mouse input and full screen again, as it was done with SDL before
- Handled minimizing in full screen
- Stopped the game from updating when the window doesn’t have focus
- Added in a system to draw fonts, including custom typefaces
- Added gamepad (USB controller) support!
- Made full screen letterbox the window so that circles in windowed mode will be circles in full screen mode, rather than them being squished/stretched to look like ovals
- Lots of code cleanup
Here is the current engine (See video comments for more details):
Here was what my engine looked like at the end of last week – 7-21-13 (See video comments for more details):
This week, I cleaned up some code, worked on creating a vector library, and used the library to program some 2D physics, namely circle/circle, circle/rectangle, and rectangle/rectangle collision.
Here is the physics engine in work (See video comments for more details):
After taking a good amount of time to think about where I am in terms of my career, I have decided to quit my job as a QA tester and use the 40 hours a week that I would have been at work to program in an attempt to better my programming skills and land a programming job. I will start by making an engine, which I will use to make a 2D game. After that, I will either make a 3D game or start making tech demos of things that I want to show off to employers, like A* pathfinding, a 3D graphics demo, or something similar.
This page has moved to here: http://www.paulkankiewicz.com/my-portfolio/