|
|
Home
 |
|  |
|
Spartan Concept Art
Tuesday March 8th, 2012
Yesterday night I drawed and colored a concept art of a cartoon Spartan character. This character is meant to be included in Cartoon Boom! Boom!. It was my very first trial at coloring in Photoshop, using a Bamboo drawing tablet.
|
|
 |
|  |
 |
|  |
|
Tikis VS Pirates
Saturday March 3rd, 2012
I spent the last 3 weeks to reinforce my learning of C# programming under the Unity3D game engine. I created a 2D game named Tikis VS Pirates, which is an orthographic tower defense game very similar to Plants VS Zombies by PopCap Games. About 15 000 lines of C# code has been necessary so far, and it's far from being finished. I had to code snap-to-grid, bezier curve algorythm for canonballs, and also to ensure that sprites were not overlapping, by giving each tile a unique z-index based on its X and Y coordinates values. This also ensures that sprites dropped on tiles found at lower horizontal rows are appearing over sprites dropped on tiles found at higher horizontal rows, in order to simulate some perspective.
The goal is to defend the islands from waves of pirate crocodile invaders that are in quest for more treasures. Some characters can be dropped only on water-type tiles, while some others can be dropped only on grounded tiles. The player can also collect sun, wood and rock materials. Those materials can be used to build bridges and palisades. Most characters/items that can be dropped on ground-type tiles can also be dropped on bridge-type tiles.
Come back later to follow development of this one-man army game development!
|
|
 |
|  |
 |
|  |
|
Pirate 3D Props
Tuesday March 1st, 2012
Yeah, pirates!! Here are various cartoon low-poly 3D assets I created and put together, that can be re-used in my projects later. Textures and UVW maps remain to be done, though, and 3D grass asset is still too high-poly, I kept it just to add a stronger atmosphere to the scene.
|
|
 |
|  |
 |
|  |
|
Proprietary MMO Server Technology and Method on Unity3D
Tuesday, December 27th, 2011
Happy Christmas and happy New Year folks!
Before holidays began, I wanted to find an easy-to-use MMO server platform for Unity3D, mainly because an online multi-player mode is essential to so many games in these days and age, and I realized that I had no working solution yet for Cartoon Boom! Boom!. After many hours digging the web for an already-existing platform, I figured out that all existing solutions were 1- hard and exhausting to set-up, especially for developpers (like me) that don't have a lot of technical knowledge about networks and servers and 2- quite expensive, both in the short-term and in the long-term. At that moment I felt like I should develop my own.
But the problem was, I first had to figure out if it was even possible, in any direction my imagination could guide me, to bypass the need to build my own server and network. Rather weird reasonning, uhm! But I kept ideas flowing from there.
It finally paid out when I realized that I could "borrow" some already-existing servers and networks.... what could be better than IRC servers!? After all, IRC servers are designed to let many connected users communicate remotely, exchanging text strings. And data is basically always text. Using IRC servers, I would eliminate the absolute need to worry with my own servers and a monster Internet connection. If one IRC server is saturated, or down/dead, after some detection it could also automatically migrate the players to another one. There are thousands of free and available IRC servers everywhere on the planet... A one-minute search on Google allowed me to discover that an IRC package was already available for Unity3D! Fantastic, let's try to start from that!!
I downloaded and installed it for testing. It was definetely not designed or programmed to serve my uncommon needs, but with some tweaking and extra coding, and with real-time float parsing to string conversion technique, I finally got Unity to send an object's X, Y and Z position coordinates at the desired framerate (quick framerate made the server kick me out, because of anti-spam security measures) to all other users over a public IRC channel. Then I programmed it to listen at the text sent by other connected players. But Unity does nothing with raw strings, so I forced it to retrieve the latest received string for every connected user, split the string down to arrays, and convert back each array element to a float value. Those float values are then passed as arguments to a function that moves the object. This function redefines a new Vector3 for the transform.position of the specific player object/mesh. This way, when a player moves, it moves at the exact same place in the scene, and changes can be seen on screen of all connected users. Tons of data can be passed in a very same string, so I can include details about inventory, player's health, functions to remotely launch, pause or stop an animation sequence, change a texture or material for another, etc. Anything needed can be passed, supporting both variables and functions. The only technical limitation is the maximum characters length per message allowed by the remote IRC server.
The best solution for indie developpers that may want to use my tech and method would be to create their own adapted IRC server. Its ease of integration, high flexibility, and near-zero exploitation costs are making it a viable and interesting MMOG platform. Something also worth mentionning, is that I can control the in-game object position by sending hand-written axis coordinates to a connected player using a vanilla version of the famous mIRC chatroom client! The game running on the remote computer can react instantly to mIRC conversations sent to the public chatroom, which is quite cool and unusual. This may eventually lead to new gameplay possibilities.
I still don't know if I will use this new piece of tech soon in any of my Unity projects. I may end up selling it or licensing it over the Unity Assets Store as a MMOG API, once more polished. But for now I prefer to keep it for me.
|
|
 |
