Meetings: TBA

About the Club

Members (Sign up here!)

Subscribe to Mailing List

Teams

Message Board

Useful Links

 

March 4th, 2009 - Demo Video


This was the demo video from last semester's project [n]tropy

This is the first game we created at the Student Videogame Development Club of CSUS.
Project contributors:
Matt Pyers - Environment Artist
Holly Hagen - Weapon Artist
Nicholas Martin - Animator/Character Artist
Bryan Jackson - Musical Scoring
Kevin Maris - Programming
Sterling Schulkins - Programming/Graphics Programming
Devin Yamada - Design
Chris Howse - Programming/Design
Justin Rogers - Design/Tools Programming
(and others who are listed in the members section, thank you for your help!)




-Sterling
sterling.schulkins@gmail.com


October 6, 2008 - New Subversion up




We have a new subversion server thanks to Kevin McClusky. You can connect to it using a program like TortoiseSVN or something, the URL is http://svn.gamedevcsus.org

The latest version of the code uses Irrlicht 4.2 so you may have to update your directory links in Visual Studio.

-Sterling
sterling.schulkins@gmail.com


September 1st, 2008 - Welcome back, no meeting this week




Welcome back everyone. We won't be having a meeting this week. However I would like to get everyone's input on a good time to have our meetings this semester. Just shoot me an email or send one to the mailing list. And as usual any input on how we should structure meetings is also welcomed.

-Sterling
sterling.schulkins@gmail.com


May 18th, 2008 - New Googlecode Subversion


Hey everyone,

Few items of business:

1.)  Just to clarify, we will not be having a meeting next week
obviously because of finals.

2.) We have a new subversion server hosted on google code. To connect
you must have a gmail account and be on the list of users for the
group. (Willow already signed a bunch of you up so this shouldnt be a
problem)

To Connect to Subversion:
- Install TortoiseSVN if you havent already
- right click on a folder in windows to store the current copy of the
code and go to "checkout"
- enter this as the URL  https://vdc-csus.googlecode.com/svn/trunk/vdc-csus
- Go to http://code.google.com/p/vdc-csus/source/checkout and click
the link to get your googlecode password (make sure you are logged in
to google first)
- back on tortoiseSVN enter the googlecode password that was given to
you as your password and your gmail name as the username

3.) We may have some club meetings over the summer if anyone wants to.
I know I will be working on the code over the summer and most of our
communication will happen through the mailing list and the message board so make sure you're on it.

-Sterling
sterling.schulkins@gmail.com


April 18th, 2008 - Development party today 3pm in Riverside 5029


For reference here is the UML diagram of the current code

To view it, download the .zargo file above to your computer, then go here and open it using this java web program called argoUML



-Sterling Schulkins
sterling.schulkins@gmail.com


April 4th, 2008 - Milestones and Miscellaneous
REMINDER: OUR MEETING TIME AND PLACE HAS CHANGED TO TUESDAYS 4:30pm IN RIVERSIDE 5029.

Few things:

A very early and buggy version is now on subversion. At this point the most work is happening in Gamelogic still. AI has been moved down into the gamelogic header (vdc_gamelogic.h). The current structure makes use of C++ templates and this causes problems across header files, so AI and gamelogic need to exist in the same file.

Milestone schedule is up! Take a look and see what you would like to do, then let me know


We're going to switch IDEs from VisualStudio 2008 to VisualStudio 2005, since that is was the school uses. The code up on subversion is already converted to 2005, so all you have to do is launch the .sln file.

In a perfect world we would have design done already, but for this project we'll sortof design as we go. Here's a quick concept sketch I made for a Hero character. If you are artistic and would like to send me your drawings for concepts such as good NPCs, Hero concept, enemy viruses, enemy hackers, items, weapons, armor, vehicles, landscapes, etc. I can put it up here on the site. Or if you just want to jump right in to modeling them that would work too.





-Sterling Schulkins
sterling.schulkins@gmail.com


March 25th, 2008 - Meeting and Subversion
REMINDER: OUR MEETING TIME AND PLACE HAS CHANGED TO TUESDAYS 4:30pm IN RIVERSIDE 5029.

