Yesterday I was able to get the project up onto a github repository:
https://github.com/qarnac/windexplorer3d
There were several problem I ran into using git with github. First, it turns out that if there is a git repository already created on github, I need to pull it into my local repository even though the one on github is empty. Trying to just push or clone my repository onto github will not work. Second, there is a bug in the JME3 IDE git plugin as far as I can tell. The git plugin would return authorization errors trying to push onto github, even though the same exact command from a command line would work. This took me a long time to figure out.
Wind Explorer in 3D
Tuesday, August 28, 2012
Monday, August 20, 2012
Bring it all together to present
Last Friday I presented my project, along with a poster, to the people of ViaSat and also TeraData. Since the project is still in development, there were a lot of temporary assets and debugging features turned on. On Thursday night I went through and replaced most of these to make the game more presentable.
I added a background for the main menu and also changed the buttons a little bit. Here is the current look of the main menu:
I replaced all the intro scene to the demo level so that it now tells a story to the player about why they are flying around. Here is the new intro scene:
These are actually STILL temporary assets, since I am not an artist. However, they are much better than what they replaced.
Finally, I wrapped up a lot of debugging/temporary code to make the game playable. Things such as turning back on the altitude ceiling so the user cant go up forever, etc.
I added a background for the main menu and also changed the buttons a little bit. Here is the current look of the main menu:
I replaced all the intro scene to the demo level so that it now tells a story to the player about why they are flying around. Here is the new intro scene:
These are actually STILL temporary assets, since I am not an artist. However, they are much better than what they replaced.
Finally, I wrapped up a lot of debugging/temporary code to make the game playable. Things such as turning back on the altitude ceiling so the user cant go up forever, etc.
Thursday, August 9, 2012
Fixed the bugs from yesterday
Today I fixed the bugs from yesterday's updates.
Specifically, I fixed a bug where when the user presses the space bar to "land" and see if that spot is correct, the timer would get stuck until that text went away. This was caused by a new "textLockout" function I put in yesterday to stop the input of new text to the HUD while something important is being shown. This also stopped the timer from being redrawn to the screen, though it was still being updated in number(the time was correct, just not visible for 6 seconds or so). I reorganized how the HUD system worked and it fixed the bug.
Another bug fixed was the string input from the user trying to "land" being super long. I was unable to think of a good way to auto shorten these inputs to be displayed on the HUD, so I made it so that in the config file where these strings are placed, the maker can add "++" at the end of each line to indicate the next line is apart of that string also and to add a "\n" in between them. For example:
This is an example++
of my fix.
Would become "This is an example\nof my fix." in my program, and would display correctly in the HUD.
There were also a few other small fixes, mostly from the win screen breaking some functionality of the sounds.
Specifically, I fixed a bug where when the user presses the space bar to "land" and see if that spot is correct, the timer would get stuck until that text went away. This was caused by a new "textLockout" function I put in yesterday to stop the input of new text to the HUD while something important is being shown. This also stopped the timer from being redrawn to the screen, though it was still being updated in number(the time was correct, just not visible for 6 seconds or so). I reorganized how the HUD system worked and it fixed the bug.
Another bug fixed was the string input from the user trying to "land" being super long. I was unable to think of a good way to auto shorten these inputs to be displayed on the HUD, so I made it so that in the config file where these strings are placed, the maker can add "++" at the end of each line to indicate the next line is apart of that string also and to add a "\n" in between them. For example:
This is an example++
of my fix.
Would become "This is an example\nof my fix." in my program, and would display correctly in the HUD.
There were also a few other small fixes, mostly from the win screen breaking some functionality of the sounds.
Wednesday, August 8, 2012
Lots of work done today
Today a lot got done. I made a lot of progress on some of the items what were missing from the game. For example, there are now indicators on each of the placement objects, telling the player where he/she should fly to, to see if they should build a wind farm there. This was done in the form of smoke rising from the ground. Eventually I want to put an object at the origin of the smoke.
Also, there is a win condition now! That makes this officially a real game now, as you can run out of time and lose the game, or you can find the correct build spot and win the game. Right now the player just presses the space bar and gets a message on the HUD about the area, but in the future it is planned that the player will land and get a short speech about the area.
There are several bugs that came up from today's building, but I ran out of time to fix them, so that will be for tomorrow.
Finally, you can check out the progress I made today by running my webstart application:
moe006.cs.csusm.edu
Also, there is a win condition now! That makes this officially a real game now, as you can run out of time and lose the game, or you can find the correct build spot and win the game. Right now the player just presses the space bar and gets a message on the HUD about the area, but in the future it is planned that the player will land and get a short speech about the area.
There are several bugs that came up from today's building, but I ran out of time to fix them, so that will be for tomorrow.
Finally, you can check out the progress I made today by running my webstart application:
moe006.cs.csusm.edu
Tuesday, August 7, 2012
some more tools to help make levels
Today I made some more tools to help design levels. Mostly a bunch of small little changes to make the level designer not have to dig through code so much. One example of something I added is a debug flag you can set to true to create and texture shapes for the placement objects, which are read in from the config files, and show them in the game. This will make is far easier to visualize where these shapes are and to make sure the whole map has a shape under it. Here is a picture of two test shapes in my level:
I am also using the height setting that I added last time for these shapes. Normally these shapes would be invisible and below the terrain, but I make them visible and above the terrain while I'm building this level.
I am also using the height setting that I added last time for these shapes. Normally these shapes would be invisible and below the terrain, but I make them visible and above the terrain while I'm building this level.
Thursday, August 2, 2012
Sounds and More
So today was mostly about sounds. After making another scene where the user can win the game, I saw a need for some little sound bits to play. So, I experimented with an easy way to create simple 8-bit sounds. I have created a few that I will put in the game for now. Unfortunately Blogger will not let me upload the .wav file I created as a "video", so I will have to find another way to play sounds here.
Also, I went through and replaced some older code that was put in place temporarily to get level one developed. This old code was hard wired to start level one, making adding more levels difficult. Now there is a small system that level designers must use so that they dont have to dig through the code so much. In the Main class, wherever there is a point where the engine must display something that is dependent on what level the user is on (for example: display the game over scene... but which level's game over scene do we display!?!?!) the game engine will call a router method. This method is just a big switch so that the level designers can make sure the appropriate scenes and what not are displayed for what level the user is on. Here is an example:
public void routerForEndLossScene(){
if(currentLevel == 1){
show level one's loss scene
}//if
if(currentLevel== 2){
...
}//if
...
}//method
I'm not sure if this is the best way of handling this sort of problem, but it is a simple one. All these router methods are in the same location, making adding levels somewhat easier.
Also, I went through and replaced some older code that was put in place temporarily to get level one developed. This old code was hard wired to start level one, making adding more levels difficult. Now there is a small system that level designers must use so that they dont have to dig through the code so much. In the Main class, wherever there is a point where the engine must display something that is dependent on what level the user is on (for example: display the game over scene... but which level's game over scene do we display!?!?!) the game engine will call a router method. This method is just a big switch so that the level designers can make sure the appropriate scenes and what not are displayed for what level the user is on. Here is an example:
public void routerForEndLossScene(){
if(currentLevel == 1){
show level one's loss scene
}//if
if(currentLevel== 2){
...
}//if
...
}//method
I'm not sure if this is the best way of handling this sort of problem, but it is a simple one. All these router methods are in the same location, making adding levels somewhat easier.
Tuesday, July 31, 2012
End game
Today I made an end game! By that I mean that there is now a "game over" scene that plays when the time runs out in any level. There also can be different game over scenes for each level, if the designer so chooses and can be made to happen via the introscene config file.
Here is a quick video of the game over screen, along with its ability to return to the main menu once the user has seen the game over screen for a defined amount of time:
Here is a quick video of the game over screen, along with its ability to return to the main menu once the user has seen the game over screen for a defined amount of time:
Subscribe to:
Posts (Atom)