As my prior post states, I will be making a game this summer. I’m looking for some people to help out. You don’t really need any specific skills. I’m looking for ideas, coders, creative people, or really anyone that just wants to be involved in the process. If that sounds like something you would like to be a part of, please get in touch with me. You can do that by leaving a comment or email me Here or give me a call/text (if you have my number). I already have a few people on board so just let me know, and I hope to hear from you soon.
Posts Tagged ‘game development’
Some of my friends and I will be coming up with a project game to work on over the summer. We are meeting up next week to brainstorm ideas, as far as the games content and platform. I will be the only coder in the group so it will be a challenge to convey the limitations of what we can do in the time frame of this summer. Hopefully, the others will be able to contribute in the form of everything creative (sprites, sound, music, design, etc.) to save me time.
On another note, I will be adding highscores to MazeMania for the DS in the upcoming weeks. Hopefully I can make it online, but the library for WiFi for PAlib is very limited, and it can’t be emulated so debugging will take much longer. So, only time will tell.
After a recent all nighter, I got a lot of stuff done for the NDS version of MazeMania.
| Intro Screen | |
|---|---|
![]() |
|
| Level | |
![]() |
|
| Death areas and Walls | |
![]() |
|
| Question round | |
![]() |
|
| Game Over | |
![]() |
|
| Credits | |
![]() |
|
According to the PAlib examples, reading from files via FAT is supposedly pretty easy, as depicted by this code (shortened for space):
#include "PA9.h" Â Â Â Â Â // Include for PA_Lib
#include "fat.h"Â Â Â Â Â Â // Include for FAT read/writes
int main(int argc, char ** argv)
{
...
fatInitDefault(); //Initialise fat library
FILE* testRead = fopen ("FATTest.txt", "rb"); //rb = read
char filetext[30];
fread(filetext, 30, 1, testRead);
fclose(testRead);
PA_OutputSimpleText(1, 1, 7, "FATTest.txt contains:");
PA_OutputText(1, 2, 8, "%s", filetext);
...
return 0;
} // End of main()
(Apologies that the code tags don’t seem to work in this theme…yet)
Well this code seems to appears to work on the emulator, and it’s really hit or miss on the actual DS. So I began to delve into this problem. After about 8-9 hours of trying to debug this problem by myself and with the assistance of Dr. Malloy trying many different things we didn’t really come to any finite conclusions.
Luckily, other students in my class are also reading from files and have found that FAT is no longer supported in this version in PAlib and have been using Embedded File System (EFS) Library to deal with file reading. So, that was a bunch of time wasted.
This is the EFS example that I found (shortened for space):
#include "PA9.h" // Include for PA_Lib
#include "unistd.h"
#include "efs_lib.h" // include EFS lib
int main(void) {
// init EFSlib & libfat
if(EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL)) {
PA_OutputSimpleText(1, 0, 0, "EFS init ok");
PA_OutputText(1, 0, 1, "found NDS path: %s", efs_path);
struct stat st;
FILE* file;
u8* buffer;
int size;
// open a text file and read its contents
file = fopen("/test.txt", "rb");
if(file != NULL) {
stat("/test.txt", &st);// get file size using stat
size = st.st_size;
buffer = (u8*)malloc(size);
fread(buffer, 1, size, file);
buffer[size-1] = '\0';
PA_OutputText(1, 0, 4, "/test.txt content: '%s'", buffer);
PA_OutputText(1, 10, 5, "size: %d bytes", size);
free(buffer);
fclose(file);
}
} else {
PA_OutputSimpleText(1, 0, 0, "EFS init error!");
}
...
return 0;
}
(Again, apologies that the code tags don’t seem to work in this theme)
This works fine on both the emulator and the DS, except it only seems to work for doing it once, otherwise I get “EFS init error!”. So, at first I thought I would have to read each map and question into separate arrays at the beginning of the program. This, of course, is a horrible idea, not only would it increase load time by a significant amount but it would hog a ton of memory. So I began to try and figure out this problem. After a few more hours of investigation and debugging, I finally find out the problem. It turns out that the statement “
if(EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL))"
will fail every time after the first call. It will fail because they have already been initialized. So that was a simple fix. I just modified it to this:
EFS_Init(EFS_AND_FAT | EFS_DEFAULT_DEVICE, NULL);
FILE* file = fopen (filename, "rb");
if ( file != NULL){
After more time being spent trying to figure out this new library, I think I finally have it figured out. EFS puts all of the files that you put into the “efsroot” folder in your program is loaded onto the NDS file and needs to be recompiled to have changes made to the file, be included in the NDS to be read. This kind of defeats the purpose of dynamic maps and questions on the files if they don’t have the source to recompile the NDS. Questions and maps will still be read from the files, in hope that reading and writing from files will become more dynamic in the future. Another thing is that EFS read works on the emulator but not EFS write. However, both work on the DS. So, after probably 12ish hours trying to trouble shoot the simple thing of file reading, it is finally solved and reading my maps into a 2d array to be rendered onto the screen.
There won’t be much text to this post, but there’s a lot of content! You can find my contract for the NDS version here. You can find my story board here (apologies for breaking the layout) or here (missing the awesome flow chart). All of the general level designs are screen shots from MazeFinger and can be seen here. At the end of the slides with the levels, there is my first screen shots of MazeMania on the DS! It may not look like much but it’s a step in the right direction.
Like I said, not a lot of text, but check out the links!
Want to download and play some of the games and projects I’m talking about? Well, your in luck! I just added them to the downloads section of the site found here. I will be updating them as new working releases come out.
After making the commitment of choosing my game design I began to think of all the stuff I have to do.
Here’s the list I came up with (tentative obviously):
- Story boards
- Highscores
- Levels
- Sound
- Music (Yes, it’s different from sound)
- Intro screen
- Credits screen
- Acheivements
- “Power ups”
- “Death” areas
- Walls
- Tutorial video
- General layout and display
- Collision detection
- Level editor
I have chosen to do a maze game based off of the popular iPhone application, Maze Finger, with some new features. Included in those features are its new name (MazeMania), ecology related question rounds, new user input (the almighty mouse), and much more.
I have chosen to a similar game for the Nintendo DS, as I think there is a lot of potential in the touch screen and stylus. This game will be different in that the questions will be geared toward helping high school students prepare for the English part of the SAT by using old test questions.
I have also talked to my teacher, Dr. Malloy, and we are thinking of writing a paper to present at the Games+Learning+Society Conference based on the differences of the two very different platforms, education in games, and a future user study. The abstract can be found here. This played a pretty big role in why I am doing very similar games for each platform.
Based on what the clients asked for, I started thinking of some game ideas.
- Sim city-esque game
- Design a carbon neutral city
- Look at actual cities that are very industrialized and/or have very large carbon footprints
- Look at actual laws and solutions that can be implemented in to reduce it
- Get money through mini games to then implement carbon reducing systems or laws
- Redesign carbon footprint calculator to be more geared toward student life.
- Recycling (beer cans and such lol)
- Coffee cups (reusable)
- Changing cafeteria habits
- Don’t use a tray
- Don’t get more than you can eat
- Dorm habits
- Changing thermostat
- Water usage
- Electricity usage
- Ask them question about their lifestyle. Then, based on that answer tell them how they can improve upon that, and tell them the direct impact they are having on the environment by making that change. (Personal responsibility)
- Maze game with questions about the environment (possibly facts rather than questions?)
- Sort sort of apocalyptic story in which you are on an environmentally ravaged planet and it’s your job to get it back to normal.
- Myst-esque exploratory game where you look for clues to see how the planet got to the way it did and how they could have prevented it.
- Add moral conflict and personal responsibility to anything and everything
- Burning trees cascading down in the background as timer of sorts? Or a planet that is corrupting?
There are 2 clients for the python game. They both came and presented their ideas. Both were interested in using games to educate teens and college students about the environment. Here are their ideas summarized.
- Environmental awareness
- Carbon footprints
- Answer questions about lifestyle and give them their carbon footprint
- Revamp the questions to target teens and college students
- Climate change
- Sociology of related environmental issues
- Individuals are shaped by things around them (social ‘norms’)
- Generate interest, awareness, knowledge, attitudes, concern, behaviors towards the environment as a whole and not just global warming
- Look at some sort of statistics from the game
- Impress personal responsibility
In my CpSc 372 class, introduction to software development, taught by Dr. Malloy, we will be writing a game for the PC using Python and the PyGame library. Soon, 2 different clients will come in and present on what kind of general idea they would like in their games.
In my CpSc 481 class, educational gaming, also taught by Dr. Malloy, we will be writing a game for the Nintendo DS (dual screen) using C and a library that assists with the programming on the DS. In this area there are 2 main libraries, PAlib and libnds. With regard to the 2 libraries it is said that PAlib is easier and faster to learn than libnds, but libnds has more capability. I will be using PAlib, so I can learn the language and program the game within the semester. This game is open ended, as far as the content, with the catch that it is educational in some way.
More on these 2 games coming soon.