Today's meeting was just throwing out ideas for content, the layout of the levels, how items will work and how they will combine together. Touched on some network play considerations.

For those working on game logic I got multithreading working, so update runs on its own thread separate from render. A mutex lock is also acquired before the body of either loop executes so that the two threads dont collide when they access the scenegraph. The mutex is subsequently released after the body of the loop runs. Also, after much back-and-forth on the issue it looks like we wont need control over the render() method in the IAnimatedMeshSceneNode superclass, Irrlicht will take care of that for us when drawAll() is called from the scenemanager.

The big thing is that we now have subversion online (thank you Kevin!) and you can access it by following these steps:

-Download and install TortoiseSVN from: http://tortoisesvn.tigris.org/

-Download PuTTYGen and pageant from http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
(You might as well download all of them in the single zip file, they may come in handy.)

-Run PuTTYgen. Make sure for Parameters you use SSH-2 DSA and 1024bits.
Click the generate button and make it. Once it's created, click the "Save Private Key" button. This key is essentially your password, and will uniquely identify you in svn. Now, in the top section of puttygen will be a field labeled: "Public key for pasting into OpenSSH authorized_keys file." Copy that and send it to kevin@nextrealm.net, along with your first name and last initial.

###### Configuring TortoiseSVN ######
-Open the file located at C:\Documents and Settings\<Your User Name>\Application Data\Subversion\config
**It's just a regular text file with no extension.

-Find the section for configuring tunnel agents. Under the [tunnels] section, insert the following lines.
svn+ssh = "C:\Program Files\PuTTY\PLINK.EXE"
ssh = "C:\Program Files\PuTTY\PLINK.EXE"
**Your location for PLINK.EXE may differ

-Right click on a directory that you'll be doing the commit's, check-out's and updates from.
Select TortoiseSVN -> Settings. In the Network section, for the SSH Client use:
C:\Program Files\PuTTY\PLINK.EXE

-Now load up pageant. Load your private key that you made earlier (key_name.ppk). Click the close button to minimize pageant to the taskbar. Pageant must always be running anytime you wish to make a transaction with the SVN server.

The URL of the repository is: svn+ssh://nextreal@nextrealm.net/csusgamedev

PS
If you get tired of PLINK.EXE popping up all the time, and you can use the SVN Repo just fine, You can switch out PLINK.EXE for TortoisePlink.exe, located in the tortoise program files.

(Kevin Maris)

-Sterling Schulkins
sterling.schulkins@gmail.com


March 17th, 2008 - Update NEW MEETING TIME AND PLACE
OUR MEETING TIME AND PLACE HAS CHANGED TO TUESDAYS 4:30pm IN RIVERSIDE 5029. STARTING THIS TUESDAY (TOMORROW)



So I felt like working on the engine a bit this weekend, here's the results. What has happened here is I successfully extended IAnimatedMeshSceneNode (from Irrlicht) to CGameNode and on down our class hierarchy to CHumanPlayer. Each instance of the woman model here is an instance of CHumanPlayer. Also I wrote a method to easily apply the appropriate textures and materials to an object so that it has that glowing circuitry look with facet shading. The method is called setVisualStyle and it takes an int identifier of the style. Each style is an int defined as a #define macro. VISUAL_STYLE_SHINYBLUECIRCUIT is the style you see applied here to the woman model.

Since we are extending IAnimatedMeshSceneNode, we can override the render() function in that class and gain control over how rendering is done of our models. This may become important if we decide to go with a multithreaded approach (we will need a way to block the render cycle if an update cycle is taking place at that particular moment).

So to retract my previous statement from the March 11th post, yes our scene nodes with have both a 'render()' and 'update()' function in them that will be implemented by the classes at the bottom of the hierarchy.

Right now my goal is to just get the base class structure set up and ready to implement. The AI class structure is done and ready to start being worked on, but we may need some more done in other areas before it's useful. And again, I'll try to be in 5029 as much as possible if people want to come and help.

Here's the current version of the code

-Sterling Schulkins
sterling.schulkins@gmail.com


