V2PC - 2D Platformer

xXJDrocks450Xx

Well-Known Member
I have completed my initial 2 C# projects, and as a result have gotten much more familiar with C# programming. Thus, I have decided to try my hand at making a 2D platforming game creator called V2PC (Visual 2D Platformer Creator) thanks to @tsomatt for the name.

The Level Creator Application
Currently working features:
I started development of the Level Creator Jul. 7, 2016. So far it has very basic features implemented such as:
  • Creates level save files that will store necessary data for user made levels to be saved.
  • Open existing level save files and read data. Then will take Title nodes values and add them to a tree menu. More on that later.
  • Recent File list that stores up to 6 recent files opened or created with the tool.
  • Adds new level objects under the "Platforms/Objects" tab. Users can select a picture to use as a level object currently.
  • Add new level objects as data in the level file and open the correct object's picture from the level file as well.
  • Correctly list which category you saved level objects to ("Level Objects" category, or "Backgrounds" currently).
That's all the features currently working in the Level Creator.
Planned Features:
  • Saving all customized options to level file and when file is opened, those options will be set to their saved state.
  • Tabs other than "Platforms/Objects" need to be completed, as right now are blank with no controls.
  • Advanced options tab with options based off of the object's type (Hazard, Platform, or Prop), and the object's basic settings. Example: If the object is a platform, and you have "Spawns Object" checked, the advanced setting would be spawning a specific item. (If the advanced setting is null, spawn a random item).
  • Help buttons with detailed information on the selected aspect of this application.
  • More customizations? That will come later though.
The Actual Game
This hasn't been started yet, therefore I can only detail planned features:
  • Changes can be applied and seen ingame on the fly. Similar to how Volcanic does things.
  • Will be added to, just I haven't thought much about this yet.
NLFile
A little backstory behind it:
Originally level files were going to be stored as an XML file. However I thought that going into this, I would write my own file structure called NLFile.
NLFile is different from XML because it uses line numbers to identify the Level Creator object. The reason why I decided to make NLFile was because 1. This project is all about curiosity. I wanted to see if I could pull something like this off. 2. It would make it easy for me to add features that make development easier. 3. I would have direct access to NLFile.cs to change any aspect of it I choose. Meaning that as I go along, NLFile will evolve as well.
NLFile.cs can currently carry out these tasks:
  • GetNode() Gets the value of the Node Type inputted, on a certain line.
  • FindNodeByText() searches the file's Text nodes for the string value inputted. If found will return the line number of the first occurrence after a selected line number in the file.
  • GetAllObjects() used by the Level Creator. Finds all available Text nodes in the selected file.
  • AddNode() adds the selected node type to the next open line in the file. It also adds the inputted value into the newly created node.
  • AddtoObject() adds the inputted value, and node type to an already existing object. It finds the object by doing a search for the object's text node.
Lastly, this is very early in development. Anything listed here could change, and it probably will change. Also, while you can post feedback, this thread is only here to educate anyone interested in my latest project, V2PC.
 
Last edited:
Seems pretty cool. A bit like FreeSO - WinForms for the IDE (or in this case, editor), and then MonoGame for the actual game itself.
Believe it or not FreeSO and Volcanic was sort of an inspiration for this project. After seeing how much Volcanic allowed the community to create content for the game, I wanted to take another style of gameplay that I like to play and do something similar. Even though its already been done before.
 
Believe it or not FreeSO and Volcanic was sort of an inspiration for this project. After seeing how much Volcanic allowed the community to create content for the game, I wanted to take another style of gameplay that I like to play and do something similar.
Volcanic is really powerful and it's pretty neat, especially for the timeframe within which Rhys created it. I think that if you do something similar - and make it really easy to create a platformer - then V2PC might be popular within game jam communities, such as Ludum Dare or Indie Jam.
In today's world, most things have "already been done before", it's just the way that you convey it and the extra features that you add that make it different. For example, if I wanted to create a first person shooter, you could say that it's "already been done before, loads of times", but I would add extra features specific to my game to make it how I want. It's sort of the same circumstances with game engines.
 
upload_2016-8-12_17-29-34.pngupload_2016-8-12_17-29-54.png
New Development Updates, for Level Creator:
  • Added Object search function.
  • More work on NLFile.
  • Check boxes now save values and when selected, their saved values are read and if enabled, the checkbox is checked.
  • If you select the checkbox detailing Hazard, Platform, or Prop, it will be put under that category.
  • Added Option to use auto select, where if you switch an object from one group to another, it will be reselected after saving.
  • Delete Object now working.
  • Added message boxes that ask if you want to save the object if options were changed and you don't click "Apply".
  • Saving framework now in place, saving values for all checkboxes currently added.
 
upload_2016-8-17_14-30-2.png upload_2016-8-17_14-39-4.png
Quick Update:
  • After a short break, development has continued on the project. This update adds a picture viewer with basic options. This allows you to select the transparent color for bitmaps that will be used for the level's assets.
  • Click directly onto the picture in the picture box to select that color to become transparent. Alternatively, you can also use a color picker to achieve the same effect, if of course the selected color is found in the picture.
  • Work as also begun on the players sections of the Level Creator. Once this is complete, I will work a bit on the game portion.
  • Help mode was added for this form. Once clicked, some buttons will become blue in color. Once said buttons are pressed, a message will appear detailing that button's usage.