|  |
 |
|  |
|
3D Treasure Chest
Friday October 7th, 2011
3D low-poly model of a cartoon treasure chest done using 3DStudioMax 2012.
|
|
 |
|  |
 |
|  |
|
Try Cartoon Boom! Boom! now from here!
Cartoon Boom! Boom! update
Friday October 7th, 2011
You can try an early playable demo of the game directly in your browser (you must download the Unity Web Player when you'll get asked to), right over here. Please note that ANIMATIONS ARE PLACEHOLDERS ONLY, and they do NOT reflect the expected final quality in any way. This is WORK IN PROGRESS. I am learning the Unity interface, the Unity Javascript and C# programming languages, and I never did character animation before. There is actually a very annoying bug with the imported .fbx animation of the ninja monkey... I will check this out soon. Meantime use WASD for controlling one character, and ARROWS for controlling the other. I am focusing mainly on mastering the programming, in order to get the most interesting gameplay possible.
|
|
 |
|  |
 |
|  |
|
Ninjii, the first character for Cartoon Boom! Boom!
Cartoon Boom! Boom! update
Friday October 6th, 2011
The first character to be finished is Ninjii, a ninja monkey that fights with dual laser swords. I modelled it in 3DSMax 2010, unwrapped and textured it's UVW maps, and a 3D animator friend now working at FunCom Montreal learned me how to rig and animate characters using "Biped" skeleton techniques via Character Studio; this is the result. Normal maps have been generated and retopologized from ZBrush by another friend now working at Bluberi.
|
|
 |
|  |
 |
|  |
|
Watch the video on Youtube by clicking here!
Gameloft Art Test
Monday July 11th, 2011
I had to complete a realistic harbor-themed 3D scene with a lot of various constraints, inspired by a provided reference artwork. Geometrical budget was limited to 3500 tris, and textures should never be bigger than 512x512 pixels. There was a requirement for creating at least one cargo ship, many containers, one warehouse, and two cranes. All lights needed to be baked on textures, using the Render to Texture function of 3DStudioMax. This is one working method I knew that existed in the past (in the Quake3 era), but never experimented by myself. This function turned out to be really useful and interesting, since it allows to see highlights and shadows in real-time, accelerating render time exponentially. I also had to fake reflections by inverting strategically-selected objects head down.
|
|
 |
|  |
 |
|  |
|
Screenshot coming soon! Stay tuned.
New 3D platformer WebGL game engine
Monday June 28th, 2011
I long dreamed of being able to do real-time 3D rendering for games using only HTML, CSS and Javascript as scripting language. Mainly because most online 3D engines are using either proprietary or complicated programming interfaces, and I don't have all the free time to learn them. I still want to learn Flash and ActionScript, but I always wondered if I could do real-time 3D rendering using only the scripting languages I know: CSS and Javascript. I already master those at their fullest extends, and it can (theorically) do anything I want. Their only serious problem are unveiling during practice; their rather bad execution speed, especially when it comes to zooming or scroll the page, or move big images using boolean timers. No browser has the same Javascript engine and performances, and some have other technical/marketing constraints. IE9 is much more powerful than any previous IE iteration, however it is not supported in Windows XP. In the other hand, Chrome is faster and is ok on XP, but does not manage the sound playback as easily and natively. And even if the V8 Javascript engine behind Chrome is still faster than the one behind IE9, it still has difficulty to zoom and scroll. This is especially true when both are happening at the same time. Not being able to know your game's speed is also a big problem when creating boolean timers based on intervals, because their sluggish execution time makes for global inacurrate timing. So this morning I woke up with a whole free day ahead and decided to face up the challenge of finding an efficient solution. Am I really forced to learn another language, or can I find a way optimizing this one I love so much?
After a few Google searches about 'HTML5' and 'canvas' plus 'Javascript', I found the CopperLicht engine and CopperCube editor. Those can export 3D projects to WebGL, which in turn does support Javascript outside the canvas tag, using event calls and listeners. After many hours of brain-fusing tutorial reading and learning, I finally found out by myself a way to synchronize the canvas rendering with external Javascript data. As I previously started coding a Super Smash Bros.-like 2D game in CSS + Javascript, I decided to create an exact copy of the first stage in 3D using the CopperCube editor. I had to keep in mind all proportions from the original reference when designing the 3D stage. I also had to set the 3D camera properly. Once that was ready, I set the Copperlicht canvas tag in the main HTML page (in order to load the CopperCube data into the web page), and then I set an 1px X 1px iframe containing the 2D version of the same game and stage. I then developped a repeating boolean synchronization bridge between the iframe content (playable game) and the CopperLicht listener, passing variables like the player's X and Y coordinates from the iframe to the parent window, so my billboard player in the 3D scene is now moving accordingly to the player in the hidden 2D game. That means that the 3D world does not detect any collision, and does not calculate any physics... Everything is controlled by Javascript and CSS, via the 2D version of the game. The 3D engine simply listen, so its only role is to serve as a much more advanced graphical renderer.
The result is beyond all my expectations! I started the concept from scratch, and evolved my already-existing (basic) 2D Javascript game into a full-featured, 60 frames per second, and GPU-enabled 3D WebGL game, all in about only 14 hours. That is what I call "efficiency"! Ok, need to go sleep now, I'll record a video when I get some new free time, probably next week.
|
|
 |
|  |
 |
|  |
|
Wild Wild Tiki's level editor Minimum Requirements: -Internet Explorer 9 (Windows Vista and Windows 7 only); -1366 x 768 pixels screen resolution; -Mono processor with high clock frequency (desktops: over 2.4Ghz / laptops: over 2.6Ghz) -Don't forget to open with IE9 and to turn ActiveX on!Download this game now!
Wild Wild Tiki 2D game and level editor are now stable!
Wednesday June 15th, 2011
This past night I finally got the opportunity to complete a working version of a level editor for Wild Wild Tiki, a 2D puzzle/action game inspired by the popular Flash game Rock Guardian. Wild Wild Tiki is scripted entirely in HTML, CSS and Javascript only. This project is intended to demonstrate that CSS/Javascript internet gaming now has a brighter future, thanks to the (late but likely) adoption of a faster Ecmascript engine embedded within the Internet Explorer 9 web browser.
During the project, I got to script a robust, flexible and optimized collision system, a system file architecture manipulation for level saving and loading, but also a very user-friendly game level editor UI, with things like the ability to show or hide the toolbar, a seamless snap-to-grid function, and a drag-and-drop function to place environment objects freely.
While the game does not currently contain a lot of proprietary graphical and musical art, the result remains a solid proof-of-concept of the capabilities offered by the underestimated Javascript scripting language and by Internet Explorer browsers. And most of all, it creates a really engaging atmosphere. Remember how exciting were ExciteBike (view) and Battle City (view) on NES console? One can easily spend many hours creating challenging and strategically-build maps. In Wild Wild Tiki, they can even share them with friends over Internet. Level editors, especially for puzzle games like Wild Wild Tiki, are quite uncommon these days, but beyond my expectations I learned that they definetely play a major role in creating the best replay value possible. Furthermore, a level editor is a very time-saving tool when it comes to designing a complete game, especially for such puzzle games where the replay value is almost exclusively relying on the levels variety.
Try it out and give feedback!
|
|
 |
|  |
 |
|  |
|
3D model done using 3DStudioMax 2009 and Adobe Photoshop.
New Telephone Post 3D model
Monday June 6th, 2011
There are things so omnipresent among us that we never took any serious attention. Telephone posts are one of them. They are complex, and more ingenious than we may first think.
During the project, I challenged myself to learn more about how these objects are constructed, and the reasons behind their design. We all know that tree leaves shouldn't touch the wires, but we often notice that some are actually touching them. Why nobody bothers? Is there any logical or technical reason? The answer is yes, there are logical and technical reasons. As I always dreamed of modelling a whole urban scene for a video game, I would now be instructed enough to translate and apply those reasons in a virtual environment. Telephone posts are important assets of any modern street furniture list.
At about 15 200 polys, this 3D model is low-poly, but keeps enough detail and smoothness to run fluidly on many next-generation middlewares. I carefully created its textures to reflect a lot of realism. Textures have been executed from pictures I took myself in Saint-Hyacinthe's centre-ville, using a 500$ 12 MegaPixels Sony picture camera I borrowed to one of my past employers, M.S. Audio Dumoulin Saint-Hyacinthe.
|
|
 |
|  |
 |
|  |
|
Droid 3D model.
New Assault Droid 3D model
Friday April 8th, 2011
I love modelling realistic war droids. They are complex systems that mix tons of high-end military technologies, designed from the ground up to fill specific roles.
This one is four-legged, and equipped with a head-mounted assault rifle as well as with a rotative rocket launcher. UVW unwrap map for this model has been created. Textures remain to be done.
|
|
 |
|  |
 |
|  |
|
Click HERE to launch this game (IE only). Don't forget to cross your eyes to see the 3D effects!
Stereoscopic 2D Game - Space Shooter
Sunday February 13rd, 2011
I managed to prove that HTML/CSS/Javascript scripting languages are able to create beautiful stereoscopic 2D games, by making a small prototype 2D game with stereoscopic 3D visuals running in Internet Explorer 7 and above, without the need of ANY plug-in (not even using Flash, Java, etc.). Stereoscopic 3D effects allow to trick the player's brain for it to perceive deepness and pop-up effects (even vertigo), just like it is currently possible with the nVidia 3D Vision kit or with the Nintendo 3DS. The only difference here is that you need to cross your eyes and focus in a certain manner in order to perceive the stereoscopic effects, which leads to more eye fatigue than if you were passively looking through a pair of active 3D glasses, since those are doing that for you automatically. In this case where I used a side-by-side technique, a peripheral to simplify and to make the current experience comfortable does not yet exist. But this experience definetely opens new gaming possibilities, since a cheap head-mounted USB screen with standardized technical specifications could eventually be manufactured (remember the old Viewmaster toys?).
The game also showcases a powerful and random 2.5D particles system. For optimization purposes, it is coded to never display more than a variable quantity of particles on screen at the same time. This variable can be changed by typing a new number in the input field located at top-left of the screen. You can read more about stereoscopic graphics, and the side-by-side method over http://en.wikipedia.org/wiki/Stereoscopy. When seen in stereoscopic 3D, you can view some particles fading away, and some others popping out close to your eyes, in full volumetric awesomeness!
If you are not able to see the 3D effect, one easy trick is to place your finger mid-way between your eyes and your screen. Keep looking at your finger, and move it very slowly towards your nose. Stop moving it as soon as your peripheral vision succeeds to merge the left and right images into a crisp middle image on the screen. When that happens, keep the very same focus and move your glance smoothly to the screen image; you should be able to admirate the game in full stereoscopic 3D flavour. Maintain this focus and control the game. The more often you repeat this experience, the easier and faster your eyes and brain will be able to perceive the effect with low efforts.
Use WASD keys to move the spaceship, and Q to fire missiles.
|
|
 |
|  |
|