March 14th, 2008 - Small Update
Here's a short PowerPoint presentation on the concept of the game so far.

I'd like to have the class definitions done sometime next week so we have a skeleton for how the engine will work. Then the teams can start writing the implementations of the classes. I'm going to try to be on campus as much as possible next week so if you'd like to help out drop by 5029, I'll most likely be there.

Also, I'm using another email temporarily (see below)

-Sterling Schulkins
sterling.schulkins@gmail.com


March 11th, 2008 - Meeting
This week's meeting was mostly discussing the base structure of the game engine code. We talked about our CGameNode class, which will extend IAnimatedMeshSceneNode from Irrlicht. This will be our base structure for all objects in the game including players, NPCs, Items, Projectiles, and Models making up the environment. Our engine will only worry about the update() loop, while Irrlicht will take care of drawing all our scene nodes for us. So our scene nodes will NOT contain any draw() methods, I may have made the mistake of including that function in the CGameNode class before I realized this. If rendering states need to be changed for a particular node, they can be set in the update() call.

We also talked about the CAIBehavior class which will drive each NPC based on its current behavior setting string. For example: a "PATROL" code will cause the CAIBehavior class to control the CNonPlayer node in such a way that it randomly walks back and forth over a certain area, and also triggering the appropriate animation sequence. To simplify things we can have some behaviors set other behaviors, for example: if a player comes within attack range while the NPC is in PATROL mode it can set the behavior string to "ATTACK", then on the next update() call the NPC will begin attacking.

At this point we are still working on getting our base code in place, then the separate teams can begin their coding. However, it will most likely be the case that only a couple teams at a time will be doing coding since we need a relatively linear order of work.

For now we will still meet in the same place again Tuesdays at 5:30pm in Santa Clara 1234, but this may change to accommodate everyone's schedules.

-Sterling Schulkins
sterling.schulkins@gmail.com


March 4th, 2008 - Meeting
For our game engine we decided on using the following API's
  • Graphics - Irrlicht (using OpenGL)
  • Sound - IrrKlang
  • Networking - RackNet
  • Physics - Ageia's PhysX
  • AI - (our own design)
Using these will help us speed through the low-level stuff and enable us to focus on the gameplay and the content. It will also give us an opportunity to get experience integrating these different engine technologies, something that happens often in the gaming industry.

There were a couple good ideas for a concept, one of them was fantastic but we decided not to do it because it would be too violent for school-related projects. :) So for our game concept we decided to go with the original idea I had proposed in the previous meeting. If you recall it was the cyber-RPG idea. I will prepare some PowerPoint slides to present next time that will cover gameplay, the story, and a proposed way of structuring our classes. For now everyone should still be thinking of things they would like to see in the game and brushing up on their C++. :)

The Message Board is now up, thanks Marcus for getting us that network account!

For now we will still meet in the same place again Tuesdays at 5:30pm in Santa Clara 1234, but this may change to accommodate everyone's schedules.

-Sterling Schulkins
sterling@schulkinscreations.com


February 26th, 2008 - Our Club Begins
Thanks everyone for coming to the first meeting! For those of you who missed it we introduced the club, what we are about, and what we would like to accomplish over the next two semesters. We also decided that we would break up into groups to work on each section of the game engine. We are forming a sign-up for each part of the project. We are also currently in the process of putting up a message board so we can communicate and share code. A version control system is forthcoming, most likely Subversion. We decided to go with a Microsoft Visual Studio Express C++ 2008 IDE environment (download it here). Each team should be researching the best approach/API for their particular portion, then next week we will discuss what we want to go with. Just make sure we are still using OpenGL and C++. In addition, everyone should think of a great idea for a game, then we will vote on the best idea. If your idea is not selected don't worry, there will probably be a way we can fit it into the game somehow as long as it works within the constraints of the game as a whole. The idea is to keep everyone happy and excited about the project.

For now we will meet in the same place again Tuesdays at 5:30pm in Santa Clara 1234, but this may change to accommodate everyone's schedules.

Once again thanks for coming, this should be a fun and productive project.

-Sterling Schulkins
sterling@schulkinscreations.com