When more updates are available I will post back here.
 
Last edited:
Add_Delete_Objects.gif
There is a lot to cover in terms of new content that got added, so I will split it into 3 parts: Add/Delete Objects (Overall usage additions), Player/Character screen preview, and finally some screenshots of the level object placement window.
Overall Usage Additions:

  • An objects tray is planned where you can save your favorite objects and use them between any levels you have created.
  • The Level Object selector is a lot more stable.
  • Behind the scenes: NLFile got a huge facelift with more things it can do like compile lists of objects for the creator, or the game, search keywords to find any object now works with any node value, meaning you can use any data stored in an object to identify it. Stability fixes, and so on.
Player_Sample.gif
Player/Character Screen Preview:
  • Animations, Options, and more overall ease of use is planned for the future.
  • Deletion, Adding, and Saving characters is implemented.
  • The character creation screen is very unfinished, but goes over planned features that should be available in the finished game, and with more coming soon.
upload_2016-8-28_5-4-26.png
Object Placement Window
  • Scaling and moving was not created by me, you can find the full article here, its very high quality and it was great help to the project.
  • Saving the sizes and positions works well now also and will be expanded more in the future to jump to where the object is and highlight it for easy location.
  • An identifier in the "Level Objects" tree view is planned, perhaps saying "Placed:" before the level objects name, or saying so under level object info?
Development will start little by little on the game portion pretty soon, after I get characters being placed at "legal" spawn points (Not being spawned over a hazard or pit) and once bugs with level placement and other objects is sorted out, development on the game portion will begin. Maybe even an early test build around then? :p

Thank you all for the support and I will have more news soon.
 
Last edited:
Looking really cool. Will you have a scripting language to let users define their own actor behaviors?
 
Level Objects now saved and are being viewed within the game itself :).
This gif was huge so it can't be displayed here. Anyway here are the new developments:
  • Level placement now assigns controls a code so they can be identified properly in the Level NLFile.
  • The level objects also save locations and sizes to be displayed later in-game.
  • Copying objects now works, and they all share the same image.
 
Last edited:
NLFile updates, NLFile can now do the following:
  • GetNode() Gets the value of the Node Type inputted, on a certain line.
  • FindNodeByNode() searches the file's selected node to search for, and if it matches the value inputted, it will return the line number of the first occurrence after a selected line number in the file.
  • GetAllObjects() used by the Level Creator. Finds all available Text nodes in the selected file. //Recursively Search replaced this!
  • AddNode() adds the selected node type to the next open line in the file. It also adds the inputted value into the newly created node.
  • AddtoObject() adds the inputted value, and node type to an already existing object. It finds the object by doing a search for the object's text node.
  • EditNode() If the node exists in the object, it finds it and replaces it's old value with a new value.
  • EditModifier() If there already is a modifier in the object, it replaces the old value with a new one.
  • Delete Object() If it finds the selected object, it deletes all the object's data.
  • RecursivelySearchNodes() Finds All Nodes and adds them to a list.
  • CheckNodeExists() Checks if a node exists and sends back a Boolean value.
  • CopyObject() Takes an object and duplicates it any number of times.
 
Animation.gif
Sorry for the lack of updates for anyone still following :p
Updates:
  • Have taken a short break taking care of other matters.
  • Animation has started development, more news coming soon.
  • Animation UI has basically finished
  • The animation selector (walking animation, running animation, etc.) gets added to once you select the character type.
  • Possibility into different game modes like 2D platforms, or a 2.5D fighter game
 
Hello all,
The past week has again been fairly busy for me. There have been many things I have wanted to do that are of higher priority to this project. However, in all of my free time I have made some exciting progress that you can read below. Know that I will still continue the project, but progress may be slow.
Updates:
  • Characters in the game code now have customizable stats including: Tightness, Heaviness, Top Speed, and Acceleration.
  • Animation is working! I will post pictures of that tomorrow.
  • Character's movement is gradual so falling and accelerating goes at a customizable speed and looks oh so baeutiful.
  • Boxes now show up when setting up animations so you can see what your doing easier.
  • Physics for terrain feels very possible simply by setting up some character stat presets. Not in game currently.
  • NLfile got improved slightly. Though not much expansion was needed.
  • Background are being reworked as panels with background images assigned really don't work.
  • An art style for V2PC has been decided on by me and a few others in private. The art is drawn by me, more information on that later.
  • Finally, lots of bug fixing, mainly with the animation select screen, but a few other fixes as well.
Thank you to whomever follows the project. More information will be posted here whenever possible.
 
Animation01.gif

The Animations (e.g. Mario and Sonic) were NOT created by me, JDrocks. All credit goes to the work's creators. They are shown solely for example purposes only.
Milestone Achieved!
  • Animations are now official in V2PC! They are designed to be customizable, and the code is futureproofed for all animations for me to add later, complete with speed customization, and even character stats like acceleration and heaviness for falling speeds. As you can see above, the character's heaviness is quite high, meaning -of course- he falls like a rock.
  • More changes to be expected up will be: More animations, and more fleshing out for the Character.cs (character code, basically) itself to allow for customization.
  • Updates will be posted here as they occur, next on the list after what's stated above, JUMPING.
 
Last edited:
Back
Top