I just started playing with Processing, which seems to be a really cool Java-based tool for quickly writing simple applets and applications with a visual element. I have an idea of something that I’d like to try doing with it, so I’m going to grab Eclipse, configure a little environment, and see what I can do with it. I coded a little text function that writes character by character over time in basically no time at all, with easily customized options. Pull that into a class, and I’ve already got the beginning of a dialog box. And I should mention that I really don’t even know Java, but it’s easy enough to go between it and C#. I can see things getting confusing as I want to do more complex things, but really Processing aims to keep things simple and I’m all about that. My idea is an extremely small project, and I think that if I throw myself into it I could have it done really, really quickly. Which would be awesome, as I haven’t been able to look at any of my work and say “I definitely completed something here,” in a really long time. I hope this works out, my idea is actually kind of novel. If done right, it could be very neat. I’m going to wait a week or two before spilling the details, but for now know that it’s web based so that I can just rely on everyone having or downloading Java and relax knowing that my stuff probably works on most configurations.
I was rather unproductive this week, thinking about what I was going to do and not getting around to it. I also had a lot of paperwork to take care of due to a new job that I will be starting in the Spring, so that left me not wanting to do much else. But! Now this the time for action, because I definitely don’t want to be left with a bunch of work to do when I have to start a full-time job! So, here is my basic rundown of stuff that I want to have accomplished by the end of this sprint:
- First, smooth out the two enemies I created and add an animation for the one that currently doesn’t have one
- Fix a bug wherein the flying enemy falls to the ground (has to be a simple logic error)
- Actually, I just looked at the code and that stupid bug was because I had already set up a timer which tells the enemy when to attack, but never actually implemented attacking, so a nice block of nothing was getting executed after a certain amount of time
- Player-controlled light or enemy-controlled light? I guess player-controlled would be the more “fun” one, so I’d be a fool not to do it. Mouse used to point in certain directions, or else arrow keys
- Player sprite! This can’t be put off any longer, the player needs to look like something or there isn’t a game
- Add new lights, this should be easy, just need to do it.
- Expand the levels, throw in more enemies
- I’m still debating this one, but a way to write messages to the screen, and have NPCs to talk to? This seems like it could be helpful for content, and also for future projects, but at the same time I kind of want to avoid it. Need to think more about this.
- Create a cutscene. Really want to do this, but if it doesn’t work out I’d be okay dropping it
So that’s a good list to work with I think. Really need to have something for people to play. And in the meantime I will try to get this thing running on foreign machines; I want to be present for the process so that I know exactly what end users have to go through.
NOTE: For better or worse, the following is a bit of a live development journal of working with the flying enemy that dives at you.
I just was working on the flying enemy that is supposed to dive at you, and implementing the attack method the first try he flew up instead of down at you, and the second try he just got onto me really fast and shoved me against a wall. Pretty brutal, pretty awesome actually, but I think it was most awesome because it was so surprising to me. Man, just tried it again and if you jump, the thing pins you to a wall and you slowly slide down it together while it’s pushing you against it. So awesome! However, now it’s very clear that I need a way to know when the player has been successfully attacked. Sounds like more collision subscription to me! Of course that would be the case.
UPDATE: I have since become aware of not one, but three different projects extremely similar to this one. They are:
In a way this is disappointing news (and great that these tools already exist), but in another way I almost want to create my own anyways with Java, which I think would be better in its own way than the existing projects, assuming of course that it goes as well. I’ll have to think about what to do from here, and if another idea might be more deserving of my time given the circumstances.
Phoenix Wright: Ace Attorney is an amazing game. Part of the magic stems from its simplicity, and text-based nature. Knowing that one of my favorite games is so simple immediately makes me want to participate in it in some way. I started to think about how the game operates, how it could be made, and realized that it is a shining example of a game that could be created by someone who knows nothing about programming or game development, if only they had the right tools. The OpenWright project is a game creator and editor for rapidly speeding along the development of games similar to Phoenix Wright series entries. The functionality of Phoenix Wright games in particular will be created first and foremost, so that fan entries in the series are easy. At the point in development in which this is possible, it should also be technically possible to utilize different artwork and writing to create any game that functions the least bit like a Phoenix Wright game, defining content in the editor or in external files and importing. By simply making the correct aspects customizable, I think that the project would be both not too time consuming, and incredibly valuable.
Here I will document some of the initial ideas I have on the project.
- A standard project editor, with something like a tree view of content
- Fully customizable artwork and text and sounds
- A way to define “items,” including branches for what certain characters say when you present them with the items, and descriptions and artwork
- An easy way to write scripts including effect and animation and sound tags for certain words or sentences
- A way to define the flow of a game, when new areas are available to travel to, and when they’re not
The current technologies I have in mind for development of the project are:
- C# and .NET and WPF for the editor (making it Windows-only, unfortunately)
- Java for the game player (making it possible to put on Android, on the web, etc.)
I initially wasn’t ecstatic over the possibility of ever using Java ever for anything, but I think that might be a case of me listening to peers and reading articles online and coming to an unfair position; I won’t know how I feel about it until I use it, and honestly I’m sure it’s fine. To reach absolutely everyone, it seems like a very good choice.
Ne+ is the name of the project I will be working on for the next year or so. The name is in reference to the element Neon, because the visual style of the game will be very similar to Geometry Wars in terms of colors and lighting. I first thought of the idea when considering what an ideal first video game would be for me to work on, as I have little experience thus far in my career. I had a more grand idea before this one, but it was too grand and complex for me to start with. The main idea behind this game is simpler, but I think it still provides an interesting and stimulating gameplay dynamic that is full of possibilities, while still remaining a meaningful endeavor.
The Core Concept
The reason that I have chosen to pursue the GW-style visuals is because of Ne+’s focus on lighting. The game is to be purely sidescrolling 2D, but lighting will play a central role because the primary game objects are all lights. I find it easiest to illustrate the gameplay with a simple example. Imagine a spotlight that projects a “light platform.” This light platform is just like any other surface in the game world. Now, imagine another light that nulls all light effects in the game, and when pointed at the light platform, the platform disappears. Some of these lights will be manipulated by the player, while others will be stationary objects in game scenes. It’s easy to see how this idea could expand, with other potential light effects:
- Friction Modifier
- Gravity Modifier
- Harmful to Player
- Light Distance Amplifier
- Light Effect Amplifier
- Velocity Modifier (Would a time modifier make sense, or is it taken care of here?)
The idea behind these is that they all combine at runtime to create a very dynamic experience. Each light will be assigned a color, and so as colors combine, so too will their effects. To top this dynamic concept off, different types of lights will be present (basically spotlights or area lights), with different properties (that can be manipulated with respect to time to create flashing and pulsing effects), as well as a relation to the audio that provides a unique audio-visual experience:
- Audio Connection
- Player Manipulatable
At the moment, I think that the best way to explore these gameplay concepts initially is to have the player progress through scenes, utilizing them to advance. By navigating situations that can only be completed through proper application of the concepts, the player should be able to participate in a solid puzzle experience with a platforming element. This is the essence of Ne